71972436b6
feat: add tRPC auth context, middleware, and protected procedures
...
- Install jose (JWT) and bcryptjs (password hashing) dependencies
- Create auth utilities: JWT sign/verify, password hash/verify, session management
- Create createTRPCContext that extracts auth from session cookie, Bearer JWT, or x-api-key
- Add publicProcedure, protectedProcedure, adminProcedure, rateLimitedProcedure with middleware
- Wire context builder into SolidStart tRPC API handler
- Update tRPC client to inject auth tokens and handle 401 redirects
- Add unit tests for JWT, password, context builder, and middleware
2026-05-25 15:46:52 -04:00
052e08c17b
feat(db): add PostgreSQL connection, migration runner, and seed data
...
- Add pool export and graceful shutdown hook to db/index.ts
- Create migrate.ts — programmatic migration runner using drizzle-orm/migrator
- Create seed.ts — idempotent seed script with sample users, subscriptions,
watchlist items, exposures, alerts, blog posts, properties, and removal requests
- Create db.test.ts — unit tests for db, migrate, and seed module exports
- Add web/.env.example documenting DATABASE_URL
- Add db:generate, db:push, db:migrate, db:seed scripts to web/package.json
2026-05-25 15:39:20 -04:00
bc20aeaeb6
feat: migrate full Prisma schema to Drizzle ORM (29 tables, 28 enums, 25 relations)
...
- Install drizzle-orm, drizzle-kit, pg, @types/pg in web/
- Create split schema directory with domain files:
- auth (users, accounts, sessions, deviceTokens)
- subscription (familyGroups, familyGroupMembers, subscriptions)
- darkwatch (watchlistItems, exposures)
- alerts
- voiceprint (voiceEnrollments, voiceAnalyses, analysisJobs, analysisResults)
- spamshield (spamFeedback, spamRules)
- audit (auditLogs, kpiSnapshots)
- correlation (normalizedAlerts, correlationGroups)
- reports (securityReports)
- marketing (waitlistEntries, blogPosts)
- hometitle (propertyWatchlistItems, propertySnapshots, propertyChanges)
- removebrokers (infoBrokers, removalRequests, brokerListings)
- Define all 28 PostgreSQL enums via pgEnum()
- Define all indexes, unique constraints, and foreign keys
- Define all 25 relation definitions via relations() helper
- Update drizzle.config.ts for PostgreSQL dialect
- Update db/index.ts for node-postgres connection
- Replace old placeholder schema.ts with barrel re-export
- Add 38 comprehensive schema tests
2026-05-25 15:35:10 -04:00
cc41f4ad32
feat: establish root config and workspace foundation
...
- Create browser-ext placeholder package.json for workspace resolution
- Update root engines to node >=22 matching .nvmrc and web/package.json
- pnpm-workspace.yaml already configured with web and browser-ext
- All legacy directories (packages/, services/, server/) already removed
2026-05-25 13:17:55 -04:00
4118a25388
feat: add UI primitive library — Button, Card, Input, Badge, Modal, Toast
...
- Add cn() utility for class merging in lib/utils.ts
- Button: primary/secondary/ghost/danger variants, sm/md/lg sizes, disabled/loading states
- Card: gradient-card background with optional header/footer slots
- Input: text/email/password/number types with label, error, helper text, focus ring
- Badge: default/success/warning/error/info variants
- Modal: Portal-based dialog with focus trap, ESC/backdrop close, animations
- Toast: ToastProvider context with show/dismiss/auto-dismiss and variant support
- Barrel export via index.ts
- 46 unit tests across all primitives
- Configure vitest with vite-plugin-solid for JSX support
2026-05-25 13:03:00 -04:00
06bf9ac97c
feat: add ShieldAI theme system with auto-shifting CSS and useTheme hook
2026-05-25 12:42:26 -04:00
f627033665
feat: establish unified project foundation with root config cleanup
...
- Archive legacy packages/, services/, server/ directories
- Update pnpm workspace to web + browser-ext
- Simplify root package.json scripts to delegate to web/
- Update turbo.json for new workspace structure
- Remove obsolete root config files (vite, tsconfig, etc.)
- Add .nvmrc, .editorconfig for consistent dev environment
- Update CI workflow to remove references to deleted packages
- Add missing dependencies (@tailwindcss/vite, tailwindcss) to web
- Add test and lint scripts to web package
- Verify pnpm install, build, and dev work correctly
2026-05-25 12:31:43 -04:00
4471719b79
basic redux setup
2026-05-25 11:41:43 -04:00
f118d3a4f3
more package declarations
2026-05-17 21:52:38 -04:00
a653c77959
FRE-5006: VoicePrint quality improvements
...
- P2-1: Consolidate mock ML logic to Python canonical source
- P2-2: Fix weak hashes with SHA-256
- P2-3: Parallelize batch processing with Promise.allSettled()
- P2-4: Add DI pattern support to services
- P2-5: Add structured logging utility
- P3-2: Persist batch jobId for result retrieval
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-10 12:06:16 -04:00
Security Reviewer
4d30bacc53
Fix VoicePrint auth bypass & audio upload (FRE-5003)
...
P1-2: Add onRequest auth hook to reject anonymous requests on all 7
VoicePrint endpoints. Previously, the auth middleware always attached
a placeholder user (id='anonymous'), so per-route userId checks passed
for unauthenticated clients.
P1-3: Replace JSON body parsing with @fastify/multipart for POST
/endpoints (/enroll, /analyze, /batch). Fastify JSON parser cannot
produce Buffer from request.body; multipart/form-data is required
for audio file uploads. Added 50MB file size limit.
2026-05-10 03:20:31 -04:00
c7df40ac26
feat: integrate Datadog APM + Sentry error tracking with CloudWatch metrics FRE-4806
...
- Add CloudWatch metrics emitter (api_latency, api_requests, api_errors)
- Add request monitoring middleware for API (latency, error rate, throughput)
- Register error-handling, logging, and monitoring middleware in server.ts
- Add Datadog log forwarding via HTTP intake API
- Add application-level CloudWatch alarms for P99 latency, error rate, throughput
- Inject Datadog/Sentry env vars and secrets into ECS task definitions
- Add DD_API_KEY and SENTRY_DSN to ECS secrets
- Create CloudWatch log groups for datadog and sentry services
- Update .env.example with AWS_REGION and monitoring variables
- Add @aws-sdk/client-cloudwatch dependency to monitoring package
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-10 02:15:11 -04:00
Senior Engineer
03276dde2d
Add cross-service alert correlation system FRE-4500
...
- Unified alert types (AlertSource, AlertCategory, CorrelationStatus, EntityType)
- NormalizedAlert and CorrelationGroup Prisma models
- AlertNormalizer for all 4 services (DarkWatch, SpamShield, VoicePrint, CallAnalysis)
- CorrelationEngine with temporal + entity-based correlation detection
- CorrelationService orchestrator with dashboard API
- Correlation API routes (/api/v1/correlation/*)
- Service emitters wired to DarkWatch, SpamShield, VoicePrint
- pnpm workspace config for monorepo
2026-05-02 01:10:44 -04:00
3663e5b80a
FRE-4517, FRE-4499: Complete SpamShield implementation and billing updates
...
- SpamFeedback table migration with timestamp index
- Real-time interception engine completion
- Billing service enhancements
- Classifier and rule engine updates
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-01 19:53:19 -04:00