Files
pitchfast/backlog/tasks/task-39 - Secure-Convex-operator-APIs.md

1.9 KiB

id, title, status, assignee, created_date, updated_date, labels, dependencies, priority, ordinal
id title status assignee created_date updated_date labels dependencies priority ordinal
TASK-39 Secure Convex operator APIs Done
2026-06-06 21:52 2026-06-10 19:27
high 41000

Description

Guard non-public Convex audit, lead, and run APIs so sensitive operational data is not exposed or mutated without authentication while preserving internal pipeline calls.

Acceptance Criteria

  • #1 Audit admin reads and writes require operator auth while getPublicBySlug remains public
  • #2 Lead admin reads and review mutations require operator auth while internal audit-generation calls use internal functions
  • #3 Run admin reads/writes require operator auth while internal actions can append run events safely
  • #4 Source contracts and full tests pass

Implementation Notes

Worker I audit slice: Added source-contract coverage for audit admin auth guards and preserved public getPublicBySlug. RED: node --test .test-output/tests/audits-auth-source.test.js failed on create missing requireOperator before ctx.db. GREEN: pnpm exec tsc -p tsconfig.test.json passed; node --test .test-output/tests/audits-auth-source.test.js passed (2/2).

Worker J RED/GREEN: Added leads/runs source contracts; initial pnpm test failed on missing lead/run requireOperator guards and missing internal lead/run action refs. Implemented operator auth for public leads/runs APIs, added internal lead get/review update and run append event mutations, and switched auditGenerationAction/pageSpeedAction/websiteEnrichmentAction to internal refs. GREEN: pnpm test passed (363/363). Did not touch convex/audits.ts and did not stage/commit.

Final Summary

Closed per explicit user request while switching project tracking to pitchfast.