Keycloak¶
The keycloak adapter provides integration with Keycloak for identity and access management, including token
validation, user management, and role-based access control.
Ports¶
Abstract port interface defining the Keycloak adapter contract.
Keycloak port interfaces composed from per-concern mixins.
archipy.adapters.keycloak.ports.KeycloakGroupType
module-attribute
¶
archipy.adapters.keycloak.ports.KeycloakOrganizationType
module-attribute
¶
archipy.adapters.keycloak.ports.KeycloakResponseType
module-attribute
¶
archipy.adapters.keycloak.ports.KeycloakRoleType
module-attribute
¶
archipy.adapters.keycloak.ports.KeycloakTokenType
module-attribute
¶
archipy.adapters.keycloak.ports.KeycloakUserType
module-attribute
¶
archipy.adapters.keycloak.ports.KeycloakPort ¶
Bases: KeycloakAuthPort, KeycloakUsersPort, KeycloakRolesPort, KeycloakClientsPort, KeycloakRealmsPort, KeycloakOrganizationsPort, KeycloakGroupsPort, KeycloakAuthFlowsPort, KeycloakClientScopesPort, KeycloakAuthzPort, KeycloakUmaPort, KeycloakComponentsPort
Interface for Keycloak operations providing a standardized access pattern.
This interface defines the contract for Keycloak adapters, ensuring consistent implementation of Keycloak operations across different adapters. It covers essential functionality including authentication, user management, and role management.
Source code in archipy/adapters/keycloak/ports.py
archipy.adapters.keycloak.ports.KeycloakPort.create_component
abstractmethod
¶
Create a Keycloak component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Component representation. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Created component ID. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.KeycloakPort.get_component
abstractmethod
¶
Get a component by ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Component representation. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.KeycloakPort.get_components
abstractmethod
¶
Get components, optionally filtered by query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching component representations. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.KeycloakPort.update_component
abstractmethod
¶
Update a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
payload
|
dict[str, Any]
|
Updated component representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Update response payload. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.KeycloakPort.delete_component
abstractmethod
¶
Delete a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.KeycloakPort.resource_set_create
abstractmethod
¶
Create a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created resource set representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.resource_set_read
abstractmethod
¶
Read a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Resource set representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.resource_set_update
abstractmethod
¶
Update a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
payload
|
dict[str, Any]
|
Updated resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Updated resource set representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.resource_set_delete
abstractmethod
¶
Delete a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.resource_set_list
abstractmethod
¶
List all UMA resource sets.
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of resource set representations. |
archipy.adapters.keycloak.ports.KeycloakPort.resource_set_list_ids
abstractmethod
¶
resource_set_list_ids(
name: str = "",
exact_name: bool = False,
uri: str = "",
owner: str = "",
resource_type: str = "",
scope: str = "",
matchingUri: bool = False,
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
List UMA resource set IDs with optional filters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Filter by resource name. |
''
|
exact_name
|
bool
|
Require exact name match when True. |
False
|
uri
|
str
|
Filter by resource URI. |
''
|
owner
|
str
|
Filter by owner. |
''
|
resource_type
|
str
|
Filter by resource type. |
''
|
scope
|
str
|
Filter by scope. |
''
|
matchingUri
|
bool
|
Match URI patterns when True. |
False
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching resource set IDs / summaries. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.policy_resource_create
abstractmethod
¶
Create a UMA policy for a resource.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource identifier. |
required |
payload
|
dict[str, Any]
|
Policy representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created policy representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.policy_update
abstractmethod
¶
Update a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
payload
|
dict[str, Any]
|
Updated policy representation. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Raw update response bytes. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.policy_delete
abstractmethod
¶
Delete a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.policy_query
abstractmethod
¶
policy_query(
resource: str = "",
name: str = "",
scope: str = "",
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
Query UMA policies.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource
|
str
|
Filter by resource. |
''
|
name
|
str
|
Filter by policy name. |
''
|
scope
|
str
|
Filter by scope. |
''
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching policy representations. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.permission_ticket_create
abstractmethod
¶
Create a UMA permission ticket.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
permissions
|
Iterable[UMAPermission]
|
Permissions to include in the ticket. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Permission ticket representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.permissions_check
abstractmethod
¶
permissions_check(
token: str,
permissions: Iterable[UMAPermission],
**extra_payload: Any,
) -> bool
Check UMA permissions for a token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token to evaluate. |
required |
permissions
|
Iterable[UMAPermission]
|
Permissions to check. |
required |
**extra_payload
|
Any
|
Extra fields forwarded to the UMA endpoint. |
{}
|
Returns:
| Type | Description |
|---|---|
bool
|
True when all requested permissions are granted. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.KeycloakPort.create_client_authz_resource
abstractmethod
¶
create_client_authz_resource(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create an authorization resource for a client.
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_resources
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_resource
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_client_authz_resource
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_client_authz_resource
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_client_authz_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_client_authz_role_based_policy
abstractmethod
¶
create_client_authz_role_based_policy(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a role-based authorization policy.
Source code in archipy/adapters/keycloak/port_mixins/authz.py
archipy.adapters.keycloak.ports.KeycloakPort.create_client_authz_client_policy
abstractmethod
¶
Create a client-based authorization policy.
archipy.adapters.keycloak.ports.KeycloakPort.create_client_authz_policy
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_policies
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_policy
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_client_authz_policy
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_client_authz_resource_based_permission
abstractmethod
¶
create_client_authz_resource_based_permission(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a resource-based permission.
Source code in archipy/adapters/keycloak/port_mixins/authz.py
archipy.adapters.keycloak.ports.KeycloakPort.create_client_authz_scope_permission
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_permissions
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_scope_permission
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_client_authz_scope_permission
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_client_authz_resource_permission
abstractmethod
¶
Update a resource-based permission.
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_permission_associated_policies
abstractmethod
¶
get_client_authz_permission_associated_policies(
client_id: str, policy_id: str
) -> list[dict[str, Any]]
Get policies associated with a permission.
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_settings
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_client_policies
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_policy_resources
abstractmethod
¶
Get resources associated with a policy.
archipy.adapters.keycloak.ports.KeycloakPort.get_client_authz_policy_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.import_client_authz_config
abstractmethod
¶
Import authorization configuration for a client.
archipy.adapters.keycloak.ports.KeycloakPort.get_client_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_scope_by_name
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.add_mapper_to_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_mappers_from_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_mapper_in_client_scope
abstractmethod
¶
update_mapper_in_client_scope(
client_scope_id: str,
protocol_mapper_id: str,
payload: dict,
) -> dict[str, Any]
Update a protocol mapper in a client scope.
Source code in archipy/adapters/keycloak/port_mixins/client_scopes.py
archipy.adapters.keycloak.ports.KeycloakPort.delete_mapper_from_client_scope
abstractmethod
¶
Delete a protocol mapper from a client scope.
archipy.adapters.keycloak.ports.KeycloakPort.add_mapper_to_client
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_mappers_from_client
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_client_mapper
abstractmethod
¶
Update a protocol mapper on a client.
archipy.adapters.keycloak.ports.KeycloakPort.remove_client_mapper
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_default_client_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.add_client_default_client_scope
abstractmethod
¶
add_client_default_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add a default client scope to a client.
archipy.adapters.keycloak.ports.KeycloakPort.delete_client_default_client_scope
abstractmethod
¶
Remove a default client scope from a client.
archipy.adapters.keycloak.ports.KeycloakPort.get_client_optional_client_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.add_client_optional_client_scope
abstractmethod
¶
add_client_optional_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add an optional client scope to a client.
archipy.adapters.keycloak.ports.KeycloakPort.delete_client_optional_client_scope
abstractmethod
¶
Remove an optional client scope from a client.
archipy.adapters.keycloak.ports.KeycloakPort.get_default_default_client_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.add_default_default_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_default_default_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_default_optional_client_scopes
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.add_default_optional_client_scope
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_default_optional_client_scope
abstractmethod
¶
Remove a realm optional default client scope.
archipy.adapters.keycloak.ports.KeycloakPort.create_authentication_flow
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.copy_authentication_flow
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_authentication_flows
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_authentication_flow_for_id
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_authentication_flow
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_authentication_flow_executions
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_authentication_flow_execution
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_authentication_flow_execution
abstractmethod
¶
Create an execution in an authentication flow.
archipy.adapters.keycloak.ports.KeycloakPort.update_authentication_flow_executions
abstractmethod
¶
Update executions in an authentication flow.
archipy.adapters.keycloak.ports.KeycloakPort.create_authentication_flow_subflow
abstractmethod
¶
create_authentication_flow_subflow(
payload: dict,
flow_alias: str,
skip_exists: bool = False,
) -> bytes
Create a subflow in an authentication flow.
archipy.adapters.keycloak.ports.KeycloakPort.delete_authentication_flow_execution
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.change_execution_priority
abstractmethod
¶
Change priority of an authentication flow execution.
archipy.adapters.keycloak.ports.KeycloakPort.update_authentication_flow
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_authenticator_providers
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_authenticator_provider_config_description
abstractmethod
¶
Get config description for an authenticator provider.
archipy.adapters.keycloak.ports.KeycloakPort.get_authenticator_config
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_authenticator_config
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_authenticator_config
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_execution_config
abstractmethod
¶
Create configuration for an authentication flow execution.
archipy.adapters.keycloak.ports.KeycloakPort.create_group
abstractmethod
¶
Create a new group.
archipy.adapters.keycloak.ports.KeycloakPort.update_group
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_group
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_group
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_group_by_path
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_group_children
abstractmethod
¶
get_group_children(
group_id: str,
query: dict | None = None,
full_hierarchy: bool = False,
) -> list[dict[str, Any]]
Get child groups of a group.
archipy.adapters.keycloak.ports.KeycloakPort.get_groups
abstractmethod
¶
Get all groups, optionally filtered by query.
archipy.adapters.keycloak.ports.KeycloakPort.get_subgroups
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.groups_count
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.group_user_add
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.group_user_remove
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.group_set_permissions
abstractmethod
¶
Enable or disable fine-grained permissions for a group.
archipy.adapters.keycloak.ports.KeycloakPort.get_group_members
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_group_client_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_group_realm_roles
abstractmethod
¶
Get realm roles assigned to a group.
archipy.adapters.keycloak.ports.KeycloakPort.assign_group_client_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.assign_group_realm_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_group_client_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_group_realm_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_composite_client_roles_of_group
abstractmethod
¶
get_composite_client_roles_of_group(
client_id: str,
group_id: str,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get composite client roles of a group.
Source code in archipy/adapters/keycloak/port_mixins/groups.py
archipy.adapters.keycloak.ports.KeycloakPort.get_client_role_groups
abstractmethod
¶
Get groups that have a specific client role.
archipy.adapters.keycloak.ports.KeycloakPort.get_realm_role_groups
abstractmethod
¶
get_realm_role_groups(
role_name: str,
query: dict | None = None,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get groups that have a specific realm role.
Source code in archipy/adapters/keycloak/port_mixins/groups.py
archipy.adapters.keycloak.ports.KeycloakPort.get_organizations
abstractmethod
¶
Fetch all organizations. Returns list of OrganizationRepresentation, filtered by query.
Source code in archipy/adapters/keycloak/port_mixins/organizations.py
archipy.adapters.keycloak.ports.KeycloakPort.get_organization
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_organization
abstractmethod
¶
Create a new organization. Name and alias must be unique. Returns org_id.
archipy.adapters.keycloak.ports.KeycloakPort.update_organization
abstractmethod
¶
Update an existing organization. Kwargs are organization attributes (e.g. name, alias).
Source code in archipy/adapters/keycloak/port_mixins/organizations.py
archipy.adapters.keycloak.ports.KeycloakPort.delete_organization
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_organization_idps
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_user_organizations
abstractmethod
¶
Get organizations by user id. Returns list of organizations the user is member of.
archipy.adapters.keycloak.ports.KeycloakPort.get_organization_members
abstractmethod
¶
get_organization_members(
organization_id: str,
query: dict[str, Any] | None = None,
) -> list[dict[str, Any]]
Get members by organization id, optionally filtered by query parameters.
Source code in archipy/adapters/keycloak/port_mixins/organizations.py
archipy.adapters.keycloak.ports.KeycloakPort.get_organization_members_count
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.organization_user_add
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.organization_user_remove
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_realm
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_realm
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_realm
abstractmethod
¶
Update a realm.
Kwargs are RealmRepresentation top-level attributes (e.g. displayName, organizationsEnabled).
Source code in archipy/adapters/keycloak/port_mixins/realms.py
archipy.adapters.keycloak.ports.KeycloakPort.get_client_id
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_secret
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_service_account_id
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_client
abstractmethod
¶
create_client(
client_id: str,
realm: str | None = None,
skip_exists: bool = True,
**kwargs: Any,
) -> dict[str, Any] | None
Create a new client in the specified realm.
Source code in archipy/adapters/keycloak/port_mixins/clients.py
archipy.adapters.keycloak.ports.KeycloakPort.get_user_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_roles_for_user
abstractmethod
¶
Get client-specific roles assigned to a user.
archipy.adapters.keycloak.ports.KeycloakPort.has_role
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.has_any_of_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.has_all_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.assign_realm_role
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.remove_realm_role
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.assign_client_role
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.remove_client_role
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_realm_role
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_realm_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_realm_role
abstractmethod
¶
create_realm_role(
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new realm role.
archipy.adapters.keycloak.ports.KeycloakPort.delete_realm_role
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_client_role
abstractmethod
¶
create_client_role(
client_id: str,
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new client role.
Source code in archipy/adapters/keycloak/port_mixins/roles.py
archipy.adapters.keycloak.ports.KeycloakPort.add_realm_roles_to_composite
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.add_client_roles_to_composite
abstractmethod
¶
add_client_roles_to_composite(
composite_role_name: str,
client_id: str,
child_role_names: list[str],
) -> None
Add client roles to a composite role.
Source code in archipy/adapters/keycloak/port_mixins/roles.py
archipy.adapters.keycloak.ports.KeycloakPort.get_composite_realm_roles
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_user_by_id
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_user_by_username
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_user_by_email
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.create_user
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.update_user
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.reset_password
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.search_users
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.clear_user_sessions
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.delete_user
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_token
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.refresh_token
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.validate_token
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_userinfo
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_token_info
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.introspect_token
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_client_credentials_token
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.logout
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_public_key
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_well_known_config
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_certs
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.get_token_from_code
abstractmethod
¶
archipy.adapters.keycloak.ports.KeycloakPort.check_permissions
abstractmethod
¶
Check if a user has permission to access a resource with the specified scope.
archipy.adapters.keycloak.ports.KeycloakPort.check_permissions_batch
abstractmethod
¶
check_permissions_batch(
token: str, permissions: tuple[tuple[str, str], ...]
) -> frozenset[tuple[str, str]]
Return the subset of (resource, scope) pairs the token is authorized for in one UMA call.
Source code in archipy/adapters/keycloak/port_mixins/auth.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort ¶
Bases: AsyncKeycloakAuthPort, AsyncKeycloakUsersPort, AsyncKeycloakRolesPort, AsyncKeycloakClientsPort, AsyncKeycloakRealmsPort, AsyncKeycloakOrganizationsPort, AsyncKeycloakGroupsPort, AsyncKeycloakAuthFlowsPort, AsyncKeycloakClientScopesPort, AsyncKeycloakAuthzPort, AsyncKeycloakUmaPort, AsyncKeycloakComponentsPort
Asynchronous interface for Keycloak operations providing a standardized access pattern.
This interface defines the contract for async Keycloak adapters, ensuring consistent implementation of Keycloak operations across different adapters. It covers essential functionality including authentication, user management, and role management.
Source code in archipy/adapters/keycloak/ports.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_component
abstractmethod
async
¶
Create a Keycloak component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Component representation. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Created component ID. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_component
abstractmethod
async
¶
Get a component by ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Component representation. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_components
abstractmethod
async
¶
Get components, optionally filtered by query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching component representations. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_component
abstractmethod
async
¶
Update a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
payload
|
dict[str, Any]
|
Updated component representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Update response payload. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_component
abstractmethod
async
¶
Delete a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/port_mixins/components.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.resource_set_create
abstractmethod
async
¶
Create a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created resource set representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.resource_set_read
abstractmethod
async
¶
Read a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Resource set representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.resource_set_update
abstractmethod
async
¶
Update a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
payload
|
dict[str, Any]
|
Updated resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Updated resource set representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.resource_set_delete
abstractmethod
async
¶
Delete a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.resource_set_list
abstractmethod
async
¶
List all UMA resource sets.
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of resource set representations. |
archipy.adapters.keycloak.ports.AsyncKeycloakPort.resource_set_list_ids
abstractmethod
async
¶
resource_set_list_ids(
name: str = "",
exact_name: bool = False,
uri: str = "",
owner: str = "",
resource_type: str = "",
scope: str = "",
matchingUri: bool = False,
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
List UMA resource set IDs with optional filters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Filter by resource name. |
''
|
exact_name
|
bool
|
Require exact name match when True. |
False
|
uri
|
str
|
Filter by resource URI. |
''
|
owner
|
str
|
Filter by owner. |
''
|
resource_type
|
str
|
Filter by resource type. |
''
|
scope
|
str
|
Filter by scope. |
''
|
matchingUri
|
bool
|
Match URI patterns when True. |
False
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching resource set IDs / summaries. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.policy_resource_create
abstractmethod
async
¶
Create a UMA policy for a resource.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource identifier. |
required |
payload
|
dict[str, Any]
|
Policy representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created policy representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.policy_update
abstractmethod
async
¶
Update a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
payload
|
dict[str, Any]
|
Updated policy representation. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Raw update response bytes. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.policy_delete
abstractmethod
async
¶
Delete a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.policy_query
abstractmethod
async
¶
policy_query(
resource: str = "",
name: str = "",
scope: str = "",
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
Query UMA policies.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource
|
str
|
Filter by resource. |
''
|
name
|
str
|
Filter by policy name. |
''
|
scope
|
str
|
Filter by scope. |
''
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching policy representations. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.permission_ticket_create
abstractmethod
async
¶
Create a UMA permission ticket.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
permissions
|
Iterable[UMAPermission]
|
Permissions to include in the ticket. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Permission ticket representation. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.permissions_check
abstractmethod
async
¶
permissions_check(
token: str,
permissions: Iterable[UMAPermission],
**extra_payload: Any,
) -> bool
Check UMA permissions for a token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token to evaluate. |
required |
permissions
|
Iterable[UMAPermission]
|
Permissions to check. |
required |
**extra_payload
|
Any
|
Extra fields forwarded to the UMA endpoint. |
{}
|
Returns:
| Type | Description |
|---|---|
bool
|
True when all requested permissions are granted. |
Source code in archipy/adapters/keycloak/port_mixins/uma.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_authz_resource
abstractmethod
async
¶
create_client_authz_resource(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create an authorization resource for a client.
Source code in archipy/adapters/keycloak/port_mixins/authz.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_resources
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_resource
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_client_authz_resource
abstractmethod
async
¶
Update an authorization resource.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_client_authz_resource
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_authz_scopes
abstractmethod
async
¶
Create authorization scopes for a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_scopes
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_authz_role_based_policy
abstractmethod
async
¶
create_client_authz_role_based_policy(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a role-based authorization policy.
Source code in archipy/adapters/keycloak/port_mixins/authz.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_authz_client_policy
abstractmethod
async
¶
Create a client-based authorization policy.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_authz_policy
abstractmethod
async
¶
create_client_authz_policy(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create an authorization policy.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_policies
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_policy
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_client_authz_policy
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_authz_resource_based_permission
abstractmethod
async
¶
create_client_authz_resource_based_permission(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a resource-based permission.
Source code in archipy/adapters/keycloak/port_mixins/authz.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_authz_scope_permission
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_permissions
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_scope_permission
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_client_authz_scope_permission
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_client_authz_resource_permission
abstractmethod
async
¶
Update a resource-based permission.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_permission_associated_policies
abstractmethod
async
¶
get_client_authz_permission_associated_policies(
client_id: str, policy_id: str
) -> list[dict[str, Any]]
Get policies associated with a permission.
Source code in archipy/adapters/keycloak/port_mixins/authz.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_settings
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_client_policies
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_policy_resources
abstractmethod
async
¶
Get resources associated with a policy.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_authz_policy_scopes
abstractmethod
async
¶
Get scopes associated with a policy.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.import_client_authz_config
abstractmethod
async
¶
Import authorization configuration for a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_scopes
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_scope
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_scope_by_name
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_scope
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_client_scope
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_client_scope
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_mapper_to_client_scope
abstractmethod
async
¶
Add a protocol mapper to a client scope.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_mappers_from_client_scope
abstractmethod
async
¶
Get protocol mappers for a client scope.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_mapper_in_client_scope
abstractmethod
async
¶
update_mapper_in_client_scope(
client_scope_id: str,
protocol_mapper_id: str,
payload: dict,
) -> dict[str, Any]
Update a protocol mapper in a client scope.
Source code in archipy/adapters/keycloak/port_mixins/client_scopes.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_mapper_from_client_scope
abstractmethod
async
¶
Delete a protocol mapper from a client scope.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_mapper_to_client
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_mappers_from_client
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_client_mapper
abstractmethod
async
¶
Update a protocol mapper on a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.remove_client_mapper
abstractmethod
async
¶
Remove a protocol mapper from a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_default_client_scopes
abstractmethod
async
¶
Get default client scopes for a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_client_default_client_scope
abstractmethod
async
¶
add_client_default_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add a default client scope to a client.
Source code in archipy/adapters/keycloak/port_mixins/client_scopes.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_client_default_client_scope
abstractmethod
async
¶
Remove a default client scope from a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_optional_client_scopes
abstractmethod
async
¶
Get optional client scopes for a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_client_optional_client_scope
abstractmethod
async
¶
add_client_optional_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add an optional client scope to a client.
Source code in archipy/adapters/keycloak/port_mixins/client_scopes.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_client_optional_client_scope
abstractmethod
async
¶
Remove an optional client scope from a client.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_default_default_client_scopes
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_default_default_client_scope
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_default_default_client_scope
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_default_optional_client_scopes
abstractmethod
async
¶
Get realm optional default client scopes.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_default_optional_client_scope
abstractmethod
async
¶
Add a realm optional default client scope.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_default_optional_client_scope
abstractmethod
async
¶
Remove a realm optional default client scope.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_authentication_flow
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.copy_authentication_flow
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_authentication_flows
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_authentication_flow_for_id
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_authentication_flow
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_authentication_flow_executions
abstractmethod
async
¶
Get executions for an authentication flow.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_authentication_flow_execution
abstractmethod
async
¶
Get a single authentication flow execution.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_authentication_flow_execution
abstractmethod
async
¶
Create an execution in an authentication flow.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_authentication_flow_executions
abstractmethod
async
¶
Update executions in an authentication flow.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_authentication_flow_subflow
abstractmethod
async
¶
create_authentication_flow_subflow(
payload: dict,
flow_alias: str,
skip_exists: bool = False,
) -> bytes
Create a subflow in an authentication flow.
Source code in archipy/adapters/keycloak/port_mixins/auth_flows.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_authentication_flow_execution
abstractmethod
async
¶
Delete an authentication flow execution.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.change_execution_priority
abstractmethod
async
¶
Change priority of an authentication flow execution.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_authentication_flow
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_authenticator_providers
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_authenticator_provider_config_description
abstractmethod
async
¶
Get config description for an authenticator provider.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_authenticator_config
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_authenticator_config
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_authenticator_config
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_execution_config
abstractmethod
async
¶
Create configuration for an authentication flow execution.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_group
abstractmethod
async
¶
Create a new group.
Source code in archipy/adapters/keycloak/port_mixins/groups.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_group
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_group
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_group
abstractmethod
async
¶
get_group(
group_id: str,
full_hierarchy: bool = False,
query: dict | None = None,
) -> dict[str, Any]
Get group representation by ID.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_group_by_path
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_group_children
abstractmethod
async
¶
get_group_children(
group_id: str,
query: dict | None = None,
full_hierarchy: bool = False,
) -> list[dict[str, Any]]
Get child groups of a group.
Source code in archipy/adapters/keycloak/port_mixins/groups.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_groups
abstractmethod
async
¶
Get all groups, optionally filtered by query.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_subgroups
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.groups_count
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.group_user_add
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.group_user_remove
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.group_set_permissions
abstractmethod
async
¶
Enable or disable fine-grained permissions for a group.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_group_members
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_group_client_roles
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_group_realm_roles
abstractmethod
async
¶
Get realm roles assigned to a group.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.assign_group_client_roles
abstractmethod
async
¶
Assign client roles to a group.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.assign_group_realm_roles
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_group_client_roles
abstractmethod
async
¶
Remove client roles from a group.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_group_realm_roles
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_composite_client_roles_of_group
abstractmethod
async
¶
get_composite_client_roles_of_group(
client_id: str,
group_id: str,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get composite client roles of a group.
Source code in archipy/adapters/keycloak/port_mixins/groups.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_role_groups
abstractmethod
async
¶
Get groups that have a specific client role.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_realm_role_groups
abstractmethod
async
¶
get_realm_role_groups(
role_name: str,
query: dict | None = None,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get groups that have a specific realm role.
Source code in archipy/adapters/keycloak/port_mixins/groups.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_organizations
abstractmethod
async
¶
Fetch all organizations. Returns list of OrganizationRepresentation, filtered by query.
Source code in archipy/adapters/keycloak/port_mixins/organizations.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_organization
abstractmethod
async
¶
Get representation of the organization by ID.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_organization
abstractmethod
async
¶
Create a new organization. Name and alias must be unique. Returns org_id.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_organization
abstractmethod
async
¶
Update an existing organization. Kwargs are organization attributes (e.g. name, alias).
Source code in archipy/adapters/keycloak/port_mixins/organizations.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_organization
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_organization_idps
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_user_organizations
abstractmethod
async
¶
Get organizations by user id. Returns list of organizations the user is member of.
Source code in archipy/adapters/keycloak/port_mixins/organizations.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_organization_members
abstractmethod
async
¶
get_organization_members(
organization_id: str,
query: dict[str, Any] | None = None,
) -> list[dict[str, Any]]
Get members by organization id, optionally filtered by query parameters.
Source code in archipy/adapters/keycloak/port_mixins/organizations.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_organization_members_count
abstractmethod
async
¶
Get the number of members in the organization.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.organization_user_add
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.organization_user_remove
abstractmethod
async
¶
Remove a user from an organization.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_realm
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_realm
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_realm
abstractmethod
async
¶
Update a realm.
Kwargs are RealmRepresentation top-level attributes (e.g. displayName, organizationsEnabled).
Source code in archipy/adapters/keycloak/port_mixins/realms.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_id
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_secret
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_service_account_id
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client
abstractmethod
async
¶
create_client(
client_id: str,
realm: str | None = None,
skip_exists: bool = True,
**kwargs: Any,
) -> dict[str, Any] | None
Create a new client in the specified realm.
Source code in archipy/adapters/keycloak/port_mixins/clients.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_user_roles
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_roles_for_user
abstractmethod
async
¶
Get client-specific roles assigned to a user.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.has_role
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.has_any_of_roles
abstractmethod
async
¶
Check if a user has any of the specified roles.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.has_all_roles
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.assign_realm_role
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.remove_realm_role
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.assign_client_role
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.remove_client_role
abstractmethod
async
¶
Remove a client-specific role from a user.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_realm_role
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_realm_roles
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_realm_role
abstractmethod
async
¶
create_realm_role(
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new realm role.
Source code in archipy/adapters/keycloak/port_mixins/roles.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_realm_role
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_client_role
abstractmethod
async
¶
create_client_role(
client_id: str,
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new client role.
Source code in archipy/adapters/keycloak/port_mixins/roles.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_realm_roles_to_composite
abstractmethod
async
¶
Add realm roles to a composite role.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.add_client_roles_to_composite
abstractmethod
async
¶
add_client_roles_to_composite(
composite_role_name: str,
client_id: str,
child_role_names: list[str],
) -> None
Add client roles to a composite role.
Source code in archipy/adapters/keycloak/port_mixins/roles.py
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_composite_realm_roles
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_user_by_id
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_user_by_username
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_user_by_email
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.create_user
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.update_user
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.reset_password
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.search_users
abstractmethod
async
¶
Search for users by username, email, or name.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.clear_user_sessions
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.delete_user
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_token
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.refresh_token
abstractmethod
async
¶
Refresh an existing token using a refresh token.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.validate_token
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_userinfo
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_token_info
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.introspect_token
abstractmethod
async
¶
Introspect token to get detailed information about it.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_client_credentials_token
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.logout
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_public_key
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_well_known_config
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_certs
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.get_token_from_code
abstractmethod
async
¶
archipy.adapters.keycloak.ports.AsyncKeycloakPort.check_permissions
abstractmethod
async
¶
Check if a user has permission to access a resource with the specified scope.
archipy.adapters.keycloak.ports.AsyncKeycloakPort.check_permissions_batch
abstractmethod
async
¶
check_permissions_batch(
token: str, permissions: tuple[tuple[str, str], ...]
) -> frozenset[tuple[str, str]]
Return the subset of (resource, scope) pairs the token is authorized for in one UMA call.
Source code in archipy/adapters/keycloak/port_mixins/auth.py
options: show_root_toc_entry: false heading_level: 3
Adapters¶
Concrete Keycloak adapter wrapping the Keycloak REST API for authentication and authorization operations.
Keycloak adapters composed from per-concern mixins.
archipy.adapters.keycloak.adapters.KeycloakAdapter ¶
Bases: KeycloakConnectionMixin, KeycloakAuthMixin, KeycloakUsersMixin, KeycloakRolesMixin, KeycloakClientsMixin, KeycloakRealmsMixin, KeycloakOrganizationsMixin, KeycloakGroupsMixin, KeycloakAuthFlowsMixin, KeycloakClientScopesMixin, KeycloakAuthzMixin, KeycloakUmaMixin, KeycloakComponentsMixin, KeycloakPort
Concrete implementation of the KeycloakPort interface using python-keycloak library.
This implementation includes TTL caching for appropriate operations to improve performance while ensuring cache entries expire after a configured time to prevent stale data.
Source code in archipy/adapters/keycloak/adapters.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.configs
instance-attribute
¶
configs: KeycloakConfig = (
BaseConfig.global_config().KEYCLOAK
if keycloak_configs is None
else keycloak_configs
)
archipy.adapters.keycloak.adapters.KeycloakAdapter.admin_adapter
property
¶
Get the admin adapter, refreshing it if necessary.
Returns:
| Type | Description |
|---|---|
KeycloakAdmin
|
KeycloakAdmin instance |
Raises:
| Type | Description |
|---|---|
UnauthenticatedError
|
If admin client is not available due to authentication issues |
UnavailableError
|
If Keycloak service is unavailable |
archipy.adapters.keycloak.adapters.KeycloakAdapter.uma_adapter
property
¶
Get the UMA adapter, creating it on first access.
Returns:
| Type | Description |
|---|---|
KeycloakUMA
|
KeycloakUMA instance |
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_component ¶
Create a Keycloak component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Component representation. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Created component ID. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_component ¶
Get a component by ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Component representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_components ¶
Get components, optionally filtered by query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching component representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_component ¶
Update a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
payload
|
dict[str, Any]
|
Updated component representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Update response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_component ¶
Delete a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.resource_set_create ¶
Create a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created resource set representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.resource_set_read ¶
Read a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Resource set representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.resource_set_update ¶
Update a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
payload
|
dict[str, Any]
|
Updated resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Updated resource set representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.resource_set_delete ¶
Delete a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.resource_set_list ¶
List all UMA resource sets.
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of resource set representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.resource_set_list_ids ¶
resource_set_list_ids(
name: str = "",
exact_name: bool = False,
uri: str = "",
owner: str = "",
resource_type: str = "",
scope: str = "",
matchingUri: bool = False,
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
List UMA resource set IDs with optional filters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Filter by resource name. |
''
|
exact_name
|
bool
|
Require exact name match when True. |
False
|
uri
|
str
|
Filter by resource URI. |
''
|
owner
|
str
|
Filter by owner. |
''
|
resource_type
|
str
|
Filter by resource type. |
''
|
scope
|
str
|
Filter by scope. |
''
|
matchingUri
|
bool
|
Match URI patterns when True. |
False
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching resource set IDs / summaries. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.policy_resource_create ¶
Create a UMA policy for a resource.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource identifier. |
required |
payload
|
dict[str, Any]
|
Policy representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created policy representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.policy_update ¶
Update a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
payload
|
dict[str, Any]
|
Updated policy representation. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Raw update response bytes. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.policy_delete ¶
Delete a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.policy_query ¶
policy_query(
resource: str = "",
name: str = "",
scope: str = "",
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
Query UMA policies.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource
|
str
|
Filter by resource. |
''
|
name
|
str
|
Filter by policy name. |
''
|
scope
|
str
|
Filter by scope. |
''
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching policy representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.permission_ticket_create ¶
Create a UMA permission ticket.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
permissions
|
Iterable[UMAPermission]
|
Permissions to include in the ticket. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Permission ticket representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.permissions_check ¶
permissions_check(
token: str,
permissions: Iterable[UMAPermission],
**extra_payload: Any,
) -> bool
Check UMA permissions for a token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token to evaluate. |
required |
permissions
|
Iterable[UMAPermission]
|
Permissions to check. |
required |
**extra_payload
|
Any
|
Extra fields forwarded to the UMA endpoint. |
{}
|
Returns:
| Type | Description |
|---|---|
bool
|
True when all requested permissions are granted. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_authz_resource ¶
create_client_authz_resource(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create an authorization resource for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_resources ¶
Get authorization resources for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_resource ¶
Get a single authorization resource.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_client_authz_resource ¶
Update an authorization resource.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_client_authz_resource ¶
Delete an authorization resource.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_authz_scopes ¶
Create authorization scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_scopes ¶
Get authorization scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_authz_role_based_policy ¶
create_client_authz_role_based_policy(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a role-based authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_authz_client_policy ¶
Create a client-based authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_authz_policy ¶
create_client_authz_policy(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create an authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_policies ¶
Get authorization policies for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_policy ¶
Get a single authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_client_authz_policy ¶
Delete an authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_authz_resource_based_permission ¶
create_client_authz_resource_based_permission(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a resource-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_authz_scope_permission ¶
Create a scope-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_permissions ¶
Get authorization permissions for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_scope_permission ¶
Get a scope-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_client_authz_scope_permission ¶
Update a scope-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_client_authz_resource_permission ¶
Update a resource-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_permission_associated_policies ¶
get_client_authz_permission_associated_policies(
client_id: str, policy_id: str
) -> list[dict[str, Any]]
Get policies associated with a permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_settings ¶
Get authorization settings for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_client_policies ¶
Get client policies for authorization.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_policy_resources ¶
Get resources associated with a policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_authz_policy_scopes ¶
Get scopes associated with a policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.import_client_authz_config ¶
Import authorization configuration for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_scopes ¶
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_scope ¶
Get a client scope by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_scope_by_name ¶
Get a client scope by name.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_scope ¶
Create a new client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_client_scope ¶
Update a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_client_scope ¶
Delete a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_mapper_to_client_scope ¶
Add a protocol mapper to a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_mappers_from_client_scope ¶
Get protocol mappers for a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_mapper_in_client_scope ¶
update_mapper_in_client_scope(
client_scope_id: str,
protocol_mapper_id: str,
payload: dict,
) -> dict[str, Any]
Update a protocol mapper in a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_mapper_from_client_scope ¶
Delete a protocol mapper from a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_mapper_to_client ¶
Add a protocol mapper to a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_mappers_from_client ¶
Get protocol mappers for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_client_mapper ¶
Update a protocol mapper on a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.remove_client_mapper ¶
Remove a protocol mapper from a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_default_client_scopes ¶
Get default client scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_client_default_client_scope ¶
add_client_default_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add a default client scope to a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_client_default_client_scope ¶
Remove a default client scope from a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_optional_client_scopes ¶
Get optional client scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_client_optional_client_scope ¶
add_client_optional_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add an optional client scope to a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_client_optional_client_scope ¶
Remove an optional client scope from a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_default_default_client_scopes ¶
Get realm default client scopes.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_default_default_client_scope ¶
Add a realm default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_default_default_client_scope ¶
Remove a realm default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_default_optional_client_scopes ¶
Get realm optional default client scopes.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_default_optional_client_scope ¶
Add a realm optional default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_default_optional_client_scope ¶
Remove a realm optional default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_authentication_flow ¶
Create a new authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.copy_authentication_flow ¶
Copy an existing authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_authentication_flows ¶
Get all authentication flows.
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_authentication_flow_for_id ¶
Get authentication flow by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_authentication_flow ¶
Delete an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_authentication_flow_executions ¶
Get executions for an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_authentication_flow_execution ¶
Get a single authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_authentication_flow_execution ¶
Create an execution in an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_authentication_flow_executions ¶
Update executions in an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_authentication_flow_subflow ¶
create_authentication_flow_subflow(
payload: dict,
flow_alias: str,
skip_exists: bool = False,
) -> bytes
Create a subflow in an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_authentication_flow_execution ¶
Delete an authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.change_execution_priority ¶
Change priority of an authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_authentication_flow ¶
Update an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_authenticator_providers ¶
Get available authenticator providers.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_authenticator_provider_config_description ¶
Get config description for an authenticator provider.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_authenticator_config ¶
Get authenticator configuration by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_authenticator_config ¶
Update authenticator configuration.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_authenticator_config ¶
Delete authenticator configuration.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_execution_config ¶
Create configuration for an authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_group ¶
Create a new group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_group ¶
Update a group.
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_group ¶
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_group ¶
get_group(
group_id: str,
full_hierarchy: bool = False,
query: dict | None = None,
) -> dict[str, Any]
Get group representation by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_group_by_path ¶
Get group representation by path.
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_group_children ¶
get_group_children(
group_id: str,
query: dict | None = None,
full_hierarchy: bool = False,
) -> list[dict[str, Any]]
Get child groups of a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_groups ¶
Get all groups, optionally filtered by query.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_subgroups ¶
Get subgroups for a group at the given path.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.groups_count ¶
Get the number of groups matching the query.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.group_user_add ¶
Add a user to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.group_user_remove ¶
Remove a user from a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.group_set_permissions ¶
Enable or disable fine-grained permissions for a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_group_members ¶
Get members of a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_group_client_roles ¶
Get client roles assigned to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_group_realm_roles ¶
Get realm roles assigned to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.assign_group_client_roles ¶
Assign client roles to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.assign_group_realm_roles ¶
Assign realm roles to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_group_client_roles ¶
Remove client roles from a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_group_realm_roles ¶
Remove realm roles from a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_composite_client_roles_of_group ¶
get_composite_client_roles_of_group(
client_id: str,
group_id: str,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get composite client roles of a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_role_groups ¶
Get groups that have a specific client role.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_realm_role_groups ¶
get_realm_role_groups(
role_name: str,
query: dict | None = None,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get groups that have a specific realm role.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_organizations ¶
Fetch all organizations, optionally filtered by query parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of organization representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_organization ¶
Get representation of the organization by ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Organization representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_organization ¶
Create a new organization. Name and alias must be unique.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Organization name. |
required |
alias
|
str
|
Organization alias. |
required |
**kwargs
|
Any
|
Additional organization attributes (snake_case mapped to camelCase). |
{}
|
Returns:
| Type | Description |
|---|---|
str | None
|
Created organization ID, or None. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_organization ¶
Update an existing organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
**kwargs
|
Any
|
Organization attributes to update (snake_case mapped to camelCase). |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Update response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_organization ¶
Delete an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_organization_idps ¶
Get identity providers linked to an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of identity provider representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_user_organizations ¶
Get organizations by user id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User identifier. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Organizations the user belongs to. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_organization_members ¶
get_organization_members(
organization_id: str,
query: dict[str, Any] | None = None,
) -> list[dict[str, Any]]
Get members by organization id, optionally filtered by query parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Member representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_organization_members_count ¶
Get the number of members in the organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
int
|
Member count. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.organization_user_add ¶
Add a user to an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User identifier. |
required |
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Raw response bytes. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.organization_user_remove ¶
Remove a user from an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User identifier. |
required |
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Removal response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_realm ¶
Create a Keycloak realm with minimum required fields and optional additional config.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
realm_name
|
str
|
The realm identifier (required) |
required |
skip_exists
|
bool
|
Skip creation if realm already exists |
True
|
kwargs
|
Any
|
Additional optional configurations for the realm |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Realm details |
Source code in archipy/adapters/keycloak/adapter_mixins/realms.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_realm ¶
Get realm details by realm name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
realm_name
|
str
|
Name of the realm |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Realm details |
Source code in archipy/adapters/keycloak/adapter_mixins/realms.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_realm ¶
Update a realm. Kwargs are RealmRepresentation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
realm_name
|
str
|
Realm name (not the realm id). |
required |
**kwargs
|
Any
|
RealmRepresentation attributes to update (e.g. displayName). |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Response from Keycloak, or None on error (handled via exception). |
Source code in archipy/adapters/keycloak/adapter_mixins/realms.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_id ¶
Get client ID by client name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_name
|
str
|
Name of the client |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Client ID |
Raises:
| Type | Description |
|---|---|
ValueError
|
If client not found |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_secret ¶
Get client secret.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_id
|
str
|
Client ID |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Client secret |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting secret fails |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_service_account_id ¶
Get service account user ID for the current client.
Returns:
| Type | Description |
|---|---|
str | None
|
Service account user ID |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting service account fails |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client ¶
create_client(
client_id: str,
realm: str | None = None,
skip_exists: bool = True,
**kwargs: Any,
) -> dict[str, Any] | None
Create a Keycloak client with minimum required fields and optional additional config.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_id
|
str
|
The client identifier (required) |
required |
realm
|
str | None
|
Target realm name (uses the current realm in KeycloakAdmin if not specified) |
None
|
skip_exists
|
bool
|
Skip creation if client already exists |
True
|
kwargs
|
Any
|
Additional optional configurations for the client |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Client details |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_user_roles ¶
Get roles assigned to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
Returns:
| Type | Description |
|---|---|
list[KeycloakRoleType] | None
|
List of roles |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting roles fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_roles_for_user ¶
Get client-specific roles assigned to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
client_id
|
str
|
Client ID |
required |
Returns:
| Type | Description |
|---|---|
list[KeycloakRoleType]
|
List of client-specific roles |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting roles fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.has_role ¶
Check if a user has a specific role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
role_name
|
str
|
Role name to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if user has the role, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.has_any_of_roles ¶
Check if a user has any of the specified roles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
role_names
|
frozenset[str]
|
Set of role names to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if user has any of the roles, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.has_all_roles ¶
Check if a user has all the specified roles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
role_names
|
frozenset[str]
|
Set of role names to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if user has all the roles, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.assign_realm_role ¶
Assign a realm role to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
role_name
|
str
|
Role name to assign |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role assignment fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.remove_realm_role ¶
Remove a realm role from a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
role_name
|
str
|
Role name to remove |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role removal fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.assign_client_role ¶
Assign a client-specific role to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
client_id
|
str
|
Client ID |
required |
role_name
|
str
|
Role name to assign |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role assignment fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.remove_client_role ¶
Remove a client-specific role from a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
client_id
|
str
|
Client ID |
required |
role_name
|
str
|
Role name to remove |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role removal fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_realm_role ¶
Get realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Role name |
required |
Returns: A realm role
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting role fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_realm_roles ¶
Get all realm roles.
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]] | None
|
List of realm roles |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting roles fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_realm_role ¶
create_realm_role(
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Role name |
required |
description
|
str | None
|
Optional role description |
None
|
skip_exists
|
bool
|
Skip creation if realm role already exists |
True
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Created role details |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role creation fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_realm_role ¶
Delete a realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Role name to delete |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role deletion fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_client_role ¶
create_client_role(
client_id: str,
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new client role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_id
|
str
|
Client ID or client name |
required |
role_name
|
str
|
Role name |
required |
description
|
str | None
|
Optional role description |
None
|
skip_exists
|
bool
|
Skip creation if client role already exists |
True
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Created role details |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role creation fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_realm_roles_to_composite ¶
Add realm roles to a composite role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
composite_role_name
|
str
|
Name of the composite realm role |
required |
child_role_names
|
list[str]
|
List of child role names to add |
required |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.add_client_roles_to_composite ¶
add_client_roles_to_composite(
composite_role_name: str,
client_id: str,
child_role_names: list[str],
) -> None
Add client roles to a composite role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
composite_role_name
|
str
|
Name of the composite client role |
required |
client_id
|
str
|
Client ID or client name |
required |
child_role_names
|
list[str]
|
List of child role names to add |
required |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_composite_realm_roles ¶
Get composite roles for a realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Name of the role |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]] | None
|
List of composite roles |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_user_by_id ¶
Get user details by user ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User details or None if not found |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting user fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_user_by_username ¶
Get user details by username.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
username
|
str
|
User's username |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User details or None if not found |
Raises:
| Type | Description |
|---|---|
ValueError
|
If query fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_user_by_email ¶
Get user details by email.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
email
|
str
|
User's email |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User details or None if not found |
Raises:
| Type | Description |
|---|---|
ValueError
|
If query fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.create_user ¶
Create a new user in Keycloak.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_data
|
dict[str, Any]
|
User data including username, email, etc. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
ID of the created user |
Raises:
| Type | Description |
|---|---|
ValueError
|
If creating user fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.update_user ¶
Update user details.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
user_data
|
dict[str, Any]
|
User data to update |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If updating user fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.reset_password ¶
Reset a user's password.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
password
|
str
|
New password |
required |
temporary
|
bool
|
Whether the password is temporary and should be changed on next login |
False
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If password reset fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.search_users ¶
Search for users by username, email, or name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
str
|
Search query |
required |
max_results
|
int
|
Maximum number of results to return |
100
|
Returns:
| Type | Description |
|---|---|
list[KeycloakUserType] | None
|
List of matching users |
Raises:
| Type | Description |
|---|---|
ValueError
|
If search fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.clear_user_sessions ¶
Clear all sessions for a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If clearing sessions fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.delete_user ¶
Delete a user from Keycloak by their ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
The ID of the user to delete |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the deletion fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_token ¶
Get a user token by username and password using the Resource Owner Password Credentials Grant.
Warning
This method uses the direct password grant flow, which is less secure and not recommended
for user login in production environments. Instead, prefer the web-based OAuth 2.0
Authorization Code Flow (use get_token_from_code) for secure authentication.
Use this method only for testing, administrative tasks, or specific service accounts
where direct credential use is acceptable and properly secured.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
username
|
str
|
User's username |
required |
password
|
str
|
User's password |
required |
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
Token response containing access_token, refresh_token, etc. |
Raises:
| Type | Description |
|---|---|
InvalidCredentialsError
|
If username or password is invalid |
ServiceUnavailableError
|
If Keycloak service is unavailable |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.refresh_token ¶
Refresh an existing token using a refresh token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
refresh_token
|
str
|
Refresh token string |
required |
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
New token response containing access_token, refresh_token, etc. |
Raises:
| Type | Description |
|---|---|
InvalidTokenError
|
If refresh token is invalid or expired |
ServiceUnavailableError
|
If Keycloak service is unavailable |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.validate_token ¶
Validate if a token is still valid.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token to validate |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if token is valid, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_userinfo ¶
Get user information from a token via the UserInfo endpoint.
The UserInfo endpoint validates the token server-side, so no local validation is needed here.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User information |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting user info fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_token_info ¶
Decode token to get its claims.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Dictionary of token claims |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token decoding fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.introspect_token ¶
Introspect token to get detailed information about it.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Token introspection details |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token introspection fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_client_credentials_token ¶
Get token using client credentials.
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
Token response |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token acquisition fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.logout ¶
Logout user by invalidating their refresh token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
refresh_token
|
str
|
Refresh token to invalidate |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If logout fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_public_key ¶
Get the public key used to verify tokens.
Returns:
| Type | Description |
|---|---|
PublicKeyType
|
JWK key object used to verify signatures |
Raises:
| Type | Description |
|---|---|
ServiceUnavailableError
|
If Keycloak service is unavailable |
InternalError
|
If there's an internal error processing the public key |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_well_known_config ¶
Get the well-known OpenID configuration.
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
OIDC configuration |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting configuration fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_certs ¶
Get the JWT verification certificates.
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Certificate information |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting certificates fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.get_token_from_code ¶
Exchange authorization code for token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
code
|
str
|
Authorization code |
required |
redirect_uri
|
str
|
Redirect URI used in authorization request |
required |
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
Token response |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token exchange fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.check_permissions ¶
Check if a user has permission to access a resource with the specified scope.
Prefer :meth:check_permissions_batch when checking multiple pairs per request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
resource
|
str
|
Resource name |
required |
scope
|
str
|
Permission scope |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if permission granted, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.check_permissions_batch ¶
check_permissions_batch(
token: str, permissions: tuple[tuple[str, str], ...]
) -> frozenset[tuple[str, str]]
Return the subset of (resource, scope) pairs the token is authorized for in one UMA call.
Prefer this over :meth:check_permissions when multiple pairs must be checked per request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
permissions
|
tuple[tuple[str, str], ...]
|
Tuple of (resource, scope) pairs to check |
required |
Returns:
| Type | Description |
|---|---|
frozenset[tuple[str, str]]
|
Subset of |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.KeycloakAdapter.clear_all_caches ¶
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter ¶
Bases: AsyncKeycloakConnectionMixin, AsyncKeycloakAuthMixin, AsyncKeycloakUsersMixin, AsyncKeycloakRolesMixin, AsyncKeycloakClientsMixin, AsyncKeycloakRealmsMixin, AsyncKeycloakOrganizationsMixin, AsyncKeycloakGroupsMixin, AsyncKeycloakAuthFlowsMixin, AsyncKeycloakClientScopesMixin, AsyncKeycloakAuthzMixin, AsyncKeycloakUmaMixin, AsyncKeycloakComponentsMixin, AsyncKeycloakPort
Async concrete implementation of the AsyncKeycloakPort interface using python-keycloak library.
This implementation includes TTL caching for appropriate operations to improve performance while ensuring cache entries expire after a configured time to prevent stale data.
Source code in archipy/adapters/keycloak/adapters.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.configs
instance-attribute
¶
configs: KeycloakConfig = (
BaseConfig.global_config().KEYCLOAK
if keycloak_configs is None
else keycloak_configs
)
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.openid_adapter
instance-attribute
¶
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.admin_adapter
property
¶
Get the admin adapter, refreshing it if necessary.
Returns:
| Type | Description |
|---|---|
KeycloakAdmin
|
KeycloakAdmin instance |
Raises:
| Type | Description |
|---|---|
UnauthenticatedError
|
If admin client is not available due to authentication issues |
UnavailableError
|
If Keycloak service is unavailable |
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.uma_adapter
property
¶
Get the UMA adapter, creating it on first access.
Returns:
| Type | Description |
|---|---|
KeycloakUMA
|
KeycloakUMA instance |
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_component
async
¶
Create a Keycloak component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Component representation. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Created component ID. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_component
async
¶
Get a component by ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Component representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_components
async
¶
Get components, optionally filtered by query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching component representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_component
async
¶
Update a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
payload
|
dict[str, Any]
|
Updated component representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Update response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_component
async
¶
Delete a component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component_id
|
str
|
Component identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/components.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.resource_set_create
async
¶
Create a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
payload
|
dict[str, Any]
|
Resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created resource set representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.resource_set_read
async
¶
Read a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Resource set representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.resource_set_update
async
¶
Update a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
payload
|
dict[str, Any]
|
Updated resource set representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Updated resource set representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.resource_set_delete
async
¶
Delete a UMA resource set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource set identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.resource_set_list
async
¶
List all UMA resource sets.
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of resource set representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.resource_set_list_ids
async
¶
resource_set_list_ids(
name: str = "",
exact_name: bool = False,
uri: str = "",
owner: str = "",
resource_type: str = "",
scope: str = "",
matchingUri: bool = False,
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
List UMA resource set IDs with optional filters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Filter by resource name. |
''
|
exact_name
|
bool
|
Require exact name match when True. |
False
|
uri
|
str
|
Filter by resource URI. |
''
|
owner
|
str
|
Filter by owner. |
''
|
resource_type
|
str
|
Filter by resource type. |
''
|
scope
|
str
|
Filter by scope. |
''
|
matchingUri
|
bool
|
Match URI patterns when True. |
False
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching resource set IDs / summaries. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.policy_resource_create
async
¶
Create a UMA policy for a resource.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource_id
|
str
|
Resource identifier. |
required |
payload
|
dict[str, Any]
|
Policy representation. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Created policy representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.policy_update
async
¶
Update a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
payload
|
dict[str, Any]
|
Updated policy representation. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Raw update response bytes. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.policy_delete
async
¶
Delete a UMA policy.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
policy_id
|
str
|
Policy identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.policy_query
async
¶
policy_query(
resource: str = "",
name: str = "",
scope: str = "",
first: int = 0,
maximum: int = -1,
) -> list[dict[str, Any]]
Query UMA policies.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
resource
|
str
|
Filter by resource. |
''
|
name
|
str
|
Filter by policy name. |
''
|
scope
|
str
|
Filter by scope. |
''
|
first
|
int
|
Pagination offset. |
0
|
maximum
|
int
|
Max results (-1 for unlimited). |
-1
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Matching policy representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.permission_ticket_create
async
¶
Create a UMA permission ticket.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
permissions
|
Iterable[UMAPermission]
|
Permissions to include in the ticket. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Permission ticket representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.permissions_check
async
¶
permissions_check(
token: str,
permissions: Iterable[UMAPermission],
**extra_payload: Any,
) -> bool
Check UMA permissions for a token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token to evaluate. |
required |
permissions
|
Iterable[UMAPermission]
|
Permissions to check. |
required |
**extra_payload
|
Any
|
Extra fields forwarded to the UMA endpoint. |
{}
|
Returns:
| Type | Description |
|---|---|
bool
|
True when all requested permissions are granted. |
Source code in archipy/adapters/keycloak/adapter_mixins/uma.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_authz_resource
async
¶
create_client_authz_resource(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create an authorization resource for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_resources
async
¶
Get authorization resources for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_resource
async
¶
Get a single authorization resource.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_client_authz_resource
async
¶
Update an authorization resource.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_client_authz_resource
async
¶
Delete an authorization resource.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_authz_scopes
async
¶
Create authorization scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_scopes
async
¶
Get authorization scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_authz_role_based_policy
async
¶
create_client_authz_role_based_policy(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a role-based authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_authz_client_policy
async
¶
Create a client-based authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_authz_policy
async
¶
create_client_authz_policy(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create an authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_policies
async
¶
Get authorization policies for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_policy
async
¶
Get a single authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_client_authz_policy
async
¶
Delete an authorization policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_authz_resource_based_permission
async
¶
create_client_authz_resource_based_permission(
client_id: str, payload: dict, skip_exists: bool = False
) -> dict[str, Any]
Create a resource-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_authz_scope_permission
async
¶
Create a scope-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_permissions
async
¶
Get authorization permissions for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_scope_permission
async
¶
Get a scope-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_client_authz_scope_permission
async
¶
Update a scope-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_client_authz_resource_permission
async
¶
Update a resource-based permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_permission_associated_policies
async
¶
get_client_authz_permission_associated_policies(
client_id: str, policy_id: str
) -> list[dict[str, Any]]
Get policies associated with a permission.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_settings
async
¶
Get authorization settings for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_client_policies
async
¶
Get client policies for authorization.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_policy_resources
async
¶
Get resources associated with a policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_authz_policy_scopes
async
¶
Get scopes associated with a policy.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.import_client_authz_config
async
¶
Import authorization configuration for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/authz.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_scopes
async
¶
Get all client scopes.
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_scope
async
¶
Get a client scope by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_scope_by_name
async
¶
Get a client scope by name.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_scope
async
¶
Create a new client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_client_scope
async
¶
Update a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_client_scope
async
¶
Delete a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_mapper_to_client_scope
async
¶
Add a protocol mapper to a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_mappers_from_client_scope
async
¶
Get protocol mappers for a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_mapper_in_client_scope
async
¶
update_mapper_in_client_scope(
client_scope_id: str,
protocol_mapper_id: str,
payload: dict,
) -> dict[str, Any]
Update a protocol mapper in a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_mapper_from_client_scope
async
¶
Delete a protocol mapper from a client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_mapper_to_client
async
¶
Add a protocol mapper to a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_mappers_from_client
async
¶
Get protocol mappers for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_client_mapper
async
¶
Update a protocol mapper on a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.remove_client_mapper
async
¶
Remove a protocol mapper from a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_default_client_scopes
async
¶
Get default client scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_client_default_client_scope
async
¶
add_client_default_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add a default client scope to a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_client_default_client_scope
async
¶
Remove a default client scope from a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_optional_client_scopes
async
¶
Get optional client scopes for a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_client_optional_client_scope
async
¶
add_client_optional_client_scope(
client_id: str, client_scope_id: str, payload: dict
) -> dict[str, Any]
Add an optional client scope to a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_client_optional_client_scope
async
¶
Remove an optional client scope from a client.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_default_default_client_scopes
async
¶
Get realm default client scopes.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_default_default_client_scope
async
¶
Add a realm default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_default_default_client_scope
async
¶
Remove a realm default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_default_optional_client_scopes
async
¶
Get realm optional default client scopes.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_default_optional_client_scope
async
¶
Add a realm optional default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_default_optional_client_scope
async
¶
Remove a realm optional default client scope.
Source code in archipy/adapters/keycloak/adapter_mixins/client_scopes.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_authentication_flow
async
¶
Create a new authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.copy_authentication_flow
async
¶
Copy an existing authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_authentication_flows
async
¶
Get all authentication flows.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_authentication_flow_for_id
async
¶
Get authentication flow by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_authentication_flow
async
¶
Delete an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_authentication_flow_executions
async
¶
Get executions for an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_authentication_flow_execution
async
¶
Get a single authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_authentication_flow_execution
async
¶
Create an execution in an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_authentication_flow_executions
async
¶
Update executions in an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_authentication_flow_subflow
async
¶
create_authentication_flow_subflow(
payload: dict,
flow_alias: str,
skip_exists: bool = False,
) -> bytes
Create a subflow in an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_authentication_flow_execution
async
¶
Delete an authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.change_execution_priority
async
¶
Change priority of an authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_authentication_flow
async
¶
Update an authentication flow.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_authenticator_providers
async
¶
Get available authenticator providers.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_authenticator_provider_config_description
async
¶
Get config description for an authenticator provider.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_authenticator_config
async
¶
Get authenticator configuration by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_authenticator_config
async
¶
Update authenticator configuration.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_authenticator_config
async
¶
Delete authenticator configuration.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_execution_config
async
¶
Create configuration for an authentication flow execution.
Source code in archipy/adapters/keycloak/adapter_mixins/auth_flows.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_group
async
¶
Create a new group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_group
async
¶
Update a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_group
async
¶
Delete a group.
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_group
async
¶
get_group(
group_id: str,
full_hierarchy: bool = False,
query: dict | None = None,
) -> dict[str, Any]
Get group representation by ID.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_group_by_path
async
¶
Get group representation by path.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_group_children
async
¶
get_group_children(
group_id: str,
query: dict | None = None,
full_hierarchy: bool = False,
) -> list[dict[str, Any]]
Get child groups of a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_groups
async
¶
Get all groups, optionally filtered by query.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_subgroups
async
¶
Get subgroups for a group at the given path.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.groups_count
async
¶
Get the number of groups matching the query.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.group_user_add
async
¶
Add a user to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.group_user_remove
async
¶
Remove a user from a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.group_set_permissions
async
¶
Enable or disable fine-grained permissions for a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_group_members
async
¶
Get members of a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_group_client_roles
async
¶
Get client roles assigned to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_group_realm_roles
async
¶
Get realm roles assigned to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.assign_group_client_roles
async
¶
Assign client roles to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.assign_group_realm_roles
async
¶
Assign realm roles to a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_group_client_roles
async
¶
Remove client roles from a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_group_realm_roles
async
¶
Remove realm roles from a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_composite_client_roles_of_group
async
¶
get_composite_client_roles_of_group(
client_id: str,
group_id: str,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get composite client roles of a group.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_role_groups
async
¶
Get groups that have a specific client role.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_realm_role_groups
async
¶
get_realm_role_groups(
role_name: str,
query: dict | None = None,
brief_representation: bool = True,
) -> list[dict[str, Any]]
Get groups that have a specific realm role.
Source code in archipy/adapters/keycloak/adapter_mixins/groups.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_organizations
async
¶
Fetch all organizations, optionally filtered by query parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of organization representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_organization
async
¶
Get representation of the organization by ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Organization representation. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_organization
async
¶
Create a new organization. Name and alias must be unique.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Organization name. |
required |
alias
|
str
|
Organization alias. |
required |
**kwargs
|
Any
|
Additional organization attributes (snake_case mapped to camelCase). |
{}
|
Returns:
| Type | Description |
|---|---|
str | None
|
Created organization ID, or None. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_organization
async
¶
Update an existing organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
**kwargs
|
Any
|
Organization attributes to update (snake_case mapped to camelCase). |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Update response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_organization
async
¶
Delete an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Deletion response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_organization_idps
async
¶
Get identity providers linked to an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of identity provider representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_user_organizations
async
¶
Get organizations by user id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User identifier. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Organizations the user belongs to. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_organization_members
async
¶
get_organization_members(
organization_id: str,
query: dict[str, Any] | None = None,
) -> list[dict[str, Any]]
Get members by organization id, optionally filtered by query parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
query
|
dict[str, Any] | None
|
Optional filter query parameters. |
None
|
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
Member representations. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_organization_members_count
async
¶
Get the number of members in the organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
int
|
Member count. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.organization_user_add
async
¶
Add a user to an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User identifier. |
required |
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Raw response bytes. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.organization_user_remove
async
¶
Remove a user from an organization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User identifier. |
required |
organization_id
|
str
|
Organization identifier. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Removal response payload. |
Source code in archipy/adapters/keycloak/adapter_mixins/organizations.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_realm
async
¶
Create a Keycloak realm with minimum required fields and optional additional config.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
realm_name
|
str
|
The realm identifier (required) |
required |
skip_exists
|
bool
|
Skip creation if realm already exists |
True
|
kwargs
|
Any
|
Additional optional configurations for the realm |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Dictionary with realm information and status |
Raises:
| Type | Description |
|---|---|
InternalError
|
If realm creation fails |
Source code in archipy/adapters/keycloak/adapter_mixins/realms.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_realm
async
¶
Get realm details by realm name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
realm_name
|
str
|
Name of the realm |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Realm details |
Raises:
| Type | Description |
|---|---|
InternalError
|
If getting realm fails |
Source code in archipy/adapters/keycloak/adapter_mixins/realms.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_realm
async
¶
Update a realm. Kwargs are RealmRepresentation top-level attributes (e.g. displayName, organizationsEnabled).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
realm_name
|
str
|
Realm name (not the realm id). |
required |
**kwargs
|
Any
|
RealmRepresentation attributes to update (e.g. displayName, organizationsEnabled). |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Response from Keycloak, or None on error (handled via exception). |
Source code in archipy/adapters/keycloak/adapter_mixins/realms.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_id
async
¶
Get client ID by client name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_name
|
str
|
Name of the client |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Client ID |
Raises:
| Type | Description |
|---|---|
ValueError
|
If client not found |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_secret
async
¶
Get client secret.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_id
|
str
|
Client ID |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
Client secret |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting secret fails |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_service_account_id
async
¶
Get service account user ID for the current client.
Returns:
| Type | Description |
|---|---|
str | None
|
Service account user ID |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting service account fails |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client
async
¶
create_client(
client_id: str,
realm: str | None = None,
skip_exists: bool = True,
**kwargs: Any,
) -> dict[str, Any] | None
Create a Keycloak client with minimum required fields and optional additional config.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_id
|
str
|
The client identifier (required) |
required |
realm
|
str | None
|
Target realm name (uses the current realm in KeycloakAdmin if not specified) |
None
|
skip_exists
|
bool
|
Skip creation if client already exists |
True
|
kwargs
|
Any
|
Additional optional configurations for the client |
{}
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Dictionary with client information |
Raises:
| Type | Description |
|---|---|
InternalError
|
If client creation fails |
Source code in archipy/adapters/keycloak/adapter_mixins/clients.py
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 | |
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_user_roles
async
¶
Get roles assigned to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
Returns:
| Type | Description |
|---|---|
list[KeycloakRoleType] | None
|
List of roles |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting roles fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_roles_for_user
async
¶
Get client-specific roles assigned to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
client_id
|
str
|
Client ID |
required |
Returns:
| Type | Description |
|---|---|
list[KeycloakRoleType]
|
List of client-specific roles |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting roles fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.has_role
async
¶
Check if a user has a specific role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
role_name
|
str
|
Role name to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if user has the role, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.has_any_of_roles
async
¶
Check if a user has any of the specified roles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
role_names
|
frozenset[str]
|
Set of role names to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if user has any of the roles, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.has_all_roles
async
¶
Check if a user has all the specified roles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
role_names
|
frozenset[str]
|
Set of role names to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if user has all the roles, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.assign_realm_role
async
¶
Assign a realm role to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
role_name
|
str
|
Role name to assign |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role assignment fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.remove_realm_role
async
¶
Remove a realm role from a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
role_name
|
str
|
Role name to remove |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role removal fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.assign_client_role
async
¶
Assign a client-specific role to a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
client_id
|
str
|
Client ID |
required |
role_name
|
str
|
Role name to assign |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role assignment fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.remove_client_role
async
¶
Remove a client-specific role from a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
client_id
|
str
|
Client ID |
required |
role_name
|
str
|
Role name to remove |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role removal fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_realm_role
async
¶
Get realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Role name |
required |
Returns: A realm role
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting role fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_realm_roles
async
¶
Get all realm roles.
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]] | None
|
List of realm roles |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting roles fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_realm_role
async
¶
create_realm_role(
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Role name |
required |
description
|
str | None
|
Optional role description |
None
|
skip_exists
|
bool
|
Skip creation if role already exists |
True
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Created role details |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role creation fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_realm_role
async
¶
Delete a realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Role name to delete |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If role deletion fails |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_client_role
async
¶
create_client_role(
client_id: str,
role_name: str,
description: str | None = None,
skip_exists: bool = True,
) -> dict[str, Any] | None
Create a new client role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
client_id
|
str
|
Client ID or client name |
required |
role_name
|
str
|
Role name |
required |
skip_exists
|
bool
|
Skip creation if role already exists |
True
|
description
|
str | None
|
Optional role description |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Created role details |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_realm_roles_to_composite
async
¶
Add realm roles to a composite role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
composite_role_name
|
str
|
Name of the composite role |
required |
child_role_names
|
list[str]
|
List of child role names to add |
required |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.add_client_roles_to_composite
async
¶
add_client_roles_to_composite(
composite_role_name: str,
client_id: str,
child_role_names: list[str],
) -> None
Add client roles to a composite role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
composite_role_name
|
str
|
Name of the composite role |
required |
client_id
|
str
|
Client ID or client name |
required |
child_role_names
|
list[str]
|
List of child role names to add |
required |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_composite_realm_roles
async
¶
Get composite roles for a realm role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name
|
str
|
Name of the role |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]] | None
|
List of composite roles |
Source code in archipy/adapters/keycloak/adapter_mixins/roles.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_user_by_id
async
¶
Get user details by user ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User details or None if not found |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting user fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_user_by_username
async
¶
Get user details by username.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
username
|
str
|
User's username |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User details or None if not found |
Raises:
| Type | Description |
|---|---|
ValueError
|
If query fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_user_by_email
async
¶
Get user details by email.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
email
|
str
|
User's email |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User details or None if not found |
Raises:
| Type | Description |
|---|---|
ValueError
|
If query fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.create_user
async
¶
Create a new user in Keycloak.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_data
|
dict[str, Any]
|
User data including username, email, etc. |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
ID of the created user |
Raises:
| Type | Description |
|---|---|
ValueError
|
If creating user fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.update_user
async
¶
Update user details.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
user_data
|
dict[str, Any]
|
User data to update |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If updating user fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.reset_password
async
¶
Reset a user's password.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
password
|
str
|
New password |
required |
temporary
|
bool
|
Whether the password is temporary and should be changed on next login |
False
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If password reset fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.search_users
async
¶
Search for users by username, email, or name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
str
|
Search query |
required |
max_results
|
int
|
Maximum number of results to return |
100
|
Returns:
| Type | Description |
|---|---|
list[KeycloakUserType] | None
|
List of matching users |
Raises:
| Type | Description |
|---|---|
ValueError
|
If search fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.clear_user_sessions
async
¶
Clear all sessions for a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
User's ID |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If clearing sessions fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.delete_user
async
¶
Delete a user from Keycloak by their ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
The ID of the user to delete |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the deletion fails |
Source code in archipy/adapters/keycloak/adapter_mixins/users.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_token
async
¶
Get a user token by username and password using the Resource Owner Password Credentials Grant.
Warning
This method uses the direct password grant flow, which is less secure and not recommended
for user login in production environments. Instead, prefer the web-based OAuth 2.0
Authorization Code Flow (use get_token_from_code) for secure authentication.
Use this method only for testing, administrative tasks, or specific service accounts
where direct credential use is acceptable and properly secured.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
username
|
str
|
User's username |
required |
password
|
str
|
User's password |
required |
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
Token response containing access_token, refresh_token, etc. |
Raises:
| Type | Description |
|---|---|
InvalidCredentialsError
|
If username or password is invalid |
ServiceUnavailableError
|
If Keycloak service is unavailable |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.refresh_token
async
¶
Refresh an existing token using a refresh token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
refresh_token
|
str
|
Refresh token string |
required |
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
New token response containing access_token, refresh_token, etc. |
Raises:
| Type | Description |
|---|---|
InvalidTokenError
|
If refresh token is invalid or expired |
ServiceUnavailableError
|
If Keycloak service is unavailable |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.validate_token
async
¶
Validate if a token is still valid.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token to validate |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if token is valid, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_userinfo
async
¶
Get user information from a token via the UserInfo endpoint.
The UserInfo endpoint validates the token server-side, so no local validation is needed here.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
Returns:
| Type | Description |
|---|---|
KeycloakUserType | None
|
User information |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting user info fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_token_info
async
¶
Decode token to get its claims.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Dictionary of token claims |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token decoding fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.introspect_token
async
¶
Introspect token to get detailed information about it.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Token introspection details |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token introspection fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_client_credentials_token
async
¶
Get token using client credentials.
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
Token response |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token acquisition fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.logout
async
¶
Logout user by invalidating their refresh token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
refresh_token
|
str
|
Refresh token to invalidate |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If logout fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_public_key
async
¶
Get the public key used to verify tokens.
Returns:
| Type | Description |
|---|---|
PublicKeyType
|
JWK key object used to verify signatures |
Raises:
| Type | Description |
|---|---|
ServiceUnavailableError
|
If Keycloak service is unavailable |
InternalError
|
If there's an internal error processing the public key |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_well_known_config
async
¶
Get the well-known OpenID configuration.
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
OIDC configuration |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting configuration fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_certs
async
¶
Get the JWT verification certificates.
Returns:
| Type | Description |
|---|---|
dict[str, Any] | None
|
Certificate information |
Raises:
| Type | Description |
|---|---|
ValueError
|
If getting certificates fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.get_token_from_code
async
¶
Exchange authorization code for token.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
code
|
str
|
Authorization code |
required |
redirect_uri
|
str
|
Redirect URI used in authorization request |
required |
Returns:
| Type | Description |
|---|---|
KeycloakTokenType | None
|
Token response |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token exchange fails |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.check_permissions
async
¶
Check if a user has permission to access a resource with the specified scope.
Prefer :meth:check_permissions_batch when checking multiple pairs per request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
resource
|
str
|
Resource name |
required |
scope
|
str
|
Permission scope |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if permission granted, False otherwise |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.check_permissions_batch
async
¶
check_permissions_batch(
token: str, permissions: tuple[tuple[str, str], ...]
) -> frozenset[tuple[str, str]]
Return the subset of (resource, scope) pairs the token is authorized for in one UMA call.
Prefer this over :meth:check_permissions when multiple pairs must be checked per request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
str
|
Access token |
required |
permissions
|
tuple[tuple[str, str], ...]
|
Tuple of (resource, scope) pairs to check |
required |
Returns:
| Type | Description |
|---|---|
frozenset[tuple[str, str]]
|
Subset of |
Source code in archipy/adapters/keycloak/adapter_mixins/auth.py
archipy.adapters.keycloak.adapters.AsyncKeycloakAdapter.clear_all_caches ¶
options: show_root_toc_entry: false heading_level: 3