licence-server/docs/asp-terminia/04-pravila-rada.md
Nenad Djukic adac321938 Preuzet radni paket ASP-Terminia (licenciranje) iz firmverskog repoa
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>
2026-07-24 21:44:20 +02:00

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)

  1. 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.
  2. Backup pre svake izmene. Minimum:
    • baza: mysqldump ciljanih tabela (ili cele baze) u /root/backup/ sa datumom;
    • fajl/konfig: kopija sa .bak-YYYYMMDD sufiksom pre izmene. U izveštaju navesti tačnu putanju backupa.
  3. Migracije, ne ad-hoc SQL. Izmene šeme/podataka idu kao numerisan fajl u migrations/ (šablon = postojeće migracije), idempotentno gde je moguće.
  4. Tajne se ne diraju: .env, privatni ključevi (crypto/ osim public.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.
  5. Ne dirati tuđe servise: terminia SaaS (8091/8092), Gitea, ESIR — ni konfiguraciju, ni bazu, ni portove. Nginx: menjati SAMO dodavanjem novih server blokova; postojeći arv sajt ostaje kakav jeste.
  6. Nikad destruktivno: bez DROP/DELETE nad postojećim podacima; bez rotacije ključeva; bez gašenja servisa duže od reload-a.
  7. Kompatibilnost klijenata u polju: serijalizacija license objekta 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 curl sa 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.