Skip to main content

Services surrounding KeyCloak, that use the REST API to read/update state

Project description

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

keycloak-rest-services

Services surrounding Keycloak, that use the REST API to read/update state.

Running Tests

The tests run automatically in CircleCI, but for those that want to run them locally, there is a way.

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
    

Project details


Release history Release notifications | RSS feed

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.4.81.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

wipac_keycloak_rest_services-1.4.81-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

Details for the file wipac-keycloak-rest-services-1.4.81.tar.gz.

File metadata

  • Download URL: wipac-keycloak-rest-services-1.4.81.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/43.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.2.1 tqdm/4.66.2 importlib-metadata/7.1.0 keyring/25.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.14

File hashes

Hashes for wipac-keycloak-rest-services-1.4.81.tar.gz
Algorithm Hash digest
SHA256 9974114b5af2b2ffcbd408c15e658f4ef0aa722e23198c3d5d9ef72aa5e8a8bd
MD5 2fb02b6b7bd4704a12fe4efe073041d2
BLAKE2b-256 298b412fd55e1d82b6d7d3557b046cd3c7c2d76c726a9f2487a11cadc1726be5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wipac_keycloak_rest_services-1.4.81-py3-none-any.whl
  • Upload date:
  • Size: 30.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/43.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.2.1 tqdm/4.66.2 importlib-metadata/7.1.0 keyring/25.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.14

File hashes

Hashes for wipac_keycloak_rest_services-1.4.81-py3-none-any.whl
Algorithm Hash digest
SHA256 aa1732a7e50f44f5f11c794932e319f983dba6f9ab9bf2eb96a5662859270d5d
MD5 5bc0a6c8e3b55a73c8315e665f8da5ef
BLAKE2b-256 a46b027cfe653bf54a2510108552df6c6c4b87c12df51267802f93ea40899d65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page