When creating orchestration definitions (using an OrchestrationTemplate), we should prevent activities expressing dependencies across discriminators.
Valid example: here, all dependencies are within the same discriminator (cfm.orchestration.vpa.dispose)
"activities": {
"cfm.orchestration.vpa.dispose": [
{
"id": "offboarding-agent",
"type": "onboarding-activity",
"dependsOn": []
},
{
"id": "kc-client-remover",
"type": "keycloak-activity",
"dependsOn": ["offboarding-agent"]
},
"cfm.orchestration.vpa.deploy": [{}]
]
}
In an invalid structure, activities express dependencies across discriminator bounds:
"activities": {
"cfm.orchestration.vpa.dispose": [
{
"id": "offboarding-agent",
"type": "onboarding-activity",
"dependsOn": []
}
],
"cfm.orchestration.vpa.deploy": [{
"id": "kc-client-creator",
"type": "keycloak-activity",
"dependsOn": ["offboarding-agent"]
}]
}
invalid OrchestrationTemplates should be rejected with a HTTP 400.
When creating orchestration definitions (using an
OrchestrationTemplate), we should prevent activities expressing dependencies across discriminators.Valid example: here, all dependencies are within the same discriminator (
cfm.orchestration.vpa.dispose)In an invalid structure, activities express dependencies across discriminator bounds:
invalid
OrchestrationTemplatesshould be rejected with a HTTP 400.