Instrumente de administrare & guvernanță

Dincolo de funcțiile de zi cu zi, TSync are un set de console de administrare care urmăresc sănătatea, istoricul și siguranța sistemului. Nu le folosești zilnic, dar e bine să știi că există și la ce răspund.

Sănătate & Pregătire pentru lansare

/admin/tsync_health — un singur tablou care verifică dacă sistemul e configurat corect: modulele sunt într-o stare coerentă, lanțurile de finanțe/contabilitate sunt conectate, migrările sunt aplicate, există goluri de configurare? Rulează aceleași verificări de calitate folosite la construirea unei versiuni, dar aici în mod doar-citire, consultativ (avertismente și info, niciodată blocant). Deschide-l după un upgrade, sau când ceva pare în neregulă, pentru un răspuns rapid „e totul conectat?".

Secțiunea „Release Readiness" se încarcă la câteva secunde după restul paginii. E intenționat: producerea ei rulează setul complet de verificări de release peste toate fișierele, ceea ce durează mult mai mult decât tot restul paginii la un loc. În loc să te facă să aștepți pagina întreagă, TSync îți arată restul imediat și completează acea secțiune când e gata — cât timp lucrează vezi o notă scurtă „se rulează gate-ul de release" și un substitut. Dacă nu poate fi produsă, ți-o spune, în loc să se învârtă la nesfârșit.

Fișiere rămase de la versiuni vechi

O actualizare adaugă și înlocuiește fișiere — dar nu șterge niciodată. Așa că un fișier scos din produs acum trei versiuni rămâne pe serverul tău, la nesfârșit. Nu-l mai folosește nimic, dar e tot acolo.

Asta avea o consecință neașteptată: pagina asta raporta uneori probleme care nu există în produs. S-a întâmplat exact așa — o alertă de securitate arăta spre un fișier scos din produs cu trei luni înainte. A fost căutat în cod și în arhive; nu era nicăieri. Era doar pe acel server.

Acum secțiunea listează fișierele care sunt pe serverul tău și nu erau în arhiva livrată. Un fișier .php rămas apare ca avertisment; restul, ca informație.

TSync nu șterge nimic. Îți spune ce a găsit și unde; ștergerea o faci tu, pe server, după ce te-ai convins. Un upgrade care șterge fișiere singur e exact felul de operațiune care nu se poate anula.

Două lucruri nu vor apărea niciodată în listă, ca să rămână citibilă: fișierele de lucru ale sistemului (loguri, cache, configurarea ta cu parolele) și modulele instalate separat — un modul pe care l-ai instalat tu nu e o rămășiță, iar a ți-l propune la ștergere ar fi cea mai proastă greșeală posibilă.

Integrări externe — care mai răspund

Aceeași pagină are un panou Integrări externe: un rând pentru fiecare integrare cu care poate vorbi instalarea ta — ANAF, Fiscul, o bancă, un CRM, un furnizor de mesagerie — cu rezultatul ultimei chemări reale a acelei integrări, când a fost și către ce destinație.

Pagina nu face niciun apel extern cât timp te uiți la ea. Să sondezi fiecare furnizor la fiecare încărcare ar însemna trafic generat de simplul act de a privi, către servicii care limitează cât de des le poți chema; o pagină de sănătate nu are voie să devină problema pe care o raportează.

Trei stări, iar a treia e rostul:

Stare Ce înseamnă
funcționează ultima chemare a răspuns
nu răspunde ultima chemare a eșuat — cifra de lângă e câte eșecuri la rând
neverificată nimic n-a chemat-o vreodată de pe această instalare

„Neverificată" e cea de citit cu atenție. Dacă nimeni nu apasă butonul, absența eșecurilor nu e o dovadă de sănătate — exact așa a supraviețuit neobservat, peste o schimbare de API, un endpoint de căutare mort la toți clienții. Un rând care a răspuns, dar nu de mult, e marcat și el ca atare.

Lista se construiește din integrările pe care produsul le declară, nu din ce s-a folosit, deci apare și o integrare pe care n-o atinge nimeni. Nu se stochează nimic din conținutul unei chemări — nicio adresă, niciun corp de cerere sau de răspuns; doar un rezultat, un scurt indicator de stare și marcajele de timp.

Consolă de securitate

Centru de configurare → Guvernanță & audit → Consolă de securitate (și în meniul de Setări). Un singur ecran care adună ce raportează mecanismele de securitate deja existente: anti-scraping, blocări active, autentificare, sesiuni, permisiuni, rute publice, acces la date, apeluri de unelte și ultimele intrări de audit.

Nu refuză nimic. Pagina e doar citire — nu blochează un utilizator, nu închide o sesiune, nu oprește o cerere. Îți arată ce se întâmplă, ca să decizi tu.

Fiecare card spune limpede care din patru lucruri e adevărat:

citește există o sursă, și asta spune
oprit mecanismul există și e oprit — ceea ce e chiar răspunsul
nimic de raportat e pornit și chiar n-are ce arăta
neconstruit nu există încă o sursă, iar cardul spune ce ar fi nevoie

Ultimul contează mai mult decât pare. „0 respingeri CSRF" și „nimeni nu numără respingerile CSRF" arată identic pe ecran și înseamnă lucruri opuse — iar cea liniștitoare e cea falsă. Două carduri sunt marcate cinstit neconstruit azi: respingerile CSRF și integritatea fișierelor.

Postura generală numără oprit și neconstruit separat, fiindcă primul e decizia ta, iar al doilea e a noastră.

Cine o vede: administratorii. Pentru ceilalți, se acordă Consolă de securitate → Vizualizare din permisiuni.

Acces cabinete

Cine poate intra în portalul clienților — o singură listă, ținută la zi, cu acțiunile care o repară. În meniul din stânga, sub Clienți.

Fiecare persoană de contact apare cu clientul ei, partenerul economic din spate, și două lucruri pe care nu le vezi din ecranul clientului fără să-l deschizi: starea accesului și când a intrat ultima dată.

Trei stări, nu „are / n-are acces"

  • Activ — contactul e activ și are parolă. Chiar se poate autentifica.
  • Blocat — nu se poate autentifica, orice altceva ar fi adevărat.
  • Fără parolă — e activ, dar nu are parolă, deci tot nu poate intra.

A treia stare e motivul pentru care există ecranul. Să „permiți accesul" cuiva fără parolă nu-i dă nimic — așa că, atunci când o faci, sistemul îți spune pe cine nu a ajutat și îți oferă butonul care chiar rezolvă: Trimite e-mail de setare a parolei.

Acțiunile

Bifezi rânduri, apoi alegi. Fiecare acțiune întreabă întâi și îți spune pe câte contacte se aplică, apoi raportează câte rânduri s-au schimbat cu adevărat.

  • Blochează accesul — nu se mai pot autentifica până nu permiți din nou.
  • Permite accesul — cu avertismentul de mai sus pentru contactele fără parolă.
  • Deconectează acum — vezi mai jos.
  • Trimite e-mail de setare a parolei — doar către contactele selectate care nu au parolă.
  • Șterge parola — contactul rămâne, cu tot istoricul lui; pur și simplu nu se mai poate autentifica până nu se setează o parolă nouă.

„Blochează" și „deconectează" nu sunt același lucru

Blocarea oprește următoarea autentificare. Cine e deja autentificat rămâne până îi expiră sesiunea. Deconectează acum închide sesiunile deschise în acest moment.

Dacă vrei să scoți pe cineva imediat, folosește-le pe amândouă.

Pe unele instalări sesiunile sunt păstrate într-un fel la care ecranul acesta nu ajunge. Atunci îți spune direct, în loc să pretindă că a deconectat pe cineva — blocarea funcționează în continuare.

Cine îl vede

Oricine are permisiunea de clienți: vizualizarea arată lista, editarea activează acțiunile. Nu e nicio permisiune nouă de configurat.

Tot ce fac acțiunile acestea se scrie în jurnalul de audit, cu cine a făcut și pe câte contacte.

Jurnal de audit

/admin/tsync_audit — o evidență doar-adăugare a modificărilor importante: cine a schimbat o setare, cine a înregistrat sau a stornat o notă contabilă, cine a rulat o reparare etc., cu valorile vechi și noi. E locul unde afli „cine a schimbat asta și când?". Înregistrările nu se editează și nu se șterg niciodată.

Guvernanța designului

/admin/tsync_design_governance — menține interfața consecventă. Măsoară „abaterea" UI față de un nivel de referință acceptat (stiluri inline rătăcite, spațieri în afara scalei, culori brute în loc de token-uri de brand), o arată pe fișier și permite unui admin să seteze un nou nivel de referință după curățare. E un instrument de mentenanță pentru uniformitatea aspectului — nu îți afectează datele.

Securitatea agenților (fundație)

/admin/tsync_agent_security — fundația pentru automatizare/AI sigure. Conține o politică doar-citire, un gateway de unelte cu refuz implicit (orice acțiune automată e jurnalizată și trebuie permisă) și regula că tot conținutul extern — pagini web, e-mailuri, fișiere încărcate, extrase bancare — e tratat ca date neîncrezute, niciodată ca instrucțiuni. E inert implicit (nu rulează acțiuni automate); există ca, atunci când automatizarea e activată, să fie guvernată din prima zi. Vezi și Intelligence Layer.

Calitatea datelor operaționale

/admin/tsync_data_quality — ce știe produsul despre starea datelor tale: moduri de plată fără niciun cont financiar în spate, o metrică ce a încetat să se mai reîmprospăteze, înregistrări care se contrazic. Fiecare constatare poartă o gravitate — critic, avertisment sau informație — și aparține uneia dintre cele patru componente: Integritatea datelor (DIS), Consistență operațională (OCS), Fiabilitatea sursei (SRI) și Date lipsă (MDI).

Pagina e acum în limba ta, inclusiv gravitatea. Până la v11.2.1 gravitatea era tipărită brut, în engleză, înăuntrul pastilei colorate pe care o citești dintr-o privire — exact locul unde nu ai timp să traduci ceva. Numele componentelor încep acum cu numele și păstrează prescurtarea în paranteză, fiindcă un acronim spune ceva doar cuiva care știe deja.

O constatare de aici e adesea cauza unui simptom pe care îl urmărești în altă parte. „Moduri de plată fără cont financiar" e, de exemplu, motivul pentru care plățile nu mișcă trezoreria.

Inspectorul de evenimente

/admin/tsync_event_inspector — jurnalul evenimentelor dintre module: ce s-a ridicat, când, cu ce date și care ascultători au răspuns. Folosește-l când o automatizare nu a rulat și vrei să știi dacă evenimentul a avut loc.

Re-declanșarea unui eveniment cere acum o confirmare reală și e un POST. Re-declanșarea ridică din nou evenimentul pe magistrală și rulează fiecare ascultător al lui — poate crea înregistrări, trimite mesaje și posta note contabile. Până la v11.2.0 era o legătură obișnuită, deci orice pagină deschisă întâmplător de un administrator putea declanșa o re-rulare cu sesiunea lui, fără clic și fără nimic pe ecran. Confirmarea spune acum ce se va întâmpla, nu „ești sigur".

Coada joburilor eșuate

/admin/tsync_dead_jobs — joburile de fundal care au renunțat după ultima reîncercare. E pagina pe care o deschizi când ceva s-a oprit în fundal.

Două acțiuni, iar confirmările lor spun acum ce face fiecare: repune în coadă („se repun în coadă și rulează la următoarea trecere a cron-ului") și șterge definitiv („se șterg definitiv, nu se poate anula"). Numărătoarea scrie joburi eșuate: 1, nu o formă de plural care era corectă doar în engleză.

Consolele astea sunt în limba ta

Sănătatea modulelor, Inspectorul de evenimente, Calitatea datelor operaționale, Securitatea agenților și coada joburilor eșuate erau livrate în engleză într-un produs în care se lucrează altfel în română și rusă. Sunt traduse acum, inclusiv cuvintele de stare: green / amber / red se randau brut, deci pagina cerea unui operator să știe că „amber" înseamnă „necesită atenție" — ca nume de culoare, în engleză, printre etichete altfel traduse.

Aceste console sunt pentru proprietari/administratori. Cine poate deschide fiecare e controlat de permisiuni; în modul hub se ajunge la ele din Centrul de configurare.