APAR status
Closed as program error.
Error description
Changes to Environment Properties defined by a component are not propagated correctly when a user does not have permission to Manage Properties on the affected Environment Steps to Reproduce: * Requires 2 users, one with permissions such that they can Manage Properties for components, but not Environments - for this example I will use 'LimitedUser'. The other user for this example has permission to Manage Properties for both components and environments - in this example 'PowerUser'. As the PowerUser: Create a component, add several properties to the Environment Property Definitions - in my test I created 'Prop1' through to 'Prop6'. Leave the default values blank. Create an application and environment, set up to use the component. Navigate to the environment properties and define values for properties - for this test I used 'Value1' through 'Value6' for each respective property. Run UDClient 'getComponentEnvironmentProperties', which shows all 6 properties and their values. This matches the UI, as expected. As the LimitedUser: Navigate to the environment created above, and view the properties for the component. Assuming the permissions are set up correctly, they should be greyed out, but there should be 6 values set previously. Navigate to the component created above, view the Environment Property Definitions. Delete one of the properties. Navigate back to the Environment, view the component properties. The Environment will show only 5 of the 6 created properties (which is expected behaviour). Run UDClient 'getComponentEnvironmentProperties', which shows all 6 property values, including the one which has been deleted with the value that was set. This is not expected behaviour. As the PowerUser: Navigate to the component created above and re-add the deleted property. Navigate to the environment, view the component property - you should see the value that was set previously is still present. Navigate to the component created above and delete the property. Navigate to the environment, the component property is no longer shown in the UI. Run UDClient 'getComponentEnvironmentProperties', which shows only 5 property values. As the LimitedUser: Run UDClient 'getComponentEnvironmentProperties', which shows only 5 property values. My conclusion is that when the UCD server is propagating changes to environments that inherit properties from components' Environment Property Definitions, it does so under the authority of the user that made the change to the component. Due to the fact that the LimitedUser does not have permission to edit the Environment properties, the propagation fails, leaving a defined value present in the propSheet of the environment with no corresponding property definition. This is corroborated by the following error message in the logs seen when the component's Environment Property definition is deleted: 2019-05-01 12:39:38,747 BST ERROR https-jsse-nio-0.0.0.0-8443-exec-5 com.urbancode.ds.web.util.UCDExceptionMapper - User 'LimitedUser' does not have Manage Properties permission to a Environment: Dev And additionally by the following error when the same property is recreated showing that the server unexpectedly finds an existing value for the 'new' property: 2019-05-01 12:45:44,670 BST ERROR https-jsse-nio-0.0.0.0-8443-exec-2 com.urbancode.air.property.prop_def.PropDefCreatedListener - Found an unexpected value 'Test3' when updating 'PropSheet#â 1687b3ad-13ed-601f-63e3-f3a5c332b214' for PropDefCreatedEvent '{"propSheetDefHandle":"components\/1687b26e-0fa2-0f9f-d4de-08ae b5adbfdc\/environmentPropSheetDef.16","propDefName":"Prop3","def aultValue":"","secure":false}'
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * * All end users on all supported browsers. * **************************************************************** * PROBLEM DESCRIPTION: * * Changes to Environment Properties defined by a component are * * not * * propagated correctly when a user does not have permission to * * Manage Properties on the affected Environment * * Steps to Reproduce: * * * * * Requires 2 users, one with permissions such that they can * * Manage Properties for components, but not Environments - for * * this example I will use 'LimitedUser'. The other user for * * this * * example has permission to Manage Properties for both * * components * * and environments - in this example 'PowerUser'. * * * * * * As the PowerUser: * * * * Create a component, add several properties to the * * Environment * * Property Definitions - in my test I created 'Prop1' through * * to * * 'Prop6'. Leave the default values blank. * * Create an application and environment, set up to use the * * component. * * Navigate to the environment properties and define values for * * properties - for this test I used 'Value1' through 'Value6' * * for * * each respective property. * * Run UDClient 'getComponentEnvironmentProperties', which * * shows * * all 6 properties and their values. This matches the UI, as * * expected. * * * * As the LimitedUser: * * * * Navigate to the environment created above, and view the * * properties for the component. Assuming the permissions are * * set * * up correctly, they should be greyed out, but there should be * * 6 * * values set previously. * * Navigate to the component created above, view the * * Environment * * Property Definitions. Delete one of the properties. * * Navigate back to the Environment, view the component * * properties. * * The Environment will show only 5 of the 6 created properties * * (which is expected behaviour). * * Run UDClient 'getComponentEnvironmentProperties', which * * shows * * all 6 property values, including the one which has been * * deleted * * with the value that was set. This is not expected behaviour. * * * * As the PowerUser: * * * * Navigate to the component created above and re-add the * * deleted * * property. * * Navigate to the environment, view the component property - * * you * * should see the value that was set previously is still * * present. * * Navigate to the component created above and delete the * * property. * * Navigate to the environment, the component property is no * * longer * * shown in the UI. * * Run UDClient 'getComponentEnvironmentProperties', which * * shows * * only 5 property values. * * * * As the LimitedUser: * * * * Run UDClient 'getComponentEnvironmentProperties', which * * shows * * only 5 property values. * * * * * * My conclusion is that when the UCD server is propagating * * changes * * to environments that inherit properties from components' * * Environment Property Definitions, it does so under the * * authority * * of the user that made the change to the component. Due to * * the * * fact that the LimitedUser does not have permission to edit * * the * * Environment properties, the propagation fails, leaving a * * defined * * value present in the propSheet of the environment with no * * corresponding property definition. * * * * * * This is corroborated by the following error message in the * * logs * * seen when the component's Environment Property definition is * * deleted: * * * * 2019-05-01 12:39:38,747 BST ERROR * * https-jsse-nio-0.0.0.0-8443-exec-5 * * com.urbancode.ds.web.util.UCDExceptionMapper - User * * 'LimitedUser' does not have Manage Properties permission to * * a * * Environment: Dev * * * * * * And additionally by the following error when the same * * property * * is recreated showing that the server unexpectedly finds an * * existing value for the 'new' property: * * * * 2019-05-01 12:45:44,670 BST ERROR * * https-jsse-nio-0.0.0.0-8443-exec-2 * * com.urbancode.air.property.prop_def.PropDefCreatedListener - * * Found an unexpected value 'Test3' when updating * * 'PropSheet#â Â1687b3ad-13ed-601f-63e3-f3a5c332b214' for * * PropDefCreatedEvent * * '{"propSheetDefHandle":"components\/1687b26e-0fa2-0f9f-d4de- * * 08ae * * b5adbfdc\/environmentPropSheetDef.16","propDefName":"Prop3", * * "def * * aultValue":"","secure":false}' * **************************************************************** * RECOMMENDATION: * * Fixed in version 7.0.4.1 * ****************************************************************
Problem conclusion
Fix is provided in IBM UrbanCode Deploy 7.0.4.1
Temporary fix
Comments
APAR Information
APAR number
PH11938
Reported component name
UC DEPLOY
Reported component ID
5725M5400
Reported release
701
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-05-09
Closed date
2019-11-08
Last modified date
2019-11-08
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
UC DEPLOY
Fixed component ID
5725M5400
Applicable component levels
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SS4GSP","label":"IBM UrbanCode Deploy"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"701","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
08 November 2019