Public registration form, operator review dashboard, and Keycloak provisioning hooks for the TAMIS dataspace.
Project description
djangoldp_tamis_onboarding
Public registration form, operator review dashboard, and Keycloak provisioning hooks for the TAMIS dataspace.
What's in here
RegisterParticipantmodel — mirrors theMediaEnterpriseCredentialVC claim shape (organisation, legal address, sectoral roles, general + billing contacts) plus a state-machine lifecycle (pending → processing → approved | rejected).ParticipantAttachmentmodel — one row per supporting document (K-bis, VAT cert, PROCIREP/ISAN proofs, etc.); files land in a private storage tree scoped per participant.- Public multi-step registration form (
/registration/) + success page. - Operator dashboard (
/registration/admin/) — Django-side approve / deny flow. - Keycloak provisioning stub (
keycloak_service.py) + background provisioning task (tasks.py) triggered onprocessing. - Email templates for admin notifications, rejection, and welcome.
./manage.py generate_sample_documents— plausible random supporting documents for demos and testing.
Requirements
- Python ≥ 3.10, Django 5.2, DjangoLDP 5.0
- Pillow (logo re-encoding and sample-doc rendering)
- python-magic + system
libmagic1(content-based MIME sniffing on uploads) setuptools<80in the host environment — DjangoLDP still importspkg_resources, which setuptools 80+ deprecates at import time (setuptools' own warning message says "<81" but the deprecation shipped in 80.x). Pin it in your image withpip install 'setuptools<80'before installing this package.
Install
pip install djangoldp-tamis-onboarding
Add to your DjangoLDP settings.yml:
dependencies:
- djangoldp-tamis-onboarding
ldppackages:
- djangoldp_tamis_onboarding
Then wire the URLs under your onboarding prefix (default onboarding/):
path("onboarding/", include("djangoldp_tamis_onboarding.urls")),
Configuration
Settings read by the package (all optional except TAMIS_ADMIN_MAILS):
| Setting | Purpose |
|---|---|
TAMIS_ADMIN_MAILS |
List of operator emails notified on each new submission. |
ONBOARDING_PREFIX |
URL prefix the host mounts the app under (default ""). |
ONBOARDING_HOMEPAGE_URL, ONBOARDING_DOCUMENTATION_URL, ONBOARDING_SUPPORT_EMAIL |
Links shown on the success page. |
TAMIS_ONBOARDING_PRIVATE_MEDIA_ROOT |
Directory for attachment bytes, kept outside MEDIA_ROOT so nginx can't serve them directly. Defaults to <MEDIA_ROOT>-private/. |
TAMIS_ONBOARDING_USE_XACCEL |
When True, the operator download view emits X-Accel-Redirect instead of streaming the file. Requires an internal; nginx location /internal-attachments/ block mapped to TAMIS_ONBOARDING_PRIVATE_MEDIA_ROOT. |
KEYCLOAK_BASE_URL, KEYCLOAK_REALM, KEYCLOAK_CLIENT_ID, KEYCLOAK_CLIENT_SECRET |
Read by keycloak_service.py (stubbed in Phase 1). |
Runnable stack
The governance-services/ docker-compose stack in the TAMIS workspace bundles this package with Keycloak + Postgres + nginx for local and staging onboarding.
Sample documents
Generate plausible K-bis, VAT certificates, PROCIREP/ISAN membership proofs for manual testing:
./manage.py generate_sample_documents --output ./sample-docs --count 3 --format both
License
MIT.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file djangoldp_tamis_onboarding-1.0.1.tar.gz.
File metadata
- Download URL: djangoldp_tamis_onboarding-1.0.1.tar.gz
- Upload date:
- Size: 37.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/45.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.7.0 tqdm/4.68.4 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e266b83ad23327db391f601bc3e745780801d98cdd7fa847c311d60448a1aaa
|
|
| MD5 |
1a9d00250f432a174b511cc861cf66da
|
|
| BLAKE2b-256 |
a8da5638f44b804f249ee877c0a22a9db77dc4502434f64d7a2e96e344570c3e
|
File details
Details for the file djangoldp_tamis_onboarding-1.0.1-py3-none-any.whl.
File metadata
- Download URL: djangoldp_tamis_onboarding-1.0.1-py3-none-any.whl
- Upload date:
- Size: 49.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.12.1.2 readme-renderer/45.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.7.0 tqdm/4.68.4 importlib-metadata/9.0.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
863e0a8648d9996f943ad5bc61a3e5098669d9d6e91c9d67eaf2ca87ca26197d
|
|
| MD5 |
6a8bf90c5cfd20a0d9e6006d66331dbd
|
|
| BLAKE2b-256 |
bb60eba6c7f1de74f0f181d86e8f8b91ea7b75f9ac11c62a5b17fa3416862158
|