licence-server/docs/loggerservice/03-provisioning-i-fw-katalog.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

63 lines
2.9 KiB
Markdown

# Provisioning i katalog firmvera
## 1. Dvofazni dogovor (ASP repo `docs/21-platforma-i-provisioning.md` §4)
| Faza | Model | Stanje |
|---|---|---|
| MVP | **Model B** — USB flešer alat na PC-u | alat ne postoji (zadatak); bootstrap FW postoji i pokriva veći deo potrebe |
| Kasnije | **Model A** — bootstrap FW + mrežni OTA sa kataloga | bootstrap URAĐEN (lokalni upload); auto-download čeka domen |
## 2. Šta VEĆ postoji u firmware repou
### Inicijalni (bootstrap) FW — `firmware/00_inicijalni/`
- Flešuje se USB-om JEDNOM na novu ploču (isti fqbn/particije kao pun FW:
`app3M_fat9M_16MB` → ota_0 + ota_1 + ffat).
- Ponašanje: digne otvoren AP **`terminia-setup`** → `http://10.10.10.10`
stranica prikaže **MAC** (identitet za licencu/registraciju) i primi PUN firmware
kao `.bin` (OTA upload) → restart u TERMINIA.
- BEZ interneta/domena/prijave (fizički pristup = servisni pristup; AP živi samo
dok je bootstrap aktivan).
- **Model A dorada (kad proradi `fw.terminia.net`):** bootstrap dobija i opciju
„preuzmi sa kataloga" — javi se mozgu sa MAC-om, dobije potpisan URL, skine,
verifikuje potpis, upiše. (Zahtev ka firmveru — zapisati u 04 kad server bude spreman.)
### Pun FW — OTA upload već radi
- SPA → Podešavanja → Uređaj → „Nadogradnja firmvera": upload `.bin`
(ruta `/api/ota`, samo admin). `.bin` artefakt: `build/ota/10_terminia.ino.bin`.
## 3. Katalog firmvera — dogovorena arhitektura („opcija C — sredina")
- **Mozak = licencni/entitlement server:** na zahtev uređaja (MAC + licenca +
entitlement `fw_kanal`) izdaje **kratkotrajni potpisani download URL**.
- **Mišić = statični nginx** na `fw.terminia.net`: servira **RSA-potpisane `.bin`**
artefakte. Kasnije `CNAME → CDN` bez izmene na uređaju.
- **Uređaj UVEK verifikuje RSA potpis slike** — URL/kanal je samo usmeravanje.
- **Pravilo (tvrdo):** FW potpisivanje je OBAVEZNO PRE puštanja kataloga/auto-OTA.
Potpisni deo je u paketu [`docs/asp-terminia/03-zadaci.md`](../asp-terminia/03-zadaci.md) §Z6 (isti kripto-lanac tim).
### Predlog rasporeda kataloga (implementaciona sloboda)
```
fw.terminia.net/
asp-terminia/
stable/ 10_terminia-0.11.0.bin 10_terminia-0.11.0.sig manifest.json
beta/ ...
<sledeci-proizvod>/...
```
`manifest.json`: verzija, sha256, potpis, min-bootstrap, changelog — tačan format
uskladiti sa firmware stranom pre implementacije (zapisati u 04 „Zahtevi ka firmveru").
## 4. Model B alat (USB flešer) — obim
PC alat (može PowerShell/Python skript u prvoj verziji) koji:
1. detektuje COM port ploče,
2. flešuje **inicijalni FW** (`esptool`/`arduino-cli upload`),
3. ispiše MAC (čita ga sa serijskog boot ispisa) za registraciju/licencu,
4. (opciono) odmah otpremi i pun `.bin` kroz `terminia-setup` AP.
Prihvatanje: nova ploča od kutije do „terminia" AP-a za < 5 minuta bez ručnih koraka
osim kablova.