Connects OpenSPP to Disability Registry (DR) systems via DCI API. Queries PWD (Person with Disability) status, retrieves functional assessment scores, and caches disability information locally. Supports both synchronous queries and asynchronous callback notifications from DR systems.
- Query disability status from remote DR systems using DCI client
- Cache disability data in local records with sync status tracking (synced, stale, error)
- Receive async search response callbacks via FastAPI endpoints
- Verify callback signatures using Ed25519 or RSA-256 algorithms
- Match DR responses to OpenSPP registrants by UIN, DRN, or National ID
- Refresh cached data manually or programmatically
| Model | Description |
|---|---|
spp.dci.disability.status |
Cached disability data: PWD flag, disability types, functional scores, raw data |
spp.dci.dr.sender |
Trusted DR registry entries with sender_id, public keys, and JWKS endpoints |
After installing:
- Navigate to Settings > Technical > DCI > Configuration > DR Senders
- Create a DR sender record with
sender_idmatching the remote DR system - Configure the JWKS URL (e.g.,
https://dr.example.org/.well-known/jwks.json) - Click Fetch Public Key to retrieve and store the DR's public key for signature verification
To query disability status programmatically:
from odoo.addons.spp_dci_client_dr.services.dr_service import DRService
dr_service = DRService(env, data_source_code='dr_main')
disability_data = dr_service.get_disability_status(partner)
is_pwd = dr_service.is_pwd(partner)- Menu: Settings > Technical > DCI > Activity Logs > Disability Status
- Configuration: Settings > Technical > DCI > Configuration > DR Senders
- Callback Endpoints:
/dci_api/dr/on-search,/dci_api/dr/on-subscribe
Disability Status form:
- Disability Information: Disability types and functional scores (JSON)
- Raw Data: Original JSON data received from DR system
- Notes: Additional notes about disability status
- Error Details: Error message if sync failed (visible only when error exists)
DR Sender form:
- Public Key: PEM-encoded public key for signature verification
- Notes: Additional notes about the DR registry
| Group | Access |
|---|---|
base.group_system |
Full CRUD on disability status and DR sender registry |
base.group_user |
Read/Write/Create disability status, read-only DR sender registry |
- Override
DRService._extract_disability_data()to customize parsing of DR response fields - Override
DRService._extract_functional_scores()to handle custom score formats - Inherit
spp.dci.disability.statusto add domain-specific disability fields - Extend callback router at
spp_dci_client_dr.routers.callbackto handle additional DR callback types
spp_dci_client, spp_dci_server, spp_registry
Important
This is an alpha version, the data model and design can change at any time without warning. Only for development or testing purpose, do not use in production.
Table of contents
- Initial migration to OpenSPP2
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
- OpenSPP.org
Current maintainers:
This module is part of the OpenSPP/OpenSPP2 project on GitHub.
You are welcome to contribute.




