Skip to content

Commit cc63c4b

Browse files
ggarima01Copilot
andauthored
Update Standard Logic App templates and scripts (logic-app-changes) (#156)
Updates the Standard Logic App workflow templates and supporting documentation from the approved `logic-app-changes` export. - Refreshes Initialization, Orchestrator, SCIMTests, and UserTests workflows - Updates Orchestrator parameters - Updates Standard Logic App setup and onboarding documentation - Bumps StandardLogicApp VERSION from 7.0 to 8.0 Co-authored-by: Garima Garg <ggarima01@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 70d3f4a commit cc63c4b

8 files changed

Lines changed: 611 additions & 453 deletions

File tree

‎Microsoft.SCIM.LogicAppValidationTemplate/StandardLogicApp/Initialization_Workflow.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,7 @@
952952
"type": "Select",
953953
"inputs": {
954954
"from": "@body('Compose_SCIM_User_Extension_URNs')",
955-
"select": "@join(take(split(item()?['name'], ':'), sub(length(split(item()?['name'], ':')), 1)), ':')"
955+
"select": "@substring(item()?['name'], 0, lastIndexOf(item()?['name'], ':'))"
956956
}
957957
},
958958
"Compose_SCIM_User_Schemas": {
@@ -1025,7 +1025,7 @@
10251025
]
10261026
},
10271027
"type": "Compose",
1028-
"inputs": "@if(or(or(or(or(equals(items('ForEach_Build_SCIM_Body')?['name'], 'id'), equals(toLower(coalesce(items('ForEach_Build_SCIM_Body')?['type'], 'string')), 'reference')), equals(items('ForEach_Build_SCIM_Body')?['name'], 'externalId')), or(equals(items('ForEach_Build_SCIM_Body')?['name'], 'userName'), equals(items('ForEach_Build_SCIM_Body')?['name'], 'active'))), equals(items('ForEach_Build_SCIM_Body')?['name'], 'roles')), variables('scimDirectUserCreateBody'), if(startsWith(items('ForEach_Build_SCIM_Body')?['name'], 'urn:'), union(variables('scimDirectUserCreateBody'), json(concat('{\"', join(take(split(items('ForEach_Build_SCIM_Body')?['name'], ':'), sub(length(split(items('ForEach_Build_SCIM_Body')?['name'], ':')), 1)), ':'), '\":', string(setProperty(coalesce(variables('scimDirectUserCreateBody')?[join(take(split(items('ForEach_Build_SCIM_Body')?['name'], ':'), sub(length(split(items('ForEach_Build_SCIM_Body')?['name'], ':')), 1)), ':')], json('{}')), last(split(items('ForEach_Build_SCIM_Body')?['name'], ':')), outputs('Compose_SCIM_Source_Value'))), '}'))), if(contains(items('ForEach_Build_SCIM_Body')?['name'], '['), setProperty(variables('scimDirectUserCreateBody'), first(split(items('ForEach_Build_SCIM_Body')?['name'], '[')), setProperty(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '['))], json('{}')), first(skip(split(items('ForEach_Build_SCIM_Body')?['name'], '\"'), 1)), setProperty(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '['))]?[first(skip(split(items('ForEach_Build_SCIM_Body')?['name'], '\"'), 1))], json(concat('{\"type\":\"', first(skip(split(items('ForEach_Build_SCIM_Body')?['name'], '\"'), 1)), '\",\"primary\":', if(not(contains(string(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '['))], json('{}'))), '\"primary\":true')), 'true', 'false'), '}'))), last(split(items('ForEach_Build_SCIM_Body')?['name'], '.')), outputs('Compose_SCIM_Source_Value')))), if(contains(items('ForEach_Build_SCIM_Body')?['name'], '.'), setProperty(variables('scimDirectUserCreateBody'), first(split(items('ForEach_Build_SCIM_Body')?['name'], '.')), setProperty(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '.'))], json('{}')), last(split(items('ForEach_Build_SCIM_Body')?['name'], '.')), outputs('Compose_SCIM_Source_Value'))), setProperty(variables('scimDirectUserCreateBody'), items('ForEach_Build_SCIM_Body')?['name'], outputs('Compose_SCIM_Source_Value'))))))"
1028+
"inputs": "@if(or(or(or(or(equals(items('ForEach_Build_SCIM_Body')?['name'], 'id'), equals(toLower(coalesce(items('ForEach_Build_SCIM_Body')?['type'], 'string')), 'reference')), equals(items('ForEach_Build_SCIM_Body')?['name'], 'externalId')), or(equals(items('ForEach_Build_SCIM_Body')?['name'], 'userName'), equals(items('ForEach_Build_SCIM_Body')?['name'], 'active'))), equals(items('ForEach_Build_SCIM_Body')?['name'], 'roles')), variables('scimDirectUserCreateBody'), if(startsWith(items('ForEach_Build_SCIM_Body')?['name'], 'urn:'), union(variables('scimDirectUserCreateBody'), json(concat('{\"', substring(items('ForEach_Build_SCIM_Body')?['name'], 0, lastIndexOf(items('ForEach_Build_SCIM_Body')?['name'], ':')), '\":', string(setProperty(coalesce(variables('scimDirectUserCreateBody')?[substring(items('ForEach_Build_SCIM_Body')?['name'], 0, lastIndexOf(items('ForEach_Build_SCIM_Body')?['name'], ':'))], json('{}')), last(split(items('ForEach_Build_SCIM_Body')?['name'], ':')), outputs('Compose_SCIM_Source_Value'))), '}'))), if(contains(items('ForEach_Build_SCIM_Body')?['name'], '['), setProperty(variables('scimDirectUserCreateBody'), first(split(items('ForEach_Build_SCIM_Body')?['name'], '[')), setProperty(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '['))], json('{}')), first(skip(split(items('ForEach_Build_SCIM_Body')?['name'], '\"'), 1)), setProperty(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '['))]?[first(skip(split(items('ForEach_Build_SCIM_Body')?['name'], '\"'), 1))], json(concat('{\"type\":\"', first(skip(split(items('ForEach_Build_SCIM_Body')?['name'], '\"'), 1)), '\",\"primary\":', if(not(contains(string(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '['))], json('{}'))), '\"primary\":true')), 'true', 'false'), '}'))), last(split(items('ForEach_Build_SCIM_Body')?['name'], '.')), outputs('Compose_SCIM_Source_Value')))), if(contains(items('ForEach_Build_SCIM_Body')?['name'], '.'), setProperty(variables('scimDirectUserCreateBody'), first(split(items('ForEach_Build_SCIM_Body')?['name'], '.')), setProperty(coalesce(variables('scimDirectUserCreateBody')?[first(split(items('ForEach_Build_SCIM_Body')?['name'], '.'))], json('{}')), last(split(items('ForEach_Build_SCIM_Body')?['name'], '.')), outputs('Compose_SCIM_Source_Value'))), setProperty(variables('scimDirectUserCreateBody'), items('ForEach_Build_SCIM_Body')?['name'], outputs('Compose_SCIM_Source_Value'))))))"
10291029
},
10301030
"Set_SCIM_Body_Property": {
10311031
"runAfter": {

‎Microsoft.SCIM.LogicAppValidationTemplate/StandardLogicApp/Orchestrator_Parameters.json‎

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"SCIM_User_Create_Test",
2323
"SCIM_Group_Create_Test",
2424
"SCIM_User_Update_Test",
25+
"SCIM_Update_Manager_Test",
2526
"SCIM_Group_Update_Test",
2627
"SCIM_User_Pagination_Test",
2728
"SCIM_Group_Pagination_Test",
@@ -38,7 +39,7 @@
3839
"description": "Version of the Logic App for tracking and deployment purposes"
3940
},
4041
"type": "String",
41-
"value": "4.0"
42+
"value": "8.0"
4243
},
4344
"attributeTransforms": {
4445
"metadata": {
@@ -226,7 +227,7 @@
226227
},
227228
"scimEndpoint": {
228229
"type": "String",
229-
"value": "https://scimserver2.yellowsmoke-af7a3fff.eastus.azurecontainerapps.io/scim/endpoints/8f3c4c4a-7b5d-4e91-9a62-2d7f1b8e5c73"
230+
"value": "https://scimserver2.yellowsmoke-af7a3fff.eastus.azurecontainerapps.io/scim/endpoints/f4c95b63-db4c-4f0a-91b0-78fdf88007be"
230231
},
231232
"scimOAuthScope": {
232233
"metadata": {
@@ -243,61 +244,61 @@
243244
"value": "https://scimserver2.yellowsmoke-af7a3fff.eastus.azurecontainerapps.io/scim/oauth/token"
244245
},
245246
"federatedEntraTenantId": {
246-
"metadata": {
247-
"description": "Entra tenant ID used to construct the token endpoint URL for federated identity token acquisition."
247+
"metadata": {
248+
"description": "Entra tenant ID used to construct the token endpoint URL for federated identity token acquisition."
249+
},
250+
"type": "String",
251+
"value": "changeme-tenant-id"
248252
},
249-
"type": "String",
250-
"value": "changeme-tenant-id"
251-
},
252-
"federatedApplicationId": {
253-
"metadata": {
254-
"description": "OAuth2 Application ID for the Entra app registration used in federated identity token acquisition."
253+
"federatedApplicationId": {
254+
"metadata": {
255+
"description": "OAuth2 Application ID for the Entra app registration used in federated identity token acquisition."
256+
},
257+
"type": "String",
258+
"value": "changeme-client-id"
255259
},
256-
"type": "String",
257-
"value": "changeme-client-id"
258-
},
259-
"federatedApplicationClientSecret": {
260-
"metadata": {
261-
"description": "OAuth2 Client Secret for the Entra app registration used in federated identity token acquisition."
260+
"federatedApplicationClientSecret": {
261+
"metadata": {
262+
"description": "OAuth2 Client Secret for the Entra app registration used in federated identity token acquisition."
263+
},
264+
"type": "String",
265+
"value": "changeme-client-secret"
262266
},
263-
"type": "String",
264-
"value": "changeme-client-secret"
265-
},
266-
"federatedTokenEndpoint": {
267-
"metadata": {
268-
"description": "ISV token endpoint URL for federated identity token exchange."
267+
"federatedTokenEndpoint": {
268+
"metadata": {
269+
"description": "ISV token endpoint URL for federated identity token exchange."
270+
},
271+
"type": "String",
272+
"value": "changeme-federated-endpoint"
269273
},
270-
"type": "String",
271-
"value": "changeme-federated-endpoint"
272-
},
273-
"federatedClientId": {
274-
"metadata": {
275-
"description": "ISV client ID used in federated identity token exchange."
274+
"federatedClientId": {
275+
"metadata": {
276+
"description": "ISV client ID used in federated identity token exchange."
277+
},
278+
"type": "String",
279+
"value": "changeme-federated-app-id"
276280
},
277-
"type": "String",
278-
"value": "changeme-federated-app-id"
279-
},
280-
"federatedBaseAddress": {
281-
"metadata": {
282-
"description": "ISV base address sent in the federated identity token exchange request."
281+
"federatedBaseAddress": {
282+
"metadata": {
283+
"description": "ISV base address sent in the federated identity token exchange request."
284+
},
285+
"type": "String",
286+
"value": "changeme-base-address"
283287
},
284-
"type": "String",
285-
"value": "changeme-base-address"
286-
},
287-
"federatedAudience": {
288-
"metadata": {
289-
"description": "Audience value for federated token exchange."
288+
"federatedAudience": {
289+
"metadata": {
290+
"description": "Audience value for federated token exchange."
291+
},
292+
"type": "String",
293+
"value": "changeme-audience"
290294
},
291-
"type": "String",
292-
"value": "changeme-audience"
293-
},
294295
"servicePrincipalId": {
295296
"type": "String",
296-
"value": "ed1a4e07-8807-4362-8b9b-c8edc2b51747"
297+
"value": "3197053d-46d9-4a22-b843-6a9d98ec267e"
297298
},
298299
"testUserDomain": {
299300
"type": "String",
300-
"value": "proviamla01.onmicrosoft.com"
301+
"value": "proviamtest07.onmicrosoft.com"
301302
},
302303
"scimTargetUserValues": {
303304
"type": "Array",

0 commit comments

Comments
 (0)