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>
63 lines
2.9 KiB
Markdown
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.
|