Service Layer medium complexity backend
2
Dependencies
1
Dependents
4
Entities
0
Integrations

Description

Backend service encapsulating all business logic for reading and writing organization settings. Validates incoming payloads against allowed fields and value ranges, encrypts sensitive fields (e.g., integration API keys) using AES-256 before persistence, and emits structured audit log events for every write operation. Enforces multi-tenant isolation by verifying the requesting user's JWT org context before any operation.

Feature: Organization Settings

organization-service

Responsibilities

  • Validate organization settings update payloads against business rules
  • Encrypt sensitive fields (API keys, credentials) at rest using AES-256
  • Persist validated settings via Organization Repository
  • Emit audit log events for all settings changes including actor, field, old value, and new value
  • Enforce multi-tenant isolation by matching JWT org context to target org ID

Interfaces

getOrganizationSettings(orgId: string): Promise<OrganizationSettings>
updateOrganizationSettings(orgId: string, payload: Partial<OrganizationSettings>, actorId: string): Promise<OrganizationSettings>
encryptSensitiveFields(settings: Partial<OrganizationSettings>): Partial<OrganizationSettings>
validateSettingsPayload(payload: unknown): ValidationResult
emitSettingsAuditEvent(orgId: string, changes: SettingsChangeDiff, actorId: string): void

Relationships

Dependencies (2)

Components this component depends on

Dependents (1)

Components that depend on this component