licence-server/docs/loggerservice/04-zadaci.md
Nenad Djukic 28296b390c Preuzet radni paket LoggerService (RBAC kontrolna ravan) iz firmverskog repoa
Paket je nastao u asp-terminia/serviseri/ ali je sav posao serverski (isti
backend i baza kao ASP-Terminia licenciranje), pa se seli ovde - isto
obrazlozenje i put kao docs/asp-terminia/.

- docs/loggerservice/ - 7 dokumenata: vizija/MVP (merodavan dokument),
  ZAKLJUCEN RBAC model (stablo orgs, 4 role, invarijante, seme tabela),
  heartbeat/discovery formati koje uredjaj vec salje, provisioning i
  katalog firmvera, zadaci S1-S7, pravila rada na produkciji
- reference prepravljene: "ASP repo" = https://git.terminia.net/djuka/asp-terminia,
  link ka docs/asp-terminia/ unutar istog repoa umesto stare "dal-license-server
  repo:" oznake
- CLAUDE.md: sekcija LoggerService + koordinacija sa docs/asp-terminia/
  (S1-S2 idu POSLE Z1 da se migracije ne sudare)

Firmverska strana (svc.cpp, discovery/heartbeat) ostaje u ASP repou i ne dira se.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-25 07:10:37 +02:00

3.8 KiB
Raw Blame History

Zadaci (redom; svaki sa kriterijumom prihvatanja)

⚠️ AŽURIRANO 2026-07-24 uveče: vizija je proširena — LoggerService je aplikacija za servisne firme (vidi 00-vizija-i-mvp.md, MERODAVNO). Zadaci ispod važe uz izmene: S1 šema se širi jezgrom (oprema/klijenti/nalozi/ zaduženja/zalihe), S4 „dashboard" = MVP aplikacije (jezgro + tok klijent→nalog→oprema→istorija), modul „Uređaji" = toggle po firmi, minimalno: lista+status+dodela FW (više FW proizvoda!) + direktna veza na licencni server.

Koordinacija: zadaci S1S2 (šema) idu POSLE docs/asp-terminia/03-zadaci.md Z1 (ASP proizvod) da se ne sudaraju migracije — ili u dogovoru sa tim agentom (isti migrations/ folder, numeracija se nastavlja). Svaki write na produkciju: backup + izričita dozvola (05-pravila-rada.md).

S1 — Migracije RBAC šeme (pun model odmah)

Šta: migracije za tabele iz 01-rbac-model.md: orgs, users (proširenje ili nova, zavisno od postojeće admin auth šeme — PROVERITI šta postoji), devices, entitlements, service_grants, sale_grants. Seed: koren Terminia (vendor) + org DAL (kupac) pod njim.

Prihvatanje: migracije prolaze na kopiji baze pa na produkciji; postojeće tabele/podaci netaknuti; ER skica (tekstualna) u ovom folderu.

S2 — Registracija razvojnog uređaja

Šta: ubaciti razvojni terminal u devices: MAC 1C:DB:D4:A6:A4:60, product_code ASP-Terminia, org DAL (ili test org), fw_verzija tekuća.

Prihvatanje: red postoji; vidljiv u (privremenom) pregledu/upitu po podstablu.

S3 — Heartbeat prijemnik

Šta: UDP servis (Go, deo istog procesa ili poseban systemd unit) po 02-uredjaji-heartbeat-discovery.md §2: prima JSON, upsert devices (fw/ip/poslednji_heartbeat), nepoznat MAC → tabela/lista „neregistrovani". Dbg tok (§3): upis u fajlove po MAC/danu sa rotacijom (logrotate ili u kodu).

Prihvatanje: sa razvojnog uređaja (vlasnik podesi Podešavanja → Servis na javnu adresu:port) stiže heartbeat i devices.poslednji_heartbeat se pomera; status online/offline izračunljiv.

S4 — Minimalni dashboard (LoggerService lice, inkrement 1)

Šta: na postojeći htmx admin sloj dodati: lista org-stabla, lista uređaja (status/fw/heartbeat), lista neregistrovanih + dugme „usvoji u org". Vidljivost striktno po podstablu prijavljenog (invarijanta 2 iz 01).

Prihvatanje: vlasnik (koren) vidi sve; test user u DAL vidi samo DAL podstablo.

S5 — Service grants (inkrement 2)

Šta: CRUD za service_grants + provera u middleware-u (serviser vidi/dira samo ciljeve granta, u roku važenja). Org tipa „serviser" + test serviser nalog.

Prihvatanje: serviser nalog vidi TAČNO grantovane uređaje; posle isteka vazi_do — ništa.

S6 — Katalog firmvera (posle Z6 potpisa)

Šta: nginx fw.terminia.net statika (ili do domena: putanja na postojećem sajtu) + mozak-endpoint „daj mi URL za moju verziju" (MAC+licenca → potpisan kratkotrajni URL). Format manifesta USKLADITI sa firmware stranom pre implementacije.

Prihvatanje: curl tok: uređaj-identitet → URL → download .bin + .sig; verifikacija potpisa javnim ključem prolazi.

S7 — Model B alat (USB flešer)

Po 03-provisioning-i-fw-katalog.md §4. Može i ranije (nezavisan od servera).

Prihvatanje: nova ploča → terminia-setup AP za <5 min, MAC ispisan.


Zahtevi ka firmveru (dopisivati; radi firmware strana, ne ovaj agent)

# Zahtev Status
F1 Heartbeat na JAVNU adresu: potvrditi UDP kroz NAT u realnom okruženju ili preći na HTTPS POST (upisati odluku)
F2 Manifest format za auto-OTA (bootstrap Model A) — dogovoriti polja
F3 (po potrebi) registracioni token pri prvom javljanju uređaja