Skip to content
Henceforth Docs
Search
Ctrl
K
Cancel
GitHub
Select theme
Dark
Light
Auto
Menu
Get started
Get started
Concepts
Concepts
Objects, records, and fields
Relationships and lookups
From metadata to database
Querying data with HOQS
The HTTP API surface
Experience surfaces
How-to guides
How-to guides
Create records through the API
Read, update, and delete records through the API
Upsert records through the API
Query and filter records
Include child records in queries
Aggregate query results
Fetch the API contract from a running server
Plan and publish a cart branch
Manage metadata with the hf CLI
Read the ontology of a running instance
Serve an instance on a public URL
Mount a surface from a directory
Run an active and a standby instance
Reference
Reference
Metadata file layout
Metadata
FieldDefinition
ModuleManifest
ObjectDefinition
RelationshipDefinition
ScreenDefinition
SeedDefinition
Settings
ValidationRule
Formula language
HOQS query language
Diagnostics
hf CLI
hf module
hf object
hf field
hf branch
Error codes
HFX language
HTTP API
Overview
auth
Overview
Authenticate with username/password and receive a JWT.
Consume a setup token and set a password.
Request an SSH challenge nonce.
Verify an SSH signature and receive a JWT.
Show which account a one-time code signs in as. Issues nothing; the page redeems through POST /auth/session/redeem.
Redeem a one-time code: sign this browser in, or ask it to confirm first.
Return the current principal's profile.
Generate a one-time code for browser session establishment.
Serve the public key set for JWT verification.
iam
Overview
Create a new principal.
Get a principal by id.
Delete a principal.
Update a principal.
List credentials for a principal.
Attach a credential to a principal.
Generate a password reset token.
Revoke a credential.
metadata
Overview
Return a module's metadata record.
List the objects defined within a module.
Return an object's metadata record.
List the fields defined on an object.
Return a field's metadata record.
List the screens defined within a module.
Return a screen's metadata record.
List the relationships defined within a module.
List every module (transitional cross-module aggregation read).
List every object across all modules (transitional cross-module aggregation read).
List every field across all objects (transitional cross-module aggregation read).
Update a module (fails with 404 if absent).
Create a module (fails with 409 if it already exists).
Delete a module.
Update an object (fails with 404 if absent).
Create an object within a module (fails with 409 if it already exists).
Delete an object.
Update a field (fails with 404 if absent).
Create a field on an object (fails with 409 if it already exists).
Delete a field.
Update a screen (fails with 404 if absent).
Create a screen within a module (fails with 409 if it already exists).
Delete a screen.
Apply a cart branch and fast-forward main onto it (#929 D6).
List the files a branch changes relative to main (#929 D7).
Read what every module, object, field and relationship of this instance means.
Read what one module's objects, fields and relationships mean.
data
Overview
Execute a HOQS query.
Create a new record.
Read a single record by id.
Upsert a record by a unique field.
Delete a record.
Update an existing record.
system
Overview
List the surfaces the caller may use (the surface hub).
Compute a dry-run diff between metadata and the live database.
Diff metadata against the live database and execute DDL.
Liveness probe.
Readiness probe.
Readiness probe with database introspection.
Serve the OpenAPI document of the routes this binary mounts.
Serve one of the committed metadata schema documents.
GitHub
Select theme
Dark
Light
Auto
Overview
metadata
Section titled “metadata”
Metadata CRUD: modules, objects, fields, screens (reads and metadata@
writes).
Operations
Section titled “ Operations ”
GET
/v1/metadata/{moduleKey}
GET
/v1/metadata/{moduleKey}/objects
GET
/v1/metadata/{moduleKey}/objects/{objectKey}
GET
/v1/metadata/{moduleKey}/objects/{objectKey}/fields
GET
/v1/metadata/{moduleKey}/objects/{objectKey}/fields/{fieldKey}
GET
/v1/metadata/{moduleKey}/screens
GET
/v1/metadata/{moduleKey}/screens/{screenKey}
GET
/v1/metadata/{moduleKey}/relationships
GET
/v1/metadata/-/modules
GET
/v1/metadata/-/objects
GET
/v1/metadata/-/fields
PUT
/v1/metadata@{branchId}/{moduleKey}
POST
/v1/metadata@{branchId}/{moduleKey}
DELETE
/v1/metadata@{branchId}/{moduleKey}
PUT
/v1/metadata@{branchId}/{moduleKey}/objects/{objectKey}
POST
/v1/metadata@{branchId}/{moduleKey}/objects/{objectKey}
DELETE
/v1/metadata@{branchId}/{moduleKey}/objects/{objectKey}
PUT
/v1/metadata@{branchId}/{moduleKey}/objects/{objectKey}/fields/{fieldKey}
POST
/v1/metadata@{branchId}/{moduleKey}/objects/{objectKey}/fields/{fieldKey}
DELETE
/v1/metadata@{branchId}/{moduleKey}/objects/{objectKey}/fields/{fieldKey}
PUT
/v1/metadata@{branchId}/{moduleKey}/screens/{screenKey}
POST
/v1/metadata@{branchId}/{moduleKey}/screens/{screenKey}
DELETE
/v1/metadata@{branchId}/{moduleKey}/screens/{screenKey}
POST
/v1/metadata@{branchId}/publish
GET
/v1/metadata@{branchId}/diff
GET
/v1/ontology
GET
/v1/ontology/{moduleKey}