For the complete documentation index, see llms.txt. This page is also available as Markdown.

/api/v1/mask

Access the mask definitions of a datamodel version. Masks project objecttypes to a subset of fields and are the unit through which the frontend renders forms and detail views. version can be:

  • HEAD — the working copy (uncommitted edits). Readable by any authenticated user (GET requires only an authenticated user, not system.datamodel).

  • CURRENT — the most recently committed version. Resolved server-side; equivalent to the highest committed number.

  • a positive integer pointing at a specific committed version.

GET /mask/{version} — Retrieve all masks for a datamodel version.

Retrieve all masks for a datamodel version.

get
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
versionstringRequired

Datamodel version. HEAD returns the working copy (readable by any authenticated user); CURRENT resolves to the most recently committed version; a numeric id resolves to a specific committed version.

Pattern: ^(HEAD|CURRENT|[1-9][0-9]*)$
Query parameters
formatstring · enumOptional

Output detail level. standard (default): field descriptors only. long: additionally embeds each non-splitter field's underlying column definition and full_name. Unrecognised values behave like standard (not rejected).

Differs from easydb 5: format selects the level of detail and the response is always JSON. easydb 5's format chose the serialization (xml — its default — or json); fylr has no XML output.

Possible values:
Responses
200

The mask-set for the requested datamodel version: a MaskSchemaApi wrapper (type, version, based_on_schema_version, max_mask_id) whose masks array holds one descriptor per mask.

application/json

The full mask schema document — the wrapper returned by GET /mask/{version} and GET /mask/{version}/{mask} and the body that POST /mask/HEAD expects and returns: schema-level metadata (type, version, based_on_schema_version, max_mask_id) plus the array of masks. The single-mask GET returns the same wrapper with masks filtered to the one requested mask.

This is what the working datamodel writes to and reads from; once the masks are saved into HEAD, they only become visible to other readers after a separate POST /api/v1/schema/commit.

typestring · enumRequired

Always "user" — distinguishes mask-schema documents from datamodel-schema documents on the same code path.

Possible values:
versionintegerOptional

Schema-format marker, always 1 on output. Not consumed on input to POST /mask/HEAD.

based_on_schema_versionintegerOptional

On output, the datamodel version this mask set was read from (the server sets it from the loaded datamodel). On input to POST /mask/HEAD it is decoded but not consumed: the write always applies to the current HEAD.

max_mask_idinteger · int64Optional

Highest mask_id server has issued so far. New masks the client adds without mask_id are assigned ids starting at max_mask_id + 1.

GET /mask/{version}/{mask} — Retrieve a single mask of a datamodel version.

Retrieve a single mask of a datamodel version.

get
Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Path parameters
versionstringRequiredPattern: ^(HEAD|CURRENT|[1-9][0-9]*)$
maskstringRequired

Mask name. The special name _all_fields returns the objecttype's complete field set (all columns), wrapped in the same mask-set envelope. Available to any authenticated user.

Query parameters
formatstring · enumOptional

Output detail level. standard (default): field descriptors only. long: additionally embeds each non-splitter field's underlying column definition and full_name. Unrecognised values behave like standard (not rejected).

Differs from easydb 5: format selects the level of detail and the response is always JSON. easydb 5's format chose the serialization (xml — its default — or json); fylr has no XML output.

Possible values:
Responses
200

A MaskSchemaApi wrapper whose masks array contains the single requested mask (for _all_fields, the synthesised all-fields mask per objecttype).

application/json

The full mask schema document — the wrapper returned by GET /mask/{version} and GET /mask/{version}/{mask} and the body that POST /mask/HEAD expects and returns: schema-level metadata (type, version, based_on_schema_version, max_mask_id) plus the array of masks. The single-mask GET returns the same wrapper with masks filtered to the one requested mask.

This is what the working datamodel writes to and reads from; once the masks are saved into HEAD, they only become visible to other readers after a separate POST /api/v1/schema/commit.

typestring · enumRequired

Always "user" — distinguishes mask-schema documents from datamodel-schema documents on the same code path.

Possible values:
versionintegerOptional

Schema-format marker, always 1 on output. Not consumed on input to POST /mask/HEAD.

based_on_schema_versionintegerOptional

On output, the datamodel version this mask set was read from (the server sets it from the loaded datamodel). On input to POST /mask/HEAD it is decoded but not consumed: the write always applies to the current HEAD.

max_mask_idinteger · int64Optional

Highest mask_id server has issued so far. New masks the client adds without mask_id are assigned ids starting at max_mask_id + 1.

POST /mask/HEAD — Write masks into the working datamodel (HEAD).

Write masks into the working datamodel (`HEAD`).

post

Saves the supplied mask set into the working copy. The change is only visible to other readers after a separate commit via POST /api/v1/schema/commit. Requires system.datamodel[level=development] (or [level=commit]). Rejected in read-only mode.

Authorizations
AuthorizationstringRequired

Access token in the Authorization header: Authorization: Bearer <token>.

Body

The full mask schema document — the wrapper returned by GET /mask/{version} and GET /mask/{version}/{mask} and the body that POST /mask/HEAD expects and returns: schema-level metadata (type, version, based_on_schema_version, max_mask_id) plus the array of masks. The single-mask GET returns the same wrapper with masks filtered to the one requested mask.

This is what the working datamodel writes to and reads from; once the masks are saved into HEAD, they only become visible to other readers after a separate POST /api/v1/schema/commit.

typestring · enumRequired

Always "user" — distinguishes mask-schema documents from datamodel-schema documents on the same code path.

Possible values:
versionintegerOptional

Schema-format marker, always 1 on output. Not consumed on input to POST /mask/HEAD.

based_on_schema_versionintegerOptional

On output, the datamodel version this mask set was read from (the server sets it from the loaded datamodel). On input to POST /mask/HEAD it is decoded but not consumed: the write always applies to the current HEAD.

max_mask_idinteger · int64Optional

Highest mask_id server has issued so far. New masks the client adds without mask_id are assigned ids starting at max_mask_id + 1.

Responses
200

The HEAD masks were saved. Returns the complete stored HEAD mask-set (MaskSchemaApi, all masks — not just the submitted subset) with any server-applied normalisation and the current max_mask_id. The response also carries an updated fylr cache-id header.

application/json

The full mask schema document — the wrapper returned by GET /mask/{version} and GET /mask/{version}/{mask} and the body that POST /mask/HEAD expects and returns: schema-level metadata (type, version, based_on_schema_version, max_mask_id) plus the array of masks. The single-mask GET returns the same wrapper with masks filtered to the one requested mask.

This is what the working datamodel writes to and reads from; once the masks are saved into HEAD, they only become visible to other readers after a separate POST /api/v1/schema/commit.

typestring · enumRequired

Always "user" — distinguishes mask-schema documents from datamodel-schema documents on the same code path.

Possible values:
versionintegerOptional

Schema-format marker, always 1 on output. Not consumed on input to POST /mask/HEAD.

based_on_schema_versionintegerOptional

On output, the datamodel version this mask set was read from (the server sets it from the loaded datamodel). On input to POST /mask/HEAD it is decoded but not consumed: the write always applies to the current HEAD.

max_mask_idinteger · int64Optional

Highest mask_id server has issued so far. New masks the client adds without mask_id are assigned ids starting at max_mask_id + 1.

Last updated