Z1: upisan odgovor na P3 (limits/features format) u API ugovor
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
56f2dfe17f
commit
47721f400d
@ -68,5 +68,32 @@ HTTP ≠ 200 → firmware čita JSON polje `"error"` i prikazuje ga korisniku uz
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| P1 | Tačna formula `machine_fingerprint` u Go kodu (ulazni string, velika/mala slova, dvotačke?) | ⬜ proveriti u kodu servera |
|
| P1 | Tačna formula `machine_fingerprint` u Go kodu (ulazni string, velika/mala slova, dvotačke?) | ⬜ proveriti u kodu servera |
|
||||||
| P2 | Da li `activate` na VEĆ aktiviran ključ + ISTI fingerprint vraća licencu ponovo (re-aktivacija posle brisanja NVS) ili `ALREADY_ACTIVATED`? Za teren nam treba: isti uređaj sme ponovo. | ⬜ proveriti/podesiti |
|
| P2 | Da li `activate` na VEĆ aktiviran ključ + ISTI fingerprint vraća licencu ponovo (re-aktivacija posle brisanja NVS) ili `ALREADY_ACTIVATED`? Za teren nam treba: isti uređaj sme ponovo. | ⬜ proveriti/podesiti |
|
||||||
| P3 | Tačan skup polja `license` objekta za ASP proizvod (limits/features imena) | ⬜ definisati uz Z1 |
|
| P3 | Tačan skup polja `license` objekta za ASP proizvod (limits/features imena) | ✅ odgovoreno uz Z1 (2026-07-25) — vidi ispod |
|
||||||
| P4 | `expires_at` format (ISO8601?) — firmware poredi prvih 10 znakova (`YYYY-MM-DD`) | ⬜ potvrditi |
|
| P4 | `expires_at` format (ISO8601?) — firmware poredi prvih 10 znakova (`YYYY-MM-DD`) | ⬜ potvrditi |
|
||||||
|
|
||||||
|
### Odgovor P3 (2026-07-25)
|
||||||
|
|
||||||
|
Server čuva `limits`/`features` kao `json.RawMessage` — **ne tumači ih, samo
|
||||||
|
ih potpisano vraća** (potvrđeno čitanjem `internal/model/license.go`,
|
||||||
|
`internal/model/request.go`). Firmware (ASP-TERMINIA repo, `licenca.cpp`)
|
||||||
|
**trenutno uopšte ne čita ova dva polja** — parsira samo `edition`,
|
||||||
|
`customer`/`customer_name`, `expires_at`, `grace_days`,
|
||||||
|
`machine_fingerprint`. Enforcement (kad `features`/`limits` postanu bitni) je
|
||||||
|
odložen na Z4.
|
||||||
|
|
||||||
|
Zaključak: format nije bio ni bitan za Z1/Z2 (bez FW koda koji ga čita, ništa
|
||||||
|
se ne lomi bilo kojim izborom). Proizvod `ASP-TERMINIA` je zaveden
|
||||||
|
(`migrations/004_seed_asp_terminia.sql`) sa **placeholder** vrednostima:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"limits": {"max_readers": 4, "max_cards": 5000}
|
||||||
|
"features": ["FEAT_CARDCHECK", "FEAT_ISSUE", "FEAT_PRINT", "FEAT_CATALOG", "FEAT_ANTIPASS", "FEAT_SYNC", "FEAT_OTA"]
|
||||||
|
```
|
||||||
|
|
||||||
|
`features` su imena iz ASP repo `docs/18-licenciranje-po-mac.md` §6.3 (string
|
||||||
|
nizovi, ne bitmaska — server ionako ne tumači, a string nizovi su čitljiviji
|
||||||
|
u dashboardu i lakši za FW proveru kad enforcement dođe: `"FEAT_X" in niz`
|
||||||
|
umesto bitmaske). **Ovo NIJE konačna odluka o paketima** (basic/pro) — vlasnik
|
||||||
|
to još nije odlučio; svaka izdata licenca nosi svoje `limits`/`features`
|
||||||
|
nezavisno od default-a proizvoda, pa se default sme promeniti kasnije bez
|
||||||
|
posledica po već izdate licence.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user