Hoppa till innehållet

Tidslinjen och vägvalen som data

API

Låter projektet hålla tidslinjen och vägvalen aktuella direkt – ett möte, en riktning som blir beslutad – utan att någon committar kod och väntar på en deploy.

källa: apps/projekt/src/handelselistauppdaterad:

Ansvar

  • Hålla tidslinjens händelser och vägvalen i startsidans databas (planen fas 7), fyllda med startdatan i handelser.ts och innehall.ts. En post som redan finns rörs inte av startdatan.
  • Läsa synkront ur databasen med handelser(), allaHandelser(), vagval() och poster(), så att sidorna läser som förut – och rendera dem vid varje visning.
  • Ta emot skrivningar med API:t och skrivnyckeln, pröva varje fält i servern och skriva en rad i ändringsloggen i samma transaktion. Ingen DELETE.
  • Hålla godkännandet enligt ADR-035: ett nytt inlägg i tidslinjen, och en ändrad rubrik, text eller ett ändrat datum, godkänns innan det skickas.
  • Skicka Teams-kortet när en händelse skrivs, och en gång i timmen för det som fått sitt datum, med samma lista över skickade som vid start.
  • Låta möten med egen sida, besluten ur ADR:erna och de sex styrande frågorna vara kod.

Filer

Tabell: Sökväg, Roll
SökvägRoll
handelselista/databas.tsTabellen handelser: startdatan in med INSERT OR IGNORE, listorna som JSON, ordningen bevarad.
handelselista/regler.tsprovaHandelse (zod, strikt): ett datum som finns från projektstarten, slag utom beslut, ADR:er som finns, länk från roten. handelseId ger <datum>-<namn>.
handelselista/server.tshandelser(), allaHandelser() med besluten, skapa, ersätt (PUT) och ändra (PATCH), ändringsloggen och Teams-kortet. Mötets egen sida följer med oförändrad.
vagval/regler.tsTypen Vagval och provaVagval: läge, rubrik, möten som finns i tidslinjen, länk från roten.
vagval/databas.tsTabellen vagval och startvagval – besluten, riktningarna och de mindre frågorna ur innehall.ts.
vagval/server.tsvagval(), skapa, ersätt och ändra. Ett ändrat läge loggas med det gamla. Id:t krockar aldrig med en styrande fråga.
app/(projekt)/register.tsposter() lägger ihop vägvalen ur databasen med de styrande frågorna i koden; posterFran och franText läser händelserna ur databasen.
app/api/handelser/route.tsGET hela tidslinjen, POST en ny händelse.
app/api/vagval/route.tsGET alla vägval, POST ett nytt.
handelselista/handelselista.test.tsReglerna, startdatan, API:t och loggen mot en tillfällig databas.
vagval/vagval.test.tsReglerna, startdatan, API:t, registret och mötets sida mot en tillfällig databas.

API

Tabell: Namn, Signatur, Beskrivning
NamnSignaturBeskrivning
GET /api/handelser→ 200 { handelser: Handelse[] }Hela tidslinjen i datumordning, besluten inräknade. Öppet.
POST /api/handelserAuthorization: Bearer <STATUS_SKRIVNYCKEL>, body: { datum, slag, rubrik, text, kort?, punkter?, lank?, adr?, spar? } → 201 { handelse, url } | 400 { fel: string[] }Lägger till en händelse, efter Jaris godkännande. Id:t blir <datum>-<kortform eller rubrik>. Teams-kortet går när datumet har kommit.
GET/PUT/PATCH /api/handelser/:idBearer för PUT och PATCH → 200 { handelse, url } | 400 | 404En händelse. PATCH byter bara de fält som skickas; lank: null tar bort länken. Besluten skrivs inte här.
GET /api/vagval→ 200 { vagval: Vagval[] }Alla beslut, riktningar och mindre öppna frågor. Öppet.
POST /api/vagvalBearer, body: { lage, rubrik, fran, text?, kort?, amne?, lank? } → 201 { vagval, url } | 400Lägger till ett vägval. fran är mötenas id i tidslinjen.
GET/PUT/PATCH /api/vagval/:idBearer för PUT och PATCH → 200 { vagval, url } | 400 | 404Ett vägval. { "lage": "beslutat" } gör en riktning beslutad.

Kontrakt

  • Slaget är milstolpe, mote, workshop eller leverans. Besluten kommer ur ADR:erna och adrDatum, som är kod.
  • Läget för ett vägval är beslutat, riktning eller oppen. Ett ändrat läge skrivs med PATCH; det gamla står i ändringsloggen.
  • En agent visar först exakt vad den skickar och väntar på ett ja – för tidslinjen är det den hårda regeln i ADR-035.
  • Lokalt syns startdatan. Det som skrivits med API:t finns bara i produktionens databas.

Beroenden och beslut

Beslut: ADR-035, ADR-036, ADR-038

Levererar: /api/handelser, /api/handelser/<id>, /api/vagval, /api/vagval/<id>, handelselista/, vagval/, tabellerna handelser och vagval

Kvarstår

  • De sex styrande frågorna med alternativ och förslag är kod tills de är besvarade.
  • Inget formulär på sidan än – skrivningen sker med API:t.

15 delar i projektportalen · gemensamma i devportalen: ai-adapter, anthropic, bygge, designsystem, dokploy, dokumentation, gemensamt, tokens, ui