Opis za rad
Node 20+, bez ijedne zavisnosti. Pitanja, klasifikacija i kontrole su čist JavaScript (`assess.mjs`), dokaz se čita iz JSONL audit loga (`evidence.mjs`), a web sloj (`server.mjs`, `form.mjs`, `report-html.mjs`) samo prikazuje isti rezultat koji CLI već pravi.
Kako se pokreće
node src/cli.mjs serve # HTTP (PORT, default 8799) node src/cli.mjs assess --file sample/answers.json --audit sample/audit.jsonl --out report.md node src/cli.mjs init --out answers.json # empty questionnaire node _qa/desk.mjs # 5/5 checks
API
| metod | putanja | šta radi |
|---|---|---|
GET | /watch | upitnik (SR) |
GET | /watch/en | upitnik (EN) |
GET | /watch/sample | popunjen primer izveštaja |
POST | /assess | računa procenu i vraća izveštaj kao stranu |
GET | /report.md?d= | isti izveštaj kao Markdown (base64url odgovori) |
GET | /health | da li radi |
GET | /metrics | koliko je procena urađeno, po nivou |
Podaci
- sample/answers.json — primer odgovora (izmišljen slučaj: selekcija kandidata)
- sample/audit.jsonl — primer audit loga; dokaz se računa iz njega (brojevi + sha256)
- data/assessments.jsonl — samo brojači (vreme, nivo, broj rupa, sektor); odgovori se ne čuvaju
Ograničenja — šta ovaj demo ne radi
- Nije pravno mišljenje ni sertifikat; ne zamenjuje DPIA ni ocenu usklađenosti.
- Klasifikacija je checklist po okidačima, ne tumačenje prava za konkretan slučaj.
- Bez klijentovog audit loga nema dokaza — izveštaj tada to i kaže.
- Demo nema autentikaciju; odgovori se ne čuvaju na serveru.
Kako se postavlja
Jedan Node proces iza nginx-a, systemd servis, Let’s Encrypt. Recept: E:\poslovi\DEMO-REGISTAR.md.
Demo ne troši novac i ne čuva tuđe odgovore: procena je čist JavaScript, bez modela i bez mrežnih poziva.