Skip to main content

djangoldp_tamis_onboarding

Public registration form, operator review dashboard, and Keycloak provisioning hooks for the TAMIS dataspace.

What's in here

  • RegisterParticipant model - mirrors the MediaEnterpriseCredential VC claim shape (organisation, legal address, sectoral roles, general + billing contacts) plus a state-machine lifecycle (pending → processing → approved | rejected).
  • ParticipantAttachment model - 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 on processing.
  • Branded HTML + plain-text emails (templates/onboarding/email/): password magic link, admin notification on a new application, admin notification when connector details are ready for technical approval, approval, rejection, change requests, and the (off by default) Keycloak credentials mail. All extend email/_base.html, which mirrors the registration views' lockup, fonts and colours.
  • ./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<80 in the host environment - DjangoLDP still imports pkg_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 with pip 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, and when an applicant submits their connector details for technical approval.
TAMIS_ONBOARDING_SEND_KEYCLOAK_CREDENTIALS_EMAIL Send the "Welcome to TAMIS - your credentials" mail after provisioning (default False). Keep it off while keycloak_service.py is stubbed: the credentials it returns are generated locally and log in nowhere. Applicants are pointed at the password they chose during registration by the approval email instead.
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.

Metadata

Release files for djangoldp-tamis-onboarding 1.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for djangoldp-tamis-onboarding 1.1.4
File Size Uploaded
djangoldp_tamis_onboarding-1.1.4.tar.gz 79.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for djangoldp-tamis-onboarding 1.1.4
File Interpreter ABI Platform
djangoldp_tamis_onboarding-1.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 199.4 kB

Release files / djangoldp_tamis_onboarding-1.1.4.tar.gz

Download URL djangoldp_tamis_onboarding-1.1.4.tar.gz
Size 79.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4f44fe7dc6c560cb1eb1822925ff8c94a949003cb01edafb91cfcf990e17c4ff
BLAKE2b-256 checksum
How to use checksums
ab3e52a7c6816b719f1537f6e66312c0a913494253fb7b5a335eee57d6f57553
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.13 readme-renderer/46.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.8.0 tqdm/4.70.1 importlib-metadata/9.0.1 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.16

Release files / djangoldp_tamis_onboarding-1.1.4-py3-none-any.whl

Download URL djangoldp_tamis_onboarding-1.1.4-py3-none-any.whl
Size 120.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
97d78add4ecf6cdbd0cfe0eb20efeb2a5f056a392a6a1d8f824cea0c94abb32a
BLAKE2b-256 checksum
How to use checksums
eac50ecd47f4153cdf1594ad2df9958dfe4e09d142eac5b1edead092782192dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.13 readme-renderer/46.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.8.0 tqdm/4.70.1 importlib-metadata/9.0.1 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.16

Release history Release notifications | RSS feed

1.1.5

2 release files

This release

1.1.4 This release

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page