Producția, staging-ul și proba rulează același cod, dar setările de mediu și câteva gărzi le fac să se comporte diferit.
Pe scurt
| Mediu | Adresa | Valoarea MEDIU | Rută de probă |
|---|---|---|---|
| Producție | app.ilustromania.com | productie (implicită) | nu există, oricum ar fi configurat serverul |
| Staging | staging.ilustromania.com | staging | există doar dacă e setat OM_PROBA |
| Probă | serverul de probă (fără adresă publică fixă în cod) | proba | există doar dacă e setat OM_PROBA |
Codul este același. Diferențele vin din variabilele de mediu citite la pornire, în config.ts, și din două gărzi legate de numele gazdei de producție, GAZDA_PRODUCTIE.
Mediul declarat: MEDIU
MEDIU acceptă doar productie, staging și proba. Orice altă valoare oprește pornirea. Dacă variabila lipsește, serverul se socotește producție: un server uitat neconfigurat primește regulile cele mai stricte, nu cele mai permisive.
Proba: OM_PROBA și /v1/sesiune/proba
POST /v1/sesiune/proba deschide o sesiune pentru „omul de probă” din OM_PROBA (cont, firmă, rol), fără parolă. Sesiunea durează cât una obișnuită, 8 ore. E făcută pentru capturi și teste automate, nu pentru oameni.
Ruta are trei centuri, puse una peste alta:
| Centura | Unde | Ce se întâmplă |
|---|---|---|
1. Fără OM_PROBA | la montarea rutelor | ruta nu este înregistrată deloc |
2. OM_PROBA cu MEDIU=productie sau cu GAZDA_PUBLICA=app.ilustromania.com | la pornire | API-ul refuză să pornească, cu un mesaj clar |
| 3. Cerere venită pe gazda de producție | la fiecare cerere | răspunde 404 negasit, ca și cum ruta n-ar exista |
curl -i -X POST https://staging.ilustromania.com/nucleu/v1/sesiune/proba
# 204 + Set-Cookie: __Host-sesiune=…Omul de probă poate avea rolul admin. Ruta este publică în harta accesului tocmai pentru că sesiunea o creează ea. De aceea, siguranța stă în cele trei centuri, nu într-o parolă.
Ce diferă între medii
| Setare | Producție | Staging și probă |
|---|---|---|
OM_PROBA | interzis (pornirea eșuează) | permis |
CASCADA_PRODUS, dacă lipsește | off: dezactivarea unui produs nu le oprește pe cele care îl conțin | on |
| Panoul de publicare | publică doar pe app.ilustromania.com | nu are rând propriu |
| Linkurile din emailurile cu cod | spre app.ilustromania.com | spre staging.ilustromania.com, dacă de acolo s-a cerut codul |
Orice altă gazdă decât cele două primește, în email, adresa de producție.
Comutatoarele de mediu
Următoarele comutatoare au aceeași valoare implicită pe toate mediile. Valoarea lor efectivă pe fiecare server nu e în codul platformei: o pune configurarea serverului.
| Variabilă | Implicit | Ce face |
|---|---|---|
SCRIERE_STARI | off | off = rutele de scriere ale meniului răspund 409; on = scriu |
PUNTE_MENIU | off | off = nicio cerere spre canale; simulare sau on = cererea se scrie pentru executor |
OFICIAL_ACTIV | off | off = orice acțiune pe Oficial, în panoul de publicare, dă 409 neactivat |
PUNTE_ACCEPTA_V1 | 0 | acceptă sau nu forma veche a punții de sesiune |
PUBLICARE_DIR și cele două stări | absente | fără ele, rutele /v1/publicare/* nu există; trebuie date toate trei, altfel pornirea eșuează |
Steagurile de funcții
Steagurile (GET /v1/flaguri) nu țin de mediu. Ele stau în baza de date a fiecărui mediu, deci staging-ul și producția își au fiecare setul lor. Regula:
- rândul cel mai specific câștigă: cont, apoi firmă, apoi global;
procentîntre 1 și 99 pornește funcția treptat, după o „găleată” 0–99 calculată din id-ul contului, aceeași pe orice mașină;- un steag necunoscut înseamnă
false.
Vezi și Roluri și drepturi pentru ce vede fiecare om, indiferent de mediu.