Trey t
c77ff07ce9
fix(security): remediate 2026-05-12 audit findings (Stages 2–5)
...
Backend CI / Test (push) Has been cancelled
Backend CI / Contract Tests (push) Has been cancelled
Backend CI / Lint (push) Has been cancelled
Backend CI / Secret Scanning (push) Has been cancelled
Backend CI / Build (push) Has been cancelled
Remediation of the 2026-05-12/13 audits (78 findings + cluster gaps),
tracked in deploy-k3s/SECURITY.md, plus fixes from two independent
post-remediation reviews.
Auth & sessions:
- SHA-256 hashed auth-token storage (C1); prior-token cache eviction on
re-login (MEDIUM-1)
- local Google JWKS verification, iss/aud/exp checks (C2/C3)
- constant-time login + generic errors (L1/LIVE-L11/LIVE-L13)
- per-account login lockout keyed on distinct source IPs (M5/MEDIUM-3)
- verified-email gating, login rate limiting (LIVE-L19, H1-H3)
IAP & webhooks:
- Apple/Google cross-account replay protection (C5/C6/C10/C13, H5/H6)
- migrations 000003-000006 (token hashing, IAP replay, audit_log +
webhook_event_log table creation, append-only audit log)
Authorization & races:
- file-ownership owner-OR-member fix (C7), atomic share-code join
(C9/H9), device-token reassignment (C8/LOW-3)
Secrets & deploy:
- secrets file-mounted at /etc/honeydue/secrets, not env (F8); Redis
password out of the ConfigMap (HIGH-1); B2 keys reconciled
- digest-pinned images, admin ingress hardening, CSP/HSTS, /metrics
lockdown; kubeconfig 0600, etcd secrets-encryption, fail2ban +
unattended-upgrades at provision; secret-rotation runbook
Build, vet, and the full test suite (incl. -race) pass; the goose
migration chain is verified against PostgreSQL 16.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-16 22:28:33 -05:00
Trey T
4abc57535e
Add delete account endpoint and file encryption at rest
...
Delete Account (Plan #2 ):
- DELETE /api/auth/account/ with password or "DELETE" confirmation
- Cascade delete across 15+ tables in correct FK order
- Auth provider detection (email/apple/google) for /auth/me/
- File cleanup after account deletion
- Handler + repository tests (12 tests)
Encryption at Rest (Plan #3 ):
- AES-256-GCM envelope encryption (per-file DEK wrapped by KEK)
- Encrypt on upload, auto-decrypt on serve via StorageService.ReadFile()
- MediaHandler serves decrypted files via c.Blob()
- TaskService email image loading uses ReadFile()
- cmd/migrate-encrypt CLI tool with --dry-run for existing files
- Encryption service + storage service tests (18 tests)
2026-03-26 10:41:01 -05:00
Trey t
4976eafc6c
Rebrand from Casera/MyCrib to honeyDue
...
Total rebrand across all Go API source files:
- Go module path: casera-api -> honeydue-api
- All imports updated (130+ files)
- Docker: containers, images, networks renamed
- Email templates: support email, noreply, icon URL
- Domains: casera.app/mycrib.treytartt.com -> honeyDue.treytartt.com
- Bundle IDs: com.tt.casera -> com.tt.honeyDue
- IAP product IDs updated
- Landing page, admin panel, config defaults
- Seeds, CI workflows, Makefile, docs
- Database table names preserved (no migration needed)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-07 06:33:38 -06:00
Trey t
7690f07a2b
Harden API security: input validation, safe auth extraction, new tests, and deploy config
...
Comprehensive security hardening from audit findings:
- Add validation tags to all DTO request structs (max lengths, ranges, enums)
- Replace unsafe type assertions with MustGetAuthUser helper across all handlers
- Remove query-param token auth from admin middleware (prevents URL token leakage)
- Add request validation calls in handlers that were missing c.Validate()
- Remove goroutines in handlers (timezone update now synchronous)
- Add sanitize middleware and path traversal protection (path_utils)
- Stop resetting admin passwords on migration restart
- Warn on well-known default SECRET_KEY
- Add ~30 new test files covering security regressions, auth safety, repos, and services
- Add deploy/ config, audit digests, and AUDIT_FINDINGS documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 09:48:01 -06:00
Trey t
6dac34e373
Migrate from Gin to Echo framework and add comprehensive integration tests
...
Major changes:
- Migrate all handlers from Gin to Echo framework
- Add new apperrors, echohelpers, and validator packages
- Update middleware for Echo compatibility
- Add ArchivedHandler to task categorization chain (archived tasks go to cancelled_tasks column)
- Add 6 new integration tests:
- RecurringTaskLifecycle: NextDueDate advancement for weekly/monthly tasks
- MultiUserSharing: Complex sharing with user removal
- TaskStateTransitions: All state transitions and kanban column changes
- DateBoundaryEdgeCases: Threshold boundary testing
- CascadeOperations: Residence deletion cascade effects
- MultiUserOperations: Shared residence collaboration
- Add single-purpose repository functions for kanban columns (GetOverdueTasks, GetDueSoonTasks, etc.)
- Fix RemoveUser route param mismatch (userId -> user_id)
- Fix determineExpectedColumn helper to correctly prioritize in_progress over overdue
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-16 13:52:08 -06:00
Trey t
76579e8bf8
Add secure media access control with authenticated proxy endpoints
...
- Add MediaHandler with token-based proxy endpoints for serving media:
- GET /api/media/document/:id
- GET /api/media/document-image/:id
- GET /api/media/completion-image/:id
- Add MediaURL fields to response DTOs for documents and task completions
- Add FindImageByID and FindCompletionImageByID repository methods
- Preload Completions.Images in all task queries for proper media URLs
- Remove public /uploads static file serving for security
- Verify residence access before serving any media files
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 19:47:39 -06:00