diff --git a/spiffworkflow-backend/keycloak/bin/add_test_users_to_keycloak b/spiffworkflow-backend/keycloak/bin/add_test_users_to_keycloak index 9a045ffe7..66c5b137a 100755 --- a/spiffworkflow-backend/keycloak/bin/add_test_users_to_keycloak +++ b/spiffworkflow-backend/keycloak/bin/add_test_users_to_keycloak @@ -44,14 +44,66 @@ result=$(curl --fail -s -X POST "$KEYCLOAK_URL" "$INSECURE" \ ) backend_token=$(jq -r '.access_token' <<< "$result") -while read -r user_email; do - if [[ -n "$user_email" ]]; then - username=$(awk -F '@' '{print $1}' <<<"$user_email") - credentials='{"type":"password","value":"'"${username}"'","temporary":false}' +function add_user() { + local user_email=$1 + local username=$2 + local user_attribute_one=$3 - curl --fail --location --request POST "http://localhost:7002/admin/realms/${keycloak_realm}/users" \ - -H 'Content-Type: application/json' \ - -H "Authorization: Bearer $backend_token" \ - --data-raw '{"email":"'"${user_email}"'", "enabled":"true", "username":"'"${username}"'", "credentials":['"${credentials}"']}' + local credentials='{"type":"password","value":"'"${username}"'","temporary":false}' + + local data='{"email":"'"${user_email}"'", "enabled":"true", "username":"'"${username}"'", "credentials":['"${credentials}"']' + if [[ -n "$user_attribute_one" ]]; then + data=''${data}', "attributes": {"'${custom_attribute_one}'": [ "'$user_attribute_one'" ]}' + fi + data="${data}}" + + local http_code + http_code=$(curl --silent -o /dev/null -w '%{http_code}' --location --request POST "http://localhost:7002/admin/realms/${keycloak_realm}/users" \ + -H 'Content-Type: application/json' \ + -H "Authorization: Bearer $backend_token" \ + --data-raw "$data") + echo "$http_code" +} + +first_line_processed="false" +custom_attribute_one='' + +while read -r input_line; do + if ! grep -qE '^#' <<<"$input_line" ; then + if [[ "$first_line_processed" == "false" ]]; then + email_header=$(awk -F ',' '{print $1}' <<<"$input_line") + if [[ "$email_header" != "email" ]]; then + >&2 echo "ERROR: the first column in the first row must be email." + exit 1 + fi + custom_attribute_one=$(awk -F ',' '{print $2}' <<<"$input_line") + first_line_processed="true" + elif [[ -n "$input_line" ]]; then + user_email=$(awk -F ',' '{print $1}' <<<"$input_line") + username=$(awk -F '@' '{print $1}' <<<"$user_email") + user_attribute_one=$(awk -F ',' '{print $2}' <<<"$input_line") + http_code=$(add_user "$user_email" "$username" "$user_attribute_one") + + if [[ "$http_code" == "409" ]]; then + user_info=$(curl --fail --silent --location --request GET "http://localhost:7002/admin/realms/${keycloak_realm}/users?username=${username}&exact=true" \ + -H 'Content-Type: application/json' \ + -H "Authorization: Bearer $backend_token") + + user_id=$(jq -r '.[0] | .id' <<<"$user_info") + if [[ -z "$user_id" ]]; then + >&2 echo "ERROR: Could not find user_id for user: ${user_email}" + exit 1 + fi + curl --fail --location --silent --request DELETE "http://localhost:7002/admin/realms/${keycloak_realm}/users/${user_id}" \ + -H 'Content-Type: application/json' \ + -H "Authorization: Bearer $backend_token" + + http_code=$(add_user "$user_email" "$username" "$user_attribute_one") + if [[ "$http_code" != "201" ]]; then + >&2 echo "ERROR: Failed to recreate user: ${user_email} with http_code: ${http_code}" + exit 1 + fi + fi + fi fi done <"$user_file_with_one_email_per_line" diff --git a/spiffworkflow-backend/keycloak/realm_exports/spiffworkflow-realm.json b/spiffworkflow-backend/keycloak/realm_exports/spiffworkflow-realm.json index 4e3863985..97d495ca8 100644 --- a/spiffworkflow-backend/keycloak/realm_exports/spiffworkflow-realm.json +++ b/spiffworkflow-backend/keycloak/realm_exports/spiffworkflow-realm.json @@ -418,21 +418,18 @@ "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister" : false, "webAuthnPolicyPasswordlessAcceptableAaguids" : [ ], "users" : [ { - "id" : "5a97144d-4f59-4a8c-b365-463d0577a740", - "createdTimestamp" : 1669600821350, + "id" : "d1cb2992-765c-4170-b0dc-0eba46fa2f14", + "createdTimestamp" : 1675718483563, "username" : "admin", "enabled" : true, "totp" : false, "emailVerified" : false, - "firstName" : "", - "lastName" : "", "email" : "admin@spiffworkflow.org", "credentials" : [ { - "id" : "ef435043-ef0c-407a-af5b-ced13182a408", + "id" : "1ebd434f-f660-4342-b1cc-be78e84e9cec", "type" : "password", - "userLabel" : "My password", - "createdDate" : 1669600831704, - "secretData" : "{\"value\":\"4D4JRvE7kR5nfGiIdrwzK+0drmy3kX++TlT1BTvYix8N83c9FGTPWvxR1Hl4ggEKuCCAEYZnTzVJZY0DcUcN+A==\",\"salt\":\"yI7UkD+mCuq0H35AnNV/KA==\",\"additionalParameters\":{}}", + "createdDate" : 1675718483607, + "secretData" : "{\"value\":\"hxSvxREAY9/VleQdSUaJlBbHG3dtcqgUsdK9pav1kyQ7Z09aq7WIYqvL2ozvz6Lq6am2Sn72nr9VjEAhNxkpEA==\",\"salt\":\"Vb0jTXfunz3m+6gzsfg4Tw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -441,18 +438,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "4048e9a7-8afa-4e69-9904-389657221abe", - "createdTimestamp" : 1665517741516, + "id" : "06fbd6ec-8ef8-431e-92f9-a981025a21de", + "createdTimestamp" : 1675718483674, "username" : "alex", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "alex@sartography.com", + "attributes" : { + "spiffworkflow-employeeid" : [ "111" ] + }, "credentials" : [ { - "id" : "81a61a3b-228d-42b3-b39a-f62d8e7f57ca", + "id" : "04ddcd24-741e-4dbc-815f-ecd9d5dc3266", "type" : "password", - "createdDate" : 1665517748308, - "secretData" : "{\"value\":\"13OdXlB1S1EqHL+3/0y4LYp/LGCn0UW8/Wh9ykgpUbRrwdX6dY3iiMlKePfTy5nXoH/ISmPlxNKOe5z7FWXsgg==\",\"salt\":\"pv0SEb7Ctk5tpu2y32L2kw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718483717, + "secretData" : "{\"value\":\"3Gpq5mVzKq+rZRNalSZbQFiwVKBLH5CnFKScnP27xfxUMPCxLZRqDHc99BZC4AG9t7dixG3LOT5WMcHFplzEDA==\",\"salt\":\"PGN51PkpenHIKgEYE+7XPQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -461,38 +461,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "b4dc5a30-4bd7-44fc-88b5-839fbb8567ea", - "createdTimestamp" : 1665518311550, + "id" : "1df68344-06e7-4525-9353-18fa81af1e60", + "createdTimestamp" : 1675718197166, "username" : "amir", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "amir@status.im", "credentials" : [ { - "id" : "e589f3ad-bf7b-4756-89f7-7894c03c2831", + "id" : "e5fbf0b9-4656-49fd-96e0-45206405d2e7", "type" : "password", - "createdDate" : 1665518319210, - "secretData" : "{\"value\":\"mamd7Hi6nV5suylSrUgwWon3Gw3WeOIvAJu9g39Mq1iYoXWj2rI870bGHiSITLaFBpdjLOEmlu9feKkULOXNpQ==\",\"salt\":\"wG7tkMQfPKRW9ymu4ekujQ==\",\"additionalParameters\":{}}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "default-roles-spiffworkflow" ], - "notBefore" : 0, - "groups" : [ ] - }, { - "id" : "f2c7dc92-673f-4320-a31d-aff2c60ef0a5", - "createdTimestamp" : 1675097737902, - "username" : "app.program.lead", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "email" : "app.program.lead@status.im", - "credentials" : [ { - "id" : "ee3b660b-46c1-4497-81d8-8e66748dd3d4", - "type" : "password", - "createdDate" : 1675097737939, - "secretData" : "{\"value\":\"0dz7Yywwc9itODZbPJ8ueEaY3r/Un5kNyNSdeORhdLiQE5OiYBAQpunnBkT3//Yu8JWYQ8fe1GB2hUfCPdH3OQ==\",\"salt\":\"U9PAj2RQYddvjClXL7Q7uQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718197239, + "secretData" : "{\"value\":\"sexlWkVrdeP1t+/ZiQVCRPDyccS40J2BRFUMa5iquJXe6aVDPWsYgSpIpCjbepaFUAlPCs1s8cOxQg73B74kLQ==\",\"salt\":\"Nuyn185FIvnKDAV0vGtM1g==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -526,21 +506,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "d58b61cc-a77e-488f-a427-05f4e0572e20", - "createdTimestamp" : 1669132945413, + "id" : "0c2f2c2b-2949-4418-8bea-5a473dac928e", + "createdTimestamp" : 1675718197483, "username" : "core", "enabled" : true, "totp" : false, "emailVerified" : false, - "firstName" : "", - "lastName" : "", "email" : "core@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "113" ] + }, "credentials" : [ { - "id" : "ee80092b-8ee6-4699-8492-566e088b48f5", + "id" : "3c16b0af-9ed0-47ae-a032-8e180a79287e", "type" : "password", - "userLabel" : "My password", - "createdDate" : 1669132955862, - "secretData" : "{\"value\":\"x0f/IvOAsMmbQzgc1LXJ9O7dDepeFURi7lD4Wy0NZBrFRyQ3pMXM6FHNNjhVDeZMsTr2tesYYQ2BK3z9xIPPrA==\",\"salt\":\"vx4/Z41MiUnLqaVt+vMmOQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718197530, + "secretData" : "{\"value\":\"ShvgU2FZfLV6owr/ZeAUhRZJMCdhci8VOXWaYguvtqEccGDXrKCOmtNnyucJ3aUfnPg5kke/H3uWwnpuqVsTVw==\",\"salt\":\"an+Xi6tglISnHfJLw/sR3w==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -549,18 +529,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "99e7e4ea-d4ae-4944-bd31-873dac7b004c", - "createdTimestamp" : 1665517024483, + "id" : "7b9767ac-24dc-43b0-838f-29e16b4fd14e", + "createdTimestamp" : 1675718483773, "username" : "dan", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "dan@sartography.com", + "attributes" : { + "spiffworkflow-employeeid" : [ "115" ] + }, "credentials" : [ { - "id" : "d517c520-f500-4542-80e5-7144daef1e32", + "id" : "8bc911c7-02fa-43fd-8e61-a313721ffc89", "type" : "password", - "createdDate" : 1665517033429, - "secretData" : "{\"value\":\"rgWPI1YobMfDaaT3di2+af3gHU8bkreRElAHgYFA+dXHw0skiGVd1t57kNLEP49M6zKYjZzlOKr0qvAxQF0oSg==\",\"salt\":\"usMZebZnPYXhD6ID95bizg==\",\"additionalParameters\":{}}", + "createdDate" : 1675718483819, + "secretData" : "{\"value\":\"pQ/vKJoOG0sNGeNsjm+kVVnGImIjhLMBTjw1lRXj3X5ffW22EzXF7+kYrTBgXnTmFUql2INVpIl838vYmg80RQ==\",\"salt\":\"a0zK/X/EO3VhXUr8Z3P1uA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -569,18 +552,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "1834a79d-917f-4e4c-ab38-8ec376179fe9", - "createdTimestamp" : 1665517805115, + "id" : "f567ec03-a98c-48bf-8bc4-126b3614f9b2", + "createdTimestamp" : 1675718483878, "username" : "daniel", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "daniel@sartography.com", "credentials" : [ { - "id" : "f240495c-265b-42fc-99db-46928580d07d", + "id" : "c6eaa80d-a7a5-4cf5-b1ae-a5c11c03ad25", "type" : "password", - "createdDate" : 1665517812636, - "secretData" : "{\"value\":\"sRCF3tFOZrUbEW220cVHhQ7e89iKqjgAMyO0BaYCPZZw1tEjZ+drGj+bfwRbuuK0Nps3t//YGVELsejRogWkcw==\",\"salt\":\"XQtLR9oZctkyRTi2Be+Z0g==\",\"additionalParameters\":{}}", + "createdDate" : 1675718483930, + "secretData" : "{\"value\":\"7MQz+KX6UlxONyNJffBsR5ARE88jjna6Hxd1+WJbBp2XWk/ozFCWKk+KhcAih0i21LLCSBqHdZPxGCUErgn7FA==\",\"salt\":\"fAwQQbHLynQ6s+DYNJ8xJA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -589,58 +572,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "35fd3d3d-7f3f-4c71-8d99-3513ffbed95a", - "createdTimestamp" : 1675097737728, - "username" : "dao.project.lead", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "email" : "dao.project.lead@status.im", - "credentials" : [ { - "id" : "33ebec5e-97a3-48f3-8458-7dbe3630c15f", - "type" : "password", - "createdDate" : 1675097737788, - "secretData" : "{\"value\":\"fpPRyhEWITDU6PA/Rrh499dO8UL4NKj+gNzrPxQo23CL0ZAYcwl7cHtWSCSGIBKMVJgaZvMc/+8P2WzBFyNLgw==\",\"salt\":\"XmZ/N2leY5NNydnbCB+zXg==\",\"additionalParameters\":{}}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "default-roles-spiffworkflow" ], - "notBefore" : 0, - "groups" : [ ] - }, { - "id" : "cb3b00ba-ed7b-490c-831a-2ba132749e21", - "createdTimestamp" : 1675097737964, - "username" : "desktop.program.lead", - "enabled" : true, - "totp" : false, - "emailVerified" : false, - "email" : "desktop.program.lead@status.im", - "credentials" : [ { - "id" : "d8a34cc0-c571-4a6f-b60c-765f921cd6e6", - "type" : "password", - "createdDate" : 1675097737997, - "secretData" : "{\"value\":\"q87YhdFAVQvSbkSAGgmjWmLnoDLZr7+WicnRRtEYzId/QVdOrKOR+A4RD3wkbOn257hsWrANCpMuyTywes6oSg==\",\"salt\":\"OfnKB2vnE4bq5nAK6Jax/g==\",\"additionalParameters\":{}}", - "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" - } ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "default-roles-spiffworkflow" ], - "notBefore" : 0, - "groups" : [ ] - }, { - "id" : "7c8e86dd-4ff1-428c-940e-ca47accd5f17", - "createdTimestamp" : 1675097737835, + "id" : "00cdf06b-0f9a-4c6a-bef5-f708ddfdc826", + "createdTimestamp" : 1675718197878, "username" : "desktop.project.lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "desktop.project.lead@status.im", "credentials" : [ { - "id" : "6dd5d36d-0ada-45df-9d09-20ae4d4971c2", + "id" : "9bd547f0-ea23-4c72-9e5f-4565b3bc4ef3", "type" : "password", - "createdDate" : 1675097737870, - "secretData" : "{\"value\":\"89lPbSrdcoDCoazwvVeVBcuhSv4OTrqtrIqQo46rFJItlXuHKlrRLKGnnMn1V0YsfEyMmsPrM0pdNdx6TTJuRg==\",\"salt\":\"CDbcKqkQXT5LU/xwTvunmg==\",\"additionalParameters\":{}}", + "createdDate" : 1675718197925, + "secretData" : "{\"value\":\"8gEooyOCgUdZbW5ONdrA181N0KqqdT/5olTtVxRBDSgNsLuU79b5Zy6BCU8LPL/GLIv4zdXrfusKb1a9G5UU6w==\",\"salt\":\"8VOFfZlBusGPeBT//V82ow==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -649,18 +592,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "72d32cba-e2e2-489d-9141-4d94e3bb2cda", - "createdTimestamp" : 1665517787787, + "id" : "3873c0ba-349c-4bec-8be2-5ced8acd56ec", + "createdTimestamp" : 1675718483992, "username" : "elizabeth", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "elizabeth@sartography.com", "credentials" : [ { - "id" : "ae951ec8-9fc9-4f1b-b340-bbbe463ae5c2", + "id" : "13dd277b-b5e4-4ff7-aba8-2d648858224e", "type" : "password", - "createdDate" : 1665517794484, - "secretData" : "{\"value\":\"oudGUsbh8utUavZ8OmoUvggCYxr+RHCgwcqpub5AgbITsK4DgY01X0SlDGRTdNGOIqoHse8zGBNmcyBNPWjC0w==\",\"salt\":\"auHilaAS2Lo7oa0UaA7L6A==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484034, + "secretData" : "{\"value\":\"qN84NNHkapbSOpYDUnEqemMFUiGJSbCdyUfsPJyinbzFWltqnrmgAQ/9j5dJweyJS2uXTEQgOFcV83LmqmIT4Q==\",\"salt\":\"A+gRdmehei+Ob6wNe/cszA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -669,21 +612,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "faf29027-dc54-4804-a408-4989a8c9c243", - "createdTimestamp" : 1669132994561, + "id" : "35587a20-fb5c-4ab9-8e78-becf72bea0b9", + "createdTimestamp" : 1675718198163, "username" : "fin", "enabled" : true, "totp" : false, "emailVerified" : false, - "firstName" : "", - "lastName" : "", "email" : "fin@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "118" ] + }, "credentials" : [ { - "id" : "2379940c-98b4-481a-b629-0bd1a4e91acf", + "id" : "b9c1eb91-e718-413a-a9fa-d5c34d6d3c7e", "type" : "password", - "userLabel" : "My password", - "createdDate" : 1669133003955, - "secretData" : "{\"value\":\"Wb9XtkrxJ9YdW7faHcWgQ+WK3JqBYCQ5wTn9rJa7Uo47I2TrniH+7/CBODIaiF3ipYAEZBkiCJDnPqg2qbZ+aA==\",\"salt\":\"bY1gRb+5sjbmrYWvxfl9CQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718198211, + "secretData" : "{\"value\":\"m994rWc22d6tIKMvWH2xvbnlpGzlUzM2XXN/hibd1g2qU6IoMFZnWCv9H+gF1RbyCIwpKlUqtweMHovroInITg==\",\"salt\":\"qyPduwi0CrgLyMCUSNmr8Q==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -692,21 +635,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "13e009b2-e96f-43b7-a227-465675ece81d", - "createdTimestamp" : 1669303701625, + "id" : "01ddf6c0-2a6c-4ec8-995e-ace203e1bb73", + "createdTimestamp" : 1675718198022, "username" : "fin1", "enabled" : true, "totp" : false, "emailVerified" : false, - "firstName" : "", - "lastName" : "", "email" : "fin1@status.im", "credentials" : [ { - "id" : "96216746-ff72-454e-8288-232428d10b42", + "id" : "bd847afd-69de-4e44-bc48-dbc6d42da4ee", "type" : "password", - "userLabel" : "My password", - "createdDate" : 1669303725352, - "secretData" : "{\"value\":\"ukPIO1rlfpzbxb+FXHAwCdNQ4cq3yX+Ke11uFPpGy7xBNT5UgLzO3oIK34Cw1Ma3+gFqK6/OsT4Q5fZd/AsVJQ==\",\"salt\":\"iSIY1gAdz7wkAwnGer95Lw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718198073, + "secretData" : "{\"value\":\"mUIBK8sGU41UR6sY0/rQ9P9/UakQQpTZUPwP6aboYqMeeZEcKCwbj68kcydRRkplP+XKvinhDh/SuKMoFncJ5w==\",\"salt\":\"Frsi7nWa1rTk/C7N17UJEQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -715,18 +655,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "29ba295e-9a70-41f1-bf0d-f02b468397c5", - "createdTimestamp" : 1674148694595, + "id" : "3fbf3fd9-da3d-4855-b963-765a42479dcc", + "createdTimestamp" : 1675718198406, "username" : "finance.lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "finance.lead@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1289" ] + }, "credentials" : [ { - "id" : "8f746fde-0a10-41b4-a973-0b967de73839", + "id" : "b7d9a648-7a0e-4b36-8ac9-687fb11480c3", "type" : "password", - "createdDate" : 1674148694661, - "secretData" : "{\"value\":\"vhe8ONTdkYaXLcSr73/4Ey//7U7rxh/0hiGc9S0wp8FV3EUsf+3bQSreDQCTp3DePJInpVCV34d4T0Ij+6Po0A==\",\"salt\":\"s6hEEdUPlULWfqGpxlG+TQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718198455, + "secretData" : "{\"value\":\"/f9+4A1rGmya7/N6ZUB+tOPCkOGrIKQoNdoUFO3r4J8x/TgayrV45erLgMUq4oSFisa41wkPNTTiyLmsbcmxdQ==\",\"salt\":\"QePdCzcB+8bDyx1hd4aJQw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -755,18 +698,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "9b46f3be-a81d-4b76-92e6-2ac8462f5ec8", - "createdTimestamp" : 1665688255982, + "id" : "51a34378-e967-44c4-9a6a-374674e3025b", + "createdTimestamp" : 1675718198529, "username" : "finance_user1", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "finance_user1@status.im", "credentials" : [ { - "id" : "f14722ec-13a7-4d35-a4ec-0475d405ae58", + "id" : "2083f746-b8bd-498d-a6ec-412887001b03", "type" : "password", - "createdDate" : 1665688275943, - "secretData" : "{\"value\":\"PlNhf8ShIvaSP3CUwCwAJ2tkqcTCVmCWUy4rbuLSXxEIiuGMu4XeZdsrE82R8PWuDQhlWn/YOUOk38xKZS2ySQ==\",\"salt\":\"m7JGY2cWgFBXMYQSSP2JQQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718198575, + "secretData" : "{\"value\":\"37Sopfv3ceKUOdUhdNkVmW0UrwttuFbV9cJQ0pAudKCcFv0mcITJEEhAU4PbHlAmM5ChGlDe0ag7pkGZlHZFMw==\",\"salt\":\"LZ5kQpGOlr472NeEk5kKHQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -775,18 +718,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "087bdc16-e362-4340-aa60-1ff71a45f844", - "createdTimestamp" : 1665516884829, + "id" : "0f56775b-eb18-4802-8500-42a814f59da7", + "createdTimestamp" : 1675718198661, "username" : "harmeet", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "harmeet@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "109" ] + }, "credentials" : [ { - "id" : "89c26090-9bd3-46ac-b038-883d02e3f125", + "id" : "45c6350a-263e-4985-a4e5-1d18669b3f1f", "type" : "password", - "createdDate" : 1665516905862, - "secretData" : "{\"value\":\"vDzTFQhjg8l8XgQ/YFYZSMLxQovFc/wflVBiRtAk/UWRKhJwuz3XInFbQ64wbYppBlXDYSmYis3luKv6YyUWjQ==\",\"salt\":\"58OQLETS0sM9VpXWoNa6rQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718198708, + "secretData" : "{\"value\":\"Ixd1FeH5cdAnipKt8s3DnzeL9ztNVWZGRGq7GJMOggCjZOk6uvpUc7caTMgXxb6F6HSPJ7eZor8LkA9Xhpb6Ew==\",\"salt\":\"OOnWtG7O+58rqcFlHw3qcw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -795,18 +741,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "1cbdc92d-6e0b-4c49-a3d4-3b537147912b", - "createdTimestamp" : 1674743245186, + "id" : "18ce0ce2-222f-4751-9c7f-a89c66806951", + "createdTimestamp" : 1675718198784, "username" : "infra.program-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "infra.program-lead@status.im", "credentials" : [ { - "id" : "c1d9c380-a5ca-4e24-96ae-e06e164cde9c", + "id" : "fa21c3bc-832d-4105-85c2-a1bcc51b873d", "type" : "password", - "createdDate" : 1674743245218, - "secretData" : "{\"value\":\"4+P+yg+1xgt6wwT8a3bs/sodYohXp43anYrtBNRfDaaAMN81tMCKWiTELCB29Qwe+40TfFVqsPPB06mJHqsf8Q==\",\"salt\":\"RE4kNSUDgPPo5nNzxbvgTQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718198833, + "secretData" : "{\"value\":\"sGXXacOZGiTbbMW0mFsgf6fSN8qE+SO+76rhAQT7Uqjm9PD2KahdPQSirV/MXwyVBsucARETKVBesA8AtM+CUA==\",\"salt\":\"nZi5zF7OpXXVyc7EGII6lg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -815,18 +761,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "914874bd-f9d9-4653-b529-8e3a6c183d7b", - "createdTimestamp" : 1674743245240, + "id" : "bc6e8a77-7fb0-48f0-99f9-8f7b6707c770", + "createdTimestamp" : 1675718198910, "username" : "infra.project-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "infra.project-lead@status.im", "credentials" : [ { - "id" : "1bfd8e1c-886a-4717-aefe-68717109739c", + "id" : "005b2673-ca1a-4227-9e29-4b57291c34ae", "type" : "password", - "createdDate" : 1674743245273, - "secretData" : "{\"value\":\"adTKZ+olETy+zqlyIHCehvmy/wxO2/glV74INuXaHGQruZ8grcAusVLQXZII9/lWOzil6khHEquQCAnPreRAIQ==\",\"salt\":\"KBvXbnkIn0+JPi6phCPnlA==\",\"additionalParameters\":{}}", + "createdDate" : 1675718198960, + "secretData" : "{\"value\":\"5a1suDGtU6g0F7DwjmiSPC4pZ1h7I3lX61LKXNkTgEgO7kDxnnhuVpMbI6Ij/65UwdDvXu7Wv/kdjkzHdNTP4A==\",\"salt\":\"ddoSbduEUP0TPKnokqp1kA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -835,18 +781,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "f55135de-7341-459d-8a42-a59f52d05bed", - "createdTimestamp" : 1674148694958, + "id" : "66638757-731d-4462-9e49-49f52295e867", + "createdTimestamp" : 1675718199052, "username" : "infra.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "infra.sme@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1202" ] + }, "credentials" : [ { - "id" : "e1f4368c-ed7c-481c-9426-fc0b8f2bf520", + "id" : "9b927bc9-f088-4090-9688-624ba00e3adb", "type" : "password", - "createdDate" : 1674148695008, - "secretData" : "{\"value\":\"7RHwvrhGAA3EddNNjPaVah+EOg5be0eugiwLLQLGlhFGSdGfg6kiUmPr5wBqBabivXHiSZgv/BiaL5KQ/VmR+A==\",\"salt\":\"HW3yCxErwpKASPvHX8o9Uw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718199102, + "secretData" : "{\"value\":\"4FhTmVVsvPg7nsUbYQo4ArWu5vSJxIG+JS3KMQs/6xqKtdCJkf4wUxs7gAJxJz+EAXxO++TxO1XiReA70I5rKg==\",\"salt\":\"4OtLtbU9XZ1Wq6bZZwmCdg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -855,18 +804,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "672167fd-ae79-47a7-8429-f3bb1bd4ee55", - "createdTimestamp" : 1675349217829, + "id" : "79892dce-8b9e-467d-9ad7-a57098cb44f8", + "createdTimestamp" : 1675718199186, "username" : "infra1.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "infra1.sme@status.im", "credentials" : [ { - "id" : "bd5843bf-98cc-4891-ab03-693a5d69078b", + "id" : "b682f073-3e38-4e56-b45a-7a5a21bd3668", "type" : "password", - "createdDate" : 1675349217863, - "secretData" : "{\"value\":\"A78sm/+e2x/N/3A7Pk05eKhfANp+ZO9BQA3LYMwpzQ5KK2D/Ot8d1plOnqMT61rTnnCgxP8dtlA6/Ws61CMTYg==\",\"salt\":\"XOOknamJPwXD1LDj6LEodA==\",\"additionalParameters\":{}}", + "createdDate" : 1675718199232, + "secretData" : "{\"value\":\"nYn+sr2tFXtCvejrctVANHS811PqaOvDvJ7lSu4tQuN0JbD33V4C2NyjMj1GZSi0zRnhd22bW8HkbIcy01m8zQ==\",\"salt\":\"qVPsxhQUfMxp97c6XlAqVQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -875,18 +824,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "40891b68-121f-4fdb-86c0-0f52836d7e65", - "createdTimestamp" : 1675349217890, + "id" : "764fb1e3-8290-44f6-a3a4-0ee021228c52", + "createdTimestamp" : 1675718199327, "username" : "infra2.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "infra2.sme@status.im", "credentials" : [ { - "id" : "7e9927e2-ef7f-4247-b663-1f59147a9066", + "id" : "dabae5d7-aeb9-4f93-ae5f-b274f0cc4314", "type" : "password", - "createdDate" : 1675349217926, - "secretData" : "{\"value\":\"j4M9u8p9FDCitGpb7JXM9JWFVGvBu7R2TOYG79c+Witl7gfWppues9fFzhlFyXgC78v6diHoQ4LwCwJGJS3loQ==\",\"salt\":\"H+i8qv6ulrBEZla/v8gDDw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718199373, + "secretData" : "{\"value\":\"lLdYOdk3lwPNb8Nbeo75uoXsNUxJ1chX6lPDnQtme/jh67iQvFJ8PrSPa7zpGYLDB8DPdYzoKVJboRIHug5H1g==\",\"salt\":\"v9yoojxyiM1CSHPS1yeRqA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -895,21 +844,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "1561518b-c327-491e-9db3-23c2b5394104", - "createdTimestamp" : 1669303773974, + "id" : "b8d0d90e-9a7e-446c-9984-082cb315af8f", + "createdTimestamp" : 1675718484095, "username" : "j", "enabled" : true, "totp" : false, "emailVerified" : false, - "firstName" : "", - "lastName" : "", "email" : "j@sartography.com", "credentials" : [ { - "id" : "e71ec785-9133-4b7d-8015-1978379af0bb", + "id" : "723958a6-2c82-4642-ab61-c2c22b10e8d1", "type" : "password", - "userLabel" : "My password", - "createdDate" : 1669303786522, - "secretData" : "{\"value\":\"g/nsCceqGWoU7thzq21RFSNUB8WP6l9/x2ghKFAKC1Xrqcf2At+u0r8GglqM6WmLthOTtrwICs98tS4ZPLmsbA==\",\"salt\":\"Na/OfJ9itENgaLPsIntzUQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484139, + "secretData" : "{\"value\":\"FJ4/Ma8AeoWT+T3ky3Xj/t+zZ+1RwU3EyW6PcULp92rFoRneIysaRWjWGkA/k/EbAca9uIA1NHXD7heonrkgew==\",\"salt\":\"AQgPybRGxF/pB4GvjUtpOg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -918,18 +864,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "13f5481e-c6b5-450d-8aaf-e13c1c1f5914", - "createdTimestamp" : 1665518332327, + "id" : "cab71649-0684-4540-8694-c2b8e3a1c33d", + "createdTimestamp" : 1675718199453, "username" : "jakub", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "jakub@status.im", "credentials" : [ { - "id" : "ce141fa5-b8d5-4bbe-93e7-22e7119f97c2", + "id" : "7c9b53ee-0856-4265-9828-c73092409aa4", "type" : "password", - "createdDate" : 1665518338651, - "secretData" : "{\"value\":\"+L4TmIGURzFtyRMFyKbPmQ8iYSC639K0GLNHXM+T/cLiMGxVr/wvWj5j435c1V9P+kwO2CnGtd09IsSN8cXuXg==\",\"salt\":\"a2eNeYyoci5fpkPJJy735g==\",\"additionalParameters\":{}}", + "createdDate" : 1675718199497, + "secretData" : "{\"value\":\"J8MbYjH99efs3duzXBEiil1eynVNyJplnqZ8ZabPpRe+Kr8p64G0DzZzT2JIQAvLAgG/XnJi8UtIyvvZkdGlxA==\",\"salt\":\"pkR+AdUB7MLiMzKqo/JHrw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -938,18 +884,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "3965a6c8-31df-474f-9a45-c268ed98e3fd", - "createdTimestamp" : 1665518284693, + "id" : "219389bc-d1df-4ef4-ae5d-97804ff4ca42", + "createdTimestamp" : 1675718199568, "username" : "jarrad", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "jarrad@status.im", "credentials" : [ { - "id" : "113e0343-1069-476d-83f9-21d98edb9cfa", + "id" : "1b3fbbe3-ffbf-4058-af58-ea1f817c299f", "type" : "password", - "createdDate" : 1665518292234, - "secretData" : "{\"value\":\"1CeBMYC3yiJ/cmIxHs/bSea3kxItLNnaIkPNRk2HefZiCdfUKcJ/QLI0O9QO108G2Lzg9McR33EB72zbFAfYUw==\",\"salt\":\"2kWgItvYvzJkgJU9ICWMAw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718199613, + "secretData" : "{\"value\":\"qn0Z6Dx2x6YvMHv6D+mNu5CXicbLdSOLStSiEuvbwT8cwCVbQ38LoGTyzIWTao4FrYppcOHUND5pNUKr0VrABQ==\",\"salt\":\"j4UvN6zfC26RHvGzOybKBg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -958,18 +904,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "58bcce19-41ec-4ae7-b930-b37be7ad4ba3", - "createdTimestamp" : 1665516949583, + "id" : "06f69a51-780c-4d3b-9c32-2c93d01d1e28", + "createdTimestamp" : 1675718484199, "username" : "jason", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "jason@sartography.com", "credentials" : [ { - "id" : "40abf32e-f0cc-4a17-8231-1a69a02c1b0b", + "id" : "f2330ab2-30ad-483c-af05-190a839bba21", "type" : "password", - "createdDate" : 1665516957192, - "secretData" : "{\"value\":\"nCnRYH5rLRMu1E7C260SowAdvJfQCSdf4LigcIzSkoPwT+qfLT5ut5m99zakNLeHLoCtGhO2lSVGUQWhdCUYJw==\",\"salt\":\"mW5QN/RSr55I04VI6FTERA==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484243, + "secretData" : "{\"value\":\"M/HQLqkHOWMCCnUg6Qd5pPdag6apDosVMkPTm+mDbbNa36mwkEvOmVYD48OSwwruUYiMV3dKByBBx8/QZqqbsA==\",\"salt\":\"R1V9v/uSxAXrS0o4Gh9wcw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -978,18 +924,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "29c11638-3b32-4024-8594-91c8b09e713c", - "createdTimestamp" : 1665518366585, + "id" : "0333aaa7-cfe8-4dd2-a8c7-cbefc9ea9c8e", + "createdTimestamp" : 1675718484299, "username" : "jon", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "jon@sartography.com", "credentials" : [ { - "id" : "8b520e01-5b9b-44ab-9ee8-505bd0831a45", + "id" : "9dfd7471-8b2a-422f-a1c4-cd2d17f2eebe", "type" : "password", - "createdDate" : 1665518373016, - "secretData" : "{\"value\":\"lZBDnz49zW6EkT2t7JSQjOzBlYhjhkw3hHefcOC4tmet+h/dAuxSGRuLibJHBap2j6G9Z2SoRqtyS8bwGbR42g==\",\"salt\":\"MI90jmxbLAno0g5O4BCeHw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484347, + "secretData" : "{\"value\":\"wIKYqLU64kVmqRixyS6ctMv3WrP8ADHGY0uIlV+T03Q6Um8jWvxFeyxK+jczQip9/Fe3cnyO3ofDo3IZNeNSEg==\",\"salt\":\"dS4upVR1o9fhRF/Doz/KaA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -998,18 +944,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "af15c167-d0e7-4a41-ac2c-109188dd7166", - "createdTimestamp" : 1665516966482, + "id" : "2ed7cd7d-0529-48d2-a819-c4cec99afeca", + "createdTimestamp" : 1675718484404, "username" : "kb", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "kb@sartography.com", "credentials" : [ { - "id" : "2c0be363-038f-48f1-86d6-91fdd28657cf", + "id" : "0532ba60-239b-4537-9506-be8dd9b7c608", "type" : "password", - "createdDate" : 1665516982394, - "secretData" : "{\"value\":\"yvliX8Mn+lgpxfMpkjfsV8CASgghEgPA2P1/DR1GP5LSFoGwGCEwj0SmeQAo+MQjBsn3nfvtL9asQvmIYdNZwQ==\",\"salt\":\"kFr1K94QCEx9eGD25rZR9g==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484447, + "secretData" : "{\"value\":\"0zDVcRHBgnX6hNrnJMXhF5/I8QD1QzZWW/aAVtcI1FamcnsjYlArUd4AOamzTRi9NHhK71uPry79cVevUlffNg==\",\"salt\":\"985YMqQx41KSSGtU5l4EVQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1018,21 +964,41 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "23c464ea-6a98-462c-a8b9-e8e561804361", - "createdTimestamp" : 1669132970114, + "id" : "cdec7198-19f5-4788-aceb-e8c68f4c277f", + "createdTimestamp" : 1675718484460, + "username" : "kevin", + "enabled" : true, + "totp" : false, + "emailVerified" : false, + "email" : "kevin@sartography.com", + "credentials" : [ { + "id" : "c1729585-5811-4b56-976c-c3370d1386f5", + "type" : "password", + "createdDate" : 1675718484506, + "secretData" : "{\"value\":\"bUeoB4qNIQe3nbBytEw269xMmYO+/8rq0GnwNVgwjiEHfeya2t3g+mu3yg0ZmahxUgdh1iTfx9Ja6VGDtGk7Ug==\",\"salt\":\"fbm81DCMYdMXF+NB/92OBw==\",\"additionalParameters\":{}}", + "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } ], + "disableableCredentialTypes" : [ ], + "requiredActions" : [ ], + "realmRoles" : [ "default-roles-spiffworkflow" ], + "notBefore" : 0, + "groups" : [ ] + }, { + "id" : "ab272a8d-bd5f-4ac0-85e4-45ec57a78953", + "createdTimestamp" : 1675718338270, "username" : "lead", "enabled" : true, "totp" : false, "emailVerified" : false, - "firstName" : "", - "lastName" : "", "email" : "lead@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1140" ] + }, "credentials" : [ { - "id" : "96e836a4-1a84-45c5-a9ed-651b0c90195e", + "id" : "a4c3e6a1-c940-45ae-86e1-ca54923f7e81", "type" : "password", - "userLabel" : "My password", - "createdDate" : 1669132979516, - "secretData" : "{\"value\":\"DsOkyXBHcwY0HAGta+m+E5jXDZwxGl/fgROCR7ph23oJ3j9833UVH5VLHfYcZ3YZixUIfskYMlcwW91uqO0oxQ==\",\"salt\":\"zOLZMvNnOIEB0t32DghWiQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718338316, + "secretData" : "{\"value\":\"zn8eDMpisZd9f/qlEez/gNNZuDdS9YKbyZkUbTixzVPB/ftS8cFlygJBFbNQViwEavVoHmVnF7QyFzv8xcD8Cg==\",\"salt\":\"ntaE4Qij01J/1eFPQj1MKQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1041,21 +1007,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "fef2c863-be05-49f2-94d0-702238505a4d", - "createdTimestamp" : 1669303745591, + "id" : "f30383a6-b2fe-4e60-a46e-ea18fae57210", + "createdTimestamp" : 1675718338164, "username" : "lead1", "enabled" : true, "totp" : false, "emailVerified" : false, - "firstName" : "", - "lastName" : "", "email" : "lead1@status.im", "credentials" : [ { - "id" : "4e17388b-6c44-44e1-b20a-a873c0feb9a8", + "id" : "efdd87cc-17d1-4c5e-a838-11d2a27d7bc8", "type" : "password", - "userLabel" : "My password", - "createdDate" : 1669303762736, - "secretData" : "{\"value\":\"NNPFZcVk47adUPH1q3L27uPkULy9OocZkOzi4qUVvO+tvZJVH5sMrSUYqM8S71AqdHNZD1a8ge6amF6k6dDIkQ==\",\"salt\":\"7e48fZJBAeVferVYA4gNVw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718338208, + "secretData" : "{\"value\":\"iV2jjKexLA7gpwQFpfpQC72PiPAhBYDbIYvVTCFcimLP7hddDmsacjoabNYMaN74Y1oU4S04pWM7ZkaJ2Roc1A==\",\"salt\":\"+n480WHwS8ZyZ/lVEnvn2g==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1064,18 +1027,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "530e99cb-b400-4baf-8ca6-22e64a30ef84", - "createdTimestamp" : 1674148694688, + "id" : "6714e045-2247-4927-b794-83a08b249086", + "createdTimestamp" : 1675718338389, "username" : "legal.lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "legal.lead@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1243" ] + }, "credentials" : [ { - "id" : "81f3aeca-8316-4a1b-8eb9-2570c062d0df", + "id" : "52adaa79-0bb5-4d6e-b109-f64ac0684249", "type" : "password", - "createdDate" : 1674148694733, - "secretData" : "{\"value\":\"puCrVcCNrO6P0VF8w0ZSx97RHi/c6NCuSeTidk/tEfSpZyY9x0oz/bkdFJO359HuvhN5HMBQ+CKPNbW1VjOSoA==\",\"salt\":\"ZczpeV+0QJGZG96EfLWYRQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718338433, + "secretData" : "{\"value\":\"bxQXTGpzHwOtyRNnQY1zn9ttZNVcpBDv+Q5NuvxfmZx1ZZS90Wo/uCN63VLAfzrEJbIwqNYZEuhHut6mn+wisw==\",\"salt\":\"07dvjWwdMZtgcr/4/BacvA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1084,18 +1050,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "e911fb0f-fd07-4886-acbf-d00930d293d3", - "createdTimestamp" : 1675447845512, + "id" : "45064faa-1cfe-4e19-b747-311dcc8a875b", + "createdTimestamp" : 1675718338624, "username" : "legal.program-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "legal.program-lead@status.im", "credentials" : [ { - "id" : "9676d8d3-1e8c-4f5d-b5f7-49745cecf8fd", + "id" : "9e65a84d-bdf9-46ef-ab25-2d9c0dbe454b", "type" : "password", - "createdDate" : 1675447845577, - "secretData" : "{\"value\":\"vTffScfGXIjWWyDDfzo7JPiJe9VjAtrmds382EeV7N+wYNapJmLTVModkBsmGPy4TmWLc9BoysQynOaanSGi9Q==\",\"salt\":\"67ZxTEnar8aq4LZLhSNTFg==\",\"additionalParameters\":{}}", + "createdDate" : 1675718338670, + "secretData" : "{\"value\":\"tpbpOXVd2xOEAdq5VT6Ic3G7o8CmAjXhUABiWaBNBP7Al92uMO3loOa3RVSzxL0s/hOU+JGfdcCBfbOfnDGEOQ==\",\"salt\":\"bKD+yKDudk3LaF70FEHiXA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1104,18 +1070,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "eff82d12-9a67-4002-b3c5-37811bd45199", - "createdTimestamp" : 1675349217585, + "id" : "c95a674e-751f-4ee9-8389-08d8e72eed4f", + "createdTimestamp" : 1675718338509, "username" : "legal.program-lead.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "legal.program-lead.sme@status.im", "credentials" : [ { - "id" : "933e3fc4-398a-46c3-bc4d-783ab29a0a5b", + "id" : "26d649df-07e2-4730-9b7a-496142f17027", "type" : "password", - "createdDate" : 1675349217655, - "secretData" : "{\"value\":\"x2M9khnGK+VCykoWbZKEcHNv5QMAcumqLa7+o+STJV8UYt7BobSBn7w1r3cbyYlvkgoWIglG8S2nLDFFb6hAQg==\",\"salt\":\"/lQYRrsUY1BxNUOZSKaZwA==\",\"additionalParameters\":{}}", + "createdDate" : 1675718338553, + "secretData" : "{\"value\":\"BJ3nShX4tCi/dfUy/jBkKh4eTDONZd6EolBN6fpuP2wbMcoE69Qe6rpp44n52trsevIz9dlWROc+jHgIYJjzIw==\",\"salt\":\"oVDpSNk29gbVZ5b8WMtqfA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1124,18 +1090,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "4ed2b5a2-16c2-4029-ae97-d75c60f2147f", - "createdTimestamp" : 1675447845616, + "id" : "d7339900-7e8c-41d6-b41a-c9a0c086211b", + "createdTimestamp" : 1675718338878, "username" : "legal.project-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "legal.project-lead@status.im", "credentials" : [ { - "id" : "fd0b0d0a-8a3e-48c9-b17b-023e87057048", + "id" : "171ac574-0d8a-4a4c-a6bc-b94980ee360a", "type" : "password", - "createdDate" : 1675447845652, - "secretData" : "{\"value\":\"l/DPfNBcHINV8lCf9nEyCJkFvaMGnLqcd1Y8t9taLqxb8r/ofY2ce79C19JCHDQJXRPRuCsMoobuFhhNR6aQmg==\",\"salt\":\"2ivCPrNc56396ldlwpQP6Q==\",\"additionalParameters\":{}}", + "createdDate" : 1675718338922, + "secretData" : "{\"value\":\"V0sa1y4WMsbCMHUp+mE4B2QhlkXj52D4ZDwHFOtfVkDjt/derRoLBJpzgfCkH9GzoXcD6ii3J8+QySG2QIvfDw==\",\"salt\":\"R9KidsiLjbV+sVbR1k9sBQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1144,18 +1110,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "8cd6feba-5ca6-4cfb-bc1a-a52c80595783", - "createdTimestamp" : 1675349217698, + "id" : "27ff02f8-9a4a-4204-b543-f85966da02d4", + "createdTimestamp" : 1675718338757, "username" : "legal.project-lead.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "legal.project-lead.sme@status.im", "credentials" : [ { - "id" : "908f858c-d3cd-47a9-b611-a1d48f0247e5", + "id" : "2025e3dd-3c5f-48ee-ada4-0ab2e8b0e493", "type" : "password", - "createdDate" : 1675349217733, - "secretData" : "{\"value\":\"r53SXu0dp6FrSJAVLHYrfwSKPZY9OKHfHBuJDEE2DCbZiQRH77C4sZWfUwbu/6OOhTtiBEe7gz2DQpimIDY4RQ==\",\"salt\":\"+g/OXXJEMkQiahmjSylAkw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718338801, + "secretData" : "{\"value\":\"abeO/ST/GwkKr0Kx4m58GgVFPjT9o+mfTe0HF7VroLA6Ca+sfcB78iDCaX9aBX3XzUdqo7iC56EFwiagUw5FXg==\",\"salt\":\"bE8l3t/eAoK8xVtoo1Cadw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1164,18 +1130,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "2a3176a0-8dd5-4223-a3e1-3cac4134e474", - "createdTimestamp" : 1674148695030, + "id" : "f67ec820-20ad-42f3-915b-e16e2a5d2e49", + "createdTimestamp" : 1675718339141, "username" : "legal.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "legal.sme@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1253" ] + }, "credentials" : [ { - "id" : "52fd8bd4-8fc4-4b71-8325-424220ef83af", + "id" : "30d01bad-ce92-48d6-b32c-ed1d304d829d", "type" : "password", - "createdDate" : 1674148695076, - "secretData" : "{\"value\":\"Rce1M5ph1ITsCguiHlv7YMcDTyofRnSPnOraQskkmeojV+tlUeBBsHV1fTiqJ4f13vE1qtnwC/60vQV8BprsHw==\",\"salt\":\"zFyJq5G2F/pZeLmgKaGoxQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718339184, + "secretData" : "{\"value\":\"6GCMU28L7Xjl2pNtceS/tLxRUkZ3ST75V77OQ27JnLWYwsjBz4lsJe2X4e5A8T2RF3BcrVHKvPKL6l7qr2c2ug==\",\"salt\":\"BDq6nWZv8hOeRgUvQPK85w==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1184,18 +1153,41 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "3d62ca4e-88bc-4302-89c1-8741c771147e", - "createdTimestamp" : 1675349217762, + "id" : "bf33e2de-3c75-4da2-85df-384546a7541b", + "createdTimestamp" : 1675718339018, + "username" : "legal.sme1", + "enabled" : true, + "totp" : false, + "emailVerified" : false, + "email" : "legal.sme1@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1345" ] + }, + "credentials" : [ { + "id" : "afa7f07e-c0b1-409a-b66d-2d9a9ac34913", + "type" : "password", + "createdDate" : 1675718339062, + "secretData" : "{\"value\":\"/AH41Kw/uVypwlKsCy9RQ7A7suwXowHkkjjTok2z2kkMxBkRnHUiYGSTTCqV1duOPq242PfonTctvs4x+JM4+A==\",\"salt\":\"OMqg8WrKY/q/WrgP8nJu1A==\",\"additionalParameters\":{}}", + "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } ], + "disableableCredentialTypes" : [ ], + "requiredActions" : [ ], + "realmRoles" : [ "default-roles-spiffworkflow" ], + "notBefore" : 0, + "groups" : [ ] + }, { + "id" : "fda1b84b-608d-40d2-aa05-1d9d0e6b8508", + "createdTimestamp" : 1675718339266, "username" : "legal1.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "legal1.sme@status.im", "credentials" : [ { - "id" : "b774d46d-a3e8-417f-97c6-2d2102a54b0b", + "id" : "ab143047-585a-4e55-91ac-f695eee7bab1", "type" : "password", - "createdDate" : 1675349217799, - "secretData" : "{\"value\":\"PF21YsnIoYZLJFT/y1i2FV4OmaQj8dRsalZ9R2PK6t/jKze3ds4k+I7WVe4h2H0hMB9fo9cSQ7kt2ygxfEBheg==\",\"salt\":\"5sOkSXzRSgNz7lHfUbKzdQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718339312, + "secretData" : "{\"value\":\"CWC6pC7oEouw7eIQkWAR1mBto/H996rzD/AOSZVfW9eE/Dl2V25OATjaLnBspTa1tt5rt4j6N1CG5OSVkzcwcg==\",\"salt\":\"rEt+Qyi73fnyeIlWkt22cg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1204,18 +1196,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "99ce8a54-2941-4767-8ddf-52320b3708bd", - "createdTimestamp" : 1675447085191, + "id" : "588e69b9-7534-4073-861d-500475b12b24", + "createdTimestamp" : 1675718484566, "username" : "madhurya", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "madhurya@sartography.com", "credentials" : [ { - "id" : "4fa2bf1f-188e-42e3-9633-01d436864206", + "id" : "cab9ffca-62c4-4f23-a0e0-2868c0b6ca9f", "type" : "password", - "createdDate" : 1675447085252, - "secretData" : "{\"value\":\"6ZApQ7kx4YDc5ojW9eyFiSKMz5l3/Zl5PIScHEW1gtP3lrnnWqWgwcP+8cWkKdm3im+XrZwDQHjuGjGN5Rbjyw==\",\"salt\":\"HT3fCh245v8etRFIprXsyw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484612, + "secretData" : "{\"value\":\"fcYbol1qijp7CnrKvcodRf0S6WITpBYSKkXLo7qGlRfpwwLzDOHnSQCCTUwq3C6iQRyi4X92vhoS/InDQQG5cw==\",\"salt\":\"dcgX0EenciihfrTM2zTaRg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1224,18 +1216,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "6f5bfa09-7494-4a2f-b871-cf327048cac7", - "createdTimestamp" : 1665517010600, + "id" : "c0531ceb-d6d0-4b5c-b01e-78e9d1d8a5a7", + "createdTimestamp" : 1675718339385, "username" : "manuchehr", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "manuchehr@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "110" ] + }, "credentials" : [ { - "id" : "07dabf55-b5d3-4f98-abba-3334086ecf5e", + "id" : "5539d754-5989-495e-b154-6faaa8baa3ba", "type" : "password", - "createdDate" : 1665517017682, - "secretData" : "{\"value\":\"1btDXHraz9l0Gp4g1xxdcuZffLsuKsW0tHwQGzoEtTlI/iZdrKPG9WFlCEFd84qtpdYPJD/tvzn6ZK6zU4/GlQ==\",\"salt\":\"jHtMiO+4jMv9GqLhC9wg4w==\",\"additionalParameters\":{}}", + "createdDate" : 1675718339429, + "secretData" : "{\"value\":\"+DYIJXdeaLH37ywJotLjOZOk2tYzjthBdWJPpXH/coxmxe5+JyqqdPoaFpT/os6OVFequ16eGQBmdlGZ62m/3g==\",\"salt\":\"HJMvd74i+fuyiWCXAaq0Vw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1244,18 +1239,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "d1c46b47-67c4-4d07-9cf4-6b1ceac88fc1", - "createdTimestamp" : 1665517760255, + "id" : "058b60f8-799e-48b0-a2b7-2e65e7a35724", + "createdTimestamp" : 1675718484672, "username" : "mike", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "mike@sartography.com", "credentials" : [ { - "id" : "1ed375fb-0f1a-4c2a-9243-2477242cf7bd", + "id" : "669f5421-843d-411d-9f24-1be41e545e52", "type" : "password", - "createdDate" : 1665517768715, - "secretData" : "{\"value\":\"S1cxZ3dgNB+A6yfMchDWEGP8OyZaaAOU/IUKn+QWFt255yoFqs28pfmwCsevdzuh0YfygO9GBgBv7qZQ2pknNQ==\",\"salt\":\"i+Q9zEHNxfi8TAHw17Dv6w==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484715, + "secretData" : "{\"value\":\"YILRiRdrsy8CA716ZQazpQOf7mpiXGaYnR26ra3pSjmHkZS9tsePTRwU2OIGPwbN1LKJcIzrpfEP7cVW2Lm17w==\",\"salt\":\"7mfD1X7Hns/5pPgHb9uZ1Q==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1264,20 +1259,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "cecacfd3-2f59-4ce2-87d9-bea91ef13c5b", - "createdTimestamp" : 1666102618518, + "id" : "9d23748e-23a7-4c48-956c-64da75871277", + "createdTimestamp" : 1675718484779, "username" : "natalia", "enabled" : true, "totp" : false, - "emailVerified" : true, - "firstName" : "", - "lastName" : "", + "emailVerified" : false, "email" : "natalia@sartography.com", "credentials" : [ { - "id" : "b6aa9936-39cc-4931-bfeb-60e6753de5ba", + "id" : "476024e5-62e4-48b6-afbb-cc2834fae4c7", "type" : "password", - "createdDate" : 1666102626704, - "secretData" : "{\"value\":\"kGyQIqZM6n9rjGZkNScJbkFjLvRJ2I+ZzCtjQ80e+zX7QaXtIF3CEeSY6KTXVjE8Z74oyVBWTIibpiTblm5Ztw==\",\"salt\":\"0k+Y+QJiW0YhxuxxYigasg==\",\"additionalParameters\":{}}", + "createdDate" : 1675718484823, + "secretData" : "{\"value\":\"FfrpgES+XI2w4NRe1aBmolPFcERbEUDXZcFtUWucrbhBspQLYNaN2VLmeDRV0VcT47Bn8dqjU11ct64WDtffWA==\",\"salt\":\"7rZd3fqY54i1eoNyXCcZ1w==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1286,18 +1279,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "9ee21bc7-1965-4965-bc52-298f42b54fde", - "createdTimestamp" : 1674743245082, + "id" : "3c9d92b3-5411-49c5-9cc1-f9d899e10a70", + "createdTimestamp" : 1675718339493, "username" : "peopleops.partner", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "peopleops.partner@status.im", "credentials" : [ { - "id" : "bae596d5-24b7-44f9-9ff0-8657c11ab56f", + "id" : "21fc1935-25be-446c-8b4f-4b9c0052892a", "type" : "password", - "createdDate" : 1674743245108, - "secretData" : "{\"value\":\"JxWbRtbtlrLtJCtoPfyB77SR4IIie1woR7BIWo5ZEQ2zVlILc7wD85sPx2hffsYvmbRo+ZvsfBk/JBaGDjFc8Q==\",\"salt\":\"w4ztSoQ6Vp4RY/u6GVZZkw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718339542, + "secretData" : "{\"value\":\"4IdOqNE4QyNJzSciSWXOotpU7CE/Ak8299Z639ZIVIOzJUFf170/Rp30gXXVB6sZzts6yc8CKtCNo1mlkU4MPA==\",\"salt\":\"Z2D9zlrLuq2Lo0muBLN+ug==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1306,18 +1299,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "a86643ff-016f-4025-9d2b-73d6445dd816", - "createdTimestamp" : 1674743245129, + "id" : "d9f5b8c5-4fb7-4cbf-85f1-4b2518dd269a", + "createdTimestamp" : 1675718340096, "username" : "peopleops.talent", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "peopleops.talent@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "141" ] + }, "credentials" : [ { - "id" : "bffa9150-d575-477c-bfcf-2af9c11b0536", + "id" : "598f26ac-62cd-47b2-a733-d821a3a3a904", "type" : "password", - "createdDate" : 1674743245164, - "secretData" : "{\"value\":\"3LaD303p3YXnZhmXgNxvoA9P67C2smw+8RGAN77vftdTNecP/LjszIC94GvxDlQpEeZdGKb0VesmKD8akxASyw==\",\"salt\":\"GUy7wne4v5X5s0tb8dr99w==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340140, + "secretData" : "{\"value\":\"CMZahcTGK7xgBWMiay+RhiZpCZGNicF3d7j09KHnZTkSPykdr5B69RF/vK6pdJDEBViGi0qUHIJguB+tayEfwg==\",\"salt\":\"BrRU6Sx7Y/yCp5QNZHeVXA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1326,18 +1322,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "3bfb62f7-527d-4df5-94d0-6cdc23353fa3", - "createdTimestamp" : 1675695752975, + "id" : "b280b75a-31f3-4baf-8e8d-ea9264efea9a", + "createdTimestamp" : 1675718339610, "username" : "peopleops.talent.program-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "peopleops.talent.program-lead@status.im", "credentials" : [ { - "id" : "624b34ec-9a8a-45cd-bf50-6fe24a125b4e", + "id" : "177368f9-9fd6-4351-a17c-28ede68e9cbf", "type" : "password", - "createdDate" : 1675695753041, - "secretData" : "{\"value\":\"K/8rrCMCBlq+PzZudTFBBjIXPLOs35f4aW9cLSH4XLlTgS/IGkMv1EMPXwkSHJayxxF5TdwDOkLB6a7QDR3nvA==\",\"salt\":\"KZonqKccY/OcmZktAPXzLw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718339656, + "secretData" : "{\"value\":\"PZ74/J/omE9E8/fE1f001METMTqfIZWqyUBmB6tN1pnZ0hpYOO+3OuI0dqsUWeUHoivnOuh62qekhvdK4HlMzw==\",\"salt\":\"iQF3RYISMQ9yKq2tW52Xmg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1346,18 +1342,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "cfadd1f9-eb8f-4b0a-ae04-4c8b98b5244a", - "createdTimestamp" : 1675695753095, + "id" : "d95e96da-71f9-434e-975c-9bb43b9ee84c", + "createdTimestamp" : 1675718339734, "username" : "peopleops.talent.project-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "peopleops.talent.project-lead@status.im", "credentials" : [ { - "id" : "c64e4b50-7535-4ed4-941a-e474093c9ed1", + "id" : "6fc6d386-a206-4b2c-a487-9f7c44d18485", "type" : "password", - "createdDate" : 1675695753133, - "secretData" : "{\"value\":\"OIPhql7gjZGNV0AW3EVzo9VbdrK6+7n9hMqo0BXi4nUU1U3ljWS+/gmP3WbrRHi7tZme0ytrATi8KvY2dCKZKg==\",\"salt\":\"r3Ti57CEWUTKvp6Tr5ApEQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718339779, + "secretData" : "{\"value\":\"aYY942KCHCPhnFhJBgr8bk+ij5Z+q/DGQayY7UEdmMnNEE4qNVhqY4uSFW5qcCP/hGJHzyOEL6EjBGSJZ39KxQ==\",\"salt\":\"qPQ4kk7fPdHfus6T5YWiXw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1366,18 +1362,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "90697442-0ceb-452b-8d6c-d3be528f1b54", - "createdTimestamp" : 1675695753161, + "id" : "56704d69-9ebc-4ca1-ba10-72f1a6545085", + "createdTimestamp" : 1675718339855, "username" : "peopleops.talent.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "peopleops.talent.sme@status.im", "credentials" : [ { - "id" : "5b335757-d786-454e-941e-2c001a44fff6", + "id" : "acc1eb96-b2dc-456c-be73-5314c27e4e91", "type" : "password", - "createdDate" : 1675695753198, - "secretData" : "{\"value\":\"VRI6HxuZ+Oq/vi20d4UEQxxPQb4YyYpWhNtD7Q4CDmgyNnxsRvrbPYtvgaMHUZpHReCSXU4nYBNT1NHDi2KpYA==\",\"salt\":\"Rj1RljhwnjzqxTcLwVLbyg==\",\"additionalParameters\":{}}", + "createdDate" : 1675718339899, + "secretData" : "{\"value\":\"i9dx0egleOXb/DQdbR6cd7hdaJESHv3dTUsODEdaNozl08JMDdlcpJuXVeS3iMV3tIRpINviWBEvz1GQDfc9lQ==\",\"salt\":\"v+AdM4m4FrrbVpJHv2HXVA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1386,18 +1382,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "0c0c2fa1-e043-4f50-8331-68d2df73e0c3", - "createdTimestamp" : 1675695753226, + "id" : "2109bbac-8460-466a-81e9-b14ba01b5911", + "createdTimestamp" : 1675718339981, "username" : "peopleops.talent1.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "peopleops.talent1.sme@status.im", "credentials" : [ { - "id" : "548b5d7c-df97-462b-b7db-abc1a40a916e", + "id" : "bfe740e5-d9e5-4ac7-8523-1fea7383b14f", "type" : "password", - "createdDate" : 1675695753261, - "secretData" : "{\"value\":\"OX9q+pOP7BSVfZhlg6FeAsVCG+tYGuKPdFPGluuKxmdEHGgixJp8X6D4btxZb1HXOX8NR8hukf3npGeCKSqohQ==\",\"salt\":\"mUju+e0jzVc1nGktGz77iw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340025, + "secretData" : "{\"value\":\"Nk8Ly3Vwxuc9Ho4CoCdrs+5+w2hdW5ASKa0cRr22ZxP/+sVtNPk/g5A/NVNQJfHKHB6+3aPKjI50mnYhtUlzqQ==\",\"salt\":\"cGZY2GAVAqrpN/+7n5e6RQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1406,18 +1402,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "c832f75b-7a0e-4d8a-8aee-f2e0f2aaf9d4", - "createdTimestamp" : 1674743245003, + "id" : "c3226e70-be0b-4097-9839-eb50735b6694", + "createdTimestamp" : 1675718340745, "username" : "ppg.ba", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "ppg.ba@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1276" ] + }, "credentials" : [ { - "id" : "655e2e3f-b060-43e3-a785-3027c0859ea0", + "id" : "18541771-2017-4441-bd8e-095c03b99a93", "type" : "password", - "createdDate" : 1674743245052, - "secretData" : "{\"value\":\"a0eJXZAEBCTG8EdEaFh73Nk5SgHvkBaah5uKf8Dtfyseg8t66W+/SZ7u8A+HtIQ3lbJC1YljF30gxf3OeNIYDQ==\",\"salt\":\"mj9++n+o78YRBZbMuw+6rw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340791, + "secretData" : "{\"value\":\"X7nDcdGvudO1T5VQ0ugmyVFJhzcVR+2kd4+8xjdrFMRvZTn1fyg4ev5aFNVqp+PvQda0KTg2yENCvrUn6rDlfA==\",\"salt\":\"jmGWdFFMgXuryBgXeuDuKw==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1426,18 +1425,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "9f703c96-02f1-403c-b070-25feb86cfe21", - "createdTimestamp" : 1675447845811, + "id" : "403d38e7-2d64-47d4-9b2b-a2502dc290d3", + "createdTimestamp" : 1675718340216, "username" : "ppg.ba.program-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "ppg.ba.program-lead@status.im", "credentials" : [ { - "id" : "bf74118b-b28f-4d2f-8bfa-7b9d1a8345f2", + "id" : "9562e5b7-5dfd-4517-94ae-7ba780afeaa6", "type" : "password", - "createdDate" : 1675447845847, - "secretData" : "{\"value\":\"wFUAB6E98gE222nCfsKe6P3kSZxeOSjhflsxon8kw/dY4ZwN0KMwvlYuNhmoptTLqDQJyqUiydmlMK0NS4JjTQ==\",\"salt\":\"YCPk4Tc3eXcoes78oLhDEg==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340260, + "secretData" : "{\"value\":\"0/cVzotMjWdZtVzFhDxXTuM1xMkMi4RWna27oh1ctiucmiGkx4ftFRfr9FGJ1aTwvj+EKNVva8TsuBQM06zmNA==\",\"salt\":\"gceulv4hHnXOqieQj5DlIg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1446,18 +1445,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "81a1727b-c846-4af9-8d95-1c50b1deb0d5", - "createdTimestamp" : 1675447845879, + "id" : "4db65e7b-1c9a-463b-9729-a6d89e8897aa", + "createdTimestamp" : 1675718340341, "username" : "ppg.ba.project-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "ppg.ba.project-lead@status.im", "credentials" : [ { - "id" : "6411830d-6015-4cf2-bac6-d49c26510319", + "id" : "2a9198df-5014-447c-8fac-ae3be285cee9", "type" : "password", - "createdDate" : 1675447845915, - "secretData" : "{\"value\":\"1+m8twycOEbA4X61zN7dLENqp2IxxQZrXKaf3mEuzmxouHrgxvmXudwC6DWyfjXvLm7gxWlaa4cofBFwr1idig==\",\"salt\":\"UEKUSScYv2xY+rJ8vlvF4A==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340385, + "secretData" : "{\"value\":\"1F0nbBth0dyndFstzgSoGvdVZigNMWJIVGW8Bjmti0PzGylVRM249Ky1fnRv++Yh3NzXA8f3wonQNJjYZCl5ZA==\",\"salt\":\"L7DVIDN1wN2aksJ6tx+6nQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1466,18 +1465,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "1d4d471a-b3ef-4750-97c4-a9e64eb8f414", - "createdTimestamp" : 1675447845942, + "id" : "57eef1a3-bebe-4327-a04d-392110c41b25", + "createdTimestamp" : 1675718340592, "username" : "ppg.ba.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "ppg.ba.sme@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1387" ] + }, "credentials" : [ { - "id" : "6512f88a-cbcc-4d79-be17-1d132ba11e64", + "id" : "3c4ed793-3bb6-4780-85f5-effc14bd0d27", "type" : "password", - "createdDate" : 1675447845977, - "secretData" : "{\"value\":\"EErx/3vG+lh4DgrJUzkBv4cLT3sK1gS+T9KD5V/JpvJUmJpRFQqpk+YxC/nC/kTGLIpRDdCIN690T84FlOIjew==\",\"salt\":\"FPeVGnFbt9TRNiORMB5LMQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340638, + "secretData" : "{\"value\":\"jz7YH9TG5qtdHbbqWPW/QxaszWUoKpB0C+/8BOyoXrqzZHqulyXpOJ97E682SiwvPxJmeiaWufSPoiYSp1xqCQ==\",\"salt\":\"yHwYXPU9W26qc33PSEEBoQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1486,18 +1488,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "2dade29f-c6dc-445b-bdf0-eed316bdb638", - "createdTimestamp" : 1675447846003, + "id" : "44c31728-4a89-46e3-a9a3-746567950d52", + "createdTimestamp" : 1675718340457, "username" : "ppg.ba.sme1", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "ppg.ba.sme1@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1398" ] + }, "credentials" : [ { - "id" : "ccf2d138-020a-4a29-b63d-1f4d2f415639", + "id" : "dcbc4e2d-0f9c-406d-a975-0722fe66b899", "type" : "password", - "createdDate" : 1675447846038, - "secretData" : "{\"value\":\"BtSJtW/8lCtyrDPTXzhsyT/32H+pOHx9thKqJV30dOEZ9wcSQbrRSHoQbXwLos+sIiA82X3wm+qObdQoD5guVQ==\",\"salt\":\"nSbgxYpVGaMz2ArmqLCN6Q==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340502, + "secretData" : "{\"value\":\"8ZZHopHlr/XSHNtTsTrnHA1trTCPEiu/pyQ1KnEV0mw29ycnO7n1b/PRjICr1npAjmPN5VjbsmV1bBjOrEMtlQ==\",\"salt\":\"ZwZc+4gyloZqkTvArSaKAg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1506,18 +1511,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "c3ea06ee-c497-48e6-8816-43c8ef68bd8b", - "createdTimestamp" : 1674148694747, + "id" : "a2fae3b7-0693-400d-8996-54f33a3108bd", + "createdTimestamp" : 1675718340861, "username" : "program.lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "program.lead@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1211" ] + }, "credentials" : [ { - "id" : "393e3cd9-c403-41dd-8562-7edba6acedd3", + "id" : "d04c8f47-e251-4ea0-aa74-d0621e9803eb", "type" : "password", - "createdDate" : 1674148694793, - "secretData" : "{\"value\":\"AD/rFDJcnQNVSZLVnLl6FzdiMSkRFiKiF2L6jyPtnAOAuQ6IivNvDIqiZf98rPuSq1zs8wjeDzFzyXvTYp7Pjg==\",\"salt\":\"T4XlF58M6LNTX8ksxYq8jQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718340907, + "secretData" : "{\"value\":\"eZXUCf692GXjzRCwf6cw+nv3AZcoMkDX3VnpzrhHCUB3cUt3H5ITEY8WMfR/wzzkPmY/XM+sdz6AwCFLtenoQg==\",\"salt\":\"FaiITvfC1a+WQcuMLfIv9w==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1526,18 +1534,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "f3852a7d-8adf-494f-b39d-96ad4c899ee5", - "createdTimestamp" : 1665516926300, + "id" : "0920817e-c604-4ff5-baf0-2f23eed82d85", + "createdTimestamp" : 1675718340983, "username" : "sasha", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "sasha@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "112" ] + }, "credentials" : [ { - "id" : "4a170af4-6f0c-4e7b-b70c-e674edf619df", + "id" : "59ce1883-2f7e-404a-8afd-3649615b3394", "type" : "password", - "createdDate" : 1665516934662, - "secretData" : "{\"value\":\"/cimS+PL6p+YnOCF9ZSA6UuwmmLZ7aVUZUthiFDqp/sn0c8GTpWmAdDIbJy2Ut+D4Rx605kRFQaekzRgSYPxcg==\",\"salt\":\"0dmUnLfqK745YHVSz6HOZg==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341028, + "secretData" : "{\"value\":\"SNbBV3gFT+Bh+ZKgHJpUvFVur5kMpAgBzbWXkhCI6x2GVeKPLKO/2tl06FMwTS4c0QxwZw9FJCYFsDfU+daUlQ==\",\"salt\":\"XIgE5GkmhQeYFGa5y0O1WA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1546,18 +1557,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "c21c075d-9ac5-40a1-964a-c1d6ffe17257", - "createdTimestamp" : 1675447845680, + "id" : "cc3723d2-b609-4542-9e36-d993865efef0", + "createdTimestamp" : 1675718341221, "username" : "security.program-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "security.program-lead@status.im", "credentials" : [ { - "id" : "d1401dbd-a88b-44a6-b13c-fff13ee07e0c", + "id" : "cf246387-ad69-4b4a-a66c-422439ec60d2", "type" : "password", - "createdDate" : 1675447845718, - "secretData" : "{\"value\":\"3D76RpIFG0/ixbSBeJfCc61kyL8PvVn/khA8FOy6RLg2hrZbs1Uwl8SmplnSUll1wD5a/BoobsO7v1XW4TCvwQ==\",\"salt\":\"YtDRRmBV4SBlO/oX23r2EQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341266, + "secretData" : "{\"value\":\"Y0vyeMBPyGz2lZK9xkNdNB9ObE/YHSVBf4rivn0H3P74Q3RmM9rKjvqUq+/ZQhzcKxLKr565uwPQ1kQRTFgvjg==\",\"salt\":\"yWt6sYOSm70wW4hH/w/+fg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1566,18 +1577,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "ace0432f-1818-4210-8bcf-15533abfb3ce", - "createdTimestamp" : 1675349217958, + "id" : "0b4e23a8-29d1-4296-9dc5-7a0b1985c524", + "createdTimestamp" : 1675718341095, "username" : "security.program-lead.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "security.program-lead.sme@status.im", "credentials" : [ { - "id" : "602512dd-b24f-458c-9cef-7271bd8177bc", + "id" : "bf494d50-c68d-4f0c-9043-2663a61c8dd5", "type" : "password", - "createdDate" : 1675349217993, - "secretData" : "{\"value\":\"vUb+t9ukHz3oHGUxaYUP34riZrshZU4c3iWpHB0OzI3y0ggCeT9xFEcmrwdkfilkKvCBJxLswlirWmgnmxZH0w==\",\"salt\":\"0hzZkDK4hPH5xgR1TpyG1Q==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341147, + "secretData" : "{\"value\":\"YOS5OwDL9Zg8UgSe8dks14AdGr3aB9bmceCR47VhC6ch/TMWGASiMhHv4GAWG9VrgYFRubCk+bizsgyq8W83Yg==\",\"salt\":\"/BBgN78yQ6AgCVuZCRNplg==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1586,18 +1597,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "34dfacfd-24b5-414e-ac3e-9b013399aee2", - "createdTimestamp" : 1675447845747, + "id" : "df5d99cd-2b9c-4406-98fd-16a3d21ec243", + "createdTimestamp" : 1675718341454, "username" : "security.project-lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "security.project-lead@status.im", "credentials" : [ { - "id" : "cb5d8a8a-e7d0-40e4-878b-a33608cb76c8", + "id" : "b271ddb4-1fae-4c45-b5c6-d4a485201524", "type" : "password", - "createdDate" : 1675447845784, - "secretData" : "{\"value\":\"rudimVOjVwJeO/1RLuyHySEaSQMzjHqPQrh5Pmfr4L2PgP/1oDKLVB38pKOohlbTarDcbAfMHB7AFYAPn9kuIg==\",\"salt\":\"cOkkUBOx/4AVUSa3Ozsiuw==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341498, + "secretData" : "{\"value\":\"yRfGDR736XT7NVYPdbuNtRO6wyFqHzoPUtveuU97NXoPy77qG0x3NruV/DOzDbpuritLyRcMuh0g5BGwEAkwag==\",\"salt\":\"UjlScgQzN9uPCzkmt3X/xQ==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1606,18 +1617,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "6272ac80-1d79-4e3c-a5c1-b31660560318", - "createdTimestamp" : 1675349218020, + "id" : "9b564785-827e-4211-81c2-47e088a0bf17", + "createdTimestamp" : 1675718341332, "username" : "security.project-lead.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "security.project-lead.sme@status.im", "credentials" : [ { - "id" : "eb7673bf-50f1-40af-927b-162f536f6187", + "id" : "b20fdd8f-a834-444c-ae4f-c6cdf10ad08f", "type" : "password", - "createdDate" : 1675349218054, - "secretData" : "{\"value\":\"E1eLmC7hCcv7I5X30TfMvpZv3MtHH+rVhgLrZnBJSUvsrXmRkHWScJ/POHQLwUgCLJeU/lKDP/f0TdO2PvHiow==\",\"salt\":\"dWM5XJIR7m/eZ0YlHmuC3A==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341377, + "secretData" : "{\"value\":\"TMW0SsArFL92Nk/F29NhbhOK98zhue1maaahcMDFwGaO0AeHCl73u4g8jf/W+ALmzPssJYoPBkRYYyANFWmhWQ==\",\"salt\":\"UATAosyw2Q5HWSrsQbuYgA==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1626,18 +1637,21 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "74374cda-1516-48e5-9ef2-1fd7bcee84d3", - "createdTimestamp" : 1674148695088, + "id" : "decb32e7-b524-4262-96c3-64ca5016665c", + "createdTimestamp" : 1675718341576, "username" : "security.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "security.sme@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "1230" ] + }, "credentials" : [ { - "id" : "43427e80-292e-453f-9968-511a1064729e", + "id" : "7c253a3f-2b51-4231-9dda-145276b928e7", "type" : "password", - "createdDate" : 1674148695133, - "secretData" : "{\"value\":\"HB68S1rm/fef2nY2qpakAyZ0a+OFM0G/Xp+kHNdTQSWZA6fYq8EUzhfTFkUQ5xuTriOesXao0srtFmcCs2Pi8Q==\",\"salt\":\"e8J1O8M7mrDq/jTJXzwYyQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341623, + "secretData" : "{\"value\":\"Nmn2nGNHmKQ3RDk1xvmT2drjdIa2kzTb8O4vdydSl7utnfrAYvNrTylo4fJJSjO2oSXty53BxOUaUasiSX6nyQ==\",\"salt\":\"+d21amc7Arzlqg8Ielr1ig==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1646,18 +1660,18 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "98faab0c-d2af-4794-8491-03dad5f30c63", - "createdTimestamp" : 1675349218087, + "id" : "81ce9ccb-51f6-4ae5-9471-6d057ab3fee6", + "createdTimestamp" : 1675718341709, "username" : "security1.sme", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "security1.sme@status.im", "credentials" : [ { - "id" : "37bd6b9b-015b-4790-8a4f-883c47035bc4", + "id" : "4fab5619-48f4-4383-a103-f549480e9b44", "type" : "password", - "createdDate" : 1675349218122, - "secretData" : "{\"value\":\"BJP9K4qIdnaDnE3meM2GLWMFdSJryxcZovtKDlZNaQXfSUH3X1mOJfaLXQsuTWJzSMIow8XZ5+ye47ZNabLCaQ==\",\"salt\":\"BqD7jPpdB7PzU6QTN5dpMA==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341753, + "secretData" : "{\"value\":\"HXR6V2BCYs7oCZVBk6x9dsyIIyUK9KkERAsbeBd4G+f+5uzVfp6b/25oTDmR9MBMGt9nntVNPY+c0Rn1+S4N7A==\",\"salt\":\"jl0EkH1Fx7tVDH1GyA+b+w==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -1700,18 +1714,64 @@ "notBefore" : 0, "groups" : [ ] }, { - "id" : "3d45bb85-0a2d-4b15-8a19-d26a5619d359", - "createdTimestamp" : 1674148694810, + "id" : "d93d587b-691d-40af-9670-ae73f035bb37", + "createdTimestamp" : 1675718341828, "username" : "services.lead", "enabled" : true, "totp" : false, "emailVerified" : false, "email" : "services.lead@status.im", "credentials" : [ { - "id" : "45607c53-3768-4f76-bda3-4d31b39ffccd", + "id" : "2994b85b-0da7-4a6c-9a3e-c938987b81eb", "type" : "password", - "createdDate" : 1674148694884, - "secretData" : "{\"value\":\"E3GPcOLU56efhBQE7MMZa0OM0FAtgK5kDA9sy65uCwSyaoZGp4ZVUDsIfIkWe+TEEQA5QP5FVJbJhwvdkx3m9w==\",\"salt\":\"dySpiEZxeyb11oQZR2WYVQ==\",\"additionalParameters\":{}}", + "createdDate" : 1675718341873, + "secretData" : "{\"value\":\"jDS19R0vMTdTiocyy21CtF0Ppal1hQfRStdSfZ9j1B5oEo26VWw8Vx3GWtKsIdxKmo1V2NwlXXjavetzhnUZQw==\",\"salt\":\"ncKVOcB8am/7KcIJ0munDA==\",\"additionalParameters\":{}}", + "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } ], + "disableableCredentialTypes" : [ ], + "requiredActions" : [ ], + "realmRoles" : [ "default-roles-spiffworkflow" ], + "notBefore" : 0, + "groups" : [ ] + }, { + "id" : "96c7c431-e65a-4f5a-93a5-e0ada7b072c1", + "createdTimestamp" : 1675711127686, + "username" : "services1.lead", + "enabled" : true, + "totp" : false, + "emailVerified" : false, + "email" : "services1.lead@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "42" ] + }, + "credentials" : [ { + "id" : "2d28c82a-cf15-4b96-a355-1ada0533fd32", + "type" : "password", + "createdDate" : 1675711127754, + "secretData" : "{\"value\":\"VmsJIj0pxHj1W2soM0E2nfR13ctGQSqUntC2voHUzMQcyLL/aqU9R+e+JunM0mtWuE3ljiHD704hcLNf4FH7uQ==\",\"salt\":\"TJGLlhTOqmFC0vz7FQNn5Q==\",\"additionalParameters\":{}}", + "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" + } ], + "disableableCredentialTypes" : [ ], + "requiredActions" : [ ], + "realmRoles" : [ "default-roles-spiffworkflow" ], + "notBefore" : 0, + "groups" : [ ] + }, { + "id" : "b9451067-e227-42f9-944a-f1fb79c4a2c7", + "createdTimestamp" : 1675715650520, + "username" : "services3.lead", + "enabled" : true, + "totp" : false, + "emailVerified" : false, + "email" : "services3.lead@status.im", + "attributes" : { + "spiffworkflow-employeeid" : [ "hey1" ] + }, + "credentials" : [ { + "id" : "4a24f2d9-e030-440a-a672-3fb75322a9f3", + "type" : "password", + "createdDate" : 1675715650571, + "secretData" : "{\"value\":\"4r1zwtnm5l4JpVEdp0hwH1mRhrrGqOja6PfNFkjyWdVMhnUuN9a2FnXQjmwa3P+8Boz9HUB0Ag40UbPI9c6LIg==\",\"salt\":\"ROQEPFvg/Q4h/9OoETqh8g==\",\"additionalParameters\":{}}", "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\",\"additionalParameters\":{}}" } ], "disableableCredentialTypes" : [ ], @@ -2115,6 +2175,21 @@ "claim.name" : "clientId", "jsonType.label" : "String" } + }, { + "id" : "a7692d41-b905-4049-9004-f6bea690051d", + "name" : "spiffworkflow-employeeid", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-attribute-mapper", + "consentRequired" : false, + "config" : { + "aggregate.attrs" : "false", + "userinfo.token.claim" : "true", + "multivalued" : "false", + "user.attribute" : "spiffworkflow-employeeid", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "spiffworkflow-employeeid" + } } ], "defaultClientScopes" : [ "web-origins", "acr", "profile", "roles", "email" ], "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ], @@ -2932,7 +3007,7 @@ "subType" : "authenticated", "subComponents" : { }, "config" : { - "allowed-protocol-mapper-types" : [ "oidc-full-name-mapper", "saml-user-property-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-address-mapper", "saml-role-list-mapper", "saml-user-attribute-mapper", "oidc-usermodel-attribute-mapper", "oidc-usermodel-property-mapper" ] + "allowed-protocol-mapper-types" : [ "oidc-sha256-pairwise-sub-mapper", "oidc-usermodel-property-mapper", "saml-role-list-mapper", "oidc-usermodel-attribute-mapper", "oidc-address-mapper", "saml-user-property-mapper", "saml-user-attribute-mapper", "oidc-full-name-mapper" ] } }, { "id" : "d68e938d-dde6-47d9-bdc8-8e8523eb08cd", @@ -2950,7 +3025,7 @@ "subType" : "anonymous", "subComponents" : { }, "config" : { - "allowed-protocol-mapper-types" : [ "oidc-usermodel-property-mapper", "oidc-address-mapper", "saml-user-property-mapper", "saml-user-attribute-mapper", "oidc-full-name-mapper", "saml-role-list-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-usermodel-attribute-mapper" ] + "allowed-protocol-mapper-types" : [ "oidc-usermodel-property-mapper", "oidc-address-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-user-property-mapper", "saml-user-attribute-mapper", "saml-role-list-mapper", "oidc-usermodel-attribute-mapper", "oidc-full-name-mapper" ] } }, { "id" : "3854361d-3fe5-47fb-9417-a99592e3dc5c", @@ -3040,7 +3115,7 @@ "internationalizationEnabled" : false, "supportedLocales" : [ ], "authenticationFlows" : [ { - "id" : "946724d3-fc95-4d8b-8e80-1b5441d16133", + "id" : "9d76eeb9-f3e9-4719-8395-831a08900e44", "alias" : "Account verification options", "description" : "Method with which to verity the existing account", "providerId" : "basic-flow", @@ -3062,7 +3137,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "f1e5a918-3f15-4ff9-80fa-e1800a9ceb76", + "id" : "8015097c-e3c5-45b9-bbb5-7748281e8d0c", "alias" : "Authentication Options", "description" : "Authentication options.", "providerId" : "basic-flow", @@ -3091,7 +3166,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "a91fda66-1614-4360-8741-6ece523feda5", + "id" : "64539eb1-c84a-493d-bca9-4e2605617bcf", "alias" : "Browser - Conditional OTP", "description" : "Flow to determine if the OTP is required for the authentication", "providerId" : "basic-flow", @@ -3113,7 +3188,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "38d95d5b-ba7e-4f69-acd6-fd9a5d9b252f", + "id" : "f81f8aed-68d2-428b-9e0e-91a5d39b58fd", "alias" : "Direct Grant - Conditional OTP", "description" : "Flow to determine if the OTP is required for the authentication", "providerId" : "basic-flow", @@ -3135,7 +3210,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "bba1cfc6-c391-47c4-b1f9-26178cc70b73", + "id" : "9d8904a4-5eec-4214-a825-6df9f85e366a", "alias" : "First broker login - Conditional OTP", "description" : "Flow to determine if the OTP is required for the authentication", "providerId" : "basic-flow", @@ -3157,7 +3232,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "9532380c-6a4f-4bde-8822-24d2125f2f9a", + "id" : "76f6ab32-6188-4ffb-b030-87c9a9717f3a", "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", @@ -3179,7 +3254,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "f81bae40-7ac5-4641-8933-588c17a62754", + "id" : "f99591ae-5be3-4e0c-9187-9c5dce4a33a7", "alias" : "Reset - Conditional OTP", "description" : "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.", "providerId" : "basic-flow", @@ -3201,7 +3276,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "51dfe92b-25bc-4c00-b5e2-6678fb018398", + "id" : "43524ff8-b036-4e53-a5ec-37ece8648ba1", "alias" : "User creation or linking", "description" : "Flow for the existing/non-existing user alternatives", "providerId" : "basic-flow", @@ -3224,7 +3299,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "0778fbd6-37d2-4eac-8ee9-a2bfdc081a48", + "id" : "5d3c38f1-9b45-4b32-b8fd-c13fc9c3bf8f", "alias" : "Verify Existing Account by Re-authentication", "description" : "Reauthentication of existing account", "providerId" : "basic-flow", @@ -3246,7 +3321,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "5b5049d4-b785-451f-bd91-bd8ed97df297", + "id" : "043adc40-9e6a-43f7-a815-7f7ccd8b98f5", "alias" : "browser", "description" : "browser based authentication", "providerId" : "basic-flow", @@ -3282,7 +3357,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "921359fe-b30f-4f48-8565-9d745ee6216c", + "id" : "9bdf5a12-2d5b-411d-b4d0-1d4ddfc3e3fb", "alias" : "clients", "description" : "Base authentication for clients", "providerId" : "client-flow", @@ -3318,7 +3393,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "1ae55b9d-fe3d-491c-a613-5bfc070334dc", + "id" : "a970b601-5442-4be6-ba64-61434460e084", "alias" : "direct grant", "description" : "OpenID Connect Resource Owner Grant", "providerId" : "basic-flow", @@ -3347,7 +3422,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "bb23c1a5-6bca-4fee-b155-db6e219bb14b", + "id" : "a27df80c-b3af-4d1d-97e6-3034245362c2", "alias" : "docker auth", "description" : "Used by Docker clients to authenticate against the IDP", "providerId" : "basic-flow", @@ -3362,7 +3437,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "34dca5ce-cc7a-479d-bfa0-3eac6185e0ea", + "id" : "b7409752-dbfe-41a6-861b-0c84b746b70e", "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", @@ -3385,7 +3460,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "67c2a159-5ce7-46e0-ab24-d4a3d3504be1", + "id" : "df6bb9f7-227a-4ea7-86b3-47c4f7378f40", "alias" : "forms", "description" : "Username, password, otp and other auth forms.", "providerId" : "basic-flow", @@ -3407,7 +3482,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "85b95d44-d930-4a54-ae1a-ecdb763f0382", + "id" : "f09f4806-c3c4-4000-9fa3-cbdfe1053560", "alias" : "http challenge", "description" : "An authentication flow based on challenge-response HTTP Authentication Schemes", "providerId" : "basic-flow", @@ -3429,7 +3504,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "ba58a228-ebea-4dd0-a94c-538ba4cae9b7", + "id" : "ba55f67b-3361-486e-b852-03905f27dd16", "alias" : "registration", "description" : "registration flow", "providerId" : "basic-flow", @@ -3445,7 +3520,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "91e9d8a6-0270-4b24-b9bf-3e6df67b07d4", + "id" : "8dc922d1-b30e-4b28-9a1a-1627a1378565", "alias" : "registration form", "description" : "registration form", "providerId" : "form-flow", @@ -3481,7 +3556,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "70dac74c-13bc-4ff5-b26a-661b335c74b0", + "id" : "38672fe9-09a8-497a-9588-f191ab256e1f", "alias" : "reset credentials", "description" : "Reset credentials for a user if they forgot their password or something", "providerId" : "basic-flow", @@ -3517,7 +3592,7 @@ "userSetupAllowed" : false } ] }, { - "id" : "d226a0ad-398c-426a-bf29-3d8019ec685e", + "id" : "84ec2563-e007-4ca3-88c0-2e7aaa85f96d", "alias" : "saml ecp", "description" : "SAML ECP Profile Authentication Flow", "providerId" : "basic-flow", @@ -3533,13 +3608,13 @@ } ] } ], "authenticatorConfig" : [ { - "id" : "9e659f3e-613d-4b69-9ed5-e511a0ba541f", + "id" : "f08a4809-112f-47be-93dc-c897efe05464", "alias" : "create unique user config", "config" : { "require.password.update.after.registration" : "false" } }, { - "id" : "779aa3ef-3e89-4b36-b902-a9f95830c799", + "id" : "2522cf9e-e404-4dcc-9e64-35fc3125c242", "alias" : "review profile config", "config" : { "update.profile.on.first.login" : "missing" diff --git a/spiffworkflow-backend/keycloak/test_user_lists/sartography b/spiffworkflow-backend/keycloak/test_user_lists/sartography index 1b7166bb1..c264747f4 100644 --- a/spiffworkflow-backend/keycloak/test_user_lists/sartography +++ b/spiffworkflow-backend/keycloak/test_user_lists/sartography @@ -1,6 +1,7 @@ +email,spiffworkflow-employeeid admin@spiffworkflow.org -alex@sartography.com -dan@sartography.com +alex@sartography.com,111 +dan@sartography.com,115 daniel@sartography.com elizabeth@sartography.com j@sartography.com diff --git a/spiffworkflow-backend/keycloak/test_user_lists/status b/spiffworkflow-backend/keycloak/test_user_lists/status index 49770838f..fe7e66c2e 100644 --- a/spiffworkflow-backend/keycloak/test_user_lists/status +++ b/spiffworkflow-backend/keycloak/test_user_lists/status @@ -1,50 +1,52 @@ +email,spiffworkflow-employeeid admin@spiffworkflow.org amir@status.im app.program.lead@status.im -core@status.im +core@status.im,113 dao.project.lead@status.im desktop.program.lead@status.im desktop.project.lead@status.im fin1@status.im -fin@status.im -finance.lead@status.im -finance.sme@status.im +fin@status.im,118 +finance.lead@status.im,1182 +finance.lead@status.im,1289 finance_user1@status.im -harmeet@status.im +harmeet@status.im,109 infra.program-lead@status.im infra.project-lead@status.im -infra.sme@status.im +infra.sme@status.im,1202 infra1.sme@status.im infra2.sme@status.im jakub@status.im jarrad@status.im lead1@status.im -lead@status.im -legal.lead@status.im +lead@status.im,1140 +legal.lead@status.im,1243 legal.program-lead.sme@status.im legal.program-lead@status.im legal.project-lead.sme@status.im legal.project-lead@status.im -legal.sme@status.im +legal.sme1@status.im,1345 +legal.sme@status.im,1253 legal1.sme@status.im -manuchehr@status.im +manuchehr@status.im,110 peopleops.partner@status.im peopleops.talent.program-lead@status.im peopleops.talent.project-lead@status.im peopleops.talent.sme@status.im peopleops.talent1.sme@status.im -peopleops.talent@status.im +peopleops.talent@status.im,141 ppg.ba.program-lead@status.im ppg.ba.project-lead@status.im -ppg.ba.sme1@status.im -ppg.ba.sme@status.im -ppg.ba@status.im -program.lead@status.im -sasha@status.im +ppg.ba.sme1@status.im,1398 +ppg.ba.sme@status.im,1387 +ppg.ba@status.im,1276 +program.lead@status.im,1211 +sasha@status.im,112 security.program-lead.sme@status.im security.program-lead@status.im security.project-lead.sme@status.im security.project-lead@status.im -security.sme@status.im +security.sme@status.im,1230 security1.sme@status.im services.lead@status.im diff --git a/spiffworkflow-backend/migrations/versions/ca9b79dde5cc_.py b/spiffworkflow-backend/migrations/versions/ca9b79dde5cc_.py new file mode 100644 index 000000000..8a7134f41 --- /dev/null +++ b/spiffworkflow-backend/migrations/versions/ca9b79dde5cc_.py @@ -0,0 +1,32 @@ +"""empty message + +Revision ID: ca9b79dde5cc +Revises: 2ec4222f0012 +Create Date: 2023-02-03 21:06:56.396816 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'ca9b79dde5cc' +down_revision = '2ec4222f0012' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('user', sa.Column('tenant_specific_field_1', sa.String(length=255), nullable=True)) + op.add_column('user', sa.Column('tenant_specific_field_2', sa.String(length=255), nullable=True)) + op.add_column('user', sa.Column('tenant_specific_field_3', sa.String(length=255), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('user', 'tenant_specific_field_3') + op.drop_column('user', 'tenant_specific_field_2') + op.drop_column('user', 'tenant_specific_field_1') + # ### end Alembic commands ### diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/__init__.py b/spiffworkflow-backend/src/spiffworkflow_backend/__init__.py index 341cfac8d..420f990c0 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/__init__.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/__init__.py @@ -1,5 +1,6 @@ """__init__.""" import os +import sys from typing import Any import connexion # type: ignore @@ -203,6 +204,9 @@ def configure_sentry(app: flask.app.Flask) -> None: if sentry_traces_sample_rate is None: raise Exception("SENTRY_TRACES_SAMPLE_RATE is not set somehow") + # profiling doesn't work on windows, because of an issue like https://github.com/nvdv/vprof/issues/62 + profiles_sample_rate = 0 if sys.platform.startswith("win") else 1 + sentry_sdk.init( dsn=app.config.get("SENTRY_DSN"), integrations=[ @@ -218,8 +222,6 @@ def configure_sentry(app: flask.app.Flask) -> None: traces_sample_rate=float(sentry_traces_sample_rate), traces_sampler=traces_sampler, # The profiles_sample_rate setting is relative to the traces_sample_rate setting. - _experiments={ - "profiles_sample_rate": 1, - }, + _experiments={"profiles_sample_rate": profiles_sample_rate}, before_send=before_send, ) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/config/__init__.py b/spiffworkflow-backend/src/spiffworkflow_backend/config/__init__.py index 64c7e2c1a..24fc452de 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/config/__init__.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/config/__init__.py @@ -51,6 +51,19 @@ def load_config_file(app: Flask, env_config_module: str) -> None: ) from exception +def _set_up_tenant_specific_fields_as_list_of_strings(app: Flask) -> None: + tenant_specific_fields = app.config.get("TENANT_SPECIFIC_FIELDS") + + if tenant_specific_fields is None or tenant_specific_fields == "": + app.config["TENANT_SPECIFIC_FIELDS"] = [] + else: + app.config["TENANT_SPECIFIC_FIELDS"] = tenant_specific_fields.split(",") + if len(app.config["TENANT_SPECIFIC_FIELDS"]) > 3: + raise ConfigurationError( + "TENANT_SPECIFIC_FIELDS can have a maximum of 3 fields" + ) + + def setup_config(app: Flask) -> None: """Setup_config.""" # ensure the instance folder exists @@ -108,3 +121,4 @@ def setup_config(app: Flask) -> None: thread_local_data = threading.local() app.config["THREAD_LOCAL_DATA"] = thread_local_data + _set_up_tenant_specific_fields_as_list_of_strings(app) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/config/default.py b/spiffworkflow-backend/src/spiffworkflow_backend/config/default.py index 4f0a82966..52126b1b5 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/config/default.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/config/default.py @@ -72,7 +72,7 @@ GIT_SSH_PRIVATE_KEY = environ.get("GIT_SSH_PRIVATE_KEY") GIT_USERNAME = environ.get("GIT_USERNAME") GIT_USER_EMAIL = environ.get("GIT_USER_EMAIL") -# Datbase Configuration +# Database Configuration SPIFF_DATABASE_TYPE = environ.get( "SPIFF_DATABASE_TYPE", default="mysql" ) # can also be sqlite, postgres @@ -88,3 +88,8 @@ SYSTEM_NOTIFICATION_PROCESS_MODEL_MESSAGE_ID = environ.get( ALLOW_CONFISCATING_LOCK_AFTER_SECONDS = int( environ.get("ALLOW_CONFISCATING_LOCK_AFTER_SECONDS", default="600") ) + +# Tenant specific fields is a comma separated list of field names that we will convert to list of strings +# and store in the user table's tenant_specific_field_n columns. You can have up to three items in this +# comma-separated list. +TENANT_SPECIFIC_FIELDS = environ.get("TENANT_SPECIFIC_FIELDS") diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py index 7f8c88da9..c124b3ea7 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/user.py @@ -34,6 +34,9 @@ class UserModel(SpiffworkflowBaseDBModel): service_id = db.Column(db.String(255), nullable=False, unique=False) display_name = db.Column(db.String(255)) email = db.Column(db.String(255)) + tenant_specific_field_1: str = db.Column(db.String(255)) + tenant_specific_field_2: str = db.Column(db.String(255)) + tenant_specific_field_3: str = db.Column(db.String(255)) updated_at_in_seconds: int = db.Column(db.Integer) created_at_in_seconds: int = db.Column(db.Integer) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/scripts/get_current_user.py b/spiffworkflow-backend/src/spiffworkflow_backend/scripts/get_current_user.py index 66d21a4ca..9921c18b1 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/scripts/get_current_user.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/scripts/get_current_user.py @@ -1,6 +1,7 @@ -"""Get_env.""" +"""Get current user.""" from typing import Any +from flask import current_app from flask import g from spiffworkflow_backend.models.script_attributes_context import ( @@ -10,8 +11,6 @@ from spiffworkflow_backend.scripts.script import Script class GetCurrentUser(Script): - """GetCurrentUser.""" - @staticmethod def requires_privileged_permissions() -> bool: """We have deemed this function safe to run without elevated permissions.""" @@ -28,4 +27,7 @@ class GetCurrentUser(Script): **kwargs: Any ) -> Any: """Run.""" - return g.user.username + # dump the user using our json encoder and then load it back up as a dict + # to remove unwanted field types + user_as_json_string = current_app.json.dumps(g.user) + return current_app.json.loads(user_as_json_string) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/authorization_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/authorization_service.py index 2491d44f4..bb63cf49b 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/authorization_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/authorization_service.py @@ -485,38 +485,42 @@ class AuthorizationService: .filter(UserModel.service_id == user_info["sub"]) .first() ) - email = display_name = username = "" + user_attributes = {} + if "email" in user_info: - username = user_info["email"] - email = user_info["email"] + user_attributes["username"] = user_info["email"] + user_attributes["email"] = user_info["email"] else: # we fall back to the sub, which may be very ugly. - username = user_info["sub"] + "@" + user_info["iss"] + fallback_username = user_info["sub"] + "@" + user_info["iss"] + user_attributes["username"] = fallback_username if "preferred_username" in user_info: - display_name = user_info["preferred_username"] + user_attributes["display_name"] = user_info["preferred_username"] elif "nickname" in user_info: - display_name = user_info["nickname"] + user_attributes["display_name"] = user_info["nickname"] elif "name" in user_info: - display_name = user_info["name"] + user_attributes["display_name"] = user_info["name"] + + user_attributes["service"] = user_info["iss"] + user_attributes["service_id"] = user_info["sub"] + + for field_index, tenant_specific_field in enumerate( + current_app.config["TENANT_SPECIFIC_FIELDS"] + ): + if tenant_specific_field in user_info: + field_number = field_index + 1 + user_attributes[f"tenant_specific_field_{field_number}"] = user_info[ + tenant_specific_field + ] if user_model is None: current_app.logger.debug("create_user in login_return") is_new_user = True - user_model = UserService().create_user( - username=username, - service=user_info["iss"], - service_id=user_info["sub"], - email=email, - display_name=display_name, - ) - + user_model = UserService().create_user(**user_attributes) else: # Update with the latest information - user_model.username = username - user_model.email = email - user_model.display_name = display_name - user_model.service = user_info["iss"] - user_model.service_id = user_info["sub"] + for key, value in user_attributes.items(): + setattr(user_model, key, value) # this may eventually get too slow. # when it does, be careful about backgrounding, because diff --git a/spiffworkflow-backend/tests/data/model_with_lanes/lanes_with_owner_dict.bpmn b/spiffworkflow-backend/tests/data/model_with_lanes/lanes_with_owner_dict.bpmn index 1a6b52cbd..0c2af8d48 100644 --- a/spiffworkflow-backend/tests/data/model_with_lanes/lanes_with_owner_dict.bpmn +++ b/spiffworkflow-backend/tests/data/model_with_lanes/lanes_with_owner_dict.bpmn @@ -82,7 +82,8 @@ Flow_0bgkfue Flow_1ivhu7x approver = get_current_user() -lane_owners["Finance Team"].remove(approver) +username = approver['username'] +lane_owners["Finance Team"].remove(username) diff --git a/spiffworkflow-backend/tests/spiffworkflow_backend/scripts/test_get_current_user.py b/spiffworkflow-backend/tests/spiffworkflow_backend/scripts/test_get_current_user.py new file mode 100644 index 000000000..c2c0f6741 --- /dev/null +++ b/spiffworkflow-backend/tests/spiffworkflow_backend/scripts/test_get_current_user.py @@ -0,0 +1,46 @@ +"""Test_get_localtime.""" +import json + +from flask import g +from flask.app import Flask +from flask.testing import FlaskClient +from tests.spiffworkflow_backend.helpers.base_test import BaseTest + +from spiffworkflow_backend.models.db import db +from spiffworkflow_backend.models.script_attributes_context import ( + ScriptAttributesContext, +) +from spiffworkflow_backend.models.user import UserModel +from spiffworkflow_backend.scripts.get_current_user import GetCurrentUser + + +class TestGetCurrentUser(BaseTest): + def test_get_current_user( + self, + app: Flask, + client: FlaskClient, + with_db_and_bpmn_file_cleanup: None, + with_super_admin_user: UserModel, + ) -> None: + """Test_can_get_members_of_a_group.""" + testuser1 = self.find_or_create_user("testuser1") + testuser1.tenant_specific_field_1 = "456" + db.session.add(testuser1) + db.session.commit() + + testuser1 = self.find_or_create_user("testuser1") + g.user = testuser1 + process_model_identifier = "test_process_model" + process_instance_id = 1 + script_attributes_context = ScriptAttributesContext( + task=None, + environment_identifier="testing", + process_instance_id=process_instance_id, + process_model_identifier=process_model_identifier, + ) + result = GetCurrentUser().run( + script_attributes_context, + ) + assert result["username"] == "testuser1" + assert result["tenant_specific_field_1"] == "456" + json.dumps(result)