# 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`.