Preferences for application and programs


User Stories:

  • A CDAP user should be able to add/modify/delete preferences at an application and program level

  • As a CDAP user, I should be able to view the resolved preferences from System and namespace level while updating preferences at application level.
    o The system and namespace level preferences should not be editable while creating/updating/deleting application preferences

  • As a CDAP user, I should be able to view resolved preferences from System, Namespace and application level while updating preferences at program level
    o The system, namespace and application level preferences should not be editable while creating/updating/deleting program preferences

invision prototype:

  • Fast Action on the Application and program card opens a modal (see attached screenshot)
    • On hover display button outline around Fast Action icon
    • hover bubble: "Set Preferences"

Preferences Modal

  • Dimensions: width: 884px; max height 750px

Set new preferences
• modal title: Preferences
• Title: Set Preferences for Application <App Name>
• Sub text: Specify new or override existing system or namespace preferences. These preferences will be accessible in all programs within this application.
• "Key" text field is in focus and cursor active.
• Hint text disappears as soon as user starts typing
• New row of text field appears as soon as user starts typing in "KEY" text field
• Display a maximum of 5 rows of text fields. If the user adds more, a scroll bar is displayed.

[DONE] button

  • user closes the preferences page (and autosave any new preferences, if applicable)

[x] Close icon

  • User can close the modal by clicking on the [x] icon

RESET link

  • same as current current behavior

Inherited Preferences

  • Table divided in 4 columns. Two NEW columns: Origin and Status
    • Origin: documents where the preference was set
    • Status: displays if Preference is active or overridden

  • User can sort table by clicking on the columns header
    • "Key" and "Value" are sorted alphabetically A-Z or Z-A
    • "Origin" hierarchically (System - Namespace - Application (if applicable)) - and vice versa
    • "Status": groups active together: Active on top, Overridden at the bottom (ordered by alphabetically) - and vice versa

  • Display no more than 5 inherited preferences, a scroll bar is displayed if there are more than 5 total number of inherited preferences - Inherited Preferences (#) - NOT IN THE MOCKS

Save New Preferences

  • Preferences will autosave when:
    • there is a lag of 1 sec after user input text in the "Value" text field
    • Display spinner icon for 1.5 sec before displaying the "Saved" label
    • if the "Key" is matching to an "inherited preference" the label "Override Saved" is displayed
    • User clicks [Done] and preferences. No labels are displayed.

  • When autosaving, the system will validate the Key field. If input error are found error message is displayed.

  • User clicks [Done] and system validate the Key fields

  • Label is displayed for 2 seconds before fading

Overriden Preferences

  • if the "Key" is matching to an "inherited preference" the label "Override Saved" is displayed

  • Overridden Inherited Preference will be displayed with a grey background (#e6e6e6); Status symbol is changed
    • Grey background fades (disappears) after 2 seconds.


  • Display error using current visual pattern, plus change text field to: Background: #FDF5E7 Border: #D0011B

  • System validates fields: when user tabs to a new field, when autosaving, when user clicks [Done] or [x].
    • invalid characters are used
    • Only one field is filled.

  • If error message to be determined, display error message. [Done] and [x] buttons are disabled

Confirmation Message

  • A confirmation message is displayed: message: "You set new preferences for the Application <name of App. (see attached mock up)

  • Preference icon changes color to green

  • Green header and outline fades after 3 seconds

  • Green icon persists as visual signifier that new preferences have been set, until user refreshes, navigate out of the page or logs out.

Release Notes

Added the management of preferences at the application and program levels.


Lea Cuniberti-Duran
January 26, 2017, 2:05 AM

Namespace preference modal

  • There should be no side scrolling in the modal

  • Add visual treatment when the field is in focus

  • [Save & Close] should not be disabled when there is a blank row. Button is disabled only when only one text input (either key or value) is filled and the other is not.

  • if Namespace is too long for the size of the modal, name is truncated, ellipsis are added, user can view name by hovering.

  • Preference title: app/program name should be put in quotation marks ("")

  • Set lengths of App name by the width of the modal. Truncate and add ellipsis if needed.

  • Add confirmation message after user "resets" successfully. (display for 3 seconds before fading)

  • Add rows count

  • [Button] is displayed in grey when disabled

Lea Cuniberti-Duran
January 20, 2017, 1:29 AM

Error and confirmation treatment need to be addressed.

Tony Bach
January 17, 2017, 11:25 PM
Lea Cuniberti-Duran
January 17, 2017, 3:18 AM

Please make the following modifications:
Remove autosave feature.
Change [Done] button to [Save & Close] button
Add [Reset] link next to the [Save & Close] button
Remove Status column
Do not display Inherited Preference grey background



Tony Bach


Sreevatsan Raman