Integration Layer
integration-layer
Infrastructure and integration patterns for src/app/integration, including Firebase/AngularFire usage, Data Connect codegen, repository adapters, DTO mapping, and streaming boundaries; use when touching persistence, external APIs, or platform SDKs.
SKILL.md
Full skill instructions
Integration Layer
Intent
Implement external integrations (Firebase, Data Connect, HTTP, SDKs) behind stable ports so the rest of the app stays framework-agnostic.
Layer Boundaries
- Only integration/infrastructure may import Firebase/AngularFire/DataConnect SDKs.
- Expose interfaces/tokens to Application; never expose platform types.
Repository Adapters
- Implement repository ports with minimal mapping:
- DTO <-> Domain mapping happens here (or in dedicated mappers within integration).
- Keep mapping deterministic; normalize timestamps/IDs.
Streams and Signals
- Integration may return Observables (streaming) or Promises (commands).
- Convert to signals at the Application boundary (store/facade), not in templates.
- Ensure cleanup: avoid manual subscriptions unless lifecycle-bound.
Data Connect
- Treat generated SDK as read-only output.
- After schema changes, regenerate before app code changes.
- Enforce auth directives and least-privilege queries.
Security
- Never trust client input.
- Keep secrets in env/secret manager, not in source.
- Avoid string-concatenated queries; use parameterized APIs.
