Portal Integration Service
Component Detail
Description
Backend service that persists and manages external portal configuration per organization. Handles OAuth credential encryption at rest, test-connection requests to the declared endpoint, and exposes a capability boundary read endpoint consumed during session bootstrap so clients know which features are delegated to the external portal.
portal-integration-service
Sources & reasoning
A dedicated service layer is required to encapsulate credential encryption, test-connection logic, and role-gated access. The implementation notes call out encryption at rest and no-plaintext-return as hard constraints that belong in service logic, not the UI layer.
No source references — this artifact was included based on reasoning alone (see above).
Responsibilities
- Create, update, and delete external portal config records scoped to an organization
- Encrypt OAuth client credentials before persistence; never return secrets in plaintext
- Execute test-connection HTTP probe against the declared portal URL and return status
- Expose capability boundary map as part of organization bootstrap response
- Enforce role-based access control - only Org Admins and Global Admins may read or write
Interfaces
getPortalConfig(orgId)
upsertPortalConfig(orgId, payload)
deletePortalConfig(orgId)
testConnection(orgId)
getCapabilityBoundaries(orgId)
updateCapabilityBoundaries(orgId, boundaries)
Relationships
Dependents (2)
Components that depend on this component
Related Data Entities (1)
Data entities managed by this component