{ "info": { "author": "Marcos Pereira", "author_email": "marcospereira.mpj@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "[![CircleCI](https://circleci.com/gh/marcospereirampj/python-keycloak/tree/master.svg?style=svg)](https://circleci.com/gh/marcospereirampj/python-keycloak/tree/master)\n[![Documentation Status](https://readthedocs.org/projects/python-keycloak/badge/?version=latest)](http://python-keycloak.readthedocs.io/en/latest/?badge=latest)\n\n\nPython Keycloak\n====================\n\nFor review- see https://github.com/marcospereirampj/python-keycloak\n\n**python-keycloak** is a Python package providing access to the Keycloak API.\n\n## Installation\n\n### Via Pypi Package:\n\n``` $ pip install python-keycloak ```\n\n### Manually\n\n``` $ python setup.py install ```\n\n## Dependencies\n\npython-keycloak depends on:\n\n* Python 3\n* [requests](http://docs.python-requests.org/en/master/)\n* [python-jose](http://python-jose.readthedocs.io/en/latest/)\n\n### Tests Dependencies\n\n* unittest\n* [httmock](https://github.com/patrys/httmock)\n\n## Bug reports\n\nPlease report bugs and feature requests at\nhttps://github.com/marcospereirampj/python-keycloak/issues\n\n## Documentation\n\nThe documentation for python-keycloak is available on [readthedocs](http://python-keycloak.readthedocs.io).\n\n## Contributors\n\n* [Agriness Team](http://www.agriness.com/pt/)\n* [Marcos Pereira](marcospereira.mpj@gmail.com)\n* [Martin Devlin](https://bitbucket.org/devlinmpearson/) \n* [Shon T. Urbas](https://bitbucket.org/surbas/)\n* [Markus Spanier](https://bitbucket.org/spanierm/)\n* [Remco Kranenburg](https://bitbucket.org/Remco47/)\n* [Armin](https://bitbucket.org/arminfelder/)\n* [njordr](https://bitbucket.org/njordr/)\n* [Josha Inglis](https://bitbucket.org/joshainglis/)\n* [Alex](https://bitbucket.org/alex_zel/)\n* [Ewan Jone](https://bitbucket.org/kisamoto/)\n\n## Usage\n\n```python\nfrom keycloak import KeycloakOpenID\n\n# Configure client\nkeycloak_openid = KeycloakOpenID(server_url=\"http://localhost:8080/auth/\",\n client_id=\"example_client\",\n realm_name=\"example_realm\",\n client_secret_key=\"secret\")\n\n# Get WellKnow\nconfig_well_know = keycloak_openid.well_know()\n\n# Get Token\ntoken = keycloak_openid.token(\"user\", \"password\")\ntoken = keycloak_openid.token(\"user\", \"password\", totp=\"012345\")\n\n# Get Userinfo\nuserinfo = keycloak_openid.userinfo(token['access_token'])\n\n# Refresh token\ntoken = keycloak_openid.refresh_token(token['refresh_token'])\n\n# Logout\nkeycloak_openid.logout(token['refresh_token'])\n\n# Get Certs\ncerts = keycloak_openid.certs()\n\n# Get RPT (Entitlement)\ntoken = keycloak_openid.token(\"user\", \"password\")\nrpt = keycloak_openid.entitlement(token['access_token'], \"resource_id\")\n\n# Instropect RPT\ntoken_rpt_info = keycloak_openid.introspect(keycloak_openid.introspect(token['access_token'], rpt=rpt['rpt'],\n token_type_hint=\"requesting_party_token\"))\n\n# Introspect Token\ntoken_info = keycloak_openid.introspect(token['access_token']))\n\n# Decode Token\nKEYCLOAK_PUBLIC_KEY = \"secret\"\noptions = {\"verify_signature\": True, \"verify_aud\": True, \"exp\": True}\ntoken_info = keycloak_openid.decode_token(token['access_token'], key=KEYCLOAK_PUBLIC_KEY, options=options)\n\n# Get permissions by token\ntoken = keycloak_openid.token(\"user\", \"password\")\nkeycloak_openid.load_authorization_config(\"example-authz-config.json\")\npolicies = keycloak_openid.get_policies(token['access_token'], method_token_info='decode', key=KEYCLOAK_PUBLIC_KEY)\npermissions = keycloak_openid.get_permissions(token['access_token'], method_token_info='introspect')\n\n# KEYCLOAK ADMIN\n\nfrom keycloak import KeycloakAdmin\n\nkeycloak_admin = KeycloakAdmin(server_url=\"http://localhost:8080/auth/\",\n username='example-admin',\n password='secret',\n realm_name=\"example_realm\",\n verify=True)\n \n# Add user \nnew_user = keycloak_admin.create_user({\"email\": \"example@example.com\",\n \"username\": \"example@example.com\",\n \"enabled\": True,\n \"firstName\": \"Example\",\n \"lastName\": \"Example\"}) \n \n# Add user and set password \nnew_user = keycloak_admin.create_user({\"email\": \"example@example.com\",\n \"username\": \"example@example.com\",\n \"enabled\": True,\n \"firstName\": \"Example\",\n \"lastName\": \"Example\",\n \"credentials\": [{\"value\": \"secret\",\"type\": \"password\",}]}) \n\n# User counter\ncount_users = keycloak_admin.users_count()\n\n# Get users Returns a list of users, filtered according to query parameters\nusers = keycloak_admin.get_users({})\n\n# Get user ID from name\nuser-id-keycloak = keycloak_admin.get_user_id(\"example@example.com\")\n\n# Get User\nuser = keycloak_admin.get_user(\"user-id-keycloak\")\n\n# Update User\nresponse = keycloak_admin.update_user(user_id=\"user-id-keycloak\", \n payload={'firstName': 'Example Update'})\n\n# Update User Password\nresponse = set_user_password(user_id=\"user-id-keycloak\", password=\"secret\", temporary=True)\n \n# Delete User\nresponse = keycloak_admin.delete_user(user_id=\"user-id-keycloak\")\n\n# Get consents granted by the user\nconsents = keycloak_admin.consents_user(user_id=\"user-id-keycloak\")\n\n# Send User Action\nresponse = keycloak_admin.send_update_account(user_id=\"user-id-keycloak\", \n payload=json.dumps(['UPDATE_PASSWORD']))\n\n# Send Verify Email\nresponse = keycloak_admin.send_verify_email(user_id=\"user-id-keycloak\")\n\n# Get sessions associated with the user\nsessions = keycloak_admin.get_sessions(user_id=\"user-id-keycloak\")\n\n# Get themes, social providers, auth providers, and event listeners available on this server\nserver_info = keycloak_admin.get_server_info()\n\n# Get clients belonging to the realm Returns a list of clients belonging to the realm\nclients = keycloak_admin.get_clients()\n\n# Get client - id (not client-id) from client by name\nclient_id=keycloak_admin.get_client_id(\"my-client\")\n\n# Get representation of the client - id of client (not client-id)\nclient = keycloak_admin.get_client(client_id=\"client_id\")\n\n# Get all roles for the realm or client\nrealm_roles = keycloak_admin.get_realm_roles()\n\n# Get all roles for the client\nclient_roles = keycloak_admin.get_client_roles(client_id=\"client_id\")\n\n# Get client role\nrole = keycloak_admin.get_client_role(client_id=\"client_id\", role_name=\"role_name\")\n\n# Warning: Deprecated\n# Get client role id from name\nrole_id = keycloak_admin.get_client_role_id(client_id=\"client_id\", role_name=\"test\")\n\n# Create client role\nkeycloak_admin.create_client_role(client_id='client_id', {'name': 'roleName', 'clientRole': True})\n\n# Assign client role to user. Note that BOTH role_name and role_id appear to be required.\nkeycloak_admin.assign_client_role(client_id=\"client_id\", user_id=\"user_id\", role_id=\"role_id\", role_name=\"test\")\n\n# Retrieve client roles of a user.\nkeycloak_admin.get_client_roles_of_user(user_id=\"user_id\", client_id=\"client_id\")\n\n# Retrieve available client roles of a user.\nkeycloak_admin.get_available_client_roles_of_user(user_id=\"user_id\", client_id=\"client_id\")\n\n# Retrieve composite client roles of a user.\nkeycloak_admin.get_composite_client_roles_of_user(user_id=\"user_id\", client_id=\"client_id\")\n\n# Delete client roles of a user.\nkeycloak_admin.delete_client_roles_of_user(client_id=\"client_id\", user_id=\"user_id\", roles={\"id\": \"role-id\"})\nkeycloak_admin.delete_client_roles_of_user(client_id=\"client_id\", user_id=\"user_id\", roles=[{\"id\": \"role-id_1\"}, {\"id\": \"role-id_2\"}])\n\n# Create new group\ngroup = keycloak_admin.create_group(name=\"Example Group\")\n\n# Get all groups\ngroups = keycloak_admin.get_groups()\n\n# Get group \ngroup = keycloak_admin.get_group(group_id='group_id')\n\n# Get group by name\ngroup = keycloak_admin.get_group_by_path(path='/group/subgroup', search_in_subgroups=True)\n\n# Function to trigger user sync from provider\nsync_users(storage_id=\"storage_di\", action=\"action\")\n\n# Get client role id from name\nrole_id = keycloak_admin.get_client_role_id(client_id=client_id, role_name=\"test\")\n\n# Get all roles for the realm or client\nrealm_roles = keycloak_admin.get_roles()\n\n# Assign client role to user. Note that BOTH role_name and role_id appear to be required.\nkeycloak_admin.assign_client_role(client_id=client_id, user_id=user_id, role_id=role_id, role_name=\"test\")\n\n# Get all ID Providers\nidps = keycloak_admin.get_idps()\n\n# Create a new Realm\nkeycloak_admin.create_realm(payload={\"realm\": \"demo\"}, skip_exists=False)\n\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/marcospereirampj/python-keycloak", "keywords": "keycloak openid", "license": "The MIT License", "maintainer": "", "maintainer_email": "", "name": "python-keycloak", "package_url": "https://pypi.org/project/python-keycloak/", "platform": "", "project_url": "https://pypi.org/project/python-keycloak/", "project_urls": { "Homepage": "https://github.com/marcospereirampj/python-keycloak" }, "release_url": "https://pypi.org/project/python-keycloak/0.17.6/", "requires_dist": null, "requires_python": "", "summary": "python-keycloak is a Python package providing access to the Keycloak API.", "version": "0.17.6" }, "last_serial": 5957683, "releases": { "0.10.2": [ { "comment_text": "", "digests": { "md5": "e4af2de63efb81a3d723bcd6fa81b7fb", "sha256": "2aba71bacb0da37a36a02e5e096a689ef6634dcddccc753e25542893370fef46" }, "downloads": -1, "filename": "python-keycloak-0.10.2.tar.gz", "has_sig": false, "md5_digest": "e4af2de63efb81a3d723bcd6fa81b7fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10595, "upload_time": "2017-10-23T19:14:45", "url": "https://files.pythonhosted.org/packages/f2/c1/edbf33aa3b4d0ee9e269eecfedf6cd91f1ca13dc7c96667f34b5594300af/python-keycloak-0.10.2.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "9c286cc9349b135509166ff130141e95", "sha256": "3358dad934d3224f0c29589b15e3aee63f1e866ec40872c525f662413393d9b2" }, "downloads": -1, "filename": "python-keycloak-0.11.0.tar.gz", "has_sig": false, "md5_digest": "9c286cc9349b135509166ff130141e95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10519, "upload_time": "2017-12-12T18:13:31", "url": "https://files.pythonhosted.org/packages/79/5f/dbe88a17f58389c4e3dddacfa265c96674980acd1d5df3e1252183fb67cf/python-keycloak-0.11.0.tar.gz" } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "3e8234301c0074f6f219cc15f1175c4a", "sha256": "99f5a47e608a25cf4fb4849a18813cb85ca6e427c8130b965e15215cbb26f7aa" }, "downloads": -1, "filename": "python-keycloak-0.11.1.tar.gz", "has_sig": false, "md5_digest": "3e8234301c0074f6f219cc15f1175c4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10509, "upload_time": "2017-12-14T16:13:31", "url": "https://files.pythonhosted.org/packages/62/02/52ebb8dc45c572ecb8b0df248fecb210c7a04101b610cd8b57f24e936c61/python-keycloak-0.11.1.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "a8a6825c6da697dc7cd81b2445989c7f", "sha256": "34cceb342c7e2542c51272c4b6d868056370164bbc8aad2349decba74bdcaeb8" }, "downloads": -1, "filename": "python-keycloak-0.12.0.tar.gz", "has_sig": false, "md5_digest": "a8a6825c6da697dc7cd81b2445989c7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13709, "upload_time": "2018-01-25T22:40:38", "url": "https://files.pythonhosted.org/packages/76/40/7d9e268c2252b265b0558a7421fe4e128d1f8b437dfea347af51ad0e8a0f/python-keycloak-0.12.0.tar.gz" } ], "0.13.1": [ { "comment_text": "", "digests": { "md5": "16eaddbb8e924de0c333c205339e68c8", "sha256": "89719f7cb4f6d2b331eda1c6deb75334377db4f435e807926662f15da0133ae2" }, "downloads": -1, "filename": "python-keycloak-0.13.1.tar.gz", "has_sig": false, "md5_digest": "16eaddbb8e924de0c333c205339e68c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16105, "upload_time": "2018-08-05T17:45:25", "url": "https://files.pythonhosted.org/packages/11/ad/fabca67c8f46043c9d4313ce6462db9a2d2d81e9c1adf9bdb0d619844c13/python-keycloak-0.13.1.tar.gz" } ], "0.13.2": [ { "comment_text": "", "digests": { "md5": "78e8759d6f66516b213f3e08308af8db", "sha256": "bd4b43f371094cde72879fe43d87086382a8755841fc96fb3f9ca36018bb9e88" }, "downloads": -1, "filename": "python-keycloak-0.13.2.tar.gz", "has_sig": false, "md5_digest": "78e8759d6f66516b213f3e08308af8db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17134, "upload_time": "2018-08-30T02:07:07", "url": "https://files.pythonhosted.org/packages/7e/f0/64320b28962777057ebf9e18e4dfe08ebe7e46642633507324f83d0dbd6c/python-keycloak-0.13.2.tar.gz" } ], "0.13.3": [ { "comment_text": "", "digests": { "md5": "89191f83b61d05852df6ee7265176dfc", "sha256": "2a9720bbf21f69ecd4d854b40ed5f4798f3a5ac08cf64432965d2dc96096cd2b" }, "downloads": -1, "filename": "python-keycloak-0.13.3.tar.gz", "has_sig": false, "md5_digest": "89191f83b61d05852df6ee7265176dfc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17449, "upload_time": "2018-10-25T02:29:27", "url": "https://files.pythonhosted.org/packages/84/fa/ad16af03bde85f751fa2bbe2bc32f5857d1fb9e4c75848c1c885c568efe3/python-keycloak-0.13.3.tar.gz" } ], "0.14.1": [ { "comment_text": "", "digests": { "md5": "7af6fd843ffbcdc85a9b1578c327aa7b", "sha256": "35a231808e4620ce1bc41eb50c63e77a79132062f7df152fdb96ced1ec8dc595" }, "downloads": -1, "filename": "python-keycloak-0.14.1.tar.gz", "has_sig": false, "md5_digest": "7af6fd843ffbcdc85a9b1578c327aa7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17627, "upload_time": "2018-12-15T20:35:05", "url": "https://files.pythonhosted.org/packages/1e/24/3d3c8a1048c5958a72d6ecb2f6cc844ec157d1a1ba8efb1dbbb89b20d782/python-keycloak-0.14.1.tar.gz" } ], "0.14.2": [ { "comment_text": "", "digests": { "md5": "da8e88af43d025a8e1e6ea1cb7bd187a", "sha256": "9954730c88f690e326aba91215d9a63842d7d168fb930e6bb9cae711bc635795" }, "downloads": -1, "filename": "python-keycloak-0.14.2.tar.gz", "has_sig": false, "md5_digest": "da8e88af43d025a8e1e6ea1cb7bd187a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19959, "upload_time": "2018-12-15T21:09:58", "url": "https://files.pythonhosted.org/packages/96/4e/cf62d694ee4d2b15d0c4fe98f6f7ddabc6219333ada1e9025a83dade79e4/python-keycloak-0.14.2.tar.gz" } ], "0.14.3": [ { "comment_text": "", "digests": { "md5": "2f0ef936b837ae29591cd3e8a26dbb4d", "sha256": "61a3fbb6bcd48ecf0eb1920d40a955e5357296e3d341d2dd485057aa591e6d04" }, "downloads": -1, "filename": "python-keycloak-0.14.3.tar.gz", "has_sig": false, "md5_digest": "2f0ef936b837ae29591cd3e8a26dbb4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19961, "upload_time": "2018-12-15T21:16:26", "url": "https://files.pythonhosted.org/packages/62/da/9284e54600d896523a6ad7980c5c58beffb3e0fbb71de46340cbd3e2891a/python-keycloak-0.14.3.tar.gz" } ], "0.14.4": [ { "comment_text": "", "digests": { "md5": "45086e3d42fe82b29af8b4f376977a6e", "sha256": "481689ac47a8b84ee8e09702128cfeab7023b506128769c094f7f2787fd25cf5" }, "downloads": -1, "filename": "python-keycloak-0.14.4.tar.gz", "has_sig": false, "md5_digest": "45086e3d42fe82b29af8b4f376977a6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20024, "upload_time": "2018-12-16T15:09:26", "url": "https://files.pythonhosted.org/packages/8f/8b/dbe455a7e9771cd4bd6611cb9934e8360f6dc4a9a9833f9b810a1644ec24/python-keycloak-0.14.4.tar.gz" } ], "0.15.0": [ { "comment_text": "", "digests": { "md5": "ea37e1586ca66c1f44c6323ca783b936", "sha256": "43f91948244f57f43a5495b80aaa6e7044f33bb6bff1cece516cfa1103574cc1" }, "downloads": -1, "filename": "python-keycloak-0.15.0.tar.gz", "has_sig": false, "md5_digest": "ea37e1586ca66c1f44c6323ca783b936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20326, "upload_time": "2019-03-09T14:30:41", "url": "https://files.pythonhosted.org/packages/39/cf/eafc83b5d4338a849018a6f51e703996f2f22e716e0049f03503438330a3/python-keycloak-0.15.0.tar.gz" } ], "0.16.0": [ { "comment_text": "", "digests": { "md5": "de2fcda99c8461734cb346703dadcbac", "sha256": "24890a5b5c0de4b00b98f27f2e3f18e46a2494ea94f0b82cb8c0106e9cfc1a4e" }, "downloads": -1, "filename": "python-keycloak-0.16.0.tar.gz", "has_sig": false, "md5_digest": "de2fcda99c8461734cb346703dadcbac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20425, "upload_time": "2019-03-21T22:55:03", "url": "https://files.pythonhosted.org/packages/78/4f/6a967169d78a43c95861e71936342d579165f01b515ee9ba3cf0542d44b9/python-keycloak-0.16.0.tar.gz" } ], "0.17.0": [ { "comment_text": "", "digests": { "md5": "71141b27554b23e16280dc0aa42ede8d", "sha256": "ff362d5447ac4c994d807f9960d73849f42b6ba8d10d2f15a3c345ab496f30d9" }, "downloads": -1, "filename": "python-keycloak-0.17.0.tar.gz", "has_sig": false, "md5_digest": "71141b27554b23e16280dc0aa42ede8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18181, "upload_time": "2019-05-27T00:35:05", "url": "https://files.pythonhosted.org/packages/e9/d6/c72178d3de96ce787bb465a2e70dd143be09a708dc7ae050a3f99bece271/python-keycloak-0.17.0.tar.gz" } ], "0.17.1": [ { "comment_text": "", "digests": { "md5": "9dae5918feab4838a338bd54919f887e", "sha256": "bbe0b2960ce7fc37d4b55acc22b249a133419697ec7db508aae95c99b0734f85" }, "downloads": -1, "filename": "python-keycloak-0.17.1.tar.gz", "has_sig": false, "md5_digest": "9dae5918feab4838a338bd54919f887e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20535, "upload_time": "2019-05-27T00:41:21", "url": "https://files.pythonhosted.org/packages/cb/10/8260a6eee4810a7efe97efe9aa10ef29f9a81304e728e95f4b017f614e2f/python-keycloak-0.17.1.tar.gz" } ], "0.17.2": [ { "comment_text": "", "digests": { "md5": "a7dd430dea215d420cb0e3b97e638c3d", "sha256": "56300a3ede3732b8a8f5a9936e6d1ddac5e704bd64af876c99eb34bb8c50eebc" }, "downloads": -1, "filename": "python-keycloak-0.17.2.tar.gz", "has_sig": false, "md5_digest": "a7dd430dea215d420cb0e3b97e638c3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18115, "upload_time": "2019-06-04T12:15:59", "url": "https://files.pythonhosted.org/packages/a4/d2/bdf1357f95684f413bc35435e44fe3521437fbb6dd6ddec321fda09bf1da/python-keycloak-0.17.2.tar.gz" } ], "0.17.3": [ { "comment_text": "", "digests": { "md5": "9c9accd5c3871de6b3fab6b318ac21c1", "sha256": "66ecfcc96374f2e7f767fcdb54af77996bec2adf81762c100c1c34c095b80e98" }, "downloads": -1, "filename": "python-keycloak-0.17.3.tar.gz", "has_sig": false, "md5_digest": "9c9accd5c3871de6b3fab6b318ac21c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18226, "upload_time": "2019-06-25T00:49:03", "url": "https://files.pythonhosted.org/packages/55/7a/cdbc4d72c8f3df8e8bcf9218110026ab99cab40289ca816485460ad88f08/python-keycloak-0.17.3.tar.gz" } ], "0.17.4": [ { "comment_text": "", "digests": { "md5": "f617fc3a8a1e7b423ec659b546da4d7c", "sha256": "8be59bc424841731e44adb2d293f737587c3cbb4c0224a11c32bbfe8dae4c3dd" }, "downloads": -1, "filename": "python-keycloak-0.17.4.tar.gz", "has_sig": false, "md5_digest": "f617fc3a8a1e7b423ec659b546da4d7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18211, "upload_time": "2019-06-25T00:55:45", "url": "https://files.pythonhosted.org/packages/dd/77/5ef9d0aaa25da1d314cbe90856683b06e30b7753ae154c2ec2d560be4684/python-keycloak-0.17.4.tar.gz" } ], "0.17.5": [ { "comment_text": "", "digests": { "md5": "5266d918c81d5a0b90dd0dd0df96ee80", "sha256": "4dbce35062f01400538ae2bc5700673ba6767d4cdf874ec9c2d90efb8f97e661" }, "downloads": -1, "filename": "python-keycloak-0.17.5.tar.gz", "has_sig": false, "md5_digest": "5266d918c81d5a0b90dd0dd0df96ee80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18581, "upload_time": "2019-08-30T00:27:38", "url": "https://files.pythonhosted.org/packages/56/57/08ef73a3b765084a438e02637051cd24e0ef1124861c032aa0b64e1fd874/python-keycloak-0.17.5.tar.gz" } ], "0.17.6": [ { "comment_text": "", "digests": { "md5": "a8d5171421e785d129b1e0fd5e35595a", "sha256": "434710ed4abc4a853778838aeb3e989e1b591b232474661db3317d974dc34c6a" }, "downloads": -1, "filename": "python-keycloak-0.17.6.tar.gz", "has_sig": false, "md5_digest": "a8d5171421e785d129b1e0fd5e35595a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18366, "upload_time": "2019-10-11T00:31:29", "url": "https://files.pythonhosted.org/packages/ff/a3/f891ef0de88f3ac0ca7199b514b98cd6601de894c732199d2918511826e9/python-keycloak-0.17.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b3338626b2eabc7eb98ac3b3566d3b19", "sha256": "91ce26ca14d81b7c6668922151dcdf169a2462ac776c4df1d6b3bc29685fb2f3" }, "downloads": -1, "filename": "python-keycloak-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b3338626b2eabc7eb98ac3b3566d3b19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4438, "upload_time": "2017-08-15T15:09:03", "url": "https://files.pythonhosted.org/packages/2f/a7/72a0fdd9c74ca817f86e601129098a7da0c89c817788931ad75d3f9cbf33/python-keycloak-0.2.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "67e88c4ded382dd5772a6cc341f3d0db", "sha256": "b626018bb98ff152bfc9ca5e88351fa9edc5b6e5833bf284fae542a12e3b24db" }, "downloads": -1, "filename": "python-keycloak-0.3.1.tar.gz", "has_sig": false, "md5_digest": "67e88c4ded382dd5772a6cc341f3d0db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4433, "upload_time": "2017-08-15T18:10:23", "url": "https://files.pythonhosted.org/packages/8a/8b/0cc74858b08715e4334050c57bd562b99fe8e3362e309c9d947d8dc67494/python-keycloak-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e36c42603f4ebfe9f66b6992325860f1", "sha256": "1a294ddf15fa6f20e729c19b1a005c07395c759cc2cd357a63ce6895ff6387bf" }, "downloads": -1, "filename": "python-keycloak-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e36c42603f4ebfe9f66b6992325860f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4849, "upload_time": "2017-08-15T19:55:25", "url": "https://files.pythonhosted.org/packages/38/b7/604fab9b46d73ab44270972bff6d05e12c4424cfa89c7ffa93afe2e86875/python-keycloak-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "49b4d11ac8b9c524189f436bc0cd931e", "sha256": "fc65fa998050ba66609fc9f00dd5cac59b26535d5bb801e5f4f61513d63d7200" }, "downloads": -1, "filename": "python-keycloak-0.4.1.tar.gz", "has_sig": false, "md5_digest": "49b4d11ac8b9c524189f436bc0cd931e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4870, "upload_time": "2017-08-15T19:57:41", "url": "https://files.pythonhosted.org/packages/d2/3d/8fd4206c2154d54f42aac24bec1ecc7ef19070dd83794021189d2b9c9e4d/python-keycloak-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "49221212f6aff998f47d25498a209c9f", "sha256": "c520210223e71775127dd85d8ddcf5a908e3579690a81daa06adef7046a7ecbb" }, "downloads": -1, "filename": "python-keycloak-0.5.0.tar.gz", "has_sig": false, "md5_digest": "49221212f6aff998f47d25498a209c9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4833, "upload_time": "2017-08-21T14:34:44", "url": "https://files.pythonhosted.org/packages/fd/37/9641ed72defe5df982c739873f227c842ea9c0c002fa5f5e156d2ffdf0b2/python-keycloak-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "decd51f26a7d03939b11efe780df84d3", "sha256": "f204d65d47a05ad805adc1cae29f257d193cb9b035f0c96807b3681458b9026f" }, "downloads": -1, "filename": "python-keycloak-0.5.1.tar.gz", "has_sig": false, "md5_digest": "decd51f26a7d03939b11efe780df84d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4836, "upload_time": "2017-08-22T11:57:14", "url": "https://files.pythonhosted.org/packages/26/94/c37c2e6f0123b89db51f925426bb2a785df5dc1d73e1ffbd8c11e561ed0f/python-keycloak-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "7d652434533c8aad7b11379cb21e8561", "sha256": "736d0f92d64d1a3ecc195474f45e0d09c585321398548a738ac36ba46007ffac" }, "downloads": -1, "filename": "python-keycloak-0.6.0.tar.gz", "has_sig": false, "md5_digest": "7d652434533c8aad7b11379cb21e8561", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5355, "upload_time": "2017-08-23T12:53:32", "url": "https://files.pythonhosted.org/packages/78/43/cb5cee8f58a3fcd78d5a7359d25a473f9628f338434815e1b9a0b9bf451e/python-keycloak-0.6.0.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "115a3ef82459e041c9295118731c5dfb", "sha256": "c53f72985123c73d9c96d03f245667004047184219053fac1e45c7e8334d8fd2" }, "downloads": -1, "filename": "python-keycloak-0.6.2.tar.gz", "has_sig": false, "md5_digest": "115a3ef82459e041c9295118731c5dfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5356, "upload_time": "2017-08-23T14:05:05", "url": "https://files.pythonhosted.org/packages/5e/8e/a8950b0b7ed4037eeffeed0b705f2bb75b1696eb28520d239c5d5c3d0524/python-keycloak-0.6.2.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "dbe9d2b09744fd246d1089e5ff867d9d", "sha256": "7bea3d5ac9ec56ae042d05dfac49bc7b884e88ed8d1b4370fcb638d1a512f7ba" }, "downloads": -1, "filename": "python-keycloak-0.6.4.tar.gz", "has_sig": false, "md5_digest": "dbe9d2b09744fd246d1089e5ff867d9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5354, "upload_time": "2017-08-23T14:14:49", "url": "https://files.pythonhosted.org/packages/6d/5d/01568d1683d13634f2b506fee20867628f467e56ee9097f874b62d11213f/python-keycloak-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "1f122e741ab5d36a5c7224b0a60bad35", "sha256": "61db830938fcb6179219122289e90af02a4bfcd8cab62f8c2333c4303964192e" }, "downloads": -1, "filename": "python-keycloak-0.6.5.tar.gz", "has_sig": false, "md5_digest": "1f122e741ab5d36a5c7224b0a60bad35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7817, "upload_time": "2017-08-23T14:39:12", "url": "https://files.pythonhosted.org/packages/19/79/96a43998dc11e4564e8932d1830ca85673158cfaa55d4e532fde9ab29514/python-keycloak-0.6.5.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "4c612ed591ee4b85c0b67677123982a3", "sha256": "95ff4ee8d32a9b4bbc3a8a195ebc80d6c344ebad807f356a5485071a44dee67c" }, "downloads": -1, "filename": "python-keycloak-0.7.0.tar.gz", "has_sig": false, "md5_digest": "4c612ed591ee4b85c0b67677123982a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7861, "upload_time": "2017-08-23T19:54:29", "url": "https://files.pythonhosted.org/packages/ce/5e/2d6912e1c4dbe01a92f994287ab2425f23c2ed6d4cf9f9269d54229f1a52/python-keycloak-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "1b30ea6f2b50ea0a88420afa32561a16", "sha256": "8914b318a49d02ee35252bbe810c3d9cd48b01be2b5a87a1647109aa3af944e8" }, "downloads": -1, "filename": "python-keycloak-0.8.0.tar.gz", "has_sig": false, "md5_digest": "1b30ea6f2b50ea0a88420afa32561a16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7948, "upload_time": "2017-08-24T12:30:55", "url": "https://files.pythonhosted.org/packages/f3/70/ec184d44a350adc62be2db2ae9354b3161ecfcf48a642b2635a781dd7270/python-keycloak-0.8.0.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "1aa00efbefa4b6a8a3a0ef269b941f19", "sha256": "07b223645fb6cd27200cdec80f6380acd56f92fdc7aa6ee08000dc83d73a873a" }, "downloads": -1, "filename": "python-keycloak-0.8.2.tar.gz", "has_sig": false, "md5_digest": "1aa00efbefa4b6a8a3a0ef269b941f19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7958, "upload_time": "2017-08-24T12:42:52", "url": "https://files.pythonhosted.org/packages/59/0f/63111f16c1aefcd2bffdc64aedc44c748806053fab57297dc90aacd52a0c/python-keycloak-0.8.2.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "55fb94e9dbc54be275391e6e36ace2ed", "sha256": "7ac5662ace06579d0eecdcd946c9d4dceeb8a5db0a092d0b14d40bca7516c354" }, "downloads": -1, "filename": "python-keycloak-0.8.4.tar.gz", "has_sig": false, "md5_digest": "55fb94e9dbc54be275391e6e36ace2ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7953, "upload_time": "2017-08-24T14:37:39", "url": "https://files.pythonhosted.org/packages/4d/10/3e317a67748de5c0131f21fb0dc14030147898f9c4348f2434391b34b16b/python-keycloak-0.8.4.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "efaa756e8ecfb937b351b09e28fe56d0", "sha256": "98ec3bb9e4da4d90b4bb089f3b72bc36f5d5e1e32bda9df807feb5900a996542" }, "downloads": -1, "filename": "python-keycloak-0.9.0.tar.gz", "has_sig": false, "md5_digest": "efaa756e8ecfb937b351b09e28fe56d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9699, "upload_time": "2017-09-05T19:56:38", "url": "https://files.pythonhosted.org/packages/5e/f9/16501e162b5fb61af65d5571f7ced062fa0c1a9b50be783c7d27daa1e9f9/python-keycloak-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a8d5171421e785d129b1e0fd5e35595a", "sha256": "434710ed4abc4a853778838aeb3e989e1b591b232474661db3317d974dc34c6a" }, "downloads": -1, "filename": "python-keycloak-0.17.6.tar.gz", "has_sig": false, "md5_digest": "a8d5171421e785d129b1e0fd5e35595a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18366, "upload_time": "2019-10-11T00:31:29", "url": "https://files.pythonhosted.org/packages/ff/a3/f891ef0de88f3ac0ca7199b514b98cd6601de894c732199d2918511826e9/python-keycloak-0.17.6.tar.gz" } ] }