This release is a pre-release and may not be stable for production use.
dpdpkit-spec
The single REST contract for dpdpkit. The FastAPI adapter, the Django
adapter, dpdpkit-server and dpdpkit Cloud all expose exactly this API. The conformance suite here
decides whether an adapter can be released.
Disclaimer. dpdpkit is software that helps you implement obligations under India's Digital Personal Data Protection Act, 2023 and the DPDP Rules, 2025. It does not provide legal advice and does not guarantee compliance.
openapi.yaml: OpenAPI 3.1, the source of truth.@dpdpkit/clientgenerates its types from it.dpdpkit-conformance: black-box pytest suite (src/dpdpkit_conformance/suite).
Running the conformance suite
pip install "dpdpkit-conformance[asgi] @ git+https://github.com/dpdpkit-dev/dpdpkit-spec@main"
# against a running server
DPDPKIT_BASE_URL=http://localhost:8000/dpdp dpdpkit-conformance
# in-process against an ASGI app (FastAPI, dpdpkit-server)
DPDPKIT_ASGI_APP=app:app DPDPKIT_PREFIX=/dpdp dpdpkit-conformance
What the app under test must do
- Publish a notice with at least one consent-based purpose.
- Conformance mode: resolve the principal from the
X-DPDP-Test-Principalheader and the admin role (viewer,handler,admin) fromX-DPDP-Test-Role. Enable this only in test configuration. - Register at least one erasure handler (the suite does not trigger erasure, but a production-like setup should).
Any adapter that fails the suite is not released (release-train rule).
Changing the contract
- Additive changes (new optional field, new endpoint) are minor releases.
- Removing or renaming anything is a breaking change: bump the major version and deprecate first.
- Every change updates the conformance suite in the same pull request.
Licence
Apache-2.0.
Metadata
Release files for dpdpkit-conformance 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dpdpkit_conformance-0.1.0a1.tar.gz | 17.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dpdpkit_conformance-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.5 kB
Release files / dpdpkit_conformance-0.1.0a1.tar.gz
| Download URL | dpdpkit_conformance-0.1.0a1.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ec5f0d5578eb949d0869862fa109913d2ca71d553a7645adb2854dee15a851a1
|
|
BLAKE2b-256 checksum How to use checksums |
d885b30c6238a36fb5c0e2dbc46bc262e606e6eed10d63600ab7844c44699aed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / dpdpkit_conformance-0.1.0a1-py3-none-any.whl
| Download URL | dpdpkit_conformance-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fb4a41589cfd7515999263195b19c416edd01a75fe084cfe3d5f37b508435894
|
|
BLAKE2b-256 checksum How to use checksums |
62030c57d97d9079a0b677f2e93d0a42455c3780426b945c85e0386406061e91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency log