IBM Support

PH11938: CHANGES TO ENVIRONMENT PROPERTIES DEFINED BY A COMPONENT ARE NOTPROPAGATED CORRECTLY TO ENVIRONMENT

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

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