keycloak-rest-services
Services surrounding Keycloak, that use the REST API to read/update state.
JavaScript claims mappers
In the custom-jars directory are custom extensions to Keycloak. This is most useful
for adding JavaScript claims mappers that can edit a token before it is issued.
Each mapper requires meta-inf info and one or more script files. Then it needs to be
packaged into a jar for deployment to Keycloak. The build.sh script will build
all subdirectories into jars.
These jars need to be added to /opt/keycloak/providers/ during the Keycloak build
process or before Keycloak starts. After Keycloak is started no changes are allowed.
Running Tests
To run tests locally:
First, build and load the local python environment:
./setupenv.sh
. env/bin/activate
Then, start instances of Keycloak, LDAP, and RabbitMQ in other terminals:
./resources/start-keycloak.sh
./resources/start-ldap.sh
./resources/start-rabbitmq.sh
Note that version of Keycloak server used for testing is set in resources/keycloak-image/Dockerfile.
Keycloak may take a minute to start. If it does not, check your network settings, as it does not play well with VPNs and other more exotic network situations.
Finally, run the tests:
source ./resources/pytest-env.sh
pytest
Getting Test Coverage
If you want a coverage report, instead of running pytest directly, run it under the coverage tool:
keycloak_url=http://localhost:8080 username=admin password=admin coverage run -m pytest
coverage html --include='krs*'
Manually Running Scripts
It is possible to manually run all of the basic operations for controlling users and groups.
-
Bootstrap Keycloak
If you do not already have a Keycloak instance, start a test instance as shown above. Then, run the bootstrap script to create a realm and the REST service account:
keycloak_url=http://localhost:8080 username=admin password=admin realm=test python3 -m krs.bootstrap
Save the
client_secretthat gets printed, as you will need this. -
User and group actions
Now you can actually run the scripts, which take the format:
keycloak_url=http://localhost:8080 client_id=rest-access client_secret=<SECRET> realm=test python -m krs.<SCRIPT> <ARGS>
As an example, to list all groups:
keycloak_url=http://localhost:8080 client_id=rest-access client_secret=<SECRET> realm=test python -m krs.groups list
Metadata
Release files for wipac-keycloak-rest-services 1.5.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| wipac_keycloak_rest_services-1.5.8.tar.gz | 1.5 MB | Without provenance | Details for wipac_keycloak_rest_services-1.5.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| wipac_keycloak_rest_services-1.5.8-py3-none-any.whl | Python 3 | none | any | Details for wipac_keycloak_rest_services-1.5.8-py3-none-any.whl |
Total release size: 1.6 MB
Release files / wipac_keycloak_rest_services-1.5.8.tar.gz
| Download URL | wipac_keycloak_rest_services-1.5.8.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
030c4d40a8b832ce142b791b15f5a3899d7cb8ad6d0402d4f029d5be84b994dc
|
|
BLAKE2b-256 checksum How to use checksums |
ac36a03ee8684b7ef86af0fd39dce0e9b06e4cbbfa622b8329984455355f53e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / wipac_keycloak_rest_services-1.5.8-py3-none-any.whl
| Download URL | wipac_keycloak_rest_services-1.5.8-py3-none-any.whl |
|---|---|
| Size | 32.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
250ff796264a44ff5efdeb4e180346c62cc61889bad8c2a00f0547358f7756d3
|
|
BLAKE2b-256 checksum How to use checksums |
21284cea30bdeaf65381d8e8ad3f2aade2c2090aff30e1fc74603f0c318bdcdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for wipac-keycloak-rest-services 1.5.8
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.