ARP STS Keycloak
Keycloak-based dev STS helper for the ARP Standard. This package provides a small CLI
that writes a ready-to-run Keycloak docker compose file plus a preconfigured arp-dev
realm with ARP clients.
Quick start
pip install arp-sts-keycloak
arp-sts-keycloak init --output ./arp-keycloak
cd ./arp-keycloak
docker compose up -d
Keycloak will be available at http://localhost:8080.
Default realm
The bundled realm is named arp-dev and includes the following clients:
arp-dev-cli(public client; device flow)arp-daemon(client secret:arp-daemon-secret)arp-runtime(client secret:arp-runtime-secret)arp-tool-registry(client secret:arp-tool-registry-secret)arp-run-gateway(client secret:arp-run-gateway-secret)arp-run-coordinator(client secret:arp-run-coordinator-secret)arp-composite-executor(client secret:arp-composite-executor-secret)arp-atomic-executor(client secret:arp-atomic-executor-secret)arp-node-registry(client secret:arp-node-registry-secret)arp-selection-service(client secret:arp-selection-service-secret)arp-pdp(client secret:arp-pdp-secret)
Each service client is configured for client-credentials flow and includes an audience mapper
so the access token aud claim matches the client ID.
Additionally, arp-dev-cli is a public client configured for the OAuth device flow (RFC 8628).
The default realm also seeds a dev user for the browser step:
- username:
dev - password:
dev
Get a token (client credentials)
curl -sS \
-X POST \
http://localhost:8080/realms/arp-dev/protocol/openid-connect/token \
-d 'grant_type=client_credentials' \
-d 'client_id=arp-runtime' \
-d 'client_secret=arp-runtime-secret'
Use the resulting access_token as Authorization: Bearer <token>.
Service configuration hints
- Issuer:
http://localhost:8080/realms/arp-dev - OIDC discovery:
http://localhost:8080/realms/arp-dev/.well-known/openid-configuration - Audience: match the ARP service ID (for example
arp-runtime)
Notes
- This package is intended for local development and testing.
arp-sts-keycloak initwrites two files:docker-compose.ymlandrealm-export.json.- Use
--forceto overwrite existing files.
Release files for arp-sts-keycloak 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arp_sts_keycloak-0.2.2.tar.gz | 7.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arp_sts_keycloak-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:14.1 kB
Release files / arp_sts_keycloak-0.2.2.tar.gz
| Download URL | arp_sts_keycloak-0.2.2.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
655dc51a9166ef6d95afd834f585b463dc5a87b75ee81489f080ef8a84458dd4
|
|
BLAKE2b-256 checksum How to use checksums |
d68fccbde9aff51cd75cb3feae3c9771a639590e9025dd9c2f5fbec6e041e894
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Jan 3, 2026.
Transparency logRelease files / arp_sts_keycloak-0.2.2-py3-none-any.whl
| Download URL | arp_sts_keycloak-0.2.2-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2491955fd65d02ba77407a1a78ec3566cdf13e852b19ec231c765e40e82efc70
|
|
BLAKE2b-256 checksum How to use checksums |
ccd5ccbf10344c0efde8770e16e7fa7a6325abc77385f2a2f6101aa6e0367d9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Jan 3, 2026.
Transparency log