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

Projects

MétodoRutaPermPropósito
POST/workspaces/:slug/projectsmember (work:write)Crea un project
GET/workspaces/:slug/projectsmemberLista projects (?status)
GET/workspaces/:slug/projects/:idmemberDetalle del project (?view, card_limit, card_offset, card_status)
PATCH/workspaces/:slug/projects/:idmember (work:write)Actualiza un project
Cuerpo de creación (CreateProjectDto): title (obligatorio), goal, playbook_slug, owner_clerk_id, context[]. El update acepta title, status, goal, playbook_slug, owner_clerk_id, add_context.

Cards

Ruta base /workspaces/:slug/projects/:projectId/cards.
MétodoRutaPermPropósito
POST.../cardsmember (work:write)Crea una card
GET.../cardsmemberLista cards (?status, limit, offset, owner)
GET.../cards/nextmemberEl tick del loop (?context=refs|summaries|full)
GET.../cards/:cardIdmemberDetalle de la card
PATCH.../cards/:cardIdmember (work:write)Actualiza una card
DELETE.../cards/:cardIdmember (work:write)Elimina una card
Cuerpo de creación (CreateCardDto): title (obligatorio), description, status, owner_clerk_id, acceptance, validate, depends_on (array de uuid), context, allow_secrets. El update también acepta to_project_id, validate_result, validate_passed y add_context.
curl -X POST https://api.driftless.icu/api/v1/workspaces/acme/projects \
  -H "x-api-key: drift_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"title":"Renovación de refunds","goal":"El path de refund es idempotente","playbook_slug":"refund-flow"}'

Cuerpos, paginación y errores

Las cards paginan con limit (1 a 100) y offset; next devuelve una card más su context bundle, o una señal terminal cuando no hay nada accionable. Los valores de status se validan contra el enum de card (todo, in_progress, blocked, review, done) y el enum de project (active, done, archived); un valor inválido devuelve 400 VALIDATION_FAILED. Los campos de cuerpo desconocidos se rechazan. Ver errores para el sobre.

Relacionado