diff --git a/spiffworkflow-backend/bin/console b/spiffworkflow-backend/bin/console
new file mode 100755
index 00000000..1fd9f5a4
--- /dev/null
+++ b/spiffworkflow-backend/bin/console
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+function error_handler() {
+ >&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}."
+ exit "$2"
+}
+trap 'error_handler ${LINENO} $?' ERR
+set -o errtrace -o errexit -o nounset -o pipefail
+
+script_dir="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+. "${script_dir}/local_development_environment_setup"
+
+export SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP=false
+poetry run flask shell
diff --git a/spiffworkflow-backend/bin/local_development_environment_setup b/spiffworkflow-backend/bin/local_development_environment_setup
new file mode 100755
index 00000000..72466211
--- /dev/null
+++ b/spiffworkflow-backend/bin/local_development_environment_setup
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+
+function error_handler() {
+ >&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}."
+ exit "$2"
+}
+trap 'error_handler ${LINENO} $?' ERR
+set -o errtrace -o errexit -o nounset -o pipefail
+
+if [ "${BASH_SOURCE[0]}" -ef "$0" ]; then
+ echo "Hey, you should source this script, not execute it!"
+ exit 1
+fi
+
+port="${SPIFFWORKFLOW_BACKEND_PORT:-7000}"
+
+process_model_dir="${1:-}"
+
+if [[ -z "${SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR:-}" ]]; then
+ if [[ -n "${process_model_dir}" ]] && [[ -d "${process_model_dir}" ]]; then
+ SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR="$process_model_dir"
+ else
+ SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR=$(./bin/find_sample_process_models)
+ fi
+ export SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR
+fi
+
+if [[ "$process_model_dir" == "acceptance" ]]; then
+ export SPIFFWORKFLOW_BACKEND_LOAD_FIXTURE_DATA=true
+ export SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_NAME=acceptance_tests.yml
+elif [[ "$process_model_dir" == "localopenid" ]]; then
+ export SPIFFWORKFLOW_BACKEND_OPEN_ID_SERVER_URL="http://localhost:$port/openid"
+ export SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_NAME="example.yml"
+fi
+
+if [[ -z "${SPIFFWORKFLOW_BACKEND_ENV:-}" ]]; then
+ export SPIFFWORKFLOW_BACKEND_ENV=local_development
+fi
+
+export FLASK_SESSION_SECRET_KEY="e7711a3ba96c46c68e084a86952de16f"
+export SPIFFWORKFLOW_BACKEND_APPLICATION_ROOT="/"
+
+export FLASK_DEBUG=1
+
+if [[ -z "${SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP:-}" ]]; then
+ SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP=true
+fi
+export SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP
+
+export FLASK_APP=src/spiffworkflow_backend
diff --git a/spiffworkflow-backend/bin/run_server_locally b/spiffworkflow-backend/bin/run_server_locally
index e4d5ba8f..43f23f90 100755
--- a/spiffworkflow-backend/bin/run_server_locally
+++ b/spiffworkflow-backend/bin/run_server_locally
@@ -7,35 +7,8 @@ function error_handler() {
trap 'error_handler ${LINENO} $?' ERR
set -o errtrace -o errexit -o nounset -o pipefail
-port="${SPIFFWORKFLOW_BACKEND_PORT:-7000}"
-
-process_model_dir="${1:-}"
-
-if [[ -z "${SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR:-}" ]]; then
- if [[ -n "${process_model_dir}" ]] && [[ -d "${process_model_dir}" ]]; then
- SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR="$process_model_dir"
- else
- SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR=$(./bin/find_sample_process_models)
- fi
- export SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR
-fi
-
-if [[ "$process_model_dir" == "acceptance" ]]; then
- export SPIFFWORKFLOW_BACKEND_LOAD_FIXTURE_DATA=true
- export SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_NAME=acceptance_tests.yml
-elif [[ "$process_model_dir" == "localopenid" ]]; then
- export SPIFFWORKFLOW_BACKEND_OPEN_ID_SERVER_URL="http://localhost:$port/openid"
- export SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_NAME="example.yml"
-fi
-
-if [[ -z "${SPIFFWORKFLOW_BACKEND_ENV:-}" ]]; then
- export SPIFFWORKFLOW_BACKEND_ENV=local_development
-fi
-
-
-# export FLASK_SESSION_SECRET_KEY="super_secret_key"
-export FLASK_SESSION_SECRET_KEY="e7711a3ba96c46c68e084a86952de16f"
-export SPIFFWORKFLOW_BACKEND_APPLICATION_ROOT="/"
+script_dir="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+. "${script_dir}/local_development_environment_setup"
if [[ -n "${SPIFFWORKFLOW_BACKEND_LOAD_FIXTURE_DATA:-}" ]]; then
./bin/boot_server_in_docker
@@ -46,10 +19,6 @@ else
SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP=false SPIFFWORKFLOW_BACKEND_FAIL_ON_INVALID_PROCESS_MODELS=false poetry run python bin/save_all_bpmn.py
fi
- if [[ -z "${SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP:-}" ]]; then
- SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP=true
- fi
-
# this line blocks
- SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP="${SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER_IN_CREATE_APP}" FLASK_APP=src/spiffworkflow_backend poetry run flask run -p "$port" --host=0.0.0.0
+ poetry run flask run -p "$port" --host=0.0.0.0
fi
diff --git a/spiffworkflow-backend/realmstuff/master-realm.json b/spiffworkflow-backend/realmstuff/master-realm.json
new file mode 100644
index 00000000..85adca86
--- /dev/null
+++ b/spiffworkflow-backend/realmstuff/master-realm.json
@@ -0,0 +1,2004 @@
+{
+ "id" : "28a58595-9c23-4c0d-8843-da6ca6a06cc2",
+ "realm" : "master",
+ "displayName" : "Keycloak",
+ "displayNameHtml" : "
Keycloak
",
+ "notBefore" : 0,
+ "defaultSignatureAlgorithm" : "RS256",
+ "revokeRefreshToken" : false,
+ "refreshTokenMaxReuse" : 0,
+ "accessTokenLifespan" : 60,
+ "accessTokenLifespanForImplicitFlow" : 900,
+ "ssoSessionIdleTimeout" : 1800,
+ "ssoSessionMaxLifespan" : 36000,
+ "ssoSessionIdleTimeoutRememberMe" : 0,
+ "ssoSessionMaxLifespanRememberMe" : 0,
+ "offlineSessionIdleTimeout" : 2592000,
+ "offlineSessionMaxLifespanEnabled" : false,
+ "offlineSessionMaxLifespan" : 5184000,
+ "clientSessionIdleTimeout" : 0,
+ "clientSessionMaxLifespan" : 0,
+ "clientOfflineSessionIdleTimeout" : 0,
+ "clientOfflineSessionMaxLifespan" : 0,
+ "accessCodeLifespan" : 60,
+ "accessCodeLifespanUserAction" : 300,
+ "accessCodeLifespanLogin" : 1800,
+ "actionTokenGeneratedByAdminLifespan" : 43200,
+ "actionTokenGeneratedByUserLifespan" : 300,
+ "oauth2DeviceCodeLifespan" : 600,
+ "oauth2DevicePollingInterval" : 5,
+ "enabled" : true,
+ "sslRequired" : "none",
+ "registrationAllowed" : false,
+ "registrationEmailAsUsername" : false,
+ "rememberMe" : false,
+ "verifyEmail" : false,
+ "loginWithEmailAllowed" : true,
+ "duplicateEmailsAllowed" : false,
+ "resetPasswordAllowed" : false,
+ "editUsernameAllowed" : false,
+ "bruteForceProtected" : false,
+ "permanentLockout" : false,
+ "maxFailureWaitSeconds" : 900,
+ "minimumQuickLoginWaitSeconds" : 60,
+ "waitIncrementSeconds" : 60,
+ "quickLoginCheckMilliSeconds" : 1000,
+ "maxDeltaTimeSeconds" : 43200,
+ "failureFactor" : 30,
+ "roles" : {
+ "realm" : [ {
+ "id" : "3b91b57b-d1fc-4850-87ab-b6ba52ad519f",
+ "name" : "uma_authorization",
+ "description" : "${role_uma_authorization}",
+ "composite" : false,
+ "clientRole" : false,
+ "containerId" : "28a58595-9c23-4c0d-8843-da6ca6a06cc2",
+ "attributes" : { }
+ }, {
+ "id" : "f8f30986-01d3-4088-930a-2c0ba82d4a2f",
+ "name" : "default-roles-master",
+ "description" : "${role_default-roles}",
+ "composite" : true,
+ "composites" : {
+ "realm" : [ "offline_access", "uma_authorization" ],
+ "client" : {
+ "account" : [ "manage-account", "view-profile" ]
+ }
+ },
+ "clientRole" : false,
+ "containerId" : "28a58595-9c23-4c0d-8843-da6ca6a06cc2",
+ "attributes" : { }
+ }, {
+ "id" : "4866d07d-39be-4c6e-a11e-e19775e14387",
+ "name" : "create-realm",
+ "description" : "${role_create-realm}",
+ "composite" : false,
+ "clientRole" : false,
+ "containerId" : "28a58595-9c23-4c0d-8843-da6ca6a06cc2",
+ "attributes" : { }
+ }, {
+ "id" : "5742b73b-73a7-42d3-a6c2-692871b5e478",
+ "name" : "offline_access",
+ "description" : "${role_offline-access}",
+ "composite" : false,
+ "clientRole" : false,
+ "containerId" : "28a58595-9c23-4c0d-8843-da6ca6a06cc2",
+ "attributes" : { }
+ }, {
+ "id" : "2cf196eb-b56b-4a6e-bbc9-f1d353a0f822",
+ "name" : "admin",
+ "description" : "${role_admin}",
+ "composite" : true,
+ "composites" : {
+ "realm" : [ "create-realm" ],
+ "client" : {
+ "spiffworkflow-realm" : [ "view-authorization", "view-users", "query-clients", "query-users", "manage-clients", "manage-realm", "manage-users", "manage-authorization", "query-groups", "view-realm", "manage-identity-providers", "query-realms", "create-client", "manage-events", "impersonation", "view-events", "view-identity-providers", "view-clients" ],
+ "master-realm" : [ "view-authorization", "manage-authorization", "view-clients", "query-realms", "view-identity-providers", "manage-users", "impersonation", "view-users", "manage-realm", "manage-clients", "query-users", "create-client", "query-groups", "view-realm", "manage-events", "view-events", "manage-identity-providers", "query-clients" ]
+ }
+ },
+ "clientRole" : false,
+ "containerId" : "28a58595-9c23-4c0d-8843-da6ca6a06cc2",
+ "attributes" : { }
+ } ],
+ "client" : {
+ "spiffworkflow-realm" : [ {
+ "id" : "3c6e3327-2957-43a9-b7b5-8d82874e5281",
+ "name" : "query-groups",
+ "description" : "${role_query-groups}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "2de089e5-2cad-4de8-b4f0-d78255320e6b",
+ "name" : "view-realm",
+ "description" : "${role_view-realm}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "26b0d926-2cb6-4ea5-9f38-fa2be5c78f71",
+ "name" : "view-authorization",
+ "description" : "${role_view-authorization}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "d032d952-411a-45ca-98a7-393ac487e50a",
+ "name" : "view-users",
+ "description" : "${role_view-users}",
+ "composite" : true,
+ "composites" : {
+ "client" : {
+ "spiffworkflow-realm" : [ "query-groups", "query-users" ]
+ }
+ },
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "062b8eb5-c331-4dbb-a9f7-152a9ca59179",
+ "name" : "query-clients",
+ "description" : "${role_query-clients}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "9a02ee56-10fc-4462-afed-1bd4fb9c482b",
+ "name" : "manage-identity-providers",
+ "description" : "${role_manage-identity-providers}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "481cad7c-f17e-41e6-ae67-a3ca9bb360e0",
+ "name" : "query-realms",
+ "description" : "${role_query-realms}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "1d85ef7e-423f-4618-a5f2-582e81304dc7",
+ "name" : "query-users",
+ "description" : "${role_query-users}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "38816283-eb7e-4181-8b45-91780f0defff",
+ "name" : "manage-clients",
+ "description" : "${role_manage-clients}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "4d40878b-ca31-4a96-93d7-b9d1ab47818a",
+ "name" : "create-client",
+ "description" : "${role_create-client}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "83958114-6e0c-4312-9d48-57ab3c438ee6",
+ "name" : "impersonation",
+ "description" : "${role_impersonation}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "61d73df7-9201-4253-9a37-0c3bccf361c1",
+ "name" : "manage-events",
+ "description" : "${role_manage-events}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "c7a3f157-1247-488d-9c77-e139b589f4f6",
+ "name" : "view-events",
+ "description" : "${role_view-events}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "d48fc8c8-3214-43e1-bcf5-dd06e901109e",
+ "name" : "view-clients",
+ "description" : "${role_view-clients}",
+ "composite" : true,
+ "composites" : {
+ "client" : {
+ "spiffworkflow-realm" : [ "query-clients" ]
+ }
+ },
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "c51475fe-9a4e-4ff4-84d6-c550dca1124b",
+ "name" : "view-identity-providers",
+ "description" : "${role_view-identity-providers}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "bfcc1363-e79b-446c-b2e3-e9cdfb3275c2",
+ "name" : "manage-authorization",
+ "description" : "${role_manage-authorization}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "7efa9655-62cd-441e-87a4-60c5abc92d41",
+ "name" : "manage-realm",
+ "description" : "${role_manage-realm}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ }, {
+ "id" : "a2a0f4d3-69fe-443d-9149-d35c31784645",
+ "name" : "manage-users",
+ "description" : "${role_manage-users}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "attributes" : { }
+ } ],
+ "security-admin-console" : [ ],
+ "admin-cli" : [ ],
+ "account-console" : [ ],
+ "broker" : [ {
+ "id" : "f3b4ad29-c080-4d01-bbe7-85e20680bcf9",
+ "name" : "read-token",
+ "description" : "${role_read-token}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "197772d4-3fb4-4bcf-b3da-b97fdee304ee",
+ "attributes" : { }
+ } ],
+ "master-realm" : [ {
+ "id" : "e46d7ccb-f3c8-41e1-9ac5-1b47f8b16e25",
+ "name" : "manage-clients",
+ "description" : "${role_manage-clients}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "39c6e24d-e6c5-48a2-a809-907dae28bddc",
+ "name" : "manage-realm",
+ "description" : "${role_manage-realm}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "c8ba42ff-97f2-4006-9d0a-8972c59af51d",
+ "name" : "query-users",
+ "description" : "${role_query-users}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "c1e5016d-6018-4828-943c-5da3135524f4",
+ "name" : "view-authorization",
+ "description" : "${role_view-authorization}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "8f77d26f-8536-4870-a39b-b7a4c825f465",
+ "name" : "manage-authorization",
+ "description" : "${role_manage-authorization}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "f9c28cdf-195c-4be4-a20d-c510e6f1d2f5",
+ "name" : "view-clients",
+ "description" : "${role_view-clients}",
+ "composite" : true,
+ "composites" : {
+ "client" : {
+ "master-realm" : [ "query-clients" ]
+ }
+ },
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "f4c8a114-2601-4624-8d1b-ab26f286a321",
+ "name" : "query-realms",
+ "description" : "${role_query-realms}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "8d9d5d85-abfb-4ead-a9b0-c873e79741fe",
+ "name" : "create-client",
+ "description" : "${role_create-client}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "df9f03b0-c0d8-4fea-9a31-f94e198d23ea",
+ "name" : "query-groups",
+ "description" : "${role_query-groups}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "d50d5c32-59a8-4afa-a482-24cf18bad434",
+ "name" : "manage-users",
+ "description" : "${role_manage-users}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "b5e62e91-6141-4757-9bd9-644875af8996",
+ "name" : "view-identity-providers",
+ "description" : "${role_view-identity-providers}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "b50f73d6-6560-46f0-bbe2-db45b7ab0650",
+ "name" : "view-realm",
+ "description" : "${role_view-realm}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "043406ce-4ab6-457a-8d93-109821e7d02e",
+ "name" : "manage-events",
+ "description" : "${role_manage-events}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "e0f2fcd1-3570-4563-a761-46ca145619a5",
+ "name" : "manage-identity-providers",
+ "description" : "${role_manage-identity-providers}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "25d59920-486f-4ca5-9e37-51df874cd22e",
+ "name" : "view-events",
+ "description" : "${role_view-events}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "d7e12121-1e72-48b8-89b8-c8d1be9bbd1f",
+ "name" : "query-clients",
+ "description" : "${role_query-clients}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "104f81b7-6b70-413e-a641-99c7b7f64524",
+ "name" : "impersonation",
+ "description" : "${role_impersonation}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ }, {
+ "id" : "c6a15f09-bdf6-42c8-ada7-9b23c4de3070",
+ "name" : "view-users",
+ "description" : "${role_view-users}",
+ "composite" : true,
+ "composites" : {
+ "client" : {
+ "master-realm" : [ "query-users", "query-groups" ]
+ }
+ },
+ "clientRole" : true,
+ "containerId" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "attributes" : { }
+ } ],
+ "account" : [ {
+ "id" : "49fb8ab4-ad3c-4de2-bafe-0600d86fefa2",
+ "name" : "manage-consent",
+ "description" : "${role_manage-consent}",
+ "composite" : true,
+ "composites" : {
+ "client" : {
+ "account" : [ "view-consent" ]
+ }
+ },
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ }, {
+ "id" : "3460fa49-e31c-44ac-b0b8-4522a667e297",
+ "name" : "view-groups",
+ "description" : "${role_view-groups}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ }, {
+ "id" : "de1afbd4-7ab5-47b0-901f-5a7da668d1d6",
+ "name" : "manage-account",
+ "description" : "${role_manage-account}",
+ "composite" : true,
+ "composites" : {
+ "client" : {
+ "account" : [ "manage-account-links" ]
+ }
+ },
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ }, {
+ "id" : "dfd8c4c7-d53c-45dc-b643-87e59b29997c",
+ "name" : "manage-account-links",
+ "description" : "${role_manage-account-links}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ }, {
+ "id" : "144d540e-ee4f-489b-8c99-d52fa6aed74c",
+ "name" : "view-profile",
+ "description" : "${role_view-profile}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ }, {
+ "id" : "06953035-d585-446b-a46a-950439430a7e",
+ "name" : "delete-account",
+ "description" : "${role_delete-account}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ }, {
+ "id" : "771bb8ab-3e1c-4573-9f32-5abef9426dc7",
+ "name" : "view-applications",
+ "description" : "${role_view-applications}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ }, {
+ "id" : "a076722c-9028-4b84-b95e-7136ec0c9146",
+ "name" : "view-consent",
+ "description" : "${role_view-consent}",
+ "composite" : false,
+ "clientRole" : true,
+ "containerId" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "attributes" : { }
+ } ]
+ }
+ },
+ "groups" : [ ],
+ "defaultRole" : {
+ "id" : "f8f30986-01d3-4088-930a-2c0ba82d4a2f",
+ "name" : "default-roles-master",
+ "description" : "${role_default-roles}",
+ "composite" : true,
+ "clientRole" : false,
+ "containerId" : "28a58595-9c23-4c0d-8843-da6ca6a06cc2"
+ },
+ "requiredCredentials" : [ "password" ],
+ "otpPolicyType" : "totp",
+ "otpPolicyAlgorithm" : "HmacSHA1",
+ "otpPolicyInitialCounter" : 0,
+ "otpPolicyDigits" : 6,
+ "otpPolicyLookAheadWindow" : 1,
+ "otpPolicyPeriod" : 30,
+ "otpPolicyCodeReusable" : false,
+ "otpSupportedApplications" : [ "totpAppGoogleName", "totpAppFreeOTPName" ],
+ "webAuthnPolicyRpEntityName" : "keycloak",
+ "webAuthnPolicySignatureAlgorithms" : [ "ES256" ],
+ "webAuthnPolicyRpId" : "",
+ "webAuthnPolicyAttestationConveyancePreference" : "not specified",
+ "webAuthnPolicyAuthenticatorAttachment" : "not specified",
+ "webAuthnPolicyRequireResidentKey" : "not specified",
+ "webAuthnPolicyUserVerificationRequirement" : "not specified",
+ "webAuthnPolicyCreateTimeout" : 0,
+ "webAuthnPolicyAvoidSameAuthenticatorRegister" : false,
+ "webAuthnPolicyAcceptableAaguids" : [ ],
+ "webAuthnPolicyPasswordlessRpEntityName" : "keycloak",
+ "webAuthnPolicyPasswordlessSignatureAlgorithms" : [ "ES256" ],
+ "webAuthnPolicyPasswordlessRpId" : "",
+ "webAuthnPolicyPasswordlessAttestationConveyancePreference" : "not specified",
+ "webAuthnPolicyPasswordlessAuthenticatorAttachment" : "not specified",
+ "webAuthnPolicyPasswordlessRequireResidentKey" : "not specified",
+ "webAuthnPolicyPasswordlessUserVerificationRequirement" : "not specified",
+ "webAuthnPolicyPasswordlessCreateTimeout" : 0,
+ "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister" : false,
+ "webAuthnPolicyPasswordlessAcceptableAaguids" : [ ],
+ "users" : [ {
+ "id" : "14135f25-1d59-4463-8cf8-a6e9fbc97246",
+ "createdTimestamp" : 1696007339909,
+ "username" : "admin",
+ "enabled" : true,
+ "totp" : false,
+ "emailVerified" : false,
+ "credentials" : [ {
+ "id" : "0683c7b0-0325-4918-b5b2-50994cc57c4b",
+ "type" : "password",
+ "createdDate" : 1696007341201,
+ "secretData" : "{\"value\":\"HlC5MaqUokZkCLaqRozd5nr0jpxCN+Lqq+MBclPB5yU8wxydyQVmxcZxZ5GnXcnhV+M92kD+uhR/28cH3FG6hQ==\",\"salt\":\"zOJPZyOgre3nUAJDBIdBFA==\",\"additionalParameters\":{}}",
+ "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}"
+ } ],
+ "disableableCredentialTypes" : [ ],
+ "requiredActions" : [ ],
+ "realmRoles" : [ "default-roles-master", "admin" ],
+ "clientRoles" : {
+ "spiffworkflow-realm" : [ "query-groups", "view-realm", "view-users", "view-authorization", "query-clients", "manage-identity-providers", "query-users", "query-realms", "manage-clients", "create-client", "view-events", "manage-events", "view-clients", "view-identity-providers", "manage-realm", "manage-users", "manage-authorization" ]
+ },
+ "notBefore" : 0,
+ "groups" : [ ]
+ } ],
+ "scopeMappings" : [ {
+ "clientScope" : "offline_access",
+ "roles" : [ "offline_access" ]
+ } ],
+ "clientScopeMappings" : {
+ "account" : [ {
+ "client" : "account-console",
+ "roles" : [ "manage-account", "view-groups" ]
+ } ]
+ },
+ "clients" : [ {
+ "id" : "8fbf7e0e-1d36-4238-b047-f664c5abe7d8",
+ "clientId" : "account",
+ "name" : "${client_account}",
+ "rootUrl" : "${authBaseUrl}",
+ "baseUrl" : "/realms/master/account/",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "alwaysDisplayInConsole" : false,
+ "clientAuthenticatorType" : "client-secret",
+ "redirectUris" : [ "/realms/master/account/*" ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : true,
+ "frontchannelLogout" : false,
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "post.logout.redirect.uris" : "+"
+ },
+ "authenticationFlowBindingOverrides" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "email" ],
+ "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
+ }, {
+ "id" : "75fa3e04-c2c8-42b0-80bb-3dfae2f0d3d2",
+ "clientId" : "account-console",
+ "name" : "${client_account-console}",
+ "rootUrl" : "${authBaseUrl}",
+ "baseUrl" : "/realms/master/account/",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "alwaysDisplayInConsole" : false,
+ "clientAuthenticatorType" : "client-secret",
+ "redirectUris" : [ "/realms/master/account/*" ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : true,
+ "frontchannelLogout" : false,
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "post.logout.redirect.uris" : "+",
+ "pkce.code.challenge.method" : "S256"
+ },
+ "authenticationFlowBindingOverrides" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "protocolMappers" : [ {
+ "id" : "2a21a8da-1212-4619-b992-ddbb823b17e7",
+ "name" : "audience resolve",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-audience-resolve-mapper",
+ "consentRequired" : false,
+ "config" : { }
+ } ],
+ "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "email" ],
+ "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
+ }, {
+ "id" : "17248aed-efcc-4d28-b47f-3aa01d166997",
+ "clientId" : "admin-cli",
+ "name" : "${client_admin-cli}",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "alwaysDisplayInConsole" : false,
+ "clientAuthenticatorType" : "client-secret",
+ "redirectUris" : [ ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : false,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : true,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : true,
+ "frontchannelLogout" : false,
+ "protocol" : "openid-connect",
+ "attributes" : { },
+ "authenticationFlowBindingOverrides" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "email" ],
+ "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
+ }, {
+ "id" : "197772d4-3fb4-4bcf-b3da-b97fdee304ee",
+ "clientId" : "broker",
+ "name" : "${client_broker}",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "alwaysDisplayInConsole" : false,
+ "clientAuthenticatorType" : "client-secret",
+ "redirectUris" : [ ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : true,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : false,
+ "frontchannelLogout" : false,
+ "protocol" : "openid-connect",
+ "attributes" : { },
+ "authenticationFlowBindingOverrides" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "email" ],
+ "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
+ }, {
+ "id" : "75945257-7d9f-404c-8fbc-09aa75ebb2b4",
+ "clientId" : "master-realm",
+ "name" : "master Realm",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "alwaysDisplayInConsole" : false,
+ "clientAuthenticatorType" : "client-secret",
+ "redirectUris" : [ ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : true,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : false,
+ "frontchannelLogout" : false,
+ "attributes" : { },
+ "authenticationFlowBindingOverrides" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "email" ],
+ "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
+ }, {
+ "id" : "5346a47d-7f89-4ad6-9e90-12ab9aab2019",
+ "clientId" : "security-admin-console",
+ "name" : "${client_security-admin-console}",
+ "rootUrl" : "${authAdminUrl}",
+ "baseUrl" : "/admin/master/console/",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "alwaysDisplayInConsole" : false,
+ "clientAuthenticatorType" : "client-secret",
+ "redirectUris" : [ "/admin/master/console/*" ],
+ "webOrigins" : [ "+" ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : true,
+ "frontchannelLogout" : false,
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "post.logout.redirect.uris" : "+",
+ "pkce.code.challenge.method" : "S256"
+ },
+ "authenticationFlowBindingOverrides" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "protocolMappers" : [ {
+ "id" : "50854593-f40a-457a-98e2-43833685d2ed",
+ "name" : "locale",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "locale",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "locale",
+ "jsonType.label" : "String"
+ }
+ } ],
+ "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "email" ],
+ "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
+ }, {
+ "id" : "51db627a-a146-4d11-ac89-596587b3fbd2",
+ "clientId" : "spiffworkflow-realm",
+ "name" : "spiffworkflow Realm",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "alwaysDisplayInConsole" : false,
+ "clientAuthenticatorType" : "client-secret",
+ "redirectUris" : [ ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : true,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : false,
+ "frontchannelLogout" : false,
+ "attributes" : { },
+ "authenticationFlowBindingOverrides" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "defaultClientScopes" : [ ],
+ "optionalClientScopes" : [ ]
+ } ],
+ "clientScopes" : [ {
+ "id" : "cc3b24f5-9f35-4bf4-8b6d-62441e241f5c",
+ "name" : "roles",
+ "description" : "OpenID Connect scope for add user roles to the access token",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "false",
+ "display.on.consent.screen" : "true",
+ "consent.screen.text" : "${rolesScopeConsentText}"
+ },
+ "protocolMappers" : [ {
+ "id" : "adcba286-a0aa-4e3b-8858-9da885cd5097",
+ "name" : "audience resolve",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-audience-resolve-mapper",
+ "consentRequired" : false,
+ "config" : { }
+ }, {
+ "id" : "031bbd70-55f1-4f3e-b7e9-ac830b2e5913",
+ "name" : "client roles",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-client-role-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "user.attribute" : "foo",
+ "access.token.claim" : "true",
+ "claim.name" : "resource_access.${client_id}.roles",
+ "jsonType.label" : "String",
+ "multivalued" : "true"
+ }
+ }, {
+ "id" : "966acade-109e-4ec8-b9f8-c6d4679e052f",
+ "name" : "realm roles",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-realm-role-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "user.attribute" : "foo",
+ "access.token.claim" : "true",
+ "claim.name" : "realm_access.roles",
+ "jsonType.label" : "String",
+ "multivalued" : "true"
+ }
+ } ]
+ }, {
+ "id" : "1ac8a2da-bc7c-483e-93fd-b6771f33fb56",
+ "name" : "role_list",
+ "description" : "SAML role list",
+ "protocol" : "saml",
+ "attributes" : {
+ "consent.screen.text" : "${samlRoleListScopeConsentText}",
+ "display.on.consent.screen" : "true"
+ },
+ "protocolMappers" : [ {
+ "id" : "f56c18c8-a92e-4759-9311-09e1280cc3db",
+ "name" : "role list",
+ "protocol" : "saml",
+ "protocolMapper" : "saml-role-list-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "single" : "false",
+ "attribute.nameformat" : "Basic",
+ "attribute.name" : "Role"
+ }
+ } ]
+ }, {
+ "id" : "8b05e717-5b0f-4eef-99ab-ae3f14f61d73",
+ "name" : "address",
+ "description" : "OpenID Connect built-in scope: address",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "true",
+ "display.on.consent.screen" : "true",
+ "consent.screen.text" : "${addressScopeConsentText}"
+ },
+ "protocolMappers" : [ {
+ "id" : "f19fc41c-ff66-4ea5-921d-cec2088a5703",
+ "name" : "address",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-address-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "user.attribute.formatted" : "formatted",
+ "user.attribute.country" : "country",
+ "user.attribute.postal_code" : "postal_code",
+ "userinfo.token.claim" : "true",
+ "user.attribute.street" : "street",
+ "id.token.claim" : "true",
+ "user.attribute.region" : "region",
+ "access.token.claim" : "true",
+ "user.attribute.locality" : "locality"
+ }
+ } ]
+ }, {
+ "id" : "6c51050d-34e3-4977-90b3-28d815f6afb0",
+ "name" : "phone",
+ "description" : "OpenID Connect built-in scope: phone",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "true",
+ "display.on.consent.screen" : "true",
+ "consent.screen.text" : "${phoneScopeConsentText}"
+ },
+ "protocolMappers" : [ {
+ "id" : "11810f27-0b88-417e-aeea-5d404aaeb2c9",
+ "name" : "phone number verified",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "phoneNumberVerified",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "phone_number_verified",
+ "jsonType.label" : "boolean"
+ }
+ }, {
+ "id" : "1e446a12-af3f-4701-9a87-5f4e925e5450",
+ "name" : "phone number",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "phoneNumber",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "phone_number",
+ "jsonType.label" : "String"
+ }
+ } ]
+ }, {
+ "id" : "984744a2-1a42-4a1d-9c0b-89b542014774",
+ "name" : "web-origins",
+ "description" : "OpenID Connect scope for add allowed web origins to the access token",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "false",
+ "display.on.consent.screen" : "false",
+ "consent.screen.text" : ""
+ },
+ "protocolMappers" : [ {
+ "id" : "bff3b1cd-f15e-4a69-8a7a-b0dbd34e2097",
+ "name" : "allowed web origins",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-allowed-origins-mapper",
+ "consentRequired" : false,
+ "config" : { }
+ } ]
+ }, {
+ "id" : "6538e8fd-0fe7-4db3-8f08-d39cdc5bbfa1",
+ "name" : "email",
+ "description" : "OpenID Connect built-in scope: email",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "true",
+ "display.on.consent.screen" : "true",
+ "consent.screen.text" : "${emailScopeConsentText}"
+ },
+ "protocolMappers" : [ {
+ "id" : "6f62c9db-a64d-431c-95c0-35b96dca56c7",
+ "name" : "email",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "email",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "fe71857e-0033-4ddb-9d1b-324369ddc533",
+ "name" : "email verified",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "emailVerified",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email_verified",
+ "jsonType.label" : "boolean"
+ }
+ } ]
+ }, {
+ "id" : "269c0568-ce12-45ce-b811-f4c183a4f869",
+ "name" : "offline_access",
+ "description" : "OpenID Connect built-in scope: offline_access",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "consent.screen.text" : "${offlineAccessScopeConsentText}",
+ "display.on.consent.screen" : "true"
+ }
+ }, {
+ "id" : "6b04f4d3-22c0-48be-89ef-6fabb9d9f122",
+ "name" : "profile",
+ "description" : "OpenID Connect built-in scope: profile",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "true",
+ "display.on.consent.screen" : "true",
+ "consent.screen.text" : "${profileScopeConsentText}"
+ },
+ "protocolMappers" : [ {
+ "id" : "d64d9a89-3779-422a-820b-f52726166769",
+ "name" : "zoneinfo",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "zoneinfo",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "zoneinfo",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "f5a5e7f9-1b28-48c3-b71a-0982e33d78c1",
+ "name" : "updated at",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "updatedAt",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "updated_at",
+ "jsonType.label" : "long"
+ }
+ }, {
+ "id" : "777b52ed-9d1a-478a-bb6f-8d13b1150e2c",
+ "name" : "username",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "preferred_username",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "e005fcfd-e665-404d-bfc0-5fd5b2302c83",
+ "name" : "middle name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "middleName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "middle_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "bb3bd3b5-0676-4eb7-9110-8cd0cf47bae5",
+ "name" : "gender",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "gender",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "gender",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "909ca483-77b5-459a-a41c-d274a1d071a4",
+ "name" : "full name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-full-name-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "userinfo.token.claim" : "true"
+ }
+ }, {
+ "id" : "c81e19ac-a3e3-4435-ba79-05c4aceab0ae",
+ "name" : "given name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "firstName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "given_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "c53dad0f-f15b-4bc6-a2a4-aa8c257a71c3",
+ "name" : "profile",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "profile",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "profile",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "74655ed6-2a15-4386-8bb1-d9b9466dd29e",
+ "name" : "picture",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "picture",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "picture",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "1494c216-70b8-47ba-8af4-c0c811af67a8",
+ "name" : "website",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "website",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "website",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "56bb6df0-c785-4cdf-88ff-d7b6acd099fd",
+ "name" : "locale",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "locale",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "locale",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "040894d1-7073-4849-90f1-9761e4e4a3ab",
+ "name" : "family name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "lastName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "family_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "e86f9c47-0341-4c92-92c4-2ecee2b06b48",
+ "name" : "nickname",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "nickname",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "nickname",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "420ae63d-1b23-41e3-86b2-106c06a14ab3",
+ "name" : "birthdate",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "birthdate",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "birthdate",
+ "jsonType.label" : "String"
+ }
+ } ]
+ }, {
+ "id" : "60a753df-2a3f-4c3b-8b7d-9c65da6317f2",
+ "name" : "microprofile-jwt",
+ "description" : "Microprofile - JWT built-in scope",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "true",
+ "display.on.consent.screen" : "false"
+ },
+ "protocolMappers" : [ {
+ "id" : "16c7f758-96fd-44da-8894-fcd53015e5ee",
+ "name" : "upn",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "userinfo.token.claim" : "true",
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "upn",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "801d87b5-96c5-4309-9cf5-103cce650283",
+ "name" : "groups",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-realm-role-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "multivalued" : "true",
+ "user.attribute" : "foo",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "groups",
+ "jsonType.label" : "String"
+ }
+ } ]
+ }, {
+ "id" : "3b32bf1a-d4ef-46ae-97df-9b3625242912",
+ "name" : "acr",
+ "description" : "OpenID Connect scope for add acr (authentication context class reference) to the token",
+ "protocol" : "openid-connect",
+ "attributes" : {
+ "include.in.token.scope" : "false",
+ "display.on.consent.screen" : "false"
+ },
+ "protocolMappers" : [ {
+ "id" : "adf7c91e-0c4a-47a1-ad9d-e048dd11afd0",
+ "name" : "acr loa level",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-acr-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true"
+ }
+ } ]
+ } ],
+ "defaultDefaultClientScopes" : [ "role_list", "profile", "email", "roles", "web-origins", "acr" ],
+ "defaultOptionalClientScopes" : [ "offline_access", "address", "phone", "microprofile-jwt" ],
+ "browserSecurityHeaders" : {
+ "contentSecurityPolicyReportOnly" : "",
+ "xContentTypeOptions" : "nosniff",
+ "xRobotsTag" : "none",
+ "xFrameOptions" : "SAMEORIGIN",
+ "contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
+ "xXSSProtection" : "1; mode=block",
+ "strictTransportSecurity" : "max-age=31536000; includeSubDomains"
+ },
+ "smtpServer" : { },
+ "eventsEnabled" : false,
+ "eventsListeners" : [ "jboss-logging" ],
+ "enabledEventTypes" : [ ],
+ "adminEventsEnabled" : false,
+ "adminEventsDetailsEnabled" : false,
+ "identityProviders" : [ ],
+ "identityProviderMappers" : [ ],
+ "components" : {
+ "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy" : [ {
+ "id" : "f042768a-1545-4c68-99a9-4fb08913c48b",
+ "name" : "Trusted Hosts",
+ "providerId" : "trusted-hosts",
+ "subType" : "anonymous",
+ "subComponents" : { },
+ "config" : {
+ "host-sending-registration-request-must-match" : [ "true" ],
+ "client-uris-must-match" : [ "true" ]
+ }
+ }, {
+ "id" : "fa69c91c-2541-487c-80d6-aa9335e2ff75",
+ "name" : "Allowed Protocol Mapper Types",
+ "providerId" : "allowed-protocol-mappers",
+ "subType" : "anonymous",
+ "subComponents" : { },
+ "config" : {
+ "allowed-protocol-mapper-types" : [ "oidc-full-name-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-user-property-mapper", "oidc-address-mapper", "oidc-usermodel-property-mapper", "oidc-usermodel-attribute-mapper", "saml-user-attribute-mapper", "saml-role-list-mapper" ]
+ }
+ }, {
+ "id" : "f01b9a2f-2f3f-4cbb-88a6-07d2b3d42672",
+ "name" : "Full Scope Disabled",
+ "providerId" : "scope",
+ "subType" : "anonymous",
+ "subComponents" : { },
+ "config" : { }
+ }, {
+ "id" : "30f2cc07-eb1c-4788-98ea-5146fd5ccdd2",
+ "name" : "Consent Required",
+ "providerId" : "consent-required",
+ "subType" : "anonymous",
+ "subComponents" : { },
+ "config" : { }
+ }, {
+ "id" : "5c644e2d-0beb-4955-89d4-d4842cc814d0",
+ "name" : "Allowed Client Scopes",
+ "providerId" : "allowed-client-templates",
+ "subType" : "anonymous",
+ "subComponents" : { },
+ "config" : {
+ "allow-default-scopes" : [ "true" ]
+ }
+ }, {
+ "id" : "f5ac498d-18bb-48b1-8d57-0d9c9efd238a",
+ "name" : "Max Clients Limit",
+ "providerId" : "max-clients",
+ "subType" : "anonymous",
+ "subComponents" : { },
+ "config" : {
+ "max-clients" : [ "200" ]
+ }
+ }, {
+ "id" : "7477679c-5403-4786-8f6f-49e8d7ee44fe",
+ "name" : "Allowed Client Scopes",
+ "providerId" : "allowed-client-templates",
+ "subType" : "authenticated",
+ "subComponents" : { },
+ "config" : {
+ "allow-default-scopes" : [ "true" ]
+ }
+ }, {
+ "id" : "a6094c56-5d9b-42bc-82a1-d96827dcdbaa",
+ "name" : "Allowed Protocol Mapper Types",
+ "providerId" : "allowed-protocol-mappers",
+ "subType" : "authenticated",
+ "subComponents" : { },
+ "config" : {
+ "allowed-protocol-mapper-types" : [ "oidc-sha256-pairwise-sub-mapper", "saml-role-list-mapper", "saml-user-attribute-mapper", "saml-user-property-mapper", "oidc-usermodel-attribute-mapper", "oidc-address-mapper", "oidc-usermodel-property-mapper", "oidc-full-name-mapper" ]
+ }
+ } ],
+ "org.keycloak.userprofile.UserProfileProvider" : [ {
+ "id" : "b5e8474b-1bd0-4aba-87e1-bf9e7bd534bf",
+ "providerId" : "declarative-user-profile",
+ "subComponents" : { },
+ "config" : { }
+ } ],
+ "org.keycloak.keys.KeyProvider" : [ {
+ "id" : "2ec9fa85-dc10-430b-a64c-e48875e8ae37",
+ "name" : "rsa-generated",
+ "providerId" : "rsa-generated",
+ "subComponents" : { },
+ "config" : {
+ "privateKey" : [ "MIIEowIBAAKCAQEAzTnvAQfF/OrJjw8Br9PKLYV8RJOX+CVEj2ZrZTrRiJpVaLjmd47p+0+pk/lHwKpjpPfI6RMDkZPl2NdhBv61IsuavxG8JmAbeyodVdyYHJmivpuZ0XNTi6IQppByyRPmJGEPQOPoCFM+/cSTjF7S0VtpmyMuk/HLwgrSORirrYd8bDKVWkulcd2AZUsnVpj0tkh6wk6izfnEAfjo8CjMhIPeiOMVYivc+e9CV5u/nXZN2ZyB4qT9p32MKdQgdzvAOeAptvX4s+MIsTvfV2GgkhiWq6EMaZoeJYaXIqXsDzCvSBDbhA1S6h1QBkFYDmvZW7XjR9wJf2KkQ0qfjhfk5wIDAQABAoIBAAHyOjOCzNxcp6OtK0FtGz46RVbrJWZLiC5p9LvFhoYqnIO9OSZKGyrwcvW9x/HqS76dQPEA5qhDREs9o6Rq1vHpB2MnembMw4Xz/Mo7KNAgntv64scLNnAdDdZeiVAh2a1fpELjxmgJzg+fBR0wKwSkPsijWUY65UlGS/8RnlMrcOZC7F7AEGVAALyedCUkPFovKmqnsMEqY9UZSL7MlUNjCG8iCye3XoJOR8/ttX65oz+A8hIl8ut2A1iDjkNk8Fp98Qg9FVudDxQ6aZkAH5AvyyBwm9KEZ+p9O1oLmdsnMYKs44w4qd66ZFcQEgZIYtU0yN5ZrWo/7uwRS4UpLO0CgYEA8yAli9c7lpGezDN5xZwYpk19LcVPFaSozr6bMOofcU/K1CiXBfhzzOGRwLlFuqmB6hl1KmEt44hWMcPg8Hc3MHJF2Mh2pYmIpiHZei2o/Fr0xhitpjC74d1bjaktWTdIafI39Qebs/0XPXXCdMk9guBagnOy6uTxe7NSDhdBA/UCgYEA2BgEifSR9GJzBX740Odyt0XGUPmorSS5ygSAltStrmxqBzfwf4ztT95fhGptUtSYVuxal+4zULyHnOj6E2SlTyOK3BT2iDhkZbyylS+aVw+n6F5V8WUN1pWLsdSFltuYFm6aZ5LOQx2FUtcsrSo86bNT7uGHVj2emnRIpd8tV+sCgYEA0/TPpuWChpb3eRDbdaLLfpiJrFCazMSbgnp7s544wUGOE347g7IByrlQp1Mebkh/AUcmdUb5iab/di1NunZEgBDvwbmqblDD+AoEnlaWP0NQqC81nHBaK+QegBbgeSoQEIVhsVXrsXPRQfybBdO3s5TCc35Imi30NSK1Q6GURc0CgYAi43XQJClwcHirmX1olQWja2OCbVx7X+OTJzjvoTTNZXmU4sY0gbdK3tdDFL/D0Mkrt4tE3lNwpI+smLzPZr990Ho54DSRd7FV76pRhdcAWWm9jYWIrM0YKRrdwjczTQ74CDFrqXsdwOVmo5D2AEzHWomhls338Yjq3P1hsm+qswKBgGaa/u2A1/kI0Q6MPkN2hrmBdK6AVdTGc86W4Zn/wVgc3V53AjI8UN72WeFpsHNh4MnLpNSHEkNSf0MmiNEIZ1oewL3AsoY6ub3eifUJbDAO/DA1x2Kl1wMEl0rm9wMk6O+Rqb2UhAigfuBAUSkxtFb9toqDZz1FjKbgXwfwTUkW" ],
+ "keyUse" : [ "SIG" ],
+ "certificate" : [ "MIICmzCCAYMCBgGK4eoxHzANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZtYXN0ZXIwHhcNMjMwOTI5MTcwNzE2WhcNMzMwOTI5MTcwODU2WjARMQ8wDQYDVQQDDAZtYXN0ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNOe8BB8X86smPDwGv08othXxEk5f4JUSPZmtlOtGImlVouOZ3jun7T6mT+UfAqmOk98jpEwORk+XY12EG/rUiy5q/EbwmYBt7Kh1V3JgcmaK+m5nRc1OLohCmkHLJE+YkYQ9A4+gIUz79xJOMXtLRW2mbIy6T8cvCCtI5GKuth3xsMpVaS6Vx3YBlSydWmPS2SHrCTqLN+cQB+OjwKMyEg96I4xViK9z570JXm7+ddk3ZnIHipP2nfYwp1CB3O8A54Cm29fiz4wixO99XYaCSGJaroQxpmh4lhpcipewPMK9IENuEDVLqHVAGQVgOa9lbteNH3Al/YqRDSp+OF+TnAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAI5bq9RocPL79iFWVG0DDaX/DW3NhHrinHrsCHGhqh4ODDcElUAHpGb4dZCJ+o9Sio6eB4oCejb4hwZzrNtAgOzmyoPEzU+gOfoZFNodpdINwsA+7CMftdwAr/B4fTPuujom7j++dxGuVmijt1Yluh6A4nZXCYJrHnX4sckr1KCkOS689ZwplbBd1IdsnvtTL14p9V1dDTrUTyTDP6hsVKLyrh8ktQ/J3/V4k0e8LKLv+KDwAaooKlCk6lyvDMBBbDYq5wEQvAIPb3kWkpdBbYg0yjoR1BP1Nu9/adFRfi7HEjcbSjvfsiBDGyySusuinmPoa/mvVk9QzYFSmk1VR/A=" ],
+ "priority" : [ "100" ]
+ }
+ }, {
+ "id" : "fcbc8411-b38e-430d-829c-67c85f48198c",
+ "name" : "hmac-generated",
+ "providerId" : "hmac-generated",
+ "subComponents" : { },
+ "config" : {
+ "kid" : [ "a8911bbc-6ad7-48e8-be0e-a4f5d23a88e8" ],
+ "secret" : [ "11TXmd9k0BS-kQElBMqVoupbLa-c5J0aGOcUqoyRwlrE5KCjMX9Zkr-ezfkUsVCDTHtlsnK7RoZ1ZMkofvX0_A" ],
+ "priority" : [ "100" ],
+ "algorithm" : [ "HS256" ]
+ }
+ }, {
+ "id" : "b5da81f0-16cd-4838-88f6-2e609751a7f1",
+ "name" : "aes-generated",
+ "providerId" : "aes-generated",
+ "subComponents" : { },
+ "config" : {
+ "kid" : [ "8b5aacf8-40cb-4932-836e-fe2b7c271a57" ],
+ "secret" : [ "ETf-fHB2t72STHRwDe5prw" ],
+ "priority" : [ "100" ]
+ }
+ }, {
+ "id" : "0bb3f008-4eaf-4514-be77-8c21aec0bc03",
+ "name" : "rsa-enc-generated",
+ "providerId" : "rsa-enc-generated",
+ "subComponents" : { },
+ "config" : {
+ "privateKey" : [ "MIIEogIBAAKCAQEAl7cNz+no7OKtdFHWzwwb4qWv++emXpnjXfq+caMidrzMOsUcWrNrOE+hVPPgypxwgrqf+8V3oVRGgBosu9k2BW8OqC0xThaAzzqVjNMnx1dlbTsmzIik4RQznQaQHmUnuhKmakuWTuO930ZGG1rTmuVMJKT4lXiB2pQsYz4eCbVOh8gEpoCVrmicWolMA6nJSJSQHmGd8wuTHXEtd2VHCzMFBhSqO8wjicu5xLGc7JYYaumAR2vlZ9oWVG20Fob+Yk3iPs+fEkzI7VO2CBX1Z/TonQtDYtDsiDrSNjWcq3v9Z2UjXk8qdkSK4KvbBjM+HnN82NgE31z4LrNexMbb1wIDAQABAoIBAAddve/wXXzS7LUPHCzlW50/ijHi53MEacOwXvrJfuzg8dGQrHXC7FvJkf278ZgkzFmskgP5bHuKyfmCS9W7ECJnaADGYPR3pz1ojMZPokjNd4E8NAAOSmMbRf5DyU+QfcNNEINstBmUeS2UDedaG5gTtgS5ddBcD4H7W8RdybuS3NwcRSkJxjjFJtVUm/KWL5TbKYVgKfuMon6dhtKg7XiqocwO8N8Uc9ZjODDSe5Jkou+n3Pg2ylSaeVVtwVzSmJ90VK45NNL4A7YhfOsL+CHqWj47puLjLdidOkpvgSFWqHpQ/rHArge3Ycweq3moa3/QiefAeOG+lm5Ua9QKxGECgYEAzSSA0AQY3XADULfV9i/t3OYc58ZJhrXu22A/XzKMk9QfTZ/lT8GD4T233VSx9NWniMU2+zumPmGDK7Inp4L3+L48EAC4XIS7/cbfvRx4joepsOJxA/ozCkC9t5uU9Ppy0ADDIf8NfmJV1pOXO6pfrTSocjpQDtSftZsHCz37IO8CgYEAvVO9h45gsw0MWMp9KxdNsJrioQ9j7b+OeV5CQ2U1X5PAAiobpfDDRw6G3JhU55Od1zn8zrv7gwfiQ/GsUjOpnbEv5k+jfCSWiAqFGtQNItKT7x0Vu5WBBdsc+ITr/loA0zc1UCfLbKY+EdO4dNp3mJ4qKK9lUMZltq0wQXfIo5kCgYAO2LB13YYLKJsk0VkrywY08XZwE7qohCw4Njv/4MGpxTVKweKvpfqsZ3ISE5oZdQj97f/vqL58T0RV+jvCdMkLeIESS2sMTxLn5+ezYQcckZbnVUwGlKny+QKB8kGShTmf8h4tLK9GUUmTEPVl/QuVlnUGZ0/58stoMkMNPjwZgwKBgAqTe/nvlS1LZE4teZKHqbpc3J4cqvtkAQR8pHz5UWL2cPpt+b9qVK5KfHQkOlH5aA7W2W1/CMzICva6sGKjKi158XAPMNXFgXc2Bzt5bwZr9wGbgVRKRLvcAqFLY5eA1Zz27457upxmKP978Ujtz1KCO16sdZ9uhc4PnKt7koS5AoGAOwjKT+RIP/SedOdr72W6t1Yk5rwU63tKj+96rY579YUclGuaIt3nPNa5gCRKCr/rnEEIdAz0g5ZSaZ3NOwaqEcT7yhp7REC0IbrjSaOoqoT5lR79u5QuvePalFV/VN2KA1JcIAVLvVnR8QaX0h7HVS9gHvraeOxjZ8x8aMKelAo=" ],
+ "keyUse" : [ "ENC" ],
+ "certificate" : [ "MIICmzCCAYMCBgGK4eo5ijANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZtYXN0ZXIwHhcNMjMwOTI5MTcwNzE4WhcNMzMwOTI5MTcwODU4WjARMQ8wDQYDVQQDDAZtYXN0ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCXtw3P6ejs4q10UdbPDBvipa/756ZemeNd+r5xoyJ2vMw6xRxas2s4T6FU8+DKnHCCup/7xXehVEaAGiy72TYFbw6oLTFOFoDPOpWM0yfHV2VtOybMiKThFDOdBpAeZSe6EqZqS5ZO473fRkYbWtOa5UwkpPiVeIHalCxjPh4JtU6HyASmgJWuaJxaiUwDqclIlJAeYZ3zC5MdcS13ZUcLMwUGFKo7zCOJy7nEsZzslhhq6YBHa+Vn2hZUbbQWhv5iTeI+z58STMjtU7YIFfVn9OidC0Ni0OyIOtI2NZyre/1nZSNeTyp2RIrgq9sGMz4ec3zY2ATfXPgus17ExtvXAgMBAAEwDQYJKoZIhvcNAQELBQADggEBADxhiI4ifVB9bAZHRi7Gx4wXaH16l/6BI8XBbOq549iBvfQY62Qt8rtQPiwux5KRNAWG8yNpdvILInKLavlD1vrFRXRDX+lZQmYeSjk+r3hTtVZz9AcH6kg+KUxjaDXB9H4B3X0yF4YPD5QNoO+/l6G1B3IBohkoCaKbzEoZqLZWPFCFcQdAyfXZe1l03GxnSfH3kSXB3vNxxWSSzn2ogZwm/06H1YsulUHDRhT3fua7egwoz5AKjiUc12CHbYvYjXLCDqsF0tl+sx7U07gTR0jXQWKAaw4KV84jVCuQEl7o6dga5fJ+BKfM6GSRgQEsOD43Maj0eGzKttKEJjiDT7E=" ],
+ "priority" : [ "100" ],
+ "algorithm" : [ "RSA-OAEP" ]
+ }
+ } ]
+ },
+ "internationalizationEnabled" : false,
+ "supportedLocales" : [ ],
+ "authenticationFlows" : [ {
+ "id" : "77e9c0b7-4f32-41ba-9f2b-1b44a4a6be71",
+ "alias" : "Account verification options",
+ "description" : "Method with which to verity the existing account",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "idp-email-verification",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 20,
+ "autheticatorFlow" : true,
+ "flowAlias" : "Verify Existing Account by Re-authentication",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "9cf31fbb-6fec-43ca-9e2a-0a9b2270a1f3",
+ "alias" : "Authentication Options",
+ "description" : "Authentication options.",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "basic-auth",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "basic-auth-otp",
+ "authenticatorFlow" : false,
+ "requirement" : "DISABLED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "auth-spnego",
+ "authenticatorFlow" : false,
+ "requirement" : "DISABLED",
+ "priority" : 30,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "bbe045f4-a7e1-4c94-8a7b-08533a33ae73",
+ "alias" : "Browser - Conditional OTP",
+ "description" : "Flow to determine if the OTP is required for the authentication",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "conditional-user-configured",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "auth-otp-form",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "e1ad62aa-f005-4f57-9492-c62a89303c00",
+ "alias" : "Direct Grant - Conditional OTP",
+ "description" : "Flow to determine if the OTP is required for the authentication",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "conditional-user-configured",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "direct-grant-validate-otp",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "e7de02c6-7c8f-4969-9cef-906fba90e73b",
+ "alias" : "First broker login - Conditional OTP",
+ "description" : "Flow to determine if the OTP is required for the authentication",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "conditional-user-configured",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "auth-otp-form",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "2d597fa3-5608-4e4a-a606-c77af8f70798",
+ "alias" : "Handle Existing Account",
+ "description" : "Handle what to do if there is existing account with same email/username like authenticated identity provider",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "idp-confirm-link",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : true,
+ "flowAlias" : "Account verification options",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "c5d97548-2650-416d-b330-5801bb977c4f",
+ "alias" : "Reset - Conditional OTP",
+ "description" : "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "conditional-user-configured",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "reset-otp",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "dc1e3624-af06-4475-b6ef-3c8346ea3f7e",
+ "alias" : "User creation or linking",
+ "description" : "Flow for the existing/non-existing user alternatives",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticatorConfig" : "create unique user config",
+ "authenticator" : "idp-create-user-if-unique",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 20,
+ "autheticatorFlow" : true,
+ "flowAlias" : "Handle Existing Account",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "cd33c020-babe-4575-ba89-5cbb33037529",
+ "alias" : "Verify Existing Account by Re-authentication",
+ "description" : "Reauthentication of existing account",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "idp-username-password-form",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "CONDITIONAL",
+ "priority" : 20,
+ "autheticatorFlow" : true,
+ "flowAlias" : "First broker login - Conditional OTP",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "8b56ea8e-49c9-47ba-81a4-58ea6979b6c5",
+ "alias" : "browser",
+ "description" : "browser based authentication",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "auth-cookie",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "auth-spnego",
+ "authenticatorFlow" : false,
+ "requirement" : "DISABLED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "identity-provider-redirector",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 25,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 30,
+ "autheticatorFlow" : true,
+ "flowAlias" : "forms",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "b63f61fe-c32e-48b3-80d8-96a6c39f0566",
+ "alias" : "clients",
+ "description" : "Base authentication for clients",
+ "providerId" : "client-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "client-secret",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "client-jwt",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "client-secret-jwt",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 30,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "client-x509",
+ "authenticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "priority" : 40,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "ebdad05d-200f-42f0-92cb-1a96e2c57a1e",
+ "alias" : "direct grant",
+ "description" : "OpenID Connect Resource Owner Grant",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "direct-grant-validate-username",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "direct-grant-validate-password",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "CONDITIONAL",
+ "priority" : 30,
+ "autheticatorFlow" : true,
+ "flowAlias" : "Direct Grant - Conditional OTP",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "6f369e15-8ac1-4662-a196-65ceef8f7f84",
+ "alias" : "docker auth",
+ "description" : "Used by Docker clients to authenticate against the IDP",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "docker-http-basic-authenticator",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "4e59f14f-e01d-4081-8275-73df219f6568",
+ "alias" : "first broker login",
+ "description" : "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticatorConfig" : "review profile config",
+ "authenticator" : "idp-review-profile",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : true,
+ "flowAlias" : "User creation or linking",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "d3c7bcd5-6677-4fe5-ad0e-455ff2097829",
+ "alias" : "forms",
+ "description" : "Username, password, otp and other auth forms.",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "auth-username-password-form",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "CONDITIONAL",
+ "priority" : 20,
+ "autheticatorFlow" : true,
+ "flowAlias" : "Browser - Conditional OTP",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "7e6cdfb4-99d7-4619-a028-1c20dacedcb0",
+ "alias" : "http challenge",
+ "description" : "An authentication flow based on challenge-response HTTP Authentication Schemes",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "no-cookie-redirect",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : true,
+ "flowAlias" : "Authentication Options",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "58209f8e-b9f9-47ae-9987-3da520db5eda",
+ "alias" : "registration",
+ "description" : "registration flow",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "registration-page-form",
+ "authenticatorFlow" : true,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : true,
+ "flowAlias" : "registration form",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "a3a988fc-c0c4-4346-be6b-c828a2bda69b",
+ "alias" : "registration form",
+ "description" : "registration form",
+ "providerId" : "form-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "registration-user-creation",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "registration-profile-action",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 40,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "registration-password-action",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 50,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "registration-recaptcha-action",
+ "authenticatorFlow" : false,
+ "requirement" : "DISABLED",
+ "priority" : 60,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "3fcd0312-b227-41bd-a8eb-0e7ddefe2f10",
+ "alias" : "reset credentials",
+ "description" : "Reset credentials for a user if they forgot their password or something",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "reset-credentials-choose-user",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "reset-credential-email",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 20,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticator" : "reset-password",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 30,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ }, {
+ "authenticatorFlow" : true,
+ "requirement" : "CONDITIONAL",
+ "priority" : 40,
+ "autheticatorFlow" : true,
+ "flowAlias" : "Reset - Conditional OTP",
+ "userSetupAllowed" : false
+ } ]
+ }, {
+ "id" : "6d5b3b6f-ab79-4bf7-b565-98385dfdf827",
+ "alias" : "saml ecp",
+ "description" : "SAML ECP Profile Authentication Flow",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "http-basic-authenticator",
+ "authenticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "priority" : 10,
+ "autheticatorFlow" : false,
+ "userSetupAllowed" : false
+ } ]
+ } ],
+ "authenticatorConfig" : [ {
+ "id" : "807fc044-a754-4cc0-adb4-59bfc650db66",
+ "alias" : "create unique user config",
+ "config" : {
+ "require.password.update.after.registration" : "false"
+ }
+ }, {
+ "id" : "e4e792bf-12fb-495a-8ff9-17341269f036",
+ "alias" : "review profile config",
+ "config" : {
+ "update.profile.on.first.login" : "missing"
+ }
+ } ],
+ "requiredActions" : [ {
+ "alias" : "CONFIGURE_TOTP",
+ "name" : "Configure OTP",
+ "providerId" : "CONFIGURE_TOTP",
+ "enabled" : true,
+ "defaultAction" : false,
+ "priority" : 10,
+ "config" : { }
+ }, {
+ "alias" : "terms_and_conditions",
+ "name" : "Terms and Conditions",
+ "providerId" : "terms_and_conditions",
+ "enabled" : false,
+ "defaultAction" : false,
+ "priority" : 20,
+ "config" : { }
+ }, {
+ "alias" : "UPDATE_PASSWORD",
+ "name" : "Update Password",
+ "providerId" : "UPDATE_PASSWORD",
+ "enabled" : true,
+ "defaultAction" : false,
+ "priority" : 30,
+ "config" : { }
+ }, {
+ "alias" : "UPDATE_PROFILE",
+ "name" : "Update Profile",
+ "providerId" : "UPDATE_PROFILE",
+ "enabled" : true,
+ "defaultAction" : false,
+ "priority" : 40,
+ "config" : { }
+ }, {
+ "alias" : "VERIFY_EMAIL",
+ "name" : "Verify Email",
+ "providerId" : "VERIFY_EMAIL",
+ "enabled" : true,
+ "defaultAction" : false,
+ "priority" : 50,
+ "config" : { }
+ }, {
+ "alias" : "delete_account",
+ "name" : "Delete Account",
+ "providerId" : "delete_account",
+ "enabled" : false,
+ "defaultAction" : false,
+ "priority" : 60,
+ "config" : { }
+ }, {
+ "alias" : "webauthn-register",
+ "name" : "Webauthn Register",
+ "providerId" : "webauthn-register",
+ "enabled" : true,
+ "defaultAction" : false,
+ "priority" : 70,
+ "config" : { }
+ }, {
+ "alias" : "webauthn-register-passwordless",
+ "name" : "Webauthn Register Passwordless",
+ "providerId" : "webauthn-register-passwordless",
+ "enabled" : true,
+ "defaultAction" : false,
+ "priority" : 80,
+ "config" : { }
+ }, {
+ "alias" : "update_user_locale",
+ "name" : "Update User Locale",
+ "providerId" : "update_user_locale",
+ "enabled" : true,
+ "defaultAction" : false,
+ "priority" : 1000,
+ "config" : { }
+ } ],
+ "browserFlow" : "browser",
+ "registrationFlow" : "registration",
+ "directGrantFlow" : "direct grant",
+ "resetCredentialsFlow" : "reset credentials",
+ "clientAuthenticationFlow" : "clients",
+ "dockerAuthenticationFlow" : "docker auth",
+ "attributes" : {
+ "cibaBackchannelTokenDeliveryMode" : "poll",
+ "cibaExpiresIn" : "120",
+ "cibaAuthRequestedUserHint" : "login_hint",
+ "oauth2DeviceCodeLifespan" : "600",
+ "oauth2DevicePollingInterval" : "5",
+ "clientOfflineSessionMaxLifespan" : "0",
+ "clientSessionIdleTimeout" : "0",
+ "parRequestUriLifespan" : "60",
+ "clientSessionMaxLifespan" : "0",
+ "clientOfflineSessionIdleTimeout" : "0",
+ "cibaInterval" : "5",
+ "realmReusableOtpCode" : "false"
+ },
+ "keycloakVersion" : "20.0.1",
+ "userManagedAccessAllowed" : false,
+ "clientProfiles" : {
+ "profiles" : [ ]
+ },
+ "clientPolicies" : {
+ "policies" : [ ]
+ }
+}
\ No newline at end of file
diff --git a/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx b/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx
index c8578e8c..1f4f050f 100644
--- a/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx
+++ b/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx
@@ -750,12 +750,15 @@ export default function ReactDiagramEditor({
};
const diagramControlButtons = () => {
+ // align the iconDescription to the bottom so it doesn't cover up the Save button
+ // when mousing through them
return (