From 8220aa42ef5c6b2116971a7147ad8f4a3c93d1ff Mon Sep 17 00:00:00 2001 From: jasquat Date: Fri, 29 Sep 2023 16:00:16 -0400 Subject: [PATCH] added bin/console command that runs flask shell and align zoom tooltips to the bottom w/ burnettk --- spiffworkflow-backend/bin/console | 14 + .../bin/local_development_environment_setup | 50 + spiffworkflow-backend/bin/run_server_locally | 37 +- .../realmstuff/master-realm.json | 2004 +++++++++++++++++ .../src/components/ReactDiagramEditor.tsx | 11 +- 5 files changed, 2079 insertions(+), 37 deletions(-) create mode 100755 spiffworkflow-backend/bin/console create mode 100755 spiffworkflow-backend/bin/local_development_environment_setup create mode 100644 spiffworkflow-backend/realmstuff/master-realm.json diff --git a/spiffworkflow-backend/bin/console b/spiffworkflow-backend/bin/console new file mode 100755 index 000000000..1fd9f5a43 --- /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 000000000..724662111 --- /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 e4d5ba8f9..43f23f90b 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 000000000..85adca864 --- /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 c8578e8cd..1f4f050f6 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 (