chore: build intel index (.planning/intel/)

This commit is contained in:
Lucas Berger
2026-06-09 11:33:33 -04:00
parent a9da31cc35
commit 2a093468a4
6 changed files with 732 additions and 0 deletions
+100
View File
@@ -0,0 +1,100 @@
{
"_meta": {
"updated_at": "2026-06-09T00:00:00Z",
"commit": "01f7456b81dd55d477d0bd7530df818f61a873c2",
"version": 1
},
"entries": {
"GET /health": {
"method": "GET",
"path": "/health",
"auth": "none",
"file": "apps/api/src/routes/health.ts",
"description": "DB liveness probe. Returns { ok: true, db: 'up' } or 503."
},
"GET /callback": {
"method": "GET",
"path": "/callback",
"auth": "none (OIDC callback — must be before auth guard)",
"file": "apps/api/src/index.ts",
"description": "OIDC authorization-code callback. Processed by @hono/oidc-auth processOAuthCallback."
},
"GET /api/login": {
"method": "GET",
"path": "/api/login",
"auth": "oidcAuthMiddleware",
"file": "apps/api/src/index.ts",
"description": "Auth entry point. Redirects to / after successful OIDC login. PWA navigates here for re-auth."
},
"GET /api/me": {
"method": "GET",
"path": "/api/me",
"auth": "oidcAuthMiddleware",
"file": "apps/api/src/routes/me.ts",
"response": "{ user: { id: number, displayName: string|null, color: string } }",
"description": "Returns authenticated member's identity and assigned color. Upserts user row on first call."
},
"GET /api/events": {
"method": "GET",
"path": "/api/events",
"auth": "oidcAuthMiddleware",
"params": ["start (YYYY-MM-DD, required)", "end (YYYY-MM-DD, required)"],
"file": "apps/api/src/routes/events.ts",
"response": "{ occurrences: CalendarOccurrence[] }",
"description": "Windowed calendar events. Max 90-day window. Reads only from MariaDB cache; never hits Fastmail. Expands RRULEs server-side."
},
"POST /api/events/create": {
"method": "POST",
"path": "/api/events/create",
"auth": "oidcAuthMiddleware",
"body": "CreateEventPayload (title, allDay, start, end, recurrence?, location?, description?, calendarUrl?)",
"file": "apps/api/src/routes/events.ts",
"response": "202 { uid: string }",
"description": "Enqueues create to calendarOutbox. Async CalDAV write-back via outbox worker. Returns uid immediately."
},
"PATCH /api/events/:uid/edit": {
"method": "PATCH",
"path": "/api/events/:uid/edit",
"auth": "oidcAuthMiddleware",
"params": ["uid (path)"],
"body": "CreateEventPayload",
"file": "apps/api/src/routes/events.ts",
"response": "202 { uid: string }",
"description": "Enqueues update (or delete+create pair for calendar-move) to calendarOutbox. Async write-back."
},
"DELETE /api/events/:uid": {
"method": "DELETE",
"path": "/api/events/:uid",
"auth": "oidcAuthMiddleware",
"params": ["uid (path)"],
"file": "apps/api/src/routes/events.ts",
"response": "202 { uid: string }",
"description": "Enqueues delete to calendarOutbox with cached etag (If-Match). Async write-back."
},
"GET /api/events/sync-status": {
"method": "GET",
"path": "/api/events/sync-status",
"auth": "oidcAuthMiddleware",
"params": ["uid (query, required)"],
"file": "apps/api/src/routes/events.ts",
"response": "{ uid: string, status: 'pending'|'done'|'failed'|'dead', error?: string }",
"description": "Outbox status poll for a given event UID, scoped to current member. Used by SyncStateToast."
},
"GET /api/events/writable-calendars": {
"method": "GET",
"path": "/api/events/writable-calendars",
"auth": "oidcAuthMiddleware",
"file": "apps/api/src/routes/events.ts",
"response": "{ calendars: [{ url, displayName, color, isShared }] }",
"description": "Authoritative D-03 writable set: member's own calendars + shared Family calendar. Client never derives this itself."
},
"GET /api/sse/heartbeat": {
"method": "GET",
"path": "/api/sse/heartbeat",
"auth": "oidcAuthMiddleware",
"file": "apps/api/src/routes/sse.ts",
"response": "text/event-stream — event: heartbeat, data: { ts, id } every 10s",
"description": "SSE smoke-test endpoint for Pangolin tunnel validation. Phase 4 list-sync events not yet wired."
}
}
}