Replace entity classification join

View as Markdown

Replaces one join by id. Omitted isCurrent and isPrimary default to true and false. Dormant type+name matches reactivate by default. Use registry when an editorial and standardized join share the same row id.

Authentication

AuthorizationBearer

User bearer token: Supabase or Clerk session JWT, Clerk OAuth access token, or Clerk personal API key

OR
X-API-Keystring

Admin API key for system-to-system write operations

Path parameters

entityIdstringRequiredformat: "uuid"
Canonical entity UUID
classificationIdintegerRequired
Entity classification row id

Query parameters

registrystringOptional
Optional join registry discriminator when classificationId collides across editorial and standardized join tables.
sourceTypeenumRequired
Write provenance source type.
sourceDetailstringRequired
Source detail or reviewer reference for the write.
sourceProviderstringOptional

Provider name for provider-native IDs or slugs.

sourceProviderIdstringOptional

Provider-native source ID.

sourceProviderSlugstringOptional

Provider-native source slug.

actorTypeenumOptional

Actor type; inferred as agent when agentChassis and agentModel are supplied, or as employee from an authenticated user JWT session.

Allowed values:
agentChassisstringOptional

Agent chassis token for agent-authored writes.

agentModelstringOptional

Agent model id for agent-authored writes.

overrideGateenumOptional
Gate to override from the prior ProblemDetail resolution.
overrideReasonstringOptional0-2048 characters

Source-backed reason for overriding the returned gate requirement.

Request

This endpoint expects an object.
inactiveTagOverrideenum or nullOptional

Dormant-value handling when type plus name matches an inactive catalog row. Omitted reactivates the dormant value by default (it becomes current and the write returns a Warning header naming the reactivated tag). Set ATTACH_INACTIVE to attach the dormant value without reactivating it.

isCurrentboolean or nullOptional
Current join row. Create and replace default to true when omitted.
isPrimaryboolean or nullOptional
Primary tag within its bucket. Create and replace default to false when omitted.
namestring or nullOptional0-40 characters

Source-backed classification value; requires type and is mutually exclusive with tagId and standardizedClassificationId.

standardizedClassificationIdinteger or nullOptional

Existing standardized classification id from res_classification_ref. Mutually exclusive with tagId and with the type+name pair.

tagIdinteger or nullOptional

Existing active classification tag id. Mutually exclusive with type and name (and with standardizedClassificationId): provide either tagId alone or the type+name pair, never both.

typestring or nullOptional

Writable classification bucket; requires name and is mutually exclusive with tagId and standardizedClassificationId.

Response

OK
EntityTagobject

Canonical classification tag projection. Catalog/search responses describe registry tags; entity-classification responses include classificationId plus join state.

OR
StandardizedClassificationobject

Canonical standardized classification projection backed by res_classification_ref. Rows are join-existing-only; creatable is false until a taxonomy writer exists.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
406
Not Acceptable Error
409
Conflict Error
415
Unsupported Media Type Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error