feat(ops): /ops/v1/summary med ai/aktivering/engagemang/betalning/jobb/sakerhet + canary
- Nya toppnivåblock i /ops/v1/summary: ai_scan, aktivering, engagemang, betalning, jobb, sakerhet. Alla värden läses från DB/cache; null där data saknas, inga påhittade värden. - AI-kostnad i USD mikrocent (native); intäkter fortsatt SEK-öre. - product_analytics_events är källa för volym, latens, lyckandegrad, felfrekvens, aktivering, retention och engagemang. - Nya händelser: scan_started (API) och scan_failed/scan_completed med latencyMs + felkod (worker). latencyMs flödar nu in i scan_completed. - Safety canary-jobb varje timme: re-härleder allergener för alla recept, räknar överifierade publika recept och food-safety-lint; skriver EN rad till ops_safety_canary. Endpointen läser endast sista raden. - Cache-refresh-jobb var 60 s skriver hela summariet till Redis; endpointen serverar cachen med 503 vid cache-miss. - Bearer-token-skydd med OPS_TOKEN; HTTPS-tvång i produktion; ingen PII. - Tester för endpoint, auth, cache-miss och safety canary.
This commit is contained in:
@@ -6,7 +6,9 @@
|
||||
"description": "Drizzle-schema, migrationer, seed och databasklient (separat databas, spec §52)",
|
||||
"exports": {
|
||||
".": "./src/index.ts",
|
||||
"./analytics": "./src/analytics.ts",
|
||||
"./client": "./src/client.ts",
|
||||
"./ops-summary": "./src/ops-summary.ts",
|
||||
"./schema": "./src/schema/index.ts",
|
||||
"./seed": "./src/seed/index.ts"
|
||||
},
|
||||
@@ -21,6 +23,7 @@
|
||||
"db:test-setup": "tsx src/migrate.ts --test && tsx src/seed/run.ts --test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@app/analytics": "workspace:*",
|
||||
"@app/nutrition-engine": "workspace:*",
|
||||
"@app/shared-types": "workspace:*",
|
||||
"dotenv": "^16.4.0",
|
||||
|
||||
Reference in New Issue
Block a user