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>
3.8 KiB
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 S1–S2 (šema) idu POSLE
docs/asp-terminia/03-zadaci.mdZ1 (ASP proizvod) da se ne sudaraju migracije — ili u dogovoru sa tim agentom (istimigrations/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 | ⬜ |