Z1: proizvod ASP-Terminia (migracija + registracija u startup listi)
Migracija po sablonu 002_seed_products.sql (INSERT IGNORE, idempotentna). limits/features su PLACEHOLDER - vlasnik jos nije odlucio pakete (basic/pro). Bezbedno jer: - server cuva oba polja kao json.RawMessage, cist passthrough, ne tumaci ih - firmware (ASP-TERMINIA repo, licenca.cpp) JOS NE CITA features/limits - parsira samo edition/customer/expires_at/grace_days/machine_fingerprint; enforcement dolazi tek u zadatku Z4 - svaka izdata licenca nosi SVOJE limits/features (ne nasledjuje default posle izdavanja), pa promena default-a kasnije ne trazi novu migraciju cmd/server/main.go: registrovan migrations/004_... u runMigrations() listi (migracije se pokrecu automatski pri svakom startu servisa, ali SAMO iz te liste - nov fajl sam po sebi ne bi se pokrenuo bez ove linije). Resava P3 iz docs/asp-terminia/02-api-ugovor-firmware.md (format limits/features za ASP proizvod) - opisano u poruci commit-a kao odgovor. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
79877e9ee5
commit
56f2dfe17f
@ -84,6 +84,7 @@ func runMigrations(db *sql.DB) {
|
|||||||
"migrations/001_create_tables.sql",
|
"migrations/001_create_tables.sql",
|
||||||
"migrations/002_seed_products.sql",
|
"migrations/002_seed_products.sql",
|
||||||
"migrations/003_create_admin_users.sql",
|
"migrations/003_create_admin_users.sql",
|
||||||
|
"migrations/004_seed_asp_terminia.sql",
|
||||||
}
|
}
|
||||||
for _, f := range files {
|
for _, f := range files {
|
||||||
data, err := os.ReadFile(f)
|
data, err := os.ReadFile(f)
|
||||||
|
|||||||
12
migrations/004_seed_asp_terminia.sql
Normal file
12
migrations/004_seed_asp_terminia.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
-- Z1: proizvod ASP-Terminia (ASP repo docs/asp-terminia/03-zadaci.md)
|
||||||
|
--
|
||||||
|
-- limits/features su PLACEHOLDER dok vlasnik ne odluci pakete (basic/pro).
|
||||||
|
-- Server ih ne tumaci (json.RawMessage, cist passthrough) i firmware ih
|
||||||
|
-- JOS NE CITA (enforcement dolazi kasnije, zadatak Z4) - menjanje ovih
|
||||||
|
-- vrednosti kasnije NE trazi novu migraciju, samo UPDATE reda, i ne utice
|
||||||
|
-- na vec izdate licence (svaka licenca nosi SVOJE limits/features, ne
|
||||||
|
-- nasledjuje default proizvoda posle izdavanja).
|
||||||
|
INSERT IGNORE INTO products (code, name, key_prefix, default_limits, available_features) VALUES
|
||||||
|
('ASP-TERMINIA', 'ASP-Terminia', 'ASP-',
|
||||||
|
'{"max_readers": 4, "max_cards": 5000}',
|
||||||
|
'["FEAT_CARDCHECK", "FEAT_ISSUE", "FEAT_PRINT", "FEAT_CATALOG", "FEAT_ANTIPASS", "FEAT_SYNC", "FEAT_OTA"]');
|
||||||
Loading…
Reference in New Issue
Block a user