4.4 KiB
4.4 KiB
Integration Map
Overview
This map identifies external or boundary integrations, where they are used, and what to validate when touched.
1) Authentication + Account Persistence
- Tech:
next-auth, Prisma adapter, SQL Server via Prisma - Primary files:
pages/api/auth/[...nextauth].jsprisma/schema.prisma
- Data sensitivity: High (session/account identity)
- Validation focus:
- Sign-in, verify-request, error, and callback behavior
- Safe redirect handling
- Session expiry and cookie behavior
1a) Portal Data Access (CRM via Relay)
- System of record: Microsoft Dynamics 365 CRM (portal business/case data)
- Query style: REST API calls and OData query patterns
- Transport path: Frontend API routes -> Azure Service Bus Relay -> Dynamics 365 CRM
- Relay endpoint config:
API_ROOTenvironment variable - Request integrity: Request path (excluding domain) is hashed before forwarding; relay recomputes using shared hash key and validates match
- Primary files:
pages/api/endpoint/*_api.jsactions/index.js(query construction/helpers, hash generation)
- Data sensitivity: High (case and user-associated business data)
- Validation focus:
- Query correctness and filter safety
- Relay failure/timeout handling
- Hash validation compatibility between frontend and relay
- API contract consistency between endpoint handlers
- No sensitive payload leakage in logs
2) GOV.UK Notify (Email)
- Tech:
notifications-node-client - Primary files:
actions/index.jspages/api/email/notify.jspages/api/email/getall.js- next-auth email provider in
pages/api/auth/[...nextauth].js
- Data sensitivity: Medium-High (contact details + transactional messaging)
- Validation focus:
- Correct template selection (EN/CY)
- Error handling and retry/fallback behavior
- No sensitive data leakage in logs
3) Azure Storage + Queues
- Tech:
@azure/storage-blob,@azure/storage-queue, managed identity patterns - Primary files:
actions/azurestorage.jspages/api/file/**- selected admin utils under
components/admin/utils/**
- Data sensitivity: High (documents/uploads)
- Validation focus:
- File type/size/path validation
- Upload/download/delete authorization boundaries
- Queue message integrity and failure handling
4) Application Insights
- Tech:
applicationinsights, React app insights integration - Primary files:
components/azureappinsights.js
- Data sensitivity: Medium (telemetry may include operational metadata)
- Validation focus:
- Telemetry starts only when configured
- No personal/sensitive payloads in custom logs/events
5) Mapping
- Tech:
leaflet,react-leaflet,google-map-react, embedded map URLs - Primary files:
components/mapping/**components/search/dnssearchresults.js- CSP/middleware references to map frame sources
- Validation focus:
- CSP/frame-src compatibility
- Graceful handling when external map resources are unavailable
6) PDF and Document Generation
- Tech:
@react-pdf/renderer, template components, upload APIs - Primary files:
pages/api/file/generatepdf.jspages/api/file/generateappealpdf.jscomponents/pdftemplates/**
- Validation focus:
- Correct template selection by appeal/document type
- Encoding/formatting robustness for submitted rich text
- Safe download headers and document naming
Integration Change Checklist (apply whenever any integration is modified)
- Confirm required env vars are documented (without exposing values).
- Verify timeout/error/negative path behavior.
- Validate EN/CY output where user-facing content is integration-driven.
- Record risk and validation evidence in PR and
memory-bank/change-log.md.
Relay policy change minimum evidence (operational)
For changes to shared relay timeout/retry/logging policy, include:
- Non-prod smoke evidence for:
- deterministic non-retry classes (
400,401,403,404) - transient retry classes (
429,503, timeout transport failures)
- deterministic non-retry classes (
- Structured redacted logging verification and duplicate-log suppression confirmation.
- Rollback/migration controls:
- quick config mitigation (
RELAY_RETRY_MAX=0) - full commit revert path.
- quick config mitigation (
Reference: context/runbook.md -> Relay Hardening Rollout Playbook (TASK22239).