AckdbAttributeDefinition

An attribute definition (standard or custom) — a trait_definitions row shaped for the Attributes API.

Properties

keystringrequired
labelstringrequired

Display label — a field_label_overrides value, or a prettified key.

scopestringrequired

What the fact is ABOUT: company = the account; person = the HUMAN (survives job changes); contact = one person-at-one-company affiliation.

"company""contact""person"
typestringrequired
"string""number""boolean""date""string_array"
originstringrequired

"standard" = shipped by ackDB (never deletable; only its enum is editable, see editableFields); "custom" = user-created via POST /attributes.

"standard""custom"
descriptionstring (nullable)

Read by the AI agent for semantic understanding.

allowedValuesarray of

Enum constraint (string type only).

string
editablebooleanrequired

Always true — every attribute's values may be set.

editableFieldsarray ofrequired

Which DEFINITION fields PATCH accepts (#487) — the authoritative list, so a client never has to infer the rules. Custom: label + description (+ allowedValues when type is "string", + scope when contact-scope). Standard: `["allowedValues"]` when it ships an enum, otherwise empty (read-only).

string
"label""description""allowedValues""scope"
deletablebooleanrequired

true only for custom attributes.

userModifiedbooleanrequired

This deployment has edited the definition, so the boot loader no longer re-asserts the shipped metadata (#487). On a standard attribute it means the tenant owns this enum now.

valueCountnumberrequired

Active records currently holding a value.

createdAtstring <date-time>required

Example

AckdbAttributeDefinition example
{
  "key": "string",
  "label": "string",
  "scope": "company",
  "type": "string",
  "origin": "standard",
  "description": "string",
  "allowedValues": [
    "string"
  ],
  "editable": false,
  "editableFields": [
    "label"
  ],
  "deletable": false,
  "userModified": false,
  "valueCount": 0,
  "createdAt": "1970-01-01T00:00:00.000Z"
}