Skip to content

Partner Service

Backend service for managing partners, legal information, and service definitions.

Overview

The Partner Service handles: - Partner CRUD operations - Legal information management (company details, tax ID, banking info, certifications) - Service definition management with lifecycle hooks - RabbitMQ event publishing for partner lifecycle events - Service Text Management: Multilingual, AI-augmented workflow for service descriptions and content.

Key Features

Service Text Management

This service implements a dual-approval workflow for managing translatable and enhanced text content for services. It integrates with the AI Service for transformations like translation, sanitization, and enhancement.

See Service Text Management Guide for detailed documentation on workflows and data models.

Action Reasons

Admin-managed lookup tables for predefined reasons in contract workflows. When voiding a contract or requesting changes, admins can select from configurable reasons in addition to providing free-text comments.

See Action Reasons Guide for detailed documentation on the feature and API.

API Endpoints

Partners

  • GET /api/partners - List all partners
  • GET /api/partners/:id - Get partner by ID
  • POST /api/partners - Create new partner
  • PATCH /api/partners/:id - Update partner
  • DELETE /api/partners/:id - Delete partner

Partner Services

  • GET /api/partners/:partnerId/services - List all services for a partner
  • GET /api/partners/:partnerId/services/:id - Get service by ID
  • POST /api/partners/:partnerId/services - Create new service definition
  • PATCH /api/partners/:partnerId/services/:id - Update service definition
  • DELETE /api/partners/:partnerId/services/:id - Delete service definition

Action Reasons (Admin)

  • GET /api/partners/admin/action-reasons?context=:context - List reasons by context
  • GET /api/partners/admin/action-reasons/:id - Get reason by ID
  • POST /api/partners/admin/action-reasons - Create new reason
  • PATCH /api/partners/admin/action-reasons/:id - Update reason
  • DELETE /api/partners/admin/action-reasons/:id - Delete reason
  • PUT /api/partners/admin/action-reasons/reorder - Reorder reasons

Database Schema

See services/partner-service/src/common/database/database.service.ts for schema definitions.

Events Published

  • partner.created - When a new partner is created
  • partner.activated - When a partner status changes to ACTIVE
  • partner.suspended - When a partner status changes to SUSPENDED
  • partner.deleted - When a partner is deleted
  • service.defined - When a new service is defined
  • service.activated - When a service status changes to ACTIVE
  • service.deleted - When a service is deleted

Environment Variables

  • PORT - Service port (default: 3000)
  • DATABASE_URL - PostgreSQL connection string
  • RABBITMQ_URL - RabbitMQ connection string
  • PARTNER_EXCHANGE - RabbitMQ exchange name (default: partner.events)