licence-server/docs/asp-terminia/README.md
Nenad Djukic 1abe7176ec Preimenovanje: dal-license-server -> licence-server (+ debrendiranje)
Vlasnik izlazi iz DAL price za ovaj projekat - postaje samostalan proizvod.
Preimenovanje je mehanicko (import putanje, imena fajlova/baze/UI naslova),
NIJEDNA linija poslovne logike u internal/handler ili internal/service nije
dirana - go build, go vet i go test ./... prolaze cisto pod novim imenom.

- go.mod: module dal-license-server -> licence-server; 28 import linija u
  13 .go fajlova usaglaseno
- internal/config/config.go (+test): default DB_NAME licence_db
- HTML sabloni (7 stranica) + 7 Playwright e2e spec fajlova: "DAL License
  Server" -> "Licence Server" u title/nav-brand, testovi usaglaseni u istom
  prolazu (nista ne moze da se razdvoji)
- package.json/package-lock.json/.gitignore/.claude/project.json: ime
  projekta/binarnog fajla/work_dir
- Usput: package.json je u repository.url nosio OTVORENU Gitea lozinku u
  cistom tekstu - uklonjena (URL sad bez kredencijala). Lozinka je i dalje
  u staroj git istoriji - preporuka: rotirati je posebno.
- CLAUDE.md/README/API/TESTING/docs/SPEC/ARCHITECTURE/SETUP: naslovi, ASCII
  dijagrami, git clone URL, mysqldump primer, systemd predlozak u SETUP.md
  zamenjen stvarnim (obrazac terminia.service - journal log + graceful
  shutdown, ne stari minimalni predlozak)
- Debrendiranje: "Univerzalni licencni server za sve DAL proizvode" ->
  "za vise proizvoda i klijenata"; potpis "Nenad Djukic / DAL d.o.o." ->
  "Nenad Djukic". NE dirano: nazivi ESIR/ARV/LIGHT_TICKET (tudji proizvodi,
  ne DAL brend), "DAL" kao stvaran naziv org-a u RBAC modelu
  (docs/loggerservice/README.md) - to je podatak, ne branding ovog servera.
- docs/asp-terminia/, docs/loggerservice/: prozni pomeni imena servera

Baza (dal_license_db -> licence_db) i deploy na 151 idu u posebnom koraku,
posle preimenovanja Gitea repoa - vidi CLAUDE.md istorijsku belesku na dnu.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-25 07:55:26 +02:00

3.4 KiB
Raw Permalink Blame History

ASP-Terminia — licenciranje (radni paket)

Misija: dovesti licenciranje ASPTerminia terminala do produkcije na postojećem licence-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 šta VEĆ postoji: server (Go/MySQL/nginx/kripto) i firmware klijent (gotov!)
02-api-ugovor-firmware.md tačan ugovor koji firmware očekuje — polja, potpis, greške
03-zadaci.md šta treba uraditi, redom, sa kriterijumima prihvatanja
04-pravila-rada.md OBAVEZNO pročitati prvo — produkcija, backup, tajne, granice
05-enforcement-odluke.md pitanja E1E6 za vlasnika: šta uređaj radi bez licence

Kontekst u 5 redova

  1. Šta se licencira: ESP32S3 terminal za kontrolu prolaza (bazeni/spa), proizvod „ASPTerminia" (Autonomni Sistem Prolaza). Licenca je vezana za MAC čipa (eFuse, nepromenljiv) preko machine_fingerprint.
  2. Server već postoji: licence-server (Go, MySQL, RSA2048/SHA256) 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 IPa 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, ../ARCHITECTURE.md, ../../API.md.