Paket je nastao u asp-terminia/licence/ ali je sav posao serverski, pa se seli ovde. Firmverska strana je gotova od FW 0.10.0 i ne dira se. - docs/asp-terminia/ - 6 dokumenata: postojece stanje servera i FW klijenta, tacan API ugovor koji firmware ocekuje, zadaci Z1-Z6 sa kriterijumima prihvatanja, pravila rada na produkciji, enforcement pitanja E1-E6 - reference prepravljene: "ASP repo" = https://git.terminia.net/djuka/asp-terminia (ranije su pokazivale na lokalnu putanju D:\priv\... koja vise ne postoji) - CLAUDE.md: sekcija o cetvrtom proizvodu + pokazivac na paket ASP-Terminia se od ESIR/ARV/LIGHT_TICKET razlikuje po tome sto je machine_fingerprint MAC cipa (eFuse), a uredjaj radi offline - mrezna greska ne sme da ga obori. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
61 lines
3.4 KiB
Markdown
61 lines
3.4 KiB
Markdown
# ASP-Terminia — licenciranje (radni paket)
|
||
|
||
> **Misija:** dovesti licenciranje ASP‑Terminia terminala do produkcije na
|
||
> postojećem `dal-license-server`-u (server 151), bez lomljenja ijednog
|
||
> postojećeg klijenta (ESIR/ARV/LIGHT_TICKET su ŽIVI u produkciji).
|
||
>
|
||
> **Jezik projekta:** srpski (ekavica), latinica. Kod/komentari na serveru su Go —
|
||
> komentari srpski ASCII.
|
||
|
||
> **Poreklo:** paket je nastao u firmverskom repou (`asp-terminia/licence/`) i
|
||
> prebačen ovde 2026-07-24, jer je sav posao serverski. Firmverska strana je
|
||
> gotova i ne dira se. „**ASP repo**" u tekstu znači
|
||
> <https://git.terminia.net/djuka/asp-terminia>.
|
||
|
||
## Sadržaj foldera
|
||
|
||
| Fajl | Šta je unutra |
|
||
|---|---|
|
||
| [01-postojece-stanje.md](01-postojece-stanje.md) | šta VEĆ postoji: server (Go/MySQL/nginx/kripto) i firmware klijent (gotov!) |
|
||
| [02-api-ugovor-firmware.md](02-api-ugovor-firmware.md) | tačan ugovor koji firmware očekuje — polja, potpis, greške |
|
||
| [03-zadaci.md](03-zadaci.md) | šta treba uraditi, redom, sa kriterijumima prihvatanja |
|
||
| [04-pravila-rada.md](04-pravila-rada.md) | **OBAVEZNO pročitati prvo** — produkcija, backup, tajne, granice |
|
||
| [05-enforcement-odluke.md](05-enforcement-odluke.md) | pitanja E1–E6 za vlasnika: šta uređaj radi bez licence |
|
||
|
||
## Kontekst u 5 redova
|
||
|
||
1. **Šta se licencira:** ESP32‑S3 terminal za kontrolu prolaza (bazeni/spa), proizvod
|
||
**„ASP‑Terminia"** (Autonomni Sistem Prolaza). Licenca je vezana za **MAC** čipa
|
||
(eFuse, nepromenljiv) preko `machine_fingerprint`.
|
||
2. **Server već postoji:** `dal-license-server` (Go, MySQL, RSA‑2048/SHA‑256) na
|
||
`157.180.119.151`, u produkciji sa 3 proizvoda / ~140 licenci / ~19 aktivacija.
|
||
3. **Firmware klijent je GOTOV** (modul `licenca.h/.cpp` u firmveru, od verzije 0.10.0):
|
||
aktivacija, offline verifikacija potpisa javnim ključem, UI. Čeka samo proizvod
|
||
i ključ na serveru.
|
||
4. **Dva sloja:** potpisana lokalna licenca (radi offline) + serverska provera/obnova
|
||
(opoziv). Mrežna greška NIKAD ne obara uređaj.
|
||
5. **Domeni (kupuje vlasnik):** `licenca.terminia.net` → 157.180.119.151 (Let's
|
||
Encrypt). Dok domena nema, uređaj radi preko IP‑a sa `setInsecure()` — odluku
|
||
ionako štiti RSA potpis, ne TLS kanal.
|
||
|
||
## Šta agent NE radi
|
||
|
||
- Ne donosi odluku o **ponašanju uređaja bez licence** (gašenje funkcija) — to je
|
||
odluka vlasnika (pitanja u 03-zadaci.md §Z4). Priprema se predlog, čeka se DA.
|
||
- Ne dira postojeće proizvode (ESIR, ARV, LIGHT_TICKET) niti `terminia` SaaS
|
||
(portovi 8091/8092 na istom serveru — TO NIJE OVAJ POSAO).
|
||
- Ne čita niti loguje tajne (`.env`, privatni ključ) — vidi 04-pravila-rada.md.
|
||
|
||
## Veze ka ostatku projekta
|
||
|
||
- **Firmware repo (ASP repo):** <https://git.terminia.net/djuka/asp-terminia>
|
||
(klijent: `firmware/10_terminia/licenca.h`, `licenca.cpp`; javni ključ ugrađen).
|
||
Firmverska strana je GOTOVA od FW 0.10.0 — ovaj paket je ne dira.
|
||
- Dizajn/istorijat: `ASP repo docs/18-licenciranje-po-mac.md` (pisan PRE nego što je pravi
|
||
API poznat — gde se razlikuju, **ovaj folder je merodavan**), `ASP repo docs/21-platforma-i-provisioning.md`.
|
||
- Serviserska strana (RBAC, uređaji, LoggerService): `ASP repo: serviseri/` —
|
||
isti backend, drugi radni paket; koordinacija preko šeme baze (vidi tamo 01).
|
||
*(Taj paket se seli u ovaj repo posebno — vidi dogovor od 2026-07-24.)*
|
||
- Serverski kod i konvencije: [../../CLAUDE.md](../../CLAUDE.md),
|
||
[../ARCHITECTURE.md](../ARCHITECTURE.md), [../../API.md](../../API.md).
|