Zentraler, eigenständiger Validierungsdienst für InkFlow-Lizenzen. Läuft komplett unabhängig (eigenes Repo, eigene Postgres, eigenes docker-compose).
cp .env.example .env # ADMIN_API_KEY setzen
docker compose up -d # license-server (:8080) + postgres (:5433)Migrationen laufen beim Containerstart automatisch.
POST /api/license/validate — Header Authorization: Bearer <bearer_token>, Body { "ipAddress"?: "…" }
→ 200 { valid, expiresAt, daysUntilExpiry, model, nextCheckRequired }
→ 404 { valid:false, reason, expiresAt } (reason: License expired | Key not found | IP mismatch | License deactivated)
POST /api/admin/licenses/create—{ companyName, expiresAt, model?, ipAddress? }→ Lizenz inkl.key+bearer_tokenPUT /api/admin/licenses/:id—{ model?, expiresAt?, ipAddress?, active? }GET /api/admin/licensesGET /api/admin/licenses/:id/audit— Validierungs-Historie
key (XXXX-XXXX-XXXX-XXXX, für Menschen), bearer_token (Secret für die API-Calls),
model (free/pro/enterprise), expires_at, optionale IP-Bindung, active,
last_validated_at. Jede Validierung wird in license_validations protokolliert.
npm install
npm test # baut, legt Test-DB an, führt Validierungs- + Admin-Tests aus