Cybersecurity-Projects/PROJECTS/beginner/canary-token-generator/backend
CarterPerez-dev 884215288e feat(canary): wire manage routes + extract buildHTTPDeps + integration tests
- cmd/canary/main.go: tokenH.RegisterManageRoutes(api) mounts GET +
  DELETE /m/{manage_id} inside the /api subrouter (read-tier rate
  limit applies; no Turnstile, no create-tier limits — read-style
  endpoints by spec §8.1).
- Extract buildHTTPDeps to keep run() under the funlen ceiling (was
  102, now under 100). Pulls out registry build + tokenSvc + verifier
  + healthH + tokenH construction. Returns the four handles run()
  needs to wire the router and shutdown path.

Integration tests (internal/event/integration_test.go,
testcontainers-Postgres + miniredis):
- TestIntegration_ManagePageReturnsTokenAndEventsAndSilencedCount:
  POST creates a webbug, three triggers from the same CF-Connecting-IP
  fire (one notification, two deduped per the Phase 10 dedup gate);
  GET /api/m/{manage_id} returns token with TriggerCount=3,
  EventsTotal=3, EventsSilencedActive=2, three event records with
  exactly one NotifySent and two NotifyDeduped, no next page.
- TestIntegration_ManagePageReturns404OnUnknownManageID
- TestIntegration_ManageDeleteCascadesEvents: delete via DELETE
  /api/m/{manage_id}, verify CountByToken == 0 (FK ON DELETE CASCADE)
  and the token is gone (token.ErrNotFound).
2026-05-14 01:07:38 -04:00
..
cmd feat(canary): wire manage routes + extract buildHTTPDeps + integration tests 2026-05-14 01:07:38 -04:00
internal feat(canary): wire manage routes + extract buildHTTPDeps + integration tests 2026-05-14 01:07:38 -04:00
.air.toml fix(canary-phase1): clear all post-phase-1 audit observations + header normalization 2026-05-10 06:15:26 -04:00
.gitignore fix(canary-phase0): address audit findings before phase rollup 2026-05-10 05:37:32 -04:00
.golangci.yml chore(canary): scope gosec G101/G107/G704 to outbound HTTP packages 2026-05-14 00:32:07 -04:00
config.yaml fix(canary-phase1): clear all post-phase-1 audit observations + header normalization 2026-05-10 06:15:26 -04:00
go.mod feat(canary): event + notify domain — contracts, senders, services 2026-05-14 00:30:42 -04:00
go.sum feat(canary): event + notify domain — contracts, senders, services 2026-05-14 00:30:42 -04:00