FerretDB
Runs FerretDB 2 · macOS & Linux · registry page ↗
A MongoDB-wire database you connect to with any Mongo client. Under the hood it is FerretDB v2 fronting a private PostgreSQL with Microsoft’s DocumentDB extension — no MongoDB server, no license worries.
ferret "shop" { version = "2.7"
database "catalog" { collection "products" { seed = "./seed/products.json" } collection "orders" {} }}Versions you can declare
Section titled “Versions you can declare”The version = you write is the engine’s own version — the only version
that’s yours. Declare a series and doze pins its newest published build, or
declare an exact build; either way it’s fetched, verified, and pinned in
doze.lock (so it never moves on its own).
version = | pins (today) | exact builds |
|---|---|---|
2 | 2.7.0 | 1 |
Every exact build, per series
2 — 2.7.0
Configuration
Section titled “Configuration”| Field | Type | Default | Description |
|---|---|---|---|
version | string | — | FerretDB v2.x gateway version Required. |
database | block | — | a Mongo database to ensure (repeatable; label = name) |
collection | block | — | a collection within a database (repeatable; label = name) |
seed | string | — | path to a JSON array seeded into an empty collection |
index | block | — | an index on a collection (keys = {field=1|-1}, unique) |
settings | map(string) | — | extra FERRETDB_* gateway settings |
auth | bool | false | enable auth + user convergence (scaffold; needs validation) |
user | block | — | a Mongo user when auth is on (name, password, database, roles) |
Module releases
Section titled “Module releases”Machinery, for the curious: the plugin releases that provide this engine.
doze selects the newest compatible one and pins it in doze.lock — you
never write these. Older releases stay resolvable for pinned lockfiles.
| Release | Engine versions | Platforms | |
|---|---|---|---|
0.2.2 | 2 | 3 | stable |
0.2.1 | 2 | 3 |
Raw signed data: index.yaml ↗ · meta.yaml ↗