Skip to main content
A Database Table is both a governed schema and the durable record store behind it. Its name, field definition, partition strategy, access policy, and audit setting form the contract used by UI, low-code Components, Endpoints, Jobs, Agents, and the Platform API.

Tables workspace

Open Databases → Tables to search the currently configured Tables by name, category, or description. Select a Table to keep the data grid visible while its side panel exposes:
  • Details — stable name, category, description, and lifecycle;
  • Metadata — bounded customer-owned JSON labels;
  • Partitions — logical parent and LIST, RANGE, HASH, or default partition boundaries;
  • Size — total, row data, indexes, and audit allocation;
  • Definition — ordered column definitions;
  • Audit — future row-change capture;
  • Restricted — named users and Groups permitted to access the Table.
The Table grid is the operator data surface: inspect, filter, sort, add, edit, and delete records according to your Resource role and the Table ACL. Use the Platform API, SDK, or low-code Database API for application traffic rather than automating the browser.

A practical orders definition

For a typical order workflow, start with an immutable UUID primary key, a queryable status, and an explicitly time-zoned business timestamp. Add a provider reference only when it is the idempotency proof for an external side effect. The goal is not to represent every possible field; it is to make the few invariants the rest of the platform can trust.
In the UI, Definition presents columns as Name, Type, Default, and Details. Select one to edit its specific constraints rather than changing the complete Table blindly.

Table fields

Field types

Field definition

Every field supplies the following shape:
Select a row in Definition to open the column panel. The UI keeps primary-key rules explicit: an array cannot be a primary key, and nullable, unique, index, and collection controls apply only where the field is not the primary key. Column metadata is edited independently from the Table’s own metadata.

Foreign references

One reference group contains one or more mappings plus actions for updates and deletes:
onUpdate accepts none, cascade, or restrict. onDelete accepts none, cascade, restrict, default, or null. Select cascade only when deleting or changing a parent must intentionally change every dependent record.

Query and index design

Start with one primary key and indexes justified by observed filters, joins, sorting, or materialized-view refreshes. Do not index every field. Composite and predicate index definitions, where supported by the specific data surface, use structured fields rather than raw SQL: supported access methods are btree, hash, gist, spgist, gin, and brin; predicates use typed operators such as eq, gte, in, and isnull. Use a View or Materialized View for a reusable multi-table read model. A View’s output fields are derived from its saved query; changing source field names can therefore be an application breaking change.

Partition large Tables deliberately

Partitioning is a physical scale and lifecycle decision, not a replacement for normal indexes. Create a logical parent, choose a supported partition key, then add child partitions: The partition key and audit policy are inherited from the logical parent. A child partition cannot redefine them independently. Plan non-overlapping ranges/list values and create the next time partition before traffic reaches its boundary.

Operate records

The data surface supports bounded reads, field projection, typed filters, sorting, inserts, updates, deletes, and bulk mutations. Schema validation runs before a supported write reaches the Table. Primary keys, uniqueness, nullability, references, and types can still reject a request even when the caller is authorized. Use Export for a governed CSV artifact in Storage, Clone for an asynchronous copy of the definition with optional data and partitions, and Truncate only for administrative bulk removal. Truncate preserves identity counters unless explicitly told to restart them and never emits row-level audit events.
A Table definition update is an application contract change. Review Components, Endpoints, Views, exports, and external consumers before renaming or removing a field.

Production review

  • Choose UUID or a consciously sized integer key before data is inserted.
  • Keep timestamps in a documented time-zone convention.
  • Enable audit before regulated changes begin.
  • Validate data at Endpoint boundaries; constraints are the last line of defense, not client feedback.
  • Review foreign-reference delete behavior with a real dependency graph.
  • Use query traces and actual filters before adding indexes.
Last modified on September 5, 2026