Skip to main content

Custom Properties

Custom properties are additional key–value fields you attach to a Cardinal Group β€” a project or a tenant β€” to store your own metadata: descriptive or configuration data that isn't part of the standard schema. Your application can read them back from the Group through the Cardinal SDK (group.properties).

info

Custom properties work the same way for a Group and for a user β€” in both cases they store extra metadata about that entity. This page covers the Group-level properties (project / tenant); the custom properties you can set on a user row in the Users table behave the same, just attached to the user.

Where to find them​

Both use the same table and the same add/edit/transfer/duplicate actions described below.

info

If you set project custom properties while single-tenant and later switch to multi-tenant, those properties stay assigned to the "initial deployment" tenant.

Anatomy of a property​

Each custom property is typed. When you add or edit one, you provide three fields:

  • Identifier β€” the property's key/name.
  • Value β€” the value (a multi-line text field).
  • Type β€” one of Boolean, Integer, Double, String, Date, Clob (large text), or Json.
info

The editor infers the type from what you type β€” e.g. true β†’ Boolean, 42 β†’ Integer, { … } β†’ Json β€” but you can always override it. The type is stored alongside the value, so your application reads back a correctly typed value.

Managing properties​

The table lists each property's Identifier, Value, and Type. The per-row menu and the Add custom property button give you:

  • Add custom property β€” create a new one (header, footer, and empty-state button).
  • Edit property β€” change its value or type.
  • Convert to correct type β€” shown when a property's stored value doesn't match its declared type.
  • Delete property β€” remove it (with a confirmation).

Moving properties between groups​

Two row actions let you reuse a property across the project and its tenants:

  • Transfer to another group β€” moves the property: it's removed from the current group and assigned to the one you pick (the project itself or one of its tenants).
  • Duplicate in another group β€” copies the property: the original stays, and a copy is created in each destination you select (you can pick several).
info

Both work within the same project β€” you can move/copy between the project and its tenants. This is handy for seeding every tenant with the same configuration property.

Where to go next​