chore: adopt SIAX Golden Standard docs and configuration
CI / validate (pull_request) Failing after 10s
security / scan (pull_request) Failing after 41s

siax-scaffold genererade saknade standardartefakter (arkitektur, säkerhet,
ändringslogg, runbooks, CI, devcontainer, licens m.m.) ur repots faktiska
filer. DOC-07 lämnas avsiktligt röd till en verklig restore bevisats.
This commit is contained in:
2026-11-10 07:20:01 +01:00
parent 39fc5e3ce3
commit 9e34c822b3
19 changed files with 717 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
{
"name": "0pt",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu"
}
+7
View File
@@ -0,0 +1,7 @@
# Miljövariabler för 0pt
# Genererad 2026-11-10 ur källkodens läsningar (endast NAMN — inga värden).
# Fyll i lokalt i .env (som är git-ignorerad). Riktiga hemligheter ligger i
# Infisical och injiceras vid körning; kopiera aldrig in dem här.
# Inga miljövariabler detekterades i källkoden vid genereringen.
# Om repot inför konfiguration via miljö, lägg till namnen här.
+11
View File
@@ -0,0 +1,11 @@
# CI-14 — CODEOWNERS bor i .gitea/, aldrig i .github/ (SEC-25).
# Granskning krävs särskilt för kontrakt, deploy och migrationer.
* @sax3l
/contracts/ @sax3l
/deploy/ @sax3l
/.gitea/ @sax3l
/siax.repo.json @sax3l
/siax.config.json @sax3l
# TODO: lägg till migrationskatalogen när den finns, t.ex.
# /packages/db/migrations/ @sax3l
+22
View File
@@ -0,0 +1,22 @@
name: CI
# Genererad av siax-scaffold (CI-01) för stack: none.
# Grinden körs på push och pull request. Anpassa stegen när repot får egna
# test-/lintkommandon — scaffolden kör bara det som faktiskt finns.
on:
push: { branches: [main] }
pull_request: {}
permissions: { contents: read }
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
validate:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Kontrollera att repot är konsekvent
run: |
test -f README.md
echo "Ingen körtid upptäckt — ingen build/test-stege genererad."
+53
View File
@@ -0,0 +1,53 @@
name: security
# CI-10 — gitleaks, Semgrep, OSV-Scanner, Trivy. Körs på PR, på push mot main
# och nattligt. Scannrarna körs som containrar för att inte kräva att runnern
# har verktygen installerade (samma mönster som siax-standards egen security.yml).
#
# FÄLLA (verifierad i siax-standards egen CI-utredning): ett stegnamn som
# innehåller ": " (kolon + mellanslag) får Giteas YAML-parser att TYST kasta
# bort hela workflowen — den dispatcheras aldrig och syns inte som fel.
# Håll därför alla `name:`-rader på steg i ren ASCII utan kolon-mellanslag.
#
# TODO (CI-10, ej wired av scaffolden): licenskontroll kräver ett policybeslut
# om vilka licenser som är tillåtna — lägg till steget när listan finns.
on:
push: { branches: [main] }
pull_request: {}
schedule:
- cron: "17 2 * * *"
permissions: { contents: read }
concurrency:
group: security-${{ github.ref }}
cancel-in-progress: true
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with: { fetch-depth: 0 }
# gitleaks over worktree and history (REPO-15, SEC-01)
- name: gitleaks secret scan
run: |
docker run --rm -v "$PWD:/repo" -w /repo \
zricethezav/gitleaks:latest detect --source /repo --no-banner --exit-code 1
# Trivy filsystem, blockerar på HIGH och CRITICAL (SUP-*)
- name: Trivy filesystem scan
run: |
docker run --rm -v "$PWD:/repo" -w /repo \
aquasec/trivy:latest fs --scanners vuln,secret,misconfig \
--severity HIGH,CRITICAL --exit-code 1 --no-progress /repo
# Kända sårbarheter i lockfilen
- name: OSV Scanner
run: |
docker run --rm -v "$PWD:/repo" -w /repo \
ghcr.io/google/osv-scanner:latest scan source --recursive /repo
# Statisk kodanalys, felallvarlighet bryter bygget
- name: Semgrep code scan
run: |
docker run --rm -v "$PWD:/src" -w /src \
semgrep/semgrep:latest semgrep scan --config=p/ci --error --quiet
+38
View File
@@ -0,0 +1,38 @@
# AGENTS.md — 0PT
**Vad repot gör:** TODO: en mening om repots syfte. Ska stämma ordagrant med
`README.md` och `docs/architecture/ARCHITECTURE.md` §1 (DOC-19).
**Starta/testa:**
```bash
TODO: kommandot som startar repot lokalt (DX-01)
TODO: kommandot som kör testsviten (TEST-01)
TODO: byggkommandot
```
**Kodkonventioner:** TODO: språk, ramverk, formatterare, namngivning. Håll
kontroll-ID:n (REPO-01 …) exakta som i
`siax-standard/standard/SIAX-F0KUSREPO-PROMPT-v2.0.md`.
**Ändras ALDRIG:**
- `contracts/` — kontraktet är källan till sanning (API-01). Kod genereras
från kontraktet, aldrig tvärtom.
- Migrationer som redan körts i drift (DATA-*) — lägg till en ny i stället.
- TODO: repospecifika frysta ytor (publika endpoints, filformat, nycklar …).
**Ägare:** SIAX Technology AB (@sax3l).
**Kontrakt:** `contracts/openapi.yaml` (API-01). TODO: bekräfta att kontraktet
beskriver hela HTTP-ytan (API-02) — scaffolden kan inte veta det.
**Självdiagnos (AGENT-04):**
```bash
node <sökväg-till-siax-standard>/packages/doctor/src/doctor.mjs --repo . --fail-on=block
```
---
_Genererad av `siax-scaffold` (siax-standard). Varje `TODO:` i filen måste
fyllas i av en människa. Samlad lista: `docs/compliance/SCAFFOLD-TODO.md`._
+86
View File
@@ -0,0 +1,86 @@
# Ändringslogg — 0pt
Alla väsentliga ändringar dokumenteras här. Filen är genererad ur repots
git-historik av `siax-scaffold` (DOC-11) och ska uppdateras när historiken
ändras; den ska aldrig handredigeras med påståenden som inte finns i git.
Formatet följer [Keep a Changelog](https://keepachangelog.com/sv/1.1.0/).
## [Unreleased]
Nästa version. Nya poster läggs överst när de mergas.
## 2026-11-10
- fix(security): smala gitleaks-fingerprints för verifierade falska positiver (`39fc5e3`)
- docs(production): standardiserad produktionsberedskap och gap-analys (`a418933`)
- docs(status): spegla STATUS.md i docs/ för produktionsaudit (`fb072d4`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-925f5ca2fd (`dccdfed`)
- chore: adopt SIAX Golden Standard docs and configuration (`2ea4062`)
- ci: re-trigger efter serveromstart (statusuppdatering avbröts) (`54ff8a3`)
- chore(doctor): exempt generated artifacts and mirror prose from REPO-01 (`1e79d0c`)
- docs(policy): SIAX Agent Execution Policy i AGENTS.md + CLAUDE.md (`72d5876`)
## 2026-11-09
- docs(production): standardiserad produktionsberedskap och gap-analys (`66a7e25`)
- chore(manifest): registrera saknade surface-poster (surfaces-fasen) (`416d00f`)
- feat(capabilities): registrera capability-ägare med verifierat kontrakt (#529) (`d3b1964`)
- feat(capabilities): bind operationId for API-surface capability records (`20d66ea`)
- feat(auth): dual-accept CL0UD workload identity on the machine routes (`d40360a`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-62517aca49 (`c6a5102`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-38ae3ddf0b (`4020217`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-b1ae910d64 (`8e7c228`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-419c2d3f18 (`fab0a53`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-ebfa17028d (`32cd714`)
## 2026-11-08
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-6b57f7cb9d (`966a36f`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-72d6d1e8d1 (`5795b35`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-5010a6853b (`a0eba85`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-f5600a25b9 (`5a56cc9`)
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-9aef3cd97f (`fdba72b`)
## 2026-11-07
- fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-a0e701efc8 (`be6b92f`)
- test(lint): typa idempotency-store i stället för any (blockerar quality-gaten) (`6bbbcf7`)
- docs(identity): 0pt workload identity — målbild, integrationsdesign och blockerare (`8741169`)
- docs(runbook): legacy-instansaudit server5 (0pt + L0RE) och disposition (`b7627a3`)
- fix(canonical): serialisera timestamptz som RFC3339 (ISO-8601) (`afd0b4e`)
- fix(sql): 023 grants for canonical tables to app-role 0pt_app (`4dbabd1`)
- fix(sql): 022 canonical facts blir idempotent (DROP POLICY IF EXISTS) (`0213459`)
- fix(auth): en (1) tenant per intern serviceprincipal — multi-tenant nekas (`1a581fd`)
- ci: add blocking component conformance gate (`831781f`)
- fix(auth): bind internal-service tenant authority to server config (`b97ad0b`)
- feat(capability): descriptor-completion wave 1 (0pt) — verified openapi operationIds (`019cc23`)
- fix(auth): internal-token requests får verifierad tenant (P0 tenant-isolering) (`849e7ae`)
## 2026-11-06
- ci(sonar): self-hosted SonarQube lives at sonar.siax.dev, not .io (`98039d3`)
- fix(portal): reuse canonic @siax/ui FileDropzone instead of a local ad-hoc one (`4f92cdd`)
- fix(@siax/access): restore relationships.ts that disappeared when the package split into two files (`a424cf1`)
- feat(@siax/access): universal idempotency contract (`f77a4fe`)
- feat(idempotency): operation-scope binding for upload identity (`6ca6e8e`)
- chore(ui): document domain/legacy UI exceptions (`415396f`)
## 2026-11-05
- feat(0pt): canonical-fact machine route + renumber migration to 022 (#484) (`c46ebbf`)
- feat(0pt): canonical structured observations — entities, facts, relations (#480) (`03cdb78`)
## 2026-11-04
- evidence(prod): bind source-bundle artifactId to real deployed image digest (`1163048`)
- evidence(prod): bind source-bundle artifactId to real deployed image digest (`c7966eb`)
- evidence(prod): bind source-bundle artifactId to real deployed image digest (`d5aea59`)
- evidence(prod): bind source-bundle artifactId to real deployed image digest (`ce6be94`)
- evidence(prod): real artifact-digest, running-digest and deploy-log for 13e156ec7e6b (`4c20e54`)
- chore(runtime-evidence): sbom — estate-kampanj issue #76 (app 0pt) (`b29e484`)
- chore(design): add design-conformance manifest (`76e3c0d`)
---
Genererad: 2026-11-10. Underlag: `git log --no-merges` (senaste 50 commits).
+18
View File
@@ -0,0 +1,18 @@
SIAX Proprietary License
Copyright (c) 2026 SIAX Technology AB. All rights reserved.
SPDX-License-Identifier: LicenseRef-SIAX-Proprietary
This software and its source code are proprietary and confidential.
1. No license, express or implied, is granted except by a separate written
agreement signed by SIAX Technology AB.
2. Copying, modifying, distributing, sublicensing or deploying this software
outside SIAX Technology AB's own systems requires such an agreement.
3. Third-party components included in or fetched by this repository remain
under their own licenses; see the dependency lockfile and NOTICE files.
4. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Questions about licensing: legal@siax.io
+52
View File
@@ -0,0 +1,52 @@
# Säkerhetspolicy — 0pt
## Rapportera en sårbarhet
Mejla **security@siax.io** med repo, version/commit, reproduktion och påverkan.
Skicka inte en publik issue för säkerhetsproblem. Vi bekräftar mottagande och
återkommer med bedömning; koordinera offentliggörande med oss.
## Omfattning
Detta repo (`0pt`) ingår i SIAX-plattformen. Policyn omfattar källkod,
CI-kedjor, containers och de hemligheter som används vid bygge och drift.
## Hemligheter
- Inga hemligheter i git — varken i kod, `.env`, fixturer eller historik.
- Hemligheter lagras i Infisical (`vault.siax.io`) och injiceras vid körning
(`siax-secrets run --env <miljö> -- <kommando>`). Värden skrivs aldrig ut i
loggar eller dokumentation.
- `.env.example` innehåller namn och beskrivningar, aldrig värden.
- `gitleaks` körs i CI (REPO-15). Ett fynd är ett stopp, inte en varning.
## Beroenden och kedjan
- Låsta versioner och lockfil i varje repo (SUP-01). Renovate hanterar
uppdateringar (SUP-05); säkerhetsuppdateringar prioriteras.
- CI-actioner pinnas till commit-SHA när så krävs av standarden (SUP-06).
- Containrar byggs från egna baser med minimal yta; ingen `tsx`/`ts-node`
i produktion (CD-03).
## Åtkomst och identitet
- Tjänst-till-tjänst sker med workload-identitet och tenant-scope, inte med
delade statiska nycklar (se `siax.repo.json` → `identity`).
- Minsta behörighet gäller; ingen app får bredare åtkomst än sin deklarerade
kapacitet.
## Personuppgifter
- Klassificering och PII-krav deklareras i `siax.repo.json` → `discovery`.
- Personuppgifter får inte loggas, cachelagras eller kopieras till miljöer som
inte är godkända för ändamålet.
## Incidenter
Följ `docs/runbook/incident.md`. Bevara evidens, begränsa spridning, återställ
och skriv en efteranalys. Kontakta ansvarig owner enligt `.gitea/CODEOWNERS`.
---
Denna policy är genererad 2026-11-10 och gäller tills en mänskligt granskad
version ersätter den. Den påstår ingen genomförd granskning eller certifiering.
+10
View File
@@ -0,0 +1,10 @@
# DX-02 — lokala beroenden för 0PT.
#
# TODO: deklarera repots FAKTISKA lokala beroenden (databas, cache, objektlager,
# meddelandebuss …) så att DX-01 håller: ett kommando ska resa allt lokalt, utan
# åtkomst till produktion.
#
# Tomt värde nedan betyder "repot har inga lokala beroenden". Scaffolden kan
# inte veta om det är sant — den lämnar det tomt i stället för att hitta på
# tjänster som ingen kör.
services: {}
+66
View File
@@ -0,0 +1,66 @@
# Arkitektur — 0PT
> **Status:** automatisk första version, genererad av `siax-scaffold` ur repots
> faktiska filer. Den beskriver vad som finns, inte vad som är bestämt. Läs
> igenom, rätta och fyll i avsnitten som är markerade TODO innan dokumentet
> betraktas som en arkitekturbeskrivning (ARK-serien).
Senast verifierad mot kod: 2026-11-10
## 1. Översikt
| Fält | Värde |
| --- | --- |
| Repo | `0pt` |
| Körtid | okänd |
| Ramverk | okänd |
| Paketnamn | — |
| Domäner i `siax.config.json` | inga |
## 2. Komponenter
Toppnivåkataloger som innehåller kod eller konfiguration (härledda ur filträdet):
| Katalog | Roll |
| --- | --- |
| `services//` | TODO: beskriv katalogens roll (services/) |
| `docs//` | TODO: beskriv katalogens roll (docs/) |
Undermoduler som är deklarerade i `children[]`:
| Sökväg | Syfte |
| --- | --- |
| — | Inga undermoduler (apps/, packages/, services/) finns. |
## 3. Startpunkter
| Fil | Typ |
| --- | --- |
| — | Ingen startpunkt hittades i `package.json`, `pyproject.toml` eller `Dockerfile`. |
## 4. Språk och filfördelning
| Ändelse | Omfattning |
| --- | --- |
| .ts | 1 filer |
## 5. Dataflöde
TODO: beskriv hur data rör sig genom repot: inkommande anrop/jobb → lagring → utdata, och vilka externa system som anropas. Scaffolden kan inte härleda detta ur filerna.
## 6. Gränser och beroenden
TODO: lista vilka SIAX-komponenter repot äger respektive konsumerar (REUSE FIRST), samt vilka kontrakt som är stabila utåt. Se `siax.repo.json` → `consumes`/`consumedBy`.
## 7. Drift och miljöer
Ingen `siax.config.json` finns — repot är inte deklarerat som driftsatt. Om det driftsätts ska `siax.config.json` skapas först (REPO-06).
TODO: verifiera mot faktisk nod och `docker ps` (GOV-06). Ett dokument får inte påstå drift som inte är mätt.
## 8. Källhänvisning
- Genererad: 2026-11-10 av `siax-scaffold` (scaffold 2026-11-10).
- Underlag: filträdet, `package.json`/`pyproject.toml`, `Dockerfile`, `siax.repo.json`.
- Ändringslogg: se `CHANGELOG.md` och git-historiken.
+45
View File
@@ -0,0 +1,45 @@
# SCAFFOLD-TODO — vad som är härlett och vad som måste verifieras
**Genererad:** 2026-11-10 av `siax-scaffold` (siax-standard,
`packages/scaffold`) mot Golden Standard v2.0.
Den här filen finns för att en mall inte får låtsas veta saker. Varje rad nedan
är antingen **härledd ur repot** (källan står i kolumn 3) eller ett
**konservativt defaultvärde** som en människa måste bekräfta. Radera raden när
den är verifierad — filen ska till slut kunna tas bort helt.
## Härledda värden i `siax.repo.json`
| Fält | Värde | Härlett ur |
|---|---|---|
| `repo` | `0PT` | `git remote.origin.url` (VERSALER per REPO-08) |
| `codeowners` | `["@sax3l"]` | default (organisationens ägare) |
| `category` | `platform` | DEFAULT — ej härledbart |
| `subcategory` | `TODO: fyll i underkategori (t.ex. compute-os, saas-ersättare)` | TODO-markör |
| `operationalState` | `planned` | inga driftsartefakter (varken Dockerfile eller siax.config.json) |
| `domains` | `0 st` | inga funna |
| `children` | `1 st` | faktiska kataloger under apps/, packages/, services/ |
## Måste verifieras av människa
- [ ] Bekräfta `codeowners` — scaffolden defaultade till `@sax3l` (CI-14).
- [ ] Verifiera `category` i `siax.repo.json` mot den kanoniska taxonomin och CL0UD APP_REGISTRY (GOV-01/REPO-05). Scaffolden defaultade till `platform` — den kan inte veta.
- [ ] Fyll i `subcategory` i `siax.repo.json` (REPO-04).
- [ ] Bekräfta `operationalState` — scaffolden satte `planned` eftersom repot saknar driftsartefakter (GOV-06).
- [ ] Beskriv varje post i `children[]` — sökvägarna är härledda ur filträdet, syftet är inte (ARK-11).
- [ ] Välj rätt devcontainer-bild — scaffolden kunde inte avgöra körtiden och valde en generisk Ubuntu-bas (DX-03).
- [ ] Fastställ `appId` mot CL0UD APP_REGISTRY och ta bort `appIdJustification` (REPO-05).
- [ ] Fyll i consumes[] och consumedBy[] från FAS 2-beroendekartan — de får aldrig gissas.
- [ ] Fyll i `node` (server5–server11) i `siax.repo.json`, eller lämna `null` om repot inte driftsätts.
- [ ] Kör återställningen skarpt och skriv in datumet i `docs/runbook/backup-restore.md` (DOC-07).
## Kontroller som scaffolden AVSIKTLIGT lämnar röda
- **REPO-05** — `appId` är `null` med motivering. Ett påhittat appId skulle se konformt ut och peka på ingenting i CL0UD APP_REGISTRY.
- **DOC-07** — `docs/runbook/backup-restore.md` saknar datum för bevisad restore. Scaffolden skriver aldrig in ett datum: kontrollen letar efter ett datum, och ett genererat sådant skulle göra den grön utan att någon återställning ägt rum. Kör återställningen, skriv in datumet.
---
_Genererad av `siax-scaffold` (siax-standard). Varje `TODO:` i filen måste
fyllas i av en människa. Samlad lista: `docs/compliance/SCAFFOLD-TODO.md`._
+36
View File
@@ -0,0 +1,36 @@
# Backup & restore
## Vad som säkerhetskopieras
TODO: lista varje tillstånd repot äger — databas, volymer, objektlager,
hemligheter. Sådant som inte står här är inte säkerhetskopierat.
| Tillstånd | Var | Frekvens | Retention |
|---|---|---|---|
| TODO | TODO | TODO | TODO |
## Återställning — steg
1. TODO: exakt kommando för att hämta senaste dumpen.
2. TODO: exakt kommando för att läsa in den.
3. TODO: hur du verifierar att data faktiskt är tillbaka (räkna rader, anropa
en endpoint) — inte bara att kommandot gav exit 0.
## Senast bevisad restore
**EJ BEVISAD.**
TODO: kör återställningen skarpt mot en tom miljö och skriv in datumet här på
formen ÅÅÅÅ-MM-DD tillsammans med vem som körde den och vad som verifierades.
> Detta fält är avsiktligt tomt. `siax-scaffold` skriver ALDRIG in ett datum
> här: DOC-07 letar efter ett datum, och ett genererat datum skulle göra
> kontrollen grön utan att någon återställning ägt rum. Kontrollen ska förbli
> röd tills påståendet är sant.
**RTO/RPO:** TODO: mät, gissa inte.
---
_Genererad av `siax-scaffold` (siax-standard). Varje `TODO:` i filen måste
fyllas i av en människa. Samlad lista: `docs/compliance/SCAFFOLD-TODO.md`._
+26
View File
@@ -0,0 +1,26 @@
# Deploy
TODO: `siax.config.json` saknas (REPO-06) — fyll i framework, build,
start, port, healthcheck och per-miljö-domän, och spegla dem här.
## Steg
1. TODO: hur en ändring når drift (börvärde i estatet: merge till `main` →
`.gitea/workflows/cd.yml` → Coolify-webhook på den nod repot bor på).
Skriv det som FAKTISKT sker — inte det som borde ske (DOC-19).
2. TODO: hur du verifierar att den nya versionen kör (healthcheck-URL, exakt
`curl`-kommando och förväntat svar).
3. TODO: rollback — exakt kommando/knapp och hur lång tid det tar (CD-*).
## Förutsättningar
- Hemligheter hämtas från Infisical, aldrig ur repot (AR-6, SEC-01).
- TODO: vilka env-nycklar som måste finnas innan deploy.
**Runbooken ska vara körbar av någon som inte byggt systemet (DOC-06).**
Så länge något `TODO` står kvar är den inte det.
---
_Genererad av `siax-scaffold` (siax-standard). Varje `TODO:` i filen måste
fyllas i av en människa. Samlad lista: `docs/compliance/SCAFFOLD-TODO.md`._
+35
View File
@@ -0,0 +1,35 @@
# Incident
## 1. Bekräfta
TODO: exakt kommando/URL som visar om tjänsten lever (healthcheck, `docker ps`
på noden, dashboard). Ett incidentsvar börjar alltid med en mätning.
## 2. Klassa
| Läge | Innebörd | Åtgärd |
|---|---|---|
| Nere | ingen trafik betjänas | eskalera direkt, se `oncall.md` |
| Degraderad | fel/latens över SLO | TODO: tröskelvärden ur `docs/slo.md` (OBS-10) |
| Kosmetiskt | ingen kundpåverkan | ärende, inte incident |
## 3. Vanliga orsaker (fylls på efter varje incident)
- TODO: känd felkälla 1 — symptom, kommando som bekräftar, åtgärd.
- TODO: känd felkälla 2.
## 4. Återställ
1. TODO: rollback enligt `deploy.md`.
2. TODO: om data är påverkad — följ `backup-restore.md` (och notera att
återställningen då faktiskt är bevisad, DOC-07).
## 5. Efterarbete
Postmortem i `docs/incidents/` — orsak, tidslinje, vad som saknades i
mätningen, vilken kontroll som skulle ha fångat det. Aldrig skuld på person.
---
_Genererad av `siax-scaffold` (siax-standard). Varje `TODO:` i filen måste
fyllas i av en människa. Samlad lista: `docs/compliance/SCAFFOLD-TODO.md`._
+21
View File
@@ -0,0 +1,21 @@
# Oncall
**Jour:** TODO: vem som svarar, på vilken kanal, inom vilken tid. Står här
"ingen jour" ska det vara ett medvetet beslut — inte en glömska.
**Eskalering:** TODO: namn + kontaktväg. Sista instans i estatet: Simon
(goat@siax.io).
**Innan du väcker någon:**
1. Kör bekräftelsesteget i `incident.md` §1.
2. Kolla om det finns en känd orsak i `incident.md` §3.
3. TODO: länk till dashboard/larm (OBS-06/OBS-08).
**Larmvägar:** TODO: vilka larm som faktiskt är kopplade. Ett larm som ingen
tar emot är inget larm.
---
_Genererad av `siax-scaffold` (siax-standard). Varje `TODO:` i filen måste
fyllas i av en människa. Samlad lista: `docs/compliance/SCAFFOLD-TODO.md`._
+25
View File
@@ -0,0 +1,25 @@
# Prompt-index — 0PT
| # | Prompt | Status | Beroende |
|---|---|---|---|
| — | _inga numrerade prompts ännu_ | — | — |
## Öppet, ännu inte brutet till numrerade prompts
Punkterna nedan hittades av `siax-scaffold` när mallarna lades in. Var och en
ska bli en egen `NNN-<slug>.md` enligt mallen i DEL 5.5 av standarden, med
maskinellt verifierbara acceptanskriterier och kontroll-ID (AGENT-03).
- Bekräfta `codeowners` — scaffolden defaultade till `@sax3l` (CI-14).
- Verifiera `category` i `siax.repo.json` mot den kanoniska taxonomin och CL0UD APP_REGISTRY (GOV-01/REPO-05). Scaffolden defaultade till `platform` — den kan inte veta.
- Fyll i `subcategory` i `siax.repo.json` (REPO-04).
- Bekräfta `operationalState` — scaffolden satte `planned` eftersom repot saknar driftsartefakter (GOV-06).
- Beskriv varje post i `children[]` — sökvägarna är härledda ur filträdet, syftet är inte (ARK-11).
- Välj rätt devcontainer-bild — scaffolden kunde inte avgöra körtiden och valde en generisk Ubuntu-bas (DX-03).
Fullständig lista med härledda värden som måste verifieras: `docs/compliance/SCAFFOLD-TODO.md`.
---
_Genererad av `siax-scaffold` (siax-standard). Varje `TODO:` i filen måste
fyllas i av en människa. Samlad lista: `docs/compliance/SCAFFOLD-TODO.md`._
+58
View File
@@ -0,0 +1,58 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
":dependencyDashboard",
":semanticCommits"
],
"timezone": "Europe/Stockholm",
"schedule": [
"after 04:00 and before 07:00"
],
"labels": [
"dependencies"
],
"prConcurrentLimit": 5,
"rangeStrategy": "replace",
"packageRules": [
{
"matchUpdateTypes": [
"patch",
"minor"
],
"groupName": "mindre uppdateringar",
"groupSlug": "minor"
},
{
"matchUpdateTypes": [
"major"
],
"labels": [
"dependencies",
"major"
],
"dependencyDashboardApproval": true
},
{
"matchDepTypes": [
"devDependencies"
],
"groupName": "utvecklingsberoenden",
"groupSlug": "dev"
}
],
"vulnerabilityAlerts": {
"labels": [
"security"
],
"schedule": [
"at any time"
]
},
"lockFileMaintenance": {
"enabled": true,
"schedule": [
"before 06:00 on monday"
]
}
}
+104
View File
@@ -0,0 +1,104 @@
{
"$schema": "https://git.siax.io/sax3l/siax-standard/raw/branch/main/schema/siax.repo.v3.schema.json",
"standardVersion": "3.0",
"repo": "0PT",
"category": "platform",
"subcategory": "TODO: fyll i underkategori (t.ex. compute-os, saas-ersättare)",
"appId": null,
"appIdJustification": "TODO: appId ej fastställt. Genererat av siax-scaffold, som inte kan slå upp CL0UD APP_REGISTRY. Ett påhittat appId hade sett konformt ut och pekat på ingenting (REPO-05).",
"capabilityPrefix": "0pt",
"owner": "SIAX Technology AB",
"lifecycle": "active",
"operationalState": "planned",
"gitHost": "git.siax.io",
"node": null,
"domains": [],
"consumes": [],
"consumedBy": [],
"children": [
{
"path": "services/api",
"purpose": "TODO: beskriv modulens syfte",
"lifecycle": "active"
}
],
"replacesSaaS": [],
"tier": "product",
"canonical": true,
"parentRepo": null,
"capabilities": [],
"surfaces": [
"api"
],
"identity": {
"workloadIdentity": false,
"tenantScoped": true
},
"persistence": {
"stateful": false,
"database": "none",
"storage": "none"
},
"deployment": {
"node": null,
"dedicated": false
},
"observability": {
"health": false,
"ready": false,
"metrics": false
},
"reliability": {
"backupFrequency": "none",
"provenRestore": false
},
"engines": [],
"licenses": {
"spdx": "LicenseRef-SIAX-Proprietary",
"approved": false
},
"productionEvidence": {
"verified": false
},
"discovery": {
"enabled": true,
"profile": "FULL_DISCOVERY",
"changeCapture": {
"strategy": "transactional_outbox",
"fallback": "cdc"
},
"classification": {
"default": "internal",
"failClosed": true
},
"pii": {
"detectionRequired": false,
"detectorRef": "TODO: sätt om repot rör persondata"
},
"lineage": {
"required": true
},
"deletion": {
"propagationRequired": true
},
"retention": {
"policyRef": "TODO: retention-policy (t.ex. operational_30d, permanent)"
},
"projections": [],
"exclusions": []
},
"decision": {
"policies": [],
"consumes": [
"decision.choice",
"decision.score",
"decision.boolean"
],
"deterministicOnly": false
},
"runtime": {
"language": "node-esm",
"packageManager": "pnpm"
},
"contracts": {}
}