Skip to main content

Operations & events

Bulk and administrative operations over a tenant's data, plus the live change stream. Several of these are long-running and return 202 Accepted immediately.

Import from Excel

POST /data/{tenant}/import

Imports objects from an Excel file described by an ImportTask body. Returns 201 Created with a Location on success.

TODO

Interview needed. Document the ImportTask body (source file reference, target type, column mapping), and how import maps rows to objects and relations.

Load default data

POST /data/{tenant}/loadDefaultData

Loads the default data fixtures declared in the model.

TODO

Interview needed. Document when this is used, idempotency (re-running), and interaction with existing data.

Rebuild

POST /data/{tenant}/rebuild

Starts a full rebuild of the tenant's data. Returns 202 Accepted, or 409 Conflict if a rebuild is already running.

TODO

Interview needed. Explain what "rebuild" reconstructs, when it is needed (e.g. after a model change), and how to observe progress/completion.

Recalculate

POST /data/{tenant}/{typeName}/recalculate

Recalculates formulas for all objects of a type. Returns 202 Accepted.

TODO

Interview needed. Document scope (this type only? dependents?), and how it differs from rebuild and sync.

Sync

POST /data/{tenant}/{typeName}/sync

Starts a sync for a type. Returns 202 Accepted.

TODO

Interview needed. Clarify what sync synchronizes (external source? search index?), and how it differs from recalculate and rebuild.

Delete tenant data

DELETE /data/{tenant}?name={name}&deleteTenant={bool}

Deletes a tenant's data, and optionally the tenant itself when deleteTenant=true.

TODO

Interview needed. Document the name parameter (why it is required alongside the path tenant), the deleteTenant flag, safeguards, and irreversibility.

Event stream

GET /data/{tenant}/eventStream

A Server-Sent Events stream (text/event-stream) of data-change events for the tenant.

TODO

Interview needed. Document the event shape, which changes emit events, filtering/scoping, reconnection semantics, and intended consumers (e.g. live-updating UIs).