diff --git a/templates/create_workspace_client.json.j2 b/templates/create_workspace_client.json.j2 index e2d3365..dc02ae4 100644 --- a/templates/create_workspace_client.json.j2 +++ b/templates/create_workspace_client.json.j2 @@ -64,7 +64,7 @@ "type": "LAMBDA", "inputParameters": { "client_location" : "${create_client.output.headers.location}", - "scriptExpression": "var client_id = $.client_location.split('/').pop(); return {'client_id' : client_id}" + "scriptExpression": "var client_id = $.client_location.split('/').pop(); return {'client_resource_id' : client_id}" } }, { @@ -72,7 +72,7 @@ "taskReferenceName" : "get_service_account_user", "type" : "SIMPLE", "inputParameters" : { - "url" : "${init.input.keycloak_admin}/clients/${extract_client_id.output.result.client_id}/service-account-user", + "url" : "${init.input.keycloak_admin}/clients/${extract_client_id.output.result.client_resource_id}/service-account-user", "method" : "GET", "headers" : { "Authorization" : "Bearer ${authorize.output.body.access_token}", @@ -97,10 +97,10 @@ }, { "name" : "pyrest", - "taskReferenceName" : "get_rootvo_roles", + "taskReferenceName" : "get_rootvo_member_role", "type" : "SIMPLE", "inputParameters" : { - "url" : "${init.input.keycloak_admin}/clients/${get_rootvo.output.body[0].id}/roles", + "url" : "${init.input.keycloak_admin}/clients/${get_rootvo.output.body[0].id}/roles/Member", "method" : "GET", "expect" : [200, 404], "headers" : { @@ -120,6 +120,30 @@ "get_service_account_user", "get_rootvo_roles" ] + }, + { + "name": "jq_1", + "taskReferenceName": "to_array", + "type": "JSON_JQ_TRANSFORM", + "inputParameters": { + "role": "${get_rootvo_member_role.output.body}", + "queryExpression" : ".role" + } + }, + { + "name" : "pyrest", + "type" : "SIMPLE", + "taskReferenceName": "assign_member_role", + "inputParameters" : { + "url" : "${init.input.keycloak_admin}/clients/${get_service_account_user}/role-mappings/clients/${get_rootvo_member_role.output.body.containerId}", + "method" :"POST", + "headers" : { + "Authorization" : "Bearer ${authorize.output.body.access_token}", + "Content-Type" : "application/json", + "Accept":"application/json" + }, + "body" : "${to_array.output.resultList}" + } } ] }