Saltar al contenido principal
Todas las rutas están bajo la base URL (/api/v1) y requieren autenticación. Las lecturas son de miembro del workspace; las escrituras requieren el scope work:write por OAuth. Ver Collections para el modelo.

Collections

MétodoRutaPermPropósito
POST/workspaces/:slug/collectionsmember (work:write)Crea una collection
GET/workspaces/:slug/collectionsmemberLista collections (?status)
GET/workspaces/:slug/collections/doctormemberAudita collections (?full)
GET/workspaces/:slug/collections/:idmemberDetalle de la collection
GET/workspaces/:slug/collections/:id/contextmemberResuelve el criterion Knowledge
PATCH/workspaces/:slug/collections/:idmember (work:write)Actualiza una collection
Cuerpo de creación (CreateCollectionDto): name (obligatorio), archetype (obligatorio, uno de pipeline, analysis, content), record_schema, views, criterion_rel_slugs, distill_policy, owner_clerk_id. El update acepta name, status (active o archived), record_schema, views, criterion_rel_slugs, distill_policy.

Records

Ruta base /workspaces/:slug/collections/:id.
MétodoRutaPermPropósito
POST.../recordsmember (work:write)Agrega un record
GET.../recordsmemberLista records (paginado por cursor)
GET.../retrievememberRecords más criterion en una sola llamada
GET.../records/:recordIdmemberDetalle del record
PATCH.../records/:recordIdmember (work:write)Actualiza un record
DELETE.../records/:recordIdmember (work:write)Elimina un record
Cuerpo de record (CreateRecordDto / UpdateRecordDto): fields, status, field_meta, entity_id, y drifted en el update. El status de un record se valida contra los stages de la collection. List y retrieve aceptan status, entity_id, drifted, updated_after, view, fields, limit y cursor.

Entities

MétodoRutaPermPropósito
POST/workspaces/:slug/entitiesmember (work:write)Hace upsert de una entity
GET/workspaces/:slug/entitiesmemberLista entities (?kind)
GET/workspaces/:slug/entities/:idmemberDetalle de la entity
Cuerpo de upsert (UpsertEntityDto): kind (obligatorio), name (obligatorio), dedup_key, attributes. El upsert es idempotente sobre (kind, dedup_key).
curl -X POST https://api.driftless.icu/api/v1/workspaces/acme/entities \
  -H "x-api-key: drift_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"kind":"company","name":"Acme","dedup_key":"acme.com"}'

Paginación y errores

Records y retrieve paginan por keyset (limit más cursor, devolviendo nextCursor). Collections y entities listan sin cursor. Un status inválido (fuera de los stages de la collection) o un archetype inválido, o un campo de cuerpo desconocido, devuelve 400 VALIDATION_FAILED. Ver errores para el sobre.

Relacionado