Postman & testare
- Colecție:
docs/gnotify.postman_collection.json - Mediu local:
docs/gnotify-local.postman_environment.json
Import
Section titled “Import”- Postman → Import → alege ambele fișiere.
- Selectează mediul gnotify-local (bază
http://localhost:8090) sau schimbăbaseUrlînhttps://gnotify.gstack.esempla.systems. - Pentru API-ul de administrare, autentifică-te cu
admin/admin(JWT) — cererea de login salvează token-ul în variabila de mediu.
Note despre autentificare
Section titled “Note despre autentificare”/api/v1/**= mTLS. În producție necesită un certificat client PFX a cărui amprentă e înregistrată înSistem.certFingerprint. În dev mTLS e ocolit (gnotify.pfx.auth-disabled=true) — apelezi/api/v1direct cu sistemulbilling-service./api/admin/**+ UI = JWT (admin/admin) sau Keycloak OIDC (realmgnotify).
Fluxuri demo
Section titled “Fluxuri demo”A. Trimite + verifică status (mașină).
POST /api/v1/notify/TRK-DEMO-1{ "template":"invoice-ready","language":"ro", "variables":{"invoiceNumber":"F-1","name":"Ion"}, "channels":[{"channel":"email","tier":"important","recipient":"ion@example.md"}] }apoi GET /api/v1/notify/TRK-DEMO-1 → status agregat + livrări.
B. Consola de administrare + MNotify. POST /api/admin/notify cu "forwardMnotify": true → deschide Status notificare, caută după trackingId, verifică evenimentul MNOTIFY_SENT (mock: payload format, netrimis).
C. Trimite după IDNP/IDNO. (feature activ) POST /api/admin/notify-by-id cu un identificator → gNotify rezolvă contacte → preferință → canal.
D. Web Push. Portal (portalgnotify…) → Contul meu → activează push → POST /api/admin/notify cu canal push și recipient = IDNP → notificarea OS apare; Livrare → PUSH/SENT cu provider_message_id care începe cu webpush- (real; fake-push- = stub).
E. Cozi RabbitMQ. GET /api/admin/rabbit/queues → adâncimi; POST /api/admin/rabbit/queues/{queue}/replay → re-livrează din DLQ.
Teste automate
Section titled “Teste automate”# backend (fără JDK local → container maven)docker run --rm --user "$(id -u):$(id -g)" -e HOME=/tmp -v "$PWD":/app -w /app \ -v <m2-cache>:/m2 maven:3.9-eclipse-temurin-21 mvn -ntp -Dmaven.repo.local=/m2 verifynpx eslint ../npmw run e2e # Cypress (backend pornit)RabbitMQ local pentru testare completă: docker compose -f src/main/docker/rabbitmq.yml up -d (mgmt pe :15672).