Skip to main content

PyPI GitHub release (latest by date including pre-releases) Versions PyPI - License GitHub issues GitHub pull requests

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.

  1. 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_secret that gets printed, as you will need this.

  2. 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)

Source distribution for wipac-keycloak-rest-services 1.5.8
File Size Uploaded
wipac_keycloak_rest_services-1.5.8.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for wipac-keycloak-rest-services 1.5.8
File Interpreter ABI Platform
wipac_keycloak_rest_services-1.5.8-py3-none-any.whl Python 3 none any Details

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

Release history Release notifications | RSS feed

This release

1.5.8 This release

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.99

2 release files

1.4.98

2 release files

1.4.97

2 release files

1.4.96

2 release files

1.4.95

2 release files

1.4.94

2 release files

1.4.93

2 release files

1.4.92

2 release files

1.4.91

2 release files

1.4.90

2 release files

1.4.89

2 release files

1.4.82

2 release files

1.4.81

2 release files

1.4.80

2 release files

1.4.79

2 release files

1.4.78

2 release files

1.4.77

2 release files

1.4.76

2 release files

1.4.75

2 release files

1.4.74

2 release files

1.4.73

2 release files

1.4.72

2 release files

1.4.66

2 release files

1.4.65

2 release files

1.4.64

2 release files

1.4.63

2 release files

1.4.62

2 release files

1.4.61

2 release files

1.4.58

2 release files

1.4.57

2 release files

1.4.56

2 release files

1.4.55

2 release files

1.4.54

2 release files

1.4.53

2 release files

1.4.52

2 release files

1.4.45

2 release files

1.4.44

2 release files

1.4.43

2 release files

1.4.37

2 release files

1.4.36

2 release files

1.4.35

2 release files

1.4.34

2 release files

1.4.33

2 release files

1.4.19

2 release files

1.4.18

2 release files

1.4.17

2 release files

1.4.16

2 release files

1.4.15

2 release files

1.4.14

2 release files

1.4.13

2 release files

1.4.12

2 release files

1.4.11

2 release files

1.4.10

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.10

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.10

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.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