From 66f3868ccfe89f78f1f1133cbaedb53728bb44b8 Mon Sep 17 00:00:00 2001 From: Stefan Guilhen Date: Tue, 23 Dec 2025 15:18:04 -0300 Subject: [PATCH] Suppress the step's priority in the returned workflow JSON/YAML Closes #45075 Signed-off-by: Stefan Guilhen --- .../workflows/WorkflowStepRepresentation.java | 1 + .../models/workflow/DefaultWorkflowProvider.java | 1 + .../workflow/execution/DisableActiveWorkflowTest.java | 10 +++++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/keycloak/representations/workflows/WorkflowStepRepresentation.java b/core/src/main/java/org/keycloak/representations/workflows/WorkflowStepRepresentation.java index b5d13199fc2..06b84b86bc1 100644 --- a/core/src/main/java/org/keycloak/representations/workflows/WorkflowStepRepresentation.java +++ b/core/src/main/java/org/keycloak/representations/workflows/WorkflowStepRepresentation.java @@ -72,6 +72,7 @@ public class WorkflowStepRepresentation extends AbstractWorkflowComponentReprese setConfig(CONFIG_AFTER, after); } + @JsonIgnore public String getPriority() { return getConfigValue(CONFIG_PRIORITY, String.class); } diff --git a/model/jpa/src/main/java/org/keycloak/models/workflow/DefaultWorkflowProvider.java b/model/jpa/src/main/java/org/keycloak/models/workflow/DefaultWorkflowProvider.java index 25a2f1c340e..8034c9749cf 100644 --- a/model/jpa/src/main/java/org/keycloak/models/workflow/DefaultWorkflowProvider.java +++ b/model/jpa/src/main/java/org/keycloak/models/workflow/DefaultWorkflowProvider.java @@ -89,6 +89,7 @@ public class DefaultWorkflowProvider implements WorkflowProvider { } // set the id of the step to match the existing one, so we can update the config newStep.setId(currentStep.getId()); + newStep.setPriority(Long.parseLong(currentStep.getPriority())); } // finally, update the workflow's config along with the steps' configs diff --git a/tests/base/src/test/java/org/keycloak/tests/workflow/execution/DisableActiveWorkflowTest.java b/tests/base/src/test/java/org/keycloak/tests/workflow/execution/DisableActiveWorkflowTest.java index 8f4ed4181bf..f3245fc7e25 100644 --- a/tests/base/src/test/java/org/keycloak/tests/workflow/execution/DisableActiveWorkflowTest.java +++ b/tests/base/src/test/java/org/keycloak/tests/workflow/execution/DisableActiveWorkflowTest.java @@ -90,7 +90,9 @@ public class DisableActiveWorkflowTest extends AbstractWorkflowTest { // disable the workflow - scheduled steps should be paused and workflow should not activate for new users workflow.setEnabled(false); - managedRealm.admin().workflows().workflow(workflowId).update(workflow).close(); + try (Response response = managedRealm.admin().workflows().workflow(workflowId).update(workflow)) { + assertEquals(Response.Status.NO_CONTENT.getStatusCode(), response.getStatus()); + } // create another user - should NOT bind the user to the workflow as it is disabled managedRealm.admin().users().create(UserConfigBuilder.create().username("anotheruser").build()).close(); @@ -119,8 +121,10 @@ public class DisableActiveWorkflowTest extends AbstractWorkflowTest { }); // re-enable the workflow - scheduled steps should resume and new users should be bound to the workflow - workflow.getConfig().putSingle("enabled", "true"); - managedRealm.admin().workflows().workflow(workflowId).update(workflow).close(); + workflow.setEnabled(true); + try (Response response = managedRealm.admin().workflows().workflow(workflowId).update(workflow)) { + assertEquals(Response.Status.NO_CONTENT.getStatusCode(), response.getStatus()); + } // create a third user - should bind the user to the workflow as it is enabled again managedRealm.admin().users().create(UserConfigBuilder.create().username("thirduser").email("thirduser@example.com").build()).close();