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

feat(access control): Fine-Grained Access Control M1 #3182

Merged
merged 76 commits into from
Sep 3, 2021

Conversation

jjoyce0510
Copy link
Collaborator

@jjoyce0510 jjoyce0510 commented Sep 2, 2021

Status
Ready

Summary
This PR implements the first milestone of Fine-Grained Access Control, which was demo'd in Townhall for August: https://www.youtube.com/watch?v=3joZINi3ti4, along with other misc. cleanup and refactoring.

In a nutshell, fine grained access control allows DataHub admins to declare access policies defining who can do what on the platform. This experience is available via the UI on a new left side slide out panel, which we are calling the "Control Center".

Much of what you find implemented is based on the Fine Grained Access Control RFC, which was published at the beginning of summer. To come to this implementation, we synthesized feedback from the community around that RFC. Many of the concepts remain, most notably: Resources, Actors, Privileges (formerly actions), Policies, and Authorizers.

For more information about the Policies feature, see the new Policies Guide. Note that in future releases, Policies will be enabled by default (though they can be disabled).

Changes

  • New DataHubPolicy Entity for representing DataHub policies. As usual, you can programmatically ingest and consume these as they change for free.
  • New Authorizer interface for authorizing particular actions using DataHub policies.
  • Added Control Center left-side UI panel
  • Added Policy Builder UI Interface for constructing new DataHub policies.
  • Added Policy List View for editing, deleting, activating and deactivating policies.
  • Defined and implemented set of default privileges for DataHub, both Platform and Metadata. Includes:
    - Metadata: edit owners, edit tags, edit documentation, edit links, edit entire entity, etc.
    - Platform: manage policies, view analytics, coming soon manage users and groups.
  • Corresponding tests.
  • Support passing custom GraphQL error codes & handling in React UI
  • Misc refactoring, such as supporting EntityKey instead of an urn in MetadataChangeProposal event.

Compatibility
These changes should be fully backwards compatible. Note that the Analytics view is now located in the left side slide out menu, and users must have the 'VIEW_ANALYTICS' privilege to see it in their UI.

Screenshots

Screen Shot 2021-09-01 at 8 54 07 PM

Screen Shot 2021-09-01 at 8 54 20 PM

Screen Shot 2021-09-01 at 8 54 47 PM

Screen Shot 2021-09-01 at 8 55 06 PM

Screen Shot 2021-09-01 at 8 55 13 PM

Screen Shot 2021-09-01 at 8 55 27 PM

Checklist

  • The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
  • Links to related issues (if applicable)
  • Tests for the changes have been added/updated (if applicable)
  • Docs related to the changes have been added/updated (if applicable)

Copy link
Contributor

@shirshanka shirshanka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Excited for this :)

@shirshanka shirshanka merged commit ccb09a6 into datahub-project:master Sep 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants