# 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/ ... /... ``` `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.