Files
Cibello-app/packages/database/package.json
T
Sven (AAMOS AI) 8f20b2ef1b 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.
2026-08-10 05:47:43 +07:00

38 lines
1.1 KiB
JSON

{
"name": "@app/database",
"version": "0.1.0",
"private": true,
"type": "module",
"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"
},
"scripts": {
"typecheck": "tsc --noEmit",
"test": "vitest run --passWithNoTests",
"db:generate": "drizzle-kit generate",
"db:migrate": "tsx src/migrate.ts",
"db:seed": "tsx src/seed/run.ts",
"db:test-migrate": "tsx src/migrate.ts --test",
"db:test-seed": "tsx src/seed/run.ts --test",
"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",
"drizzle-orm": "^0.45.0",
"pg": "^8.13.0"
},
"devDependencies": {
"@types/pg": "^8.11.0",
"drizzle-kit": "^0.31.0"
}
}