Contract Service¶
Backend service for contract management with SLA monitoring and financial terms.
Overview¶
The Contract Service handles: - Contract CRUD operations (partner-level and service-level) - Contract templating with service-specific overrides - SLA metrics definition and monitoring - Financial terms management (revenue models, commission, payment terms, settlement methods) - Real-time SLA breach detection and event publishing
API Endpoints¶
Contracts¶
GET /api/contracts- List all contractsGET /api/contracts/partner/:partnerId- List contracts for a partnerGET /api/contracts/:id- Get contract by IDPOST /api/contracts- Create new contractPATCH /api/contracts/:id- Update contractPOST /api/contracts/:id/override- Apply service-specific overridesDELETE /api/contracts/:id- Delete contract
Database Schema¶
See services/contract-service/src/common/database/database.service.ts for schema definitions.
Events Published¶
contract.created- When a new contract is createdcontract.activated- When a contract status changes to ACTIVEcontract.expired- When a contract expirescontract.terminated- When a contract is terminatedcontract.deleted- When a contract is deletedsla.breached- When an SLA metric is breachedsla.compliant- When an SLA metric returns to compliance
Environment Variables¶
PORT- Service port (default: 3000)DATABASE_URL- PostgreSQL connection stringRABBITMQ_URL- RabbitMQ connection stringCONTRACT_EXCHANGE- RabbitMQ exchange name (default:contract.events)