Generated from tesseraql-v1.schema.json — the schema the loader, the editors, and the linter share — on every refresh, so it cannot drift from what the framework accepts. One document = one file under an app’s routes/ tree; which root properties apply depends on the document’s kind.
Schema for TesseraQL Simple YAML documents: routes (web//.yml), jobs (batch//job.yml), queue consumers (consume/**), and declarative views (*.view.yml). Deepened for editor feedback (roadmap Phase 43); additionalProperties stays true so newer keys never break older editors. The route recipe enum is kept in sync with the linter by a build-time test.
| Property |
Type |
Description |
version * |
const tesseraql/v1 |
|
id * |
string, min length 1 |
|
kind * |
enum: route | job | view |
|
recipe |
enum: query-json | command-json | query-html | page | query-export | file-import | file-export | webhook | queue-consume | batch-tasklet | batch-pipeline |
Route recipes (the linter’s KNOWN_ROUTE_RECIPES) plus queue-consume (consume/** documents) and the job recipes batch-tasklet/batch-pipeline. |
input |
map of inputField |
|
inputPolicy |
object |
|
security |
object |
|
idempotency |
object |
|
policy |
object |
|
outbox |
object |
|
datasource |
string |
The named connector under tesseraql.datasources the route’s SQL runs on (roadmap Phase 53), defaulting to main. Read recipes only until the projection slice (TQL-YAML-1036); the name must be declared (TQL-YAML-1035). |
sql |
sqlBinding |
|
steps |
map of sqlBinding |
|
queries |
map of sqlBinding |
Additional named queries executed after sql, each bound into the execution context under its name. |
validate |
map of object |
|
notify |
map of object |
|
errors |
object |
|
import |
object |
|
export |
object |
|
webhook |
object |
|
publish |
object |
|
consume |
object |
|
page |
object |
Declarative pagination (roadmap Phase 41): the framework appends the dialect clause; authored SQL carries no LIMIT/FETCH. |
response |
object |
|
view |
enum: list | form | detail | dashboard |
Declarative view documents (kind: view, roadmap Phase 39): list | form | detail | dashboard. |
title |
string |
|
search |
string |
|
source |
string |
|
action |
string |
|
columns |
array of any |
|
fields |
array of any |
|
panels |
array of any |
|
children |
object |
|
slots |
map of string |
|
trigger |
object |
|
| Property |
Type |
Description |
auth |
enum: bearer | browser | apiKey | mtls | public |
bearer | browser | apiKey | mtls | public (deny-by-default: no auth means no access to protected data). |
policy |
string |
A policy id under tesseraql.security.policies. |
provider |
string |
|
csrf |
boolean |
|
| Property |
Type |
Description |
provider |
string |
A verifier under tesseraql.connectors.webhooks (an unknown provider fails the build). |
| Property |
Type |
Description |
channel |
string |
|
topic |
string |
|
key |
string |
|
payload |
map of string |
|
| Property |
Type |
Description |
channel |
string |
|
topic |
string |
|
idempotencyKey |
string |
|
Declarative pagination (roadmap Phase 41): the framework appends the dialect clause; authored SQL carries no LIMIT/FETCH.
| Property |
Type |
Description |
strategy |
enum: offset | keyset |
|
size |
integer ≥ 1 |
|
maxSize |
integer ≥ 1 |
|
count |
boolean |
|
by |
string |
keyset cursor column |
| Property |
Type |
Description |
into |
string |
|
children |
string |
|
as |
string |
|
on |
map of string |
|
| Property |
Type |
Description |
status |
integer ≥ 100 ≤ 599 |
|
template |
string |
|
view |
string |
A *.view.yml document (exclusive with template:). |
model |
object |
|
headers |
object |
|
headersWhen |
map of string |
|
statusWhen |
statusWhen |
|
| Property |
Type |
Description |
contentType |
string |
|
filename |
string |
|
| Property |
Type |
Description |
status |
integer ≥ 300 ≤ 399 |
|
location * |
string |
|
| Property |
Type |
Description |
status |
integer |
|
template * |
string |
|
contentType |
string |
|
filename |
string |
|
model |
object |
|
| Property |
Type |
Description |
retarget |
string |
|
reswap |
string |
|
| Property |
Type |
Description |
type |
enum: string | integer | number | boolean | date | array |
|
required |
boolean |
|
default |
any |
|
min |
number |
|
max |
number |
|
maxLength |
integer ≥ 0 |
|
minLength |
integer ≥ 0 |
|
pattern |
string |
Anchored regular expression (TQL-YAML-1012 when it does not compile). |
format |
string |
string: email|uuid|url; date/number: a parse pattern. |
requiredWhen |
string |
A core expression over params./path./body. (TQL-YAML-1014). |
enum |
array of string |
|
writable |
boolean |
|
classification |
string |
|
mask |
string |
|
items |
object |
|
| Property |
Type |
Description |
type |
string |
|
enum |
array of string |
|
| Property |
Type |
Description |
file |
string |
A colocated 2-way SQL file (must exist; TQL-SQL-2103). |
contract |
string |
|
service |
string |
|
mode |
string |
|
timeoutSeconds |
integer ≥ 0 |
Per-binding SQL statement timeout override (roadmap Phase 45); 0 disables. Default: tesseraql.sql.timeoutSeconds, else 30s. |
datasource |
string |
The named connector this read binding runs on (roadmap Phase 53), overriding the route’s connector. A step inside a transactional pipeline cannot pick its own connector (TQL-YAML-1037). |
params |
map of string |
|
sequence |
string |
|
keys |
array of string |
|
materialize |
object |
|
expect |
object |
|
| Property |
Type |
Description |
maxRows |
integer |
|
onOverflow |
string |
|
| Property |
Type |
Description |
rows |
integer |
|
onMismatch |
string |
|
| Property |
Type |
Description |
visible |
boolean |
|
policy |
string |
|
mask |
string |
|
classification |
string |
|
unmaskWhen |
string |
|