Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IAM v2.1 Ingest mapping rules on projects #854

Closed
22 tasks done
susanev opened this issue Jul 10, 2019 · 0 comments
Closed
22 tasks done

IAM v2.1 Ingest mapping rules on projects #854

susanev opened this issue Jul 10, 2019 · 0 comments
Labels
auth-team anything that needs to be on the auth team board automate-auth automate-ui iamv2 This issue or pull request applies to iamv2 work for Automate ui

Comments

@susanev
Copy link
Contributor

susanev commented Jul 10, 2019

Overview

Users are able to define ingest rules and conditions for individual projects. Note, that Enforce IAM project filtering for nodes list, search agg data, node details needs to be completed before users will be able to apply the ingest rules to their ingesting nodes.

Video

Subtasks

Designs

Zeplin

Project List States

Ingest Rules

  • No rules: Only applicable for projects with zero ingest rules
  • Edits pending: If at least one ingest rule in the project has edits pending, or a rule in the project has been deleted since the last update
  • Applied: If all ingest rules in the project are applied

Project Update Status

  • OK: No update needed
  • Needs updating: Needs to be updated because there are ingest rules edits pending, or because of stopping the update early or because of failures (failure communication will come in a later story)
  • Updating...: An update is currently in progress

Project Detail Page States

Edits

  • Edits pending: An edit has happened since the last update or because there has been no update
  • Applied: All ingest rules will be applied to newly ingested resources

Design Details

Projects List Page

  • Add secondary Update Projects button
  • Remove Type column, all projects will be Custom
  • Add an ID column
    • Note: All settings list pages will be updated to have an ID column in the future
  • Add an Ingest Rules column
    • Options: No rules, Edits pending, Applied
  • Add a Project Update Status column
    • Options: OK, Needs updating, Updating...

Update Projects Button

  • Disabled with label Update Projects when all projects have a project update status of OK
  • Disabled with label Updating Projects (%)... when at least one project has a project update status of Updating...
  • Enabled with label Update Projects when at least one project has a project update status of Needs updating and a current update is not in progress
  • When updating is in progress a Stop Updating Projects tertiary button should be displayed next to the disabled updating button
    • Note: The UX of both progress and canceling will be improved in the future
  • When interacting with the button a confirmation modal is shown
    • Heading: Update Projects?
    • Message: Updating projects will apply all pending edits and move ingested resources into the correct projects. This background process can take up to 12 hours to complete.
    • Primary button: Update Projects

Stop Updating Projects Button

  • Tertiary
  • Only visible with an update is in progress
  • Includes confirmation...
    • Heading: Stop Updating Projects?
    • See Zeplin designs for the progress bar, and additional content
    • Message: Stopping the project update early can not be undone and will leave some ingested resources in the wrong projects.
    • Primary destructive button: Stop Updating Projects

Project Detail Page

  • Add an Ingest Rules tab to the left of the Details tab

Empty State

When no ingest rules exist.. display the empty state pattern

  • Message: Create the first ingest rule to get started!
  • Create Rule primary button

Create Rule

  • Please leverage the already implemented designs of the full-page designs when adding members to a policy.
  • On create the heading should be <Project Name>: Rule, but once they have entered characters in the rule name it should dynamically change to replace the text Rule with whatever they name the rule
  • For now, the only options in Resource Type is Node and Event.
  • Condition column headers are ATTRIBUTE, OPERATOR, and VALUE please use text-transform to achieve the uppercase letters so screen readers do not announce them as acronyms
    • Note: Once a resource type is selected the attribute column header should change to ATTRIBUTE <resource type>
  • On create an initial condition should automatically be displayed. For additional conditions, the user will need to use the _Add Conditio_n button. Conditions should be added to the bottom.
  • When more than 1 condition, the word AND should be displayed at the end of the condition row (except for on the last condition)
  • The only current operators are equals and member of, equals matches exactly, member of the user specifies a comma-separated list.
  • The delete button removes the condition without any kind of confirmation
  • Save Rule should only become enabled when a name, resource type and values for at least one condition are provided.
  • Help text...
    • equals: Case sensitive, must match exactly.
    • member of: Comma-separated list, at least one must match exactly.

Node Attributes

  • Chef Organization (string)
  • Chef Server (string)
  • Environment (string)
  • Chef Role (string[])
  • Chef Tag (string[])
  • Chef Policy Name (string)
  • Chef Policy Group (string)

Event Attributes

  • Chef Organization (string)
  • Chef Server (string)

Edit Rule

  • Same as Create Rule but the Resource Type input is disabled with different help text stating: Resource types cannot be changed, create a new rule instead.
  • The Save Rule should only become enabled when a change is made.

Ingest Rules table

  • Use the chef-toolbar with always enabled primary Create Rule button
  • The table has 4 columns: checkboxes, Name, Resource Type, Conditions, and Edits.
    • Name displays the human-created name of the rule as a link
    • Resource Type displays Nodes or Events
    • Conditions displays the count of conditions associated with that rule, the number displayed first followed by a condition in the single case or conditions when more than one conditions.
    • Edits communicates either Edits pending when there are edits in staging or Applied when the edits have been applied.
  • The control menu at the end of the row is dynamic If the rule is not currently being applied then it should have the option to Delete Rule.
  • If any of the rules are in the Edits pending state then text with a link back to projects should be displayed: Edits pending, update projects to apply edits.

Delete Rule

  • Only an option in the control menu when an update not in progress
  • Includes a confirmation with the text Deleting rule "<rule name>" <strong>can not be undone</strong> and primary button Delete Rule
  • Once deleted, the ingest rules state on the project list page should change to Edits pending if it's not already that

What it looks like when we’re done

  • Users' can navigate to individual projects and define the ingest mapping rules for their nodes.

Demo / Acceptance Criteria

  • Navigate to Settings > Projects
  • Create a new project, which will navigate you to that project
  • Create a node ingest rule, and an event ingest rule
  • Edit rules, delete some rules, delete some conditions
  • Test out the different states for updating projects
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auth-team anything that needs to be on the auth team board automate-auth automate-ui iamv2 This issue or pull request applies to iamv2 work for Automate ui
Projects
None yet
Development

No branches or pull requests

8 participants