/api/v1/mask
GET /mask/{version} — Retrieve all masks for a datamodel version.
GET /mask/{version} — Retrieve all masks for a datamodel version.Access token in the Authorization header:
Authorization: Bearer <token>.
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.
^(HEAD|CURRENT|[1-9][0-9]*)$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.
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.
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.
Always "user" — distinguishes mask-schema documents from
datamodel-schema documents on the same code path.
Schema-format marker, always 1 on output. Not consumed on
input to POST /mask/HEAD.
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.
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.
The version segment is not a known committed version (or
HEAD / CURRENT). Returns code DatamodelVersionNotFound,
package datamodel.
No authenticated user. The request must carry a valid access token.
Differs from easydb 5: a missing/invalid session is reported
as 401 (UserRequired); easydb 5 documents a single 403
for both "not authenticated" and "lacks required rights".
GET /mask/{version}/{mask} — Retrieve a single mask of a datamodel version.
GET /mask/{version}/{mask} — Retrieve a single mask of a datamodel version.Access token in the Authorization header:
Authorization: Bearer <token>.
^(HEAD|CURRENT|[1-9][0-9]*)$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.
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.
A MaskSchemaApi wrapper whose masks array contains the
single requested mask (for _all_fields, the synthesised
all-fields mask per objecttype).
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.
Always "user" — distinguishes mask-schema documents from
datamodel-schema documents on the same code path.
Schema-format marker, always 1 on output. Not consumed on
input to POST /mask/HEAD.
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.
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.
The version segment is not a known committed version (or
HEAD / CURRENT). Returns code DatamodelVersionNotFound,
package datamodel.
No authenticated user. The request must carry a valid access token.
Differs from easydb 5: a missing/invalid session is reported
as 401 (UserRequired); easydb 5 documents a single 403
for both "not authenticated" and "lacks required rights".
The mask NAME in the URL does not exist for this datamodel
version (code ResourceNotFound, package api). An unknown
version is reported as a 400 DatamodelVersionNotFound
(package datamodel), not a 404.
POST /mask/HEAD — Write masks into the working datamodel (HEAD).
POST /mask/HEAD — Write masks into the working datamodel (HEAD).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.
Access token in the Authorization header:
Authorization: Bearer <token>.
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.
Always "user" — distinguishes mask-schema documents from
datamodel-schema documents on the same code path.
Schema-format marker, always 1 on output. Not consumed on
input to POST /mask/HEAD.
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.
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.
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.
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.
Always "user" — distinguishes mask-schema documents from
datamodel-schema documents on the same code path.
Schema-format marker, always 1 on output. Not consumed on
input to POST /mask/HEAD.
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.
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.
The submitted document is malformed or inconsistent with the
current objecttypes / fields (a datamodel-validator code such
as SchemaDuplicateMaskName), OR the instance is in read-only
mode (code ReadOnlyMode, package ferrors). Read-only
rejections carry package ferrors, not datamodel.
No authenticated user. The request must carry a valid access token.
Differs from easydb 5: a missing/invalid session is reported
as 401 (UserRequired); easydb 5 documents a single 403
for both "not authenticated" and "lacks required rights".
The authenticated user lacks system.datamodel[level=development]
(or [level=commit]), the right required to write the HEAD
mask-set. (system.root also satisfies the check.)
Last updated