apiplant-db
The database layer. It has three jobs:
- Migrations ([
migrate]) — make Postgres match the resource schemas. - CRUD ([
Db]) — build parameterised statements for a [Resource] at runtime and hand rows back as plain JSON. - Seeding ([
seed]) — load an app'sseed/directory, the rows it starts life with.
Rows come back as JSON by letting Postgres do the conversion (to_jsonb /
jsonb_agg), so the executor only ever extracts a single JSON column and
never needs a compile-time entity for a table it only learned about from a
TOML file. Values always travel as $n bind parameters; only validated,
double-quoted identifiers are ever interpolated.