05ed037fe8
- DNS: pilot.landvex.com -> 16.170.83.169 - TLS: Let's Encrypt certificate (expires 2026-09-30) - Nginx: reverse proxy with SSL termination - API: https://pilot.landvex.com/api/v1/missions - UI: https://pilot.landvex.com/ - Upload: POST /api/v1/missions/import (multipart/form-data) Verified: ✅ https://pilot.landvex.com/health ✅ https://pilot.landvex.com/version ✅ https://pilot.landvex.com/api/v1/missions (list) ✅ https://pilot.landvex.com/api/v1/missions/:id (get) ✅ POST /api/v1/missions/import (video upload) ✅ UI loads with title 'LandveX Intelligence Lab' Next: Pilot 001 — Break the system!
77 lines
2.3 KiB
Markdown
77 lines
2.3 KiB
Markdown
# Engineering Policy E-001 — Versionering och spårbarhet
|
|
|
|
**Status:** Engineering Policy. Gäller oavsett verktyg eller miljö.
|
|
|
|
---
|
|
|
|
## Princip
|
|
|
|
> Ingen ändring av kod, konfiguration eller infrastruktur får göras utanför versionshantering. Varje förändring ska kunna spåras till:
|
|
> - ett Change Request (CR-ID),
|
|
> - en Git-commit,
|
|
> - en granskning (när tillämpligt),
|
|
> - och en reproducerbar version av källkoden.
|
|
|
|
---
|
|
|
|
## Tillåtet
|
|
|
|
| Praktik | Krav |
|
|
|---------|------|
|
|
| All kod i Git-repositorier | Obligatoriskt |
|
|
| Varje commit refererar till CR-ID | Obligatoriskt |
|
|
| Branch → commit → merge | Enligt arbetsprocess |
|
|
| Releases kopplas till commits | Reproducerbarhet |
|
|
|
|
## Förbjudet
|
|
|
|
| Praktik | Konsekvens |
|
|
|---------|-----------|
|
|
| Direkt redigering på produktionsservrar | Bryter spårbarhet |
|
|
| `nano`/`vim` av produktionskod | Skapar "snowflake"-server |
|
|
| Uppladdning utan Git-motsvarighet | Obestyrbart tillstånd |
|
|
|
|
---
|
|
|
|
## Undantag — Akuta incidenter
|
|
|
|
Tillåtet endast om:
|
|
|
|
1. Incidenten dokumenteras
|
|
2. Hotfixen omedelbart förs tillbaka till Git
|
|
3. Ordinarie pipeline återställs efter incidenten
|
|
|
|
**Inga "snowflake"-servrar. Någonsin.**
|
|
|
|
---
|
|
|
|
## Sanningskälla
|
|
|
|
> **Git är system of record för all kod. Driftmiljön är en deployment-target, aldrig den primära sanningskällan.**
|
|
|
|
---
|
|
|
|
## Koppling till EP-1.0
|
|
|
|
E-001 och EP-1.0 kompletterar varandra utan att överlappa:
|
|
|
|
| Fråga | Svar |
|
|
|-------|------|
|
|
| *Hur får förändringar ske?* | **E-001** — via Git, med spårbarhet till CR-ID och commit |
|
|
| *Hur får observationer samlas in och bevaras?* | **EP-1.0** — via append-only ledger, frysning och hash |
|
|
|
|
### Artefakttyper och integritetsmekanismer
|
|
|
|
| Artefakt | Primär integritetsmekanism | Syfte |
|
|
|----------|---------------------------|-------|
|
|
| Kod, konfiguration, IaC | Git-historik | Versionshantering |
|
|
| Ledger (`ledger.jsonl`) | Freeze + SHA256 + append-only | Bevara observationer |
|
|
| Härledda KPI:er | Härledbara från ledger | Reproducerbar analys |
|
|
| Metadata | Versionshanteras tillsammans med experimentet | Reproducerbar kontext |
|
|
|
|
En fryst ledger **kan** ligga i Git för distribution och backup. Git är då inte beviset på att observationerna är oförändrade — det är hashen och den definierade freeze-punkten.
|
|
|
|
---
|
|
|
|
*E-001: Hur förändringar sker. EP-1.0: Hur observationer bevaras.*
|