Referință CLI digna 2026.06¶
2026-09-05
Această pagină documentează setul complet de comenzi disponibile în versiunea 2026.06 a CLI digna, inclusiv exemple de utilizare și opțiuni.
Executabilul se numește digna.
Noțiuni de bază despre CLI¶
Prezentare generală și sintaxă¶
CLI-ul versiunii 2026.06 folosește o ierarhie de comenzi structurată, bazată pe categorii:
version și serve sunt comenzi de sine stătătoare, fără subcomandă:
Opțiuni globale¶
Următoarele opțiuni globale se aplică tuturor comenzilor:
--help,-h: Afișează informații de ajutor despre CLI sau despre o anumită categorie de comenzi ori subcomandă.--stacktrace: În caz de eroare, afișează întregul lanț de erori în loc de doar mesajul de nivel superior.
--stacktrace este o opțiune globală în sens strict: trebuie indicată înainte de categoria de comandă, nu după ea.
Nu există un indicator --version. Folosiți în schimb comanda version.
Cerințe preliminare¶
Majoritatea comenzilor au nevoie de un fișier config.toml lizibil și valid; unele necesită în plus o licență valabilă. Tabelul următor consemnează ce încarcă fiecare categorie de comenzi înainte de a face orice altceva:
| Categorie de comenzi | Necesită config.toml | Necesită licență valabilă |
|---|---|---|
version | nu | nu |
config check | nu (tocmai acesta este obiectul raportării comenzii) | nu |
license check | nu | ea este verificarea |
crypt | da | nu |
serve | da | nu |
windows | nu (serviciul îl citește la pornire) | nu |
project | da | nu |
user | da | da |
inspection | da | da |
repo | da | da |
Acolo unde este necesară o licență, se verifică atât semnătura, cât și data de expirare a acesteia, iar comanda se oprește înainte de a atinge repository-ul dacă oricare dintre ele eșuează.
Coduri de ieșire¶
0: comanda a reușit.1: comanda a eșuat. Mesajul de eroare este scris în stderr, precedat de prefixulError:.
help¶
Opțiunea --help oferă informații despre categoriile de comenzi, subcomenzile și opțiunile disponibile:
-
Afișarea ajutorului general:
-
Obținerea ajutorului pentru categorii și comenzi specifice:
Rezultatul include: - Descrierea comenzii: Rezumat al scopului comenzii. - Sintaxa: Argumentele obligatorii și cele opționale. - Opțiunile: Indicatorii și parametrii specifici comenzii.
version¶
Comanda version afișează versiunea instalată a digna. Nu citește nicio configurație și nu validează nicio licență, așa că funcționează și pe o instalare al cărei fișier config.toml sau a cărei licență lipsește ori este invalidă.
Versiunea produsului este independentă de versiunea schemei repository-ului raportată de repo check.
Utilizarea comenzii¶
Exemplu de ieșire¶
Gestionarea configurației¶
config check¶
Comanda config check validează fișierul de configurare (config.toml), verificând dacă toate secțiunile și setările obligatorii sunt prezente și corect formatate. Fiecare secțiune este validată separat, astfel încât o secțiune [app] defectă să nu ascundă starea secțiunii [repo].
Secțiunile raportate sunt:
App config([app])Repository config([repo])Base config([base])Logging config([logging])Encryption config([encryption])OIDC config(s)(oidc_clients) — opțională; o cheie absentă trece verificarea, iar o listă prezentă, dar formată greșit, nu o trece
Comanda nu încarcă în mod deliberat configurația aplicației așa cum o fac celelalte comenzi, pentru a putea diagnostica un fișier config.toml care ar împiedica pornirea aplicației digna.
Utilizarea comenzii¶
Opțiuni¶
--configpath,-c: Calea către fișierul de configurare sau către un director care conțineconfig.toml(implicit./config.toml).--json: Emite raportul de validare în format JSON. Are prioritate față de--quiet.--quiet,-q: Suprimă raportul și se bazează exclusiv pe codul de ieșire.
Exemplu¶
Validarea unui anumit fișier de configurare și formatarea rezultatului ca JSON:
Exemplu de ieșire¶
Configuration validation report (source: config.toml):
- App config: OK
- Repository config: OK
- Base config: OK
- Logging config: OK
- Encryption config: FAILED
missing field `aes_gcm_key`
- OIDC config(s): OK
Overall: FAILED
Un fișier lipsă sau o eroare de sintaxă TOML nu lasă nimic de validat secțiune cu secțiune și este raportat ca o singură eroare în loc de un raport, indiferent de --quiet sau --json.
Gestionarea repository-ului¶
repo check¶
Comanda repo check testează conexiunea la baza de date și verifică instalarea și versiunea repository-ului. Eșuează dacă schema configurată nu există sau dacă există, dar nu conține un repository digna.
Versiunea raportată este versiunea schemei repository-ului, care este versionată separat de versiunea digna afișată de version.
Utilizarea comenzii¶
Exemplu de ieșire¶
repo install¶
Comanda repo install instalează un nou repository digna în schema configurată în config.toml, creând toate secvențele, tabelele, indecșii, constrângerile și înregistrările inițiale necesare.
Schema propriu-zisă nu este creată de această comandă — ea trebuie să existe în prealabil. Comanda refuză de asemenea să ruleze dacă în acea schemă este deja instalat un repository și indică repo upgrade dacă versiunea instalată este una mai veche.
Utilizarea comenzii¶
Exemplu de ieșire¶
Installing repo version 3.0.0
✅ Sequences created.
✅ Tables and Indices created.
✅ Constraints created.
✅ Records inserted.
✅ Repo version 3.0.0 successfully installed.
repo upgrade¶
Comanda repo upgrade aplică migrări ale schemei bazei de date pentru a aduce un repository existent la versiunea așteptată de ediția instalată. Actualizările sunt aplicate câte un salt de versiune pe rând, de-a lungul unei căi de actualizare fixe, iar fiecare salt finalizat este consemnat în repository.
Dacă repository-ul se află deja la versiunea așteptată, comanda raportează că nu este necesară nicio actualizare și nu face nicio modificare.
Utilizarea comenzii¶
Exemplu de ieșire¶
Upgrading from 2.3.1 to 2.3.2...
Upgrading from 2.3.2 to 3.0.0...
✅ Repo successfully upgraded to version 3.0.0.
repo prune¶
Comanda repo prune elimină rândurile care au supraviețuit proiectului sau sursei de date căreia îi aparțineau. Ștergerea unui proiect sau a unei surse de date elimină obiectul în sine, dar lasă în urmă profilurile, predicțiile, stările și numărul de rânduri ale acestuia — un compromis deliberat, deoarece o ștergere care ar curăța și aceste tabele l-ar face pe utilizator să aștepte. repo prune este operațiunea de întreținere care le elimină și poate fi rulată oricând în siguranță: elimină doar rândurile al căror proiect sau sursă de date nu mai există.
Rândurile scrise de backend-ul Python în tabele pe care versiunea curentă nu le mai folosește sunt lăsate neatinse.
Utilizarea comenzii¶
Opțiuni¶
--dry-run: Raportează ce ar fi eliminat, fără a elimina nimic.
Sunt listate doar tabelele cu rânduri orfane. Dacă nu există niciunul, comanda raportează No orphaned rows found. și se încheie.
Exemplu¶
Exemplu de ieșire¶
"check" 29342
check_profile 29342
check_prediction 29342
check_status 29342
column_status 32
inspection_query 253
---------------------------------------------
total 117854
✅ Removed 117854 orphaned row(s).
Pentru a vedea același raport fără a elimina nimic:
Numărul de rânduri este identic; diferă doar linia de încheiere:
Gestionarea criptării¶
crypt gen-key¶
Comanda crypt gen-key generează o nouă cheie de criptare AES-GCM, destinată utilizării ca cheie de criptare în config.toml. Trebuie să existe deja un fișier config.toml care poate fi încărcat, chiar dacă cheia generată nu depinde de el.
Utilizarea comenzii¶
Exemplu de ieșire¶
crypt encrypt¶
Comanda crypt encrypt criptează un șir de caractere (de exemplu o parolă de bază de date) folosind cheia AES-GCM configurată în config.toml și afișează textul cifrat.
Utilizarea comenzii¶
Argumente¶
- VALUE: Șirul de caractere în clar care trebuie criptat (obligatoriu).
Exemplu¶
crypt decrypt¶
Comanda crypt decrypt decriptează un șir de caractere criptat cu AES-GCM folosind cheia configurată în config.toml și afișează textul în clar.
Utilizarea comenzii¶
Argumente¶
- VALUE: Șirul cifrat care trebuie decriptat (obligatoriu).
Exemplu¶
Gestionarea utilizatorilor¶
user add¶
Comanda user add creează un cont de utilizator nou în repository-ul digna. Comanda eșuează dacă există deja un utilizator cu adresa de e-mail indicată.
Utilizarea comenzii¶
Argumente¶
- EMAIL: Adresa de e-mail a utilizatorului (obligatoriu).
- PASSWORD: Parola inițială a utilizatorului (obligatoriu).
- DISPLAY_NAME: Numele complet afișat al utilizatorului (obligatoriu).
Opțiuni¶
--admin,-a: Creează utilizatorul cu privilegii de administrator (superutilizator).
Exemplu¶
Pentru a crea un cont de administrator:
Exemplu de ieșire¶
user list¶
Comanda user list listează toți utilizatorii înregistrați în format tabelar, cu ID, e-mail, nume afișat și indicatorul de administrator.
Utilizarea comenzii¶
Exemplu de ieșire¶
ID EMAIL DISPLAY NAME ADMIN
-----------------------------------------------------------------------------------------------
42 jdoe@example.com John Doe false
43 admin@example.com Admin User true
user modify¶
Comanda user modify actualizează numele afișat și privilegiile de administrator ale unui cont de utilizator existent, identificat după adresa de e-mail.
Atât numele afișat, cât și indicatorul de administrator sunt scrise de fiecare dată. --admin este un comutator, nu o valoare: omiterea lui revocă privilegiile de administrator, așa că indicați-l ori de câte ori utilizatorul trebuie să le păstreze sau să le primească.
Utilizarea comenzii¶
Argumente¶
- EMAIL: Adresa de e-mail a utilizatorului de modificat (obligatoriu).
- DISPLAY_NAME: Numele afișat actualizat (obligatoriu).
Opțiuni¶
--admin,-a: Acordă privilegii de administrator. Omiteți-l pentru a le revoca.--valid-until,-v: Acceptat din motive de compatibilitate, dar momentan neaplicat. Indicarea lui afișează un avertisment și nu schimbă nimic.
Exemplu¶
Exemplu de ieșire¶
user modify-pwd¶
Comanda user modify-pwd actualizează parola unui cont de utilizator existent.
Utilizarea comenzii¶
Argumente¶
- EMAIL: Adresa de e-mail a utilizatorului a cărui parolă trebuie actualizată (obligatoriu).
- PASSWORD: Noua parolă (obligatoriu).
Exemplu¶
user delete¶
Comanda user delete elimină un cont de utilizator din sistem.
Utilizarea comenzii¶
Argumente¶
- EMAIL: Adresa de e-mail a utilizatorului de șters (obligatoriu).
Exemplu¶
Gestionarea proiectelor și a surselor de date¶
project list¶
Comanda project list listează toate proiectele disponibile în repository, afișând ID-ul, numele și descrierea acestora.
Utilizarea comenzii¶
Exemplu de ieșire¶
ID NAME DESCRIPTION
------------------------------------------------------------------------------------------------------
7 ProjectA Sales data quality
8 ProjectB Finance data quality
project list-ds¶
Comanda project list-ds listează toate sursele de date asociate unui proiect dat, afișând ID-ul, numele, tipul, schema și numele tabelei acestora.
Utilizarea comenzii¶
Argumente¶
- PROJECT_NAME: Numele proiectului ale cărui surse de date trebuie listate (obligatoriu). Numele trebuie să corespundă exact.
Exemplu¶
Exemplu de ieșire¶
ID NAME KIND SCHEMA TABLE
-------------------------------------------------------------------------------------------------------------
101 orders Table sales orders
102 customers Table sales customers
project export-ds¶
Comanda project export-ds exportă sursele de date ale unui proiect într-un document JSON.
Dacă nu se indică nici --table-name, nici --table-id, sunt exportate toate sursele de date ale proiectului.
Utilizarea comenzii¶
Argumente¶
- PROJECT_NAME: Numele proiectului din care se exportă sursele de date (obligatoriu).
Opțiuni¶
--table-name,-n: Numele surselor de date de exportat. Se pot indica mai multe nume, separate prin spații.--table-id,-i: ID-urile surselor de date de exportat. Se pot indica mai multe ID-uri, separate prin spații.--exportfile,-f: Calea în care se salvează sursele de date exportate (implicit:data_sources_export.json).
Exemplu¶
Pentru a exporta toate sursele de date din ProjectA:
Pentru a exporta anumite tabele:
Exemplu de ieșire¶
project import-ds¶
Comanda project import-ds importă surse de date dintr-un fișier de export într-un proiect țintă și raportează, pentru fiecare obiect, ce a fost creat, actualizat sau omis.
Utilizarea comenzii¶
Argumente¶
- PROJECT_NAME: Numele proiectului țintă în care se importă (obligatoriu).
- EXPORT_FILE: Calea către fișierul JSON de export (obligatoriu).
Opțiuni¶
--output-file,-o: Fișierul în care se scrie raportul de import. Fără el, raportul este trimis la stdout.--output-format,-f: Formatul raportului de import —table,jsonsaucsv(implicit:table).
Exemplu¶
Pentru a obține un raport care poate fi citit automat:
digna project import-ds ProjectB my_export.json --output-format json --output-file import_report.json
Raportul acoperă patru niveluri de obiecte — sursa de date, definiția setului de date, atributul și regula de validare — fiecare cu acțiunea sa de import, rezultatul, ID-ul obiectului rezultat și eventualele informații suplimentare.
project plan-import-ds¶
Comanda project plan-import-ds prezintă în avans un import de surse de date într-un proiect țintă, arătând ce obiecte ar fi create, actualizate sau omise, fără a modifica nimic. Preia același fișier de export și aceleași opțiuni de raportare ca project import-ds și adaugă un număr de pas pentru fiecare obiect planificat.
Utilizarea comenzii¶
Argumente¶
- PROJECT_NAME: Numele proiectului țintă (obligatoriu).
- EXPORT_FILE: Calea către fișierul de export (obligatoriu).
Opțiuni¶
--output-file,-o: Fișierul în care se scrie planul de import. Fără el, planul este trimis la stdout.--output-format,-f: Formatul planului de import —table,jsonsaucsv(implicit:table).
Exemplu¶
project cleanup¶
Comanda project cleanup elimină rezultatele inspecțiilor acumulate de un proiect într-un interval de date — profiluri, predicții, număr de rânduri și fiecare stare de verificare, atribut, set de date și sursă de date. Elimină exact ceea ce a scris o inspecție pentru acele date, astfel încât intervalul să poată fi reinspectat ulterior pentru a-l reconstrui.
Istoricul Timeliness și Schema Tracker nu este eliminat: acesta consemnează ce a observat digna într-o anumită zi, nu un rezultat derivat din aceasta, astfel încât curățarea unui interval de date din trecut îl lasă intact.
Fiecare sursă de date este curățată în propria tranzacție, astfel încât o rulare întreruptă lasă surse de date complete, nu una curățată pe jumătate.
Utilizarea comenzii¶
Argumente¶
- PROJECT_NAME: Proiectul care se curăță (obligatoriu). Un singur proiect per apel.
- FROM_DATE: Prima dată pentru care se elimină rezultatele,
YYYY-MM-DD(obligatoriu). - TO_DATE: Ultima dată pentru care se elimină rezultatele, inclusiv,
YYYY-MM-DD(obligatoriu).
Opțiuni¶
--table-name,-n: Limitează curățarea la aceste surse de date. Se pot indica mai multe nume, separate prin spații.--table-filter: Limitează curățarea la sursele de date al căror nume conține acest subșir.--dry-run: Listează sursele de date care ar fi curățate, fără a elimina nimic.--timing: Afișează cât a durat curățarea.
--table-name și --table-filter se combină ca un SAU — o sursă de date este curățată dacă este numită sau dacă subșirul se potrivește. Comanda eșuează dacă nicio sursă de date nu se potrivește, în loc să raporteze succes pentru o curățare care nu a făcut nimic.
Exemplu¶
Limitat la o singură sursă de date:
Exemplu de ieșire¶
Cleaning up project 'ProjectA' from 2026-01-01 to 2026-06-30:
- Table1
- Table2
- Table3
✅ Cleaned up 3 data source(s).
Pentru a vedea ce surse de date ar fi curățate, fără a elimina nimic:
Fiecare linie este marcată, astfel încât o rulare de probă nu poate fi confundată cu una reală:
Cleaning up project 'ProjectA' from 2026-01-01 to 2026-06-30:
- Table1 (dry run, nothing removed)
- Table2 (dry run, nothing removed)
- Table3 (dry run, nothing removed)
Dry run - 3 data source(s) would be cleaned up.
Gestionarea inspecțiilor¶
inspection run¶
Comanda inspection run creează o cerere de inspecție pentru un proiect și un interval de date, iar apoi — în funcție de opțiunile indicate — fie o așteaptă, fie se încheie imediat, fie o execută în propriul proces.
Cele trei moduri de execuție sunt:
- Implicit (fără indicator): cererea este pusă în coadă pentru backend, iar CLI-ul o interoghează la fiecare două secunde, afișând progresul sarcinilor până când inspecția ajunge într-o stare finală. Este necesar un
digna serveîn execuție, altfel nimic nu preia cererea. --async-mode: cererea este pusă în coadă, iar ID-ul ei este afișat imediat. Folosițiinspection statuspentru a o urmări.--bypass-backend: inspecția este executată chiar de procesul CLI și nu este pusă în coadă, deci nu este nevoie de un server în execuție.
--async-mode și --bypass-backend se exclud reciproc.
În toate modurile, comanda se încheie cu un cod de ieșire diferit de zero dacă inspecția nu s-a finalizat cu succes.
Utilizarea comenzii¶
Argumente¶
- PROJECT_NAME: Numele proiectului țintă (obligatoriu). Numele trebuie să corespundă exact.
- START_DATE: Data de început a intervalului, în formatul
YYYY-MM-DD(obligatoriu). - END_DATE: Data de sfârșit a intervalului, în formatul
YYYY-MM-DD(obligatoriu).
Opțiuni¶
--table-name: Restrânge inspecția la o singură sursă de date a proiectului, indicată prin numele sursei de date. Fără ea, sunt inspectate toate sursele de date ale proiectului.--async-mode: Pune inspecția în coadă și afișează ID-ul cererii în loc să o aștepte. Nu poate fi combinată cu--bypass-backend.--bypass-backend: Rulează inspecția direct în procesul CLI în loc să o pună în coadă pentru backend. Nu poate fi combinată cu--async-mode.
Exemplu¶
Pentru a trimite o inspecție asincronă:
Pentru a inspecta o singură sursă de date:
Exemplu de ieșire¶
Modul implicit:
Inspection request submitted. Waiting for completion (Request ID: 1024)...
Progress: 3/10 tasks completed (0 failed)
Progress: 10/10 tasks completed (0 failed)
Inspection completed successfully.
Inspection successful for project: ProjectA
Modul asincron:
inspection status¶
Comanda inspection status interoghează starea și progresul sarcinilor unei cereri de inspecție după ID-ul cererii.
Utilizarea comenzii¶
Argumente¶
- INSPECTION_REQUEST_ID: ID-ul numeric al cererii de inspecție (obligatoriu).
Exemplu¶
Exemplu de ieșire¶
Inspection Request ID: 1024
Status: Running
Project ID: 7
Date Range: 2024-01-01 to 2024-01-31
Progress: 3/10 tasks completed (0 failed)
inspection abort¶
Comanda inspection abort solicită anularea cererilor de inspecție în execuție sau în așteptare. Ea consemnează un eveniment de oprire pentru fiecare cerere vizată; backend-ul este cel care acționează pe baza lui, deci o întrerupere este o cerere de oprire, nu o oprire imediată.
Utilizarea comenzii¶
Argumente¶
- INSPECTION_REQUEST_ID: ID-ul cererii de inspecție care trebuie întreruptă. Obligatoriu, cu excepția cazului în care se indică
--killall.
Opțiuni¶
--killall: Întrerupe toate cererile de inspecție aflate în execuție și în așteptare. Are prioritate față de un ID de cerere indicat alături de ea.
Exemplu¶
Pentru a întrerupe o anumită cerere:
Pentru a întrerupe toate inspecțiile active și cele din coadă:
Exemplu de ieșire¶
--killall raportează ce a făcut; întreruperea unei singure cereri nu produce niciun rezultat afișat și semnalează succesul prin codul său de ieșire.
Gestionarea licențelor¶
license check¶
Comanda license check validează fișierul license.toml, verificându-i semnătura cu ajutorul cheii publice livrate împreună cu instalarea și controlând că nu a expirat. Nu citește nicio configurație a aplicației, deci funcționează și înainte ca config.toml să fie configurat.
Utilizarea comenzii¶
Exemplu de ieșire¶
O semnătură invalidă și o licență expirată sunt raportate ca erori distincte, ambele cu codul de ieșire 1.
Server și servicii de fundal¶
serve¶
Comanda serve lansează serverul REST API al aplicației digna, împreună cu planificatorul de inspecții și managerul de inspecții care rulează în fundal. La pornire, marchează de asemenea ca eșuată orice inspecție pe care repository-ul o mai consemnează ca fiind în execuție, întrucât nimic nu poate să fi supraviețuit dintr-un proces anterior.
Comanda rulează în prim-plan până când este oprită.
Utilizarea comenzii¶
Opțiuni¶
--address: Adresa de rețea la care se leagă serverul API (implicit:127.0.0.1).--port: Numărul portului pe care se ascultă (implicit:8000).
Exemplu¶
Exemplu de ieșire¶
Gestionarea serviciului Windows¶
Disponibil doar pe Windows. Comenzile înregistrează backend-ul digna în managerul de servicii Windows și îl controlează; serviciul în sine rulează serve în fundal. Fiecare comandă trebuie rulată dintr-un Command Prompt cu drepturi ridicate și fiecare acceptă --name, astfel încât să poată fi adresat un serviciu înregistrat sub un nume diferit de cel implicit.
windows install¶
Comanda windows install înregistrează digna ca serviciu Windows.
Adresa și portul indicate aici sunt consemnate în înregistrarea serviciului și sunt cele la care se leagă serviciul — nu sunt citite din config.toml. Pentru a le modifica ulterior, dezinstalați serviciul și instalați-l din nou.
Utilizarea comenzii¶
Opțiuni¶
--name: Numele sub care se înregistrează serviciul (implicit:digna).--display-name: Numele afișat în services.msc (implicit:digna).--description: Descrierea afișată în services.msc (implicit:digna data quality backend).--address: Adresa la care serviciul își leagă API-ul (implicit:127.0.0.1).--port: Portul la care serviciul își leagă API-ul (implicit:8000).--working-dir: Directorul care conțineconfig.tomlșilicense.toml, pe care serviciul îl folosește ca director de lucru (implicit: directorul executabiluluidigna).--start-type: Când pornește serviciul —autoodată cu Windows,manualdoar la cerere,disabledînregistrat, dar refuză să pornească (implicit:auto).--account: Contul sub care rulează, de ex.DOMAIN\usersau.\user(implicit:LocalSystem).--password: Parola pentru--account.
Exemplu¶
Înregistrare sub un al doilea nume, rulând cu un cont de domeniu:
digna windows install --name digna-test --display-name "digna (test)" --account DOMAIN\svc_digna --password <password>
windows start¶
Comanda windows start pornește un serviciu înregistrat.
Utilizarea comenzii¶
Opțiuni¶
--name: Numele sub care este înregistrat serviciul (implicit:digna).
windows stop¶
Comanda windows stop oprește un serviciu aflat în execuție. Opriți serviciul înainte de a înlocui orice fișier al aplicației.
Utilizarea comenzii¶
Opțiuni¶
--name: Numele sub care este înregistrat serviciul (implicit:digna).
windows uninstall¶
Comanda windows uninstall anulează înregistrarea serviciului. Opriți-l mai întâi.
Utilizarea comenzii¶
Opțiuni¶
--name: Numele sub care este înregistrat serviciul (implicit:digna).