How harmonizedx/open-residency works
OpenResidency is jurisdiction-owned residency verification and trust infrastructure. Its main workflow is operator-led identity verification, policy-gated residency issuance, then credential delivery and cross-sector use. The graph also retains offline access, OpenID login, consent and governance, lifecycle/audit, and operator administration. Edges follow the documented workflow and sampled controller calls; several unsampled subsystems are represented by their supported source paths without speculative internal wiring.
Main entry points: prisma.service.ts Resident store · residency-service.ts Residency service · residency.controller.ts Residency API · oid4vci.controller.ts OpenID4VCI API
Components 29
Enrollment and residency
- Identity API
src/identity/identity.controller.ts - Residency API
src/residency/residency.controller.ts - Residency service
src/core/residency/residency-service.ts - Identity sources
src/core/foundational/registry.ts - Source adapters
src/core/foundational/adapters - Resident store
src/prisma/prisma.service.ts
Credential exchange
- OpenID4VCI API
src/oid4vci/oid4vci.controller.ts - Credential issuance
src/core/oid4vci/oid4vci-service.ts - OpenID4VP API
src/oid4vp/oid4vp.controller.ts - Presentation verification
src/core/oid4vp/oid4vp-service.ts - VC verification API
src/vcapi/vcapi.controller.ts
Access and inclusion
- Offline access API
src/offline/offline.controller.ts - Sector SSO
src/sso/oidc.provider.ts - Login interaction
src/sso/interaction.controller.ts - WebAuthn service
src/core/sso/webauthn-service.ts - USSD and SMS
src/core/offline/ussd.ts
Governance and assurance
- Consent management
src/consent/consent.controller.ts - Assurance registry
src/core/assurance/registry.ts - Audit trail
src/core/audit/audit-log.ts - Privacy controls
src/core/privacy/erasure.ts
Deployment operations
- Operator administration
src/operator/operator.controller.ts - Platform services
src/platform/platform.service.ts - Upstream OIDC
src/upstream/upstream.controller.ts - Federation trust
src/core/operator/federated.ts
Other components
- Citizen
- Registrar
- National ID source
- Credential wallet
- Sector service
Connections 35
- Registrar → Identity API: starts verification
- Identity API → Residency service: requests verification
- Residency service → Identity sources: resolves provider
- Identity sources → Source adapters: selects adapter
- Source adapters → National ID source: checks identity
- National ID source → Source adapters: returns result
- Registrar → Residency API: requests issuance
- Residency API → Residency service: issues credential
- Residency service → Assurance registry: checks assurance
- Residency service → Resident store: records resident
- Residency API → Resident store: reads resident
- Credential wallet → OpenID4VCI API: requests credential
- OpenID4VCI API → Credential issuance: handles exchange
- Credential issuance → Resident store: reads residency
- OpenID4VCI API → Credential wallet: returns credential
- Credential wallet → OpenID4VP API: submits presentation
- OpenID4VP API → Presentation verification: verifies presentation
- Sector service → OpenID4VP API: requests verification
- Sector service → VC verification API: verifies credential
- Citizen → Offline access API: uses offline access
- Offline access API → USSD and SMS: handles USSD
- Offline access API → Resident store: looks up resident
- Sector service → Sector SSO: starts login
- Sector SSO → Login interaction: dispatches interaction
- Login interaction → WebAuthn service: verifies factor
- Login interaction → Audit trail: records login
- Registrar → Operator administration: manages accounts
- Operator administration → Platform services: uses operator services
- Residency API → Audit trail: records lifecycle
- Consent management → Resident store: checks resident
- Consent management → Audit trail: records governance
- Privacy controls → Resident store: erases data
- Upstream OIDC → Platform services: uses identity client
- Platform services → Federation trust: provides federation
- USSD and SMS → Citizen: sends status