ackDB

Edit an attribute's metadata, or migrate its scope

Custom attributes: key/type are immutable — label/description/allowedValues change freely.

Standard attributes (#487): allowedValues — and nothing else — may be edited, and only on an attribute that already ships an enum. A lifecycle funnel differs per deployment (an extra "Implementation" stage between Opportunity and Customer, say), so the ENUM belongs to the tenant while ackDB keeps the wording, grain and type. null is refused (the field must keep a fixed set of values), a freeform standard field stays freeform, and DELETE is still refused. The edit STICKS: it sets userModified, so the boot loader stops re-asserting the shipped list on restart. Every attribute view carries editableFields — the authoritative list of what PATCH will accept.

Scope migration (#474): { "scope": "person" } re-files a CONTACT attribute onto the HUMAN, in one transaction: values fold onto each edge's person (winner = most recently updated among ACTIVE edges; existing person values are never overwritten; disagreeing edges are reported as conflicts[]), the definition + label override flip scope, the migrated contact rows are deleted, saved segments referencing the key are SCRUBBED (it leaves the contact catalog — a referencing segment would 400 its view; affiliation-where references on company/person segments too), and score definitions referencing it are pruned + flagged degraded. Must be the ONLY field in the request. { "dryRun": true } runs the full cascade and rolls back — the report is real. contact → person is the only direction. The CLI twin is npm run migrate-contact-attributes.

patch/api/v1/ackdb/attributes/{key}

Request

  • Base URL
    http://localhost:3009
  • Auth
    HTTP bearer

Path parameters

keystring required

Attribute key (snake_case).

Request body

labelstring
descriptionstring nullable
allowedValuesstring[] nullable
scope'person'

Scope migration (#474) — only "person".

dryRunboolean

Scope migration only: run the full cascade and roll back.

Response

The updated attribute definition — or, for a scope migration, { data: { contactValues, personValues, conflicts[], scrubbedSegments, degradedScores[], dryRun } }.

dataunknown required

Changes

No recorded changes to this operation across all 1 revision of this API.