|
|
ddb39df95f
|
feat(cc-050): add AiRequests controller (list + costs)
|
2026-08-01 09:57:52 +00:00 |
|
|
|
dccd0bbffa
|
feat(audit): register AuditLogController in AuditModule
|
2026-07-31 17:12:00 +00:00 |
|
|
|
af81d10242
|
feat(audit): expose GET /v1/audit-log endpoint (last N entries, tenant-scoped)
|
2026-07-31 17:11:59 +00:00 |
|
|
|
2af9b5c94a
|
fix(tst-005): use v4-compliant UUIDs — @IsUUID() requires version nibble=4
|
2026-07-31 15:25:40 +00:00 |
|
|
|
9cf210976c
|
fix(tst-005): use v4-compliant UUIDs, replace __proto__ with hackField for non-whitelisted test
|
2026-07-31 15:25:39 +00:00 |
|
|
|
8d6a2c2086
|
fix(tst-005): fix PATCH route (/:id not /:id/evidence), fix mock method names
|
2026-07-31 15:20:28 +00:00 |
|
|
|
469adb64fa
|
docs(aud-007): CC-047 business continuity audit — RTO/RPO, backup findings
|
2026-07-31 15:18:39 +00:00 |
|
|
|
a0bef9fea3
|
feat(tst-017): DR test script — container crash + RTO measurement
|
2026-07-31 15:18:37 +00:00 |
|
|
|
f5712a90b2
|
feat(tst-016): backup/restore test script — Zerobyte integrity verify
|
2026-07-31 15:18:36 +00:00 |
|
|
|
904cca507e
|
test(tst-005): Transactions API integration tests — amountMinorUnits, evidenceStatus
|
2026-07-31 15:18:36 +00:00 |
|
|
|
417133e2d4
|
test(tst-005): Goals API integration tests — validation, routing, auth
|
2026-07-31 15:18:35 +00:00 |
|
|
|
5ac1fcb5d5
|
docs(ins-010): CC-047 dependency audit — drizzle-orm SQLi + devDep vulns
|
2026-07-31 15:18:34 +00:00 |
|
|
|
e7efa65604
|
chore: regenerate lockfile — consistent @types/supertest@6.0.3
|
2026-07-31 15:07:43 +00:00 |
|
|
|
2e82700e02
|
fix(deps): align @types/supertest version with resolved lock entry (6.0.3)
|
2026-07-31 15:07:43 +00:00 |
|
|
|
825e2cc8b7
|
fix(test): self-contained stub guard in TST-012 — no DB/Supabase imports
|
2026-07-31 15:05:57 +00:00 |
|
|
|
020b0c21da
|
fix(test): mock db+supabase at module level so SessionGuard loads without real DB in TST-012
|
2026-07-31 15:03:40 +00:00 |
|
|
|
694ba7a5a6
|
fix(test): default import for supertest (esModuleInterop), add CASL member high-risk denial test
|
2026-07-31 15:01:46 +00:00 |
|
|
|
e3b5cca72c
|
chore: regenerate lockfile after supertest devDep addition
|
2026-07-31 15:00:09 +00:00 |
|
|
|
4f801d6964
|
fix(deps): add supertest + @types/supertest devDeps for TST-012 security tests
|
2026-07-31 15:00:08 +00:00 |
|
|
|
b9f9c970b7
|
fix(ts): cast SupabaseClient through unknown in Proxy get trap (TS2352)
|
2026-07-31 15:00:07 +00:00 |
|
|
|
ebbac2dc58
|
docs(privacy): PRV-005 GDPR Legal Basis Registry — CC-046 securizare
|
2026-07-31 14:58:03 +00:00 |
|
|
|
e22215ab64
|
test(security): TST-012 HTTP-level security test suite (auth, headers, CORS, CASL, route enum)
|
2026-07-31 14:57:03 +00:00 |
|
|
|
1c784b654f
|
feat(security): Goal/Decision/Observation/Opportunity as explicit CASL subjects for member role (SEC-004/F4)
|
2026-07-31 14:57:02 +00:00 |
|
|
|
ace0000349
|
fix(security): startup env validation + CORS origin filter (SEC-012/F6)
|
2026-07-31 14:57:01 +00:00 |
|
|
|
7d43bc6b70
|
fix(security): USER node + HEALTHCHECK in production stage (SEC-013/F9/F11)
|
2026-07-31 14:57:01 +00:00 |
|
|
|
97c32222ce
|
fix(supabase): lazy client init — validates env vars at first use, not at import time
|
2026-07-31 14:44:00 +00:00 |
|
|
|
c7e09ed647
|
test(integration): audit log, outbox atomicity and transaction minor units tests
|
2026-07-31 14:40:30 +00:00 |
|
|
|
458217a0ec
|
test(integration): tenant isolation tests for goals and organizations
|
2026-07-31 14:40:29 +00:00 |
|
|
|
c3b0005e19
|
feat(db): versioned Drizzle migration for workspace_id columns (CC-044 backfill)
|
2026-07-31 14:39:24 +00:00 |
|
|
|
21c6ff2fde
|
feat(schema): add workspaceId to 11 tables missing from Drizzle ORM (organizations, tasks, goals, decisions, transactions, documents, opportunities, observations, ai_requests, research_briefs, saved_segments)
|
2026-07-31 14:39:23 +00:00 |
|
|
|
f5ac5f11f1
|
chore: regenerate package-lock.json after dependency version fixes
|
2026-07-31 14:36:21 +00:00 |
|
|
|
94506c8f80
|
fix(deps): @nestjs/schedule ^5.0.0 + @nestjs/testing devDep for NestJS 11 compatibility
|
2026-07-31 14:36:19 +00:00 |
|
|
|
0e016edec2
|
fix(opportunities): enforce @IsInt() on valueRangeMin/Max to prevent float input
|
2026-07-31 10:48:40 +00:00 |
|
|
|
6c44c327cf
|
fix(transactions): remove ad-hoc UUID regex, use ParseUUIDPipe for path params
|
2026-07-31 10:48:38 +00:00 |
|
|
|
3b1b14e380
|
fix(decisions): wrap mutations in db.transaction() for audit atomicity
|
2026-07-31 10:48:37 +00:00 |
|
|
|
880c2a7018
|
test(transactions): add unit tests for TransactionsService
|
2026-07-31 10:47:16 +00:00 |
|
|
|
19fd999441
|
test(goals): add unit tests for GoalsService
|
2026-07-31 10:47:15 +00:00 |
|
|
|
281fb9e780
|
feat(projection): wire transactionsUnclassifiedCount to executive dashboard
|
2026-07-31 10:46:11 +00:00 |
|
|
|
bdcf63e2a6
|
feat: register Goals, Decisions, Transactions, Observations, Opportunities modules
|
2026-07-31 10:45:07 +00:00 |
|
|
|
7569d7ee87
|
feat(opportunities): add opportunities.module
|
2026-07-31 10:45:06 +00:00 |
|
|
|
5caa233bea
|
feat(opportunities): add opportunities.controller
|
2026-07-31 10:45:05 +00:00 |
|
|
|
80fd3e0b4e
|
feat(opportunities): add opportunities.service
|
2026-07-31 10:45:04 +00:00 |
|
|
|
0243e78fea
|
feat(opportunities): add dto
|
2026-07-31 10:45:03 +00:00 |
|
|
|
0105bf1f73
|
feat(observations): add observations.module
|
2026-07-31 10:45:02 +00:00 |
|
|
|
8db3ccf300
|
feat(observations): add observations.controller
|
2026-07-31 10:45:01 +00:00 |
|
|
|
f2733c6e72
|
feat(observations): add observations.service
|
2026-07-31 10:45:01 +00:00 |
|
|
|
3cd2bdc82b
|
feat(observations): add dto
|
2026-07-31 10:45:00 +00:00 |
|
|
|
4315e7f31f
|
feat(transactions): add transactions.module
|
2026-07-31 10:44:59 +00:00 |
|
|
|
78d60c69ab
|
feat(transactions): add transactions.controller
|
2026-07-31 10:44:58 +00:00 |
|
|
|
a80bd5080b
|
feat(transactions): add transactions.service
|
2026-07-31 10:44:57 +00:00 |
|