12 Commits

Author SHA1 Message Date
03fbe06a04 feat: scope every API endpoint to the token's sub; expose ownerId in DTOs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 08:27:26 +00:00
0e16738624 feat: ownerOf(event) helper and ownerId in task DTO
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 08:26:23 +00:00
42abf35bff feat: scope all repo reads/writes to the caller's ownerId
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 08:26:07 +00:00
43f2d5b122 feat: add nullable owner_id columns to lists and tasks
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 08:24:28 +00:00
d4c734737b feat: role-based access via Zitadel project roles
Replace the ALLOWED_USER_IDS sub-allowlist with a Zitadel project role
check: tokens must carry the role from REQUIRED_ROLE (default "user")
in the urn:zitadel:iam:org:project[:id]:roles claim. Roles are granted
per account in Zitadel (project ClaudeDo), where access is now managed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 11:25:34 +00:00
65543cb6ee fix: add PUT /tasks/mirror (array full-replace of desktop Idle backlog)
The desktop pushes its full Idle backlog as a JSON array to /tasks/mirror, not per-task.
Previously /tasks/mirror matched tasks/[id].put.ts (id=mirror) and rejected the array with
400. New static route validates per-element, accepts empty arrays, upserts each as
consumed=true (desktop-owned), deletes consumed=true rows not in the array, and leaves
web-created consumed=false rows untouched. Mirrors PUT /lists.
2026-06-10 09:35:33 +00:00
94ee00b0ff debug: gated auth diagnostics (AUTH_DEBUG) logging jwt claims on 401 2026-06-10 08:38:00 +00:00
7331fe75e8 feat: dockerfile (node runtime), startup migration, README, runtime env config 2026-06-10 08:16:45 +00:00
285bac4308 feat: list + task endpoints and CORS, verified end-to-end 2026-06-10 07:58:51 +00:00
394bceca5f feat: zitadel token auth middleware 2026-06-10 07:53:42 +00:00
50173a3809 feat: repository layer with tests 2026-06-10 07:52:31 +00:00
63714f5960 feat: db connection and migration 2026-06-10 07:51:00 +00:00