Paket je nastao u asp-terminia/licence/ ali je sav posao serverski, pa se seli ovde. Firmverska strana je gotova od FW 0.10.0 i ne dira se. - docs/asp-terminia/ - 6 dokumenata: postojece stanje servera i FW klijenta, tacan API ugovor koji firmware ocekuje, zadaci Z1-Z6 sa kriterijumima prihvatanja, pravila rada na produkciji, enforcement pitanja E1-E6 - reference prepravljene: "ASP repo" = https://git.terminia.net/djuka/asp-terminia (ranije su pokazivale na lokalnu putanju D:\priv\... koja vise ne postoji) - CLAUDE.md: sekcija o cetvrtom proizvodu + pokazivac na paket ASP-Terminia se od ESIR/ARV/LIGHT_TICKET razlikuje po tome sto je machine_fingerprint MAC cipa (eFuse), a uredjaj radi offline - mrezna greska ne sme da ga obori. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Pravila rada — PROČITATI PRE PRVOG SSH-a
Server 151 je PRODUKCIJA sa živim klijentima (fiskalizacija ESIR, ARV, LIGHT_TICKET licence, terminia SaaS). Greška ovde košta prave korisnike.
Tvrda pravila (bez izuzetka)
- Read-only dok se ne odobri write. Istraživanje (čitanje koda, šeme, nginx konfiga) je slobodno. SVAKI write na produkciju (SQL, fajl, nginx reload, restart servisa) traži izričito DA vlasnika za taj konkretan korak.
- Backup pre svake izmene. Minimum:
- baza:
mysqldumpciljanih tabela (ili cele baze) u/root/backup/sa datumom; - fajl/konfig: kopija sa
.bak-YYYYMMDDsufiksom pre izmene. U izveštaju navesti tačnu putanju backupa.
- baza:
- Migracije, ne ad-hoc SQL. Izmene šeme/podataka idu kao numerisan fajl u
migrations/(šablon = postojeće migracije), idempotentno gde je moguće. - Tajne se ne diraju:
.env, privatni ključevi (crypto/osimpublic.pem), lozinke — ne čitati sadržaj, ne ispisivati u logove/izveštaje. Ako je za posao potreban admin API ključ — tražiti od vlasnika, ne vaditi ga iz.env. - Ne dirati tuđe servise:
terminiaSaaS (8091/8092), Gitea, ESIR — ni konfiguraciju, ni bazu, ni portove. Nginx: menjati SAMO dodavanjem novih server blokova; postojećiarvsajt ostaje kakav jeste. - Nikad destruktivno: bez DROP/DELETE nad postojećim podacima; bez rotacije ključeva; bez gašenja servisa duže od reload-a.
- Kompatibilnost klijenata u polju: serijalizacija
licenseobjekta i format potpisa se NE menjaju (lome verifikaciju na uređajima). Nova polja se DODAJU, postojeća se ne preimenuju.
Kako se testira bez rizika
- Novi proizvod (ASP-Terminia) i test ključevi su IZOLOVANI redovi — ne dodiruju postojeće. Test aktivacije gađaju samo ASP ključeve.
- Za probe API-ja koristiti
curlsa test ključem; nikad tuđe ključeve. - Ako postoji mogućnost lokalnog pokretanja (Go build + test MySQL šema) — poželjno prvo lokalno, pa migracija na produkciju.
Izveštavanje
Posle svake sesije: šta je pročitano, šta je menjano (tačne putanje/tabele),
gde je backup, šta je sledeće, otvorena pitanja za vlasnika. Odgovore na pitanja
upisivati u 02-api-ugovor-firmware.md §5 i 05-enforcement-odluke.md.