SonicJS API Gateway
Status: Vorbereitet
Das Schema und die Migrations sind erstellt, Setup noch nicht gestartet.
Γbersicht
SonicJS wird als API Gateway fΓΌr alle externen APIs verwendet:
- Edge-first mit Cloudflare Workers
- D1 (SQLite) fΓΌr Cache und Logs
- Drizzle ORM fΓΌr type-safe Queries
- Hono fΓΌr Routing
- NO Auth (nur MS Entra fΓΌr Superadmin)
Architektur
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Cloudflare Edge β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β
β β SonicJS β β D1 β β KV β β
β β (Hono) ββββ (Cache) ββββ (Hot Cache) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββ ββββββββββββββ ββββββββββββββ
β sevDesk β β evcc β β MS Graph β
ββββββββββββββ ββββββββββββββ ββββββββββββββ
β β
βΌ βΌ
ββββββββββββββ ββββββββββββββ
β ista β β plane.so β
ββββββββββββββ ββββββββββββββ
API Matrix
| API | Endpoints | Cache Tables | Status |
|---|---|---|---|
| sevDesk | 15 | 3 | β Ready |
| evcc | 10 | 2 | β Ready |
| MS Graph | 8 | 2 | β οΈ OAuth |
| ista | 7 | 2 | π΄ TODO |
| plane.so | 8 | 1 | π‘ API Key |
Total: 48 Endpoints β 12 D1 Tables
D1 Tables
System Tables
api_cache- Three-tier Cache Backingapi_logs- Audit Trailrate_limits- Rate Limitingsync_status- Sync Job Tracking
sevDesk
sevdesk_contactssevdesk_invoicessevdesk_vouchers
evcc
evcc_sessionsevcc_meter_readings
ista
ista_propertiesista_consumption
plane.so
plane_issues
MS Graph
msgraph_drive_itemsmsgraph_calendar_events
Cache TTL
const CACHE_CONFIG = {
sevdesk: {
contacts: { ttl: 300 }, // 5min
invoices: { ttl: 120 }, // 2min
pdf: { ttl: 3600 }, // 1h
},
evcc: {
state: { ttl: 10 }, // 10s (realtime!)
sessions: { ttl: 60 }, // 1min
},
msgraph: {
drive: { ttl: 300 }, // 5min
calendar: { ttl: 120 }, // 2min
},
ista: {
properties: { ttl: 3600 }, // 1h
consumption: { ttl: 3600 },// 1h
},
plane: {
issues: { ttl: 60 }, // 1min
},
};
Setup (wenn bereit)
# 1. SonicJS erstellen
npx create-sonicjs sonicjs
# 2. D1 Database erstellen
wrangler d1 create contract-platform-cache
# 3. Schema kopieren
cp __HANDOVER/sonicjs-schema.ts sonicjs/src/db/schema.ts
# 4. Migrations anwenden
wrangler d1 migrations apply DB --local
# 5. Deploy
wrangler deploy
NΓ€chste Schritte
- [ ] SonicJS Setup starten
- [ ] D1 Database erstellen
- [ ] Routes implementieren
- [ ] MS Graph OAuth (HUMAN)
- [ ] ista Scraping Module
- [ ] plane.so API Key (HUMAN)