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
    

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wipac_keycloak_rest_services-1.5.6.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wipac_keycloak_rest_services-1.5.6-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

Details for the file wipac_keycloak_rest_services-1.5.6.tar.gz.

File metadata

File hashes

Hashes for wipac_keycloak_rest_services-1.5.6.tar.gz
Algorithm Hash digest
SHA256 ab3608da6062a7b10fbf75fc120c9df00f4b1381eb9e8ee469570b8efccaf528
MD5 9f3041720c6e0195aa9a0f1dd4bbba61
BLAKE2b-256 ebd063f7a672e9460ffe67b656d86357e359bb0e24fb857c460e91e7c2d50b93

See more details on using hashes here.

File details

Details for the file wipac_keycloak_rest_services-1.5.6-py3-none-any.whl.

File metadata

File hashes

Hashes for wipac_keycloak_rest_services-1.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 bc1e7d37049fb0e8c20a74ce736be4bea663b363a5a60923209edfee98a0c594
MD5 84c868ab05de377b4048403a5a4d1b3f
BLAKE2b-256 f2bed8f71d262629476912c15f7a17b7a825340546d974248ecb4d303cec43a2

See more details on using hashes here.

Release history Release notifications | RSS feed

1.5.7

2 files

This release

1.5.6 This release

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.123

2 files

1.4.122

2 files

1.4.121

2 files

1.4.120

2 files

1.4.119

2 files

1.4.118

2 files

1.4.117

2 files

1.4.116

2 files

1.4.115

2 files

1.4.114

2 files

1.4.113

2 files

1.4.112

2 files

1.4.111

2 files

1.4.110

2 files

1.4.109

2 files

1.4.108

2 files

1.4.107

2 files

1.4.106

2 files

1.4.105

2 files

1.4.104

2 files

1.4.103

2 files

1.4.102

2 files

1.4.101

2 files

1.4.100

2 files

1.4.99

2 files

1.4.98

2 files

1.4.97

2 files

1.4.96

2 files

1.4.95

2 files

1.4.94

2 files

1.4.93

2 files

1.4.92

2 files

1.4.91

2 files

1.4.90

2 files

1.4.89

2 files

1.4.88

2 files

1.4.87

2 files

1.4.86

2 files

1.4.85

2 files

1.4.84

2 files

1.4.83

2 files

1.4.82

2 files

1.4.81

2 files

1.4.80

2 files

1.4.79

2 files

1.4.78

2 files

1.4.77

2 files

1.4.76

2 files

1.4.75

2 files

1.4.74

2 files

1.4.73

2 files

1.4.72

2 files

1.4.71

2 files

1.4.70

2 files

1.4.69

2 files

1.4.68

2 files

1.4.67

2 files

1.4.66

2 files

1.4.65

2 files

1.4.64

2 files

1.4.63

2 files

1.4.62

2 files

1.4.61

2 files

1.4.60

2 files

1.4.59

2 files

1.4.58

2 files

1.4.57

2 files

1.4.56

2 files

1.4.55

2 files

1.4.54

2 files

1.4.53

2 files

1.4.52

2 files

1.4.51

2 files

1.4.50

2 files

1.4.49

2 files

1.4.48

2 files

1.4.47

2 files

1.4.46

2 files

1.4.45

2 files

1.4.44

2 files

1.4.43

2 files

1.4.42

2 files

1.4.41

2 files

1.4.40

2 files

1.4.39

2 files

1.4.38

2 files

1.4.37

2 files

1.4.36

2 files

1.4.35

2 files

1.4.34

2 files

1.4.33

2 files

1.4.32

2 files

1.4.31

2 files

1.4.30

2 files

1.4.29

2 files

1.4.28

2 files

1.4.27

2 files

1.4.26

2 files

1.4.25

2 files

1.4.24

2 files

1.4.23

2 files

1.4.22

2 files

1.4.21

2 files

1.4.20

2 files

1.4.19

2 files

1.4.18

2 files

1.4.17

2 files

1.4.16

2 files

1.4.15

2 files

1.4.14

2 files

1.4.13

2 files

1.4.12

2 files

1.4.11

2 files

1.4.10

2 files

1.4.9

2 files

1.4.8

2 files

1.4.7

2 files

1.4.6

2 files

1.4.5

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.10

2 files

1.3.9

2 files

1.3.8

2 files

1.3.7

2 files

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.10

2 files

1.2.9

2 files

1.2.8

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.18

2 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