Skip to content

⚙️ Configuration

Environment Variables

Alle Konfiguration erfolgt über .env:

# === APP ===
NODE_ENV=development
PORT=3000

# === DATABASE ===
DATABASE_URL="postgresql://user:pass@localhost:5432/contract_db"

# === MS GRAPH ===
MS_CLIENT_ID=
MS_CLIENT_SECRET=
MS_TENANT_ID=

# === SEVDESK ===
SEVDESK_API_TOKEN=

# === EVCC ===
EVCC_HOST=http://192.168.x.x:7070

# === ISTA ===
ISTA_USERNAME=
ISTA_PASSWORD=

# === PLANE.SO ===
PLANE_API_KEY=

# === WHITE LABEL ===
WHITELABEL_TENANT_ID=default

Integration Setup

sevDesk

  1. Login auf my.sevdesk.de
  2. Einstellungen → API → Token generieren
  3. Token in .env eintragen:
SEVDESK_API_TOKEN=your_token_here

evcc

  1. evcc Installation: docs.evcc.io
  2. Host-IP in .env eintragen:
EVCC_HOST=http://192.168.1.100:7070

Netzwerk

evcc muss im selben Netzwerk erreichbar sein.

MS Graph (OAuth)

  1. Azure Portal → App registrieren
  2. API Permissions:
  3. Calendars.ReadWrite
  4. Files.ReadWrite.All
  5. Client Secret erstellen
  6. In .env eintragen:
MS_CLIENT_ID=your_client_id
MS_CLIENT_SECRET=your_secret
MS_TENANT_ID=your_tenant_id

Cache Configuration

Cache-TTL wird in src/core/cache/index.ts konfiguriert:

export const defaultCacheConfig: Record<string, CacheConfig> = {
  'properties': { ttl: 3600, prefix: 'prop' },      // 1h
  'contracts': { ttl: 1800, prefix: 'cont' },       // 30min
  'evcc/state': { ttl: 10, prefix: 'evcc' },        // 10s
  'sevdesk/invoices': { ttl: 600, prefix: 'sd-inv' }, // 10min
};

Multi-Tenant

Tenant-ID wird per Header übergeben:

curl -H "X-Tenant-ID: kunde-abc" http://localhost:3000/api/contracts