Files
boc/life-weather
Bernt 58ca4e68db feat(boc): Complete Business Operations Center v1.0
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics)
- Rust analytics service with parallel report generation
- C runtime with POSIX shared memory IPC
- PostgreSQL schema with 30+ tables, full migrations
- Redis cache, sessions, pub/sub
- Kafka event streaming with Zookeeper
- WebSocket hub for real-time updates
- Automation engine with cron jobs, workflows, event triggers
- JWT authentication, multi-tenant from start
- Docker Compose with all services
- Nginx reverse proxy with rate limiting
- Integration tests passing
- Feature gap analysis against Fortnox/Odoo/Visma

Refs: BOC-001
2026-07-12 12:41:35 +00:00
..

Weather Intelligence Pipeline

Produktionsklar pipeline för väderintelligens för vägar.

Arkitektur

┌─────────────────┐
│  WeatherProvider│  ← Hämtar från SMHI
│  (SMHI API)     │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Rådata         │  ← Spara oförändrad
│  (JSON)         │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  ObservationStore│ ← Idempotent sparande
│  (SQLite)       │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  RiskEngine     │  ← Regelbaserad analys
│  (Risk Score)   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Resultat       │  ← Varningar + Risker
│  (JSON)         │
└─────────────────┘

Komponenter

Komponent Fil Beskrivning
Provider providers/weather_provider.py Hämtar väderdata från SMHI
Storage storage/observation_store.py Sparar observationer idempotent
Engine engine/risk_engine.py Regelbaserad riskanalys
Pipeline pipeline.py Huvudflöde

Regler

Risk Villkor Allvarlighet
Is Temp < -5°C Critical
Svartis Temp < 0°C + Nederbörd Critical
Översvämning Nederbörd > 20mm Critical
Blöt väg Nederbörd > 5mm Medium
Stark vind Vind > 15 m/s Medium
Fallande föremål Vind > 20 m/s High

Körning

# Kör pipelinen
python3 pipeline.py

# Kör tester
python3 tests/test_pipeline.py

Dataflöde

  1. Hämta väderdata från SMHI
  2. Spara rådata oförändrad
  3. Skapa normaliserade observationer
  4. Koppla till väg i databas
  5. Beräkna risk baserat på regler
  6. Returnera resultat

Spårbarhet

  • All rådata sparas i raw/
  • Alla observationer har timestamp
  • Alla observationer har source="smhi"
  • Idempotent sparande (dubbletter ignoreras)

Tester

  • Väderdata kan hämtas
  • Observationer sparas idempotent
  • Risker beräknas korrekt
  • Hela pipelinen fungerar