Entities overview
How tables are declared, stored and queried.
How tables are declared, stored and queried.
An entity is a table. Declare one by adding a JSON file to draftship/entities/, named in kebab-case (team-member.json for TeamMember). Schemas are applied after each successful build.
Records are JSON objects. Besides your fields, every record has id, created_date, updated_date and created_by. Schemas aren't enforced strictly: fields you don't declare are still stored, and changing a schema needs no migration. Declared required fields and default values are applied on create.
filter takes MongoDB-style queries:
| Operator | Example |
|---|---|
| equality | { status: "open" } |
$ne $gt $gte $lt $lte |
{ price: { $lt: 20 } } |
$in $nin |
{ tag: { $in: ["a", "b"] } } |
$all $size $exists |
{ tags: { $all: ["x"] } } |
$regex (case-insensitive by default) |
{ title: { $regex: "draft" } } |
$or $and $nor |
{ $or: [{ a: 1 }, { b: 2 }] } |
Dotted paths reach into nested objects: { "address.city": "Izmir" }. Sort with a field name, -field for descending, or several separated by commas.
5,000 records per entity, 200 KB per record, 500 records per bulk create, up to 5,000 records per list call.