Servizio NestJS per la gestione tenant, utenti, gateway e configurazioni della piattaforma NoTIP.
Node.jsenpm- un database configurato per l'applicazione
Keycloakraggiungibile, usato per autenticazione e impersonation- per gli smoke test:
curlejq
Installazione dipendenze:
npm installAvvio in sviluppo:
npm run start:devBuild produzione:
npm run build
npm run start:prodLint:
npm run lint:checkType check:
npm run typecheckTest unitari:
npm testTest e2e:
npm run test:e2eGET /verifica base del servizioGET /auth/meritorna il profilo autenticatoPOST /auth/impersonateesegue token exchange persystem_adminGET /admin/tenantsePOST /admin/tenantsper gestione tenantGET /admin/gatewaysePOST /admin/gatewaysper gestione gateway lato adminGET /gatewaysper gateway del tenant corrente
Per una panoramica più ampia degli endpoint coperti lato integrazione, vedi lo script scripts/test/smoke-all-endpoints.sh.
Il repository include lo script scripts/test/smoke-all-endpoints.sh, utile per una validazione rapida end-to-end dell'API contro un ambiente locale o condiviso.
Cosa verifica:
- autenticazione e
GET /auth/me - amministrazione tenant e gateway
- operazioni tenant su gateway, utenti, chiavi e soglie
- alerts, audit log, costi, API clients e command endpoints
- protezioni cross-tenant e blocchi in impersonation
Esecuzione:
bash scripts/test/smoke-all-endpoints.shVariabili supportate dallo script:
API_URLdefaulthttp://localhost:3000KC_URLdefaulthttp://localhost:8080REALMdefaultnotipCLIENT_IDCLIENT_SECRETSYS_USERSYS_PWDCURL_TIMEOUTCURL_CONNECT_TIMEOUTRUN_ID
Esempio con override espliciti:
API_URL=http://localhost:3000 \
KC_URL=http://localhost:8080 \
CLIENT_ID=notip-mgmt-backend \
CLIENT_SECRET=your-secret \
bash scripts/test/smoke-all-endpoints.shNote operative:
- lo script crea fixture temporanee per tenant, utenti e gateway
- a fine esecuzione prova a fare cleanup delle risorse create
- richiede un ambiente coerente con Keycloak configurato e raggiungibile
- in caso di errore mostra lo status HTTP atteso/ricevuto e il body della risposta
Per rigenerare la specifica OpenAPI:
npm run generate:openapiGenerazione migration:
npm run migration:generate -- src/database/migrations/<nome-migration>Esecuzione migration:
npm run migration:runRollback migration:
npm run migration:revert