Skip to content
StableAudienceDevSécuritéOpsMétierOwner@platform-teamDernière revue2026-05-21

Service Service Catalog

Catalogue dynamique des services de paiement, des providers et des workflows opérateurs. Source de vérité pour toutes les définitions métier portant la combinatoire « quel service, par quel provider, avec quel pricing, en suivant quel workflow ».

Identité

AttributValeur
Package@nex/service-service-catalog v1.0.0
Port3000 (configurable via PORT)
Schéma DBservice_catalog (PostgreSQL)
Swaggerservices/service-catalog/src/main.ts:64SwaggerModule.setup actif
README❌ absent
Owner@platform-team

Responsabilité

  • Définir les services métier offerts (cash-in, cash-out, transferts, payouts…) avec leurs étapes, champs requis, règles, pricing.
  • Référencer les providers externes (Mobile Money, banques) et leurs endpoints, mappages de champs et d'erreurs, flows d'authentification.
  • Porter les workflows de paiement et les variables d'exécution associées.
  • Exposer le tout via API pour que le reste de la plateforme (orchestrator, CMMS, apps) puisse construire dynamiquement l'expérience utilisateur sans hard-coder de logique.

Sous-domaines

DomaineControllers
Services & catégoriesservice-categories, services, service-steps, service-fields, service-rules
Pricingservice-pricing, service-price-breakdowns
Workflowsservice-workflows, service-payment-flows, workflow-variables
Providersproviders, provider-endpoints, provider-auth-flows, provider-tokens
Mappages d'intégrationfield-mappings, endpoint-response-mappings
Cas d'usage métiermass-payments (paiements en masse)
Miscapp (health)

Surface API

18 controllers pour ~90 endpoints HTTP. CRUD standard (POST / GET / GET :id / PATCH :id / DELETE :id) sur la majorité des ressources.

ControllerRoute racine
app.controller.ts/ (health)
service-categories.controller.ts/service-categories
services.controller.ts/services
service-steps.controller.ts/service-steps
service-fields.controller.ts/service-fields
service-rules.controller.ts/service-rules
service-pricing.controller.ts/service-pricing
service-workflows.controller.ts/service-workflows
service-payment-flows.controller.ts/service-payment-flows
providers.controller.ts/providers
provider-endpoints.controller.ts/provider-endpoints
provider-auth-flows.controller.ts/provider-auth-flows
provider-tokens.controller.ts/provider-tokens
field-mappings.controller.ts/field-mappings
endpoint-response-mappings.controller.ts/endpoint-response-mappings
workflow-variables.controller.ts/workflow-variables
service-price-breakdowns.controller.ts/service-price-breakdowns
mass-payments.controller.ts/mass-payments

Modèle de données

18 entities dans services/service-catalog/src/**/*.entity.ts :

ServiceCategory, Service, ServiceStep, ServiceField, ServiceRule, ServicePricing, ServiceWorkflow, ServicePaymentFlow, Provider, ProviderEndpoint, FieldMapping, EndpointResponseMapping, WorkflowVariable, ServicePriceBreakdown, ProviderAuthFlow, ProviderToken, UploadLink, SalarySubmission.

Schéma PostgreSQL service_catalog configuré via TypeORM. Convention de schéma par service (ADR-0014).

Dépendances

TypeDétails
Inter-services NexAucun import direct de @nex/shared-types ou @nex/shared-utils détecté dans app.module.ts.
Cacheioredis + @nestjs/cache-manager
HTTP@nestjs/axios
DBpg + typeorm
Docs APIswagger-ui-express

Pages à produire (Lot futur)

  • api.md — détail des endpoints (OpenAPI auto-généré)
  • data-model.md — ERD complet, relations entre les 18 entities
  • runbook.md — invalidation cache, troubleshooting provider down
  • threat-model.md — STRIDE (les tokens providers en DB sont sensibles)

Notes pour l'audit

  • Trou de doc historique : 90 endpoints, 0 page d'architecture jusqu'à 2026-05-21.
  • Tokens providers stockés dans ProviderToken — vérifier chiffrement at-rest et politique de rotation côté /security/secrets-management.
  • UploadLink + SalarySubmission — entities qui croisent file-service, à expliciter dans le data-model.

Nex — Plateforme fintech CEMAC