-
Cp062 (#3853)
发布于
2019-08-08 22:25:26 +00:00 -
Backend changes for Central Dashboard to support multi-user isolation. (#3729)
-
[Central Dashboard v2] Multi-User Isolation PR (#3503)
-
Multi-User Isolation:
- Updated base lib with readBinding -> readBindings, proper return types
- Integrated payload info in env-info
- Cluster Admin detection
Feature Updates:
- Auth forwarding
- Profile Controller caching
- Base URL detection, fixed API base
- Minor Controller refactor
- Resolved PR comments
- Service discovery now happens via internal hostname for service
- Fixed linter options and code errors
Changes:
- API updated to fallback on K8s listNamespaces if getEnv fails
- Fallback payload ORM written for uniform data passed to UI
- UI ORM to roll namespaces like: {namespace, user, role}
- Namespace selector upgraded to support new namespace object
- Namespace selector has indicators for when a namespace is owned
Short-term Support added for #3555
- Env:IAP_HEADER for auth header that contains IAP token
- Env:IAP_PREFIX for auth domain
- Updated API interface to handle dynamic IAP_HEADER values
Massive Refactor:
- profile_route_handlers.ts added to provide middleware for auth / profiles
- API.ts changed significantly to rely on
req.user - All routes have access to the user object
- Conditionally load the registration page if no profiles exist for user
- The point above is WIP
Registration Flow 0.5
- Registration-Page element added
- All html are now dynamically generated from base.pug
- A modular html generation function added in Webpack with bundle linking support
- Modularized js files per page to share base.js
- base pug has a nested pug interpolator for custom elements to be added from webpack
- LF requirement removed
- Base HTML files removed
- Updated Env Variables to be GCP agnostic in user management
- TS specific refactor added for classes
- Global Promise Uncaught handler added
- Promise handling improved in middleware flow
- Added fallback behavior for non KFAM flows
Registration flow 1.0
- Registration detection
- API linking
- Fast Registration flow
- Main-App integration, with resync
- Themed to the tee with the mocks by @ajayalfred
- Incomplete change
Registration Screen Complete:
- Iron-a11y-keys added
Profile->workgrouprename- JSON serializer added for user data
- Removed authRoute from server
- Added an intermediate PageLoader till registration or main-page loads
- API fetch for workgroup info on page load
- Interactive carousel navigation added to registration flow
- Animated API response added for success
- Invalidation and UI indicators for failed API call
- Regex enforced validation for namespace name with maxlength enforcement
- Shared checkmark component added
sleepadded as a new method in utilities mixin
Final Features:
- Added footer links
- Refactor backend to work with Kfam.
- Simplifies the backend to add a user-aware middleware to enrich
the Request object with information about whether the cluster has
auth enabled and what the user's identity is. - Adds unit tests for all interactions with Kfam.
- Simplifies the backend to add a user-aware middleware to enrich
- Linked @prodonjs changes to front-end
Manage-Users:
- Vaadin charts and paper-toast added
- Profile Controller promise handler created
/get-contributorsapi route created- Namespace icon added
- Manage Users page added
- Dashboard made aware of cluster admin status and
isolationMode Manage Userssidebar entry only when isolationMode is multi- New
emptymacro added to utilities mixin - Paper-chip element added
- TSLint remove any warnings
Major updates 2.0:
- Reverted all webpack changes
- Updated failing api_tests.ts
- Corrected the fields being used to/from server for registration
- Removed base files since we do not have multiple entrypoints
- Welcome user toast added after successful namespace registration
- Corrected sidebar entries for Manage-Users
- Manage Users contrib action color now toggles based on status (error support)
- Rollback errors when successfully added contributor
- Namespace selector badge swapped with
(owned)indicator - Namespace selector now has corrected namespace icon
- Resolved all @ajayalfred and @prodonjs comments
- Registration Flow buttons moved to the right, flexed to the bottom of the container
- Updated namespace creation regex to what the server replies with
- Corrected flow to trigger completion event 2s after flow complete (for text animation to show)
- Empty mixin corrected to support Events, Strings, Error, Sets
- Paper-chip border-color updated
- Paper-chip ripple updated to accent color
- Fixed all tests
- Addressed all of @prodonjs' comments
- Fixed a jsdoc issue where a
*was missing
Diverged manage-users page
- Fixed last test:
- Corrected logic for onHasWorkgroupResponse
- Fixed test for env-info
-
Multi-User Isolation 2.0 - Manage Users (#3758)
-
Multi-User Isolation:
- Updated base lib with readBinding -> readBindings, proper return types
- Integrated payload info in env-info
- Cluster Admin detection
Feature Updates:
- Auth forwarding
- Profile Controller caching
- Base URL detection, fixed API base
- Minor Controller refactor
- Resolved PR comments
- Service discovery now happens via internal hostname for service
- Fixed linter options and code errors
Changes:
- API updated to fallback on K8s listNamespaces if getEnv fails
- Fallback payload ORM written for uniform data passed to UI
- UI ORM to roll namespaces like: {namespace, user, role}
- Namespace selector upgraded to support new namespace object
- Namespace selector has indicators for when a namespace is owned
Short-term Support added for #3555
- Env:IAP_HEADER for auth header that contains IAP token
- Env:IAP_PREFIX for auth domain
- Updated API interface to handle dynamic IAP_HEADER values
Massive Refactor:
- profile_route_handlers.ts added to provide middleware for auth / profiles
- API.ts changed significantly to rely on
req.user - All routes have access to the user object
- Conditionally load the registration page if no profiles exist for user
- The point above is WIP
Registration Flow 0.5
- Registration-Page element added
- All html are now dynamically generated from base.pug
- A modular html generation function added in Webpack with bundle linking support
- Modularized js files per page to share base.js
- base pug has a nested pug interpolator for custom elements to be added from webpack
- LF requirement removed
- Base HTML files removed
- Updated Env Variables to be GCP agnostic in user management
- TS specific refactor added for classes
- Global Promise Uncaught handler added
- Promise handling improved in middleware flow
- Added fallback behavior for non KFAM flows
Registration flow 1.0
- Registration detection
- API linking
- Fast Registration flow
- Main-App integration, with resync
- Themed to the tee with the mocks by @ajayalfred
- Incomplete change
Registration Screen Complete:
- Iron-a11y-keys added
Profile->workgrouprename- JSON serializer added for user data
- Removed authRoute from server
- Added an intermediate PageLoader till registration or main-page loads
- API fetch for workgroup info on page load
- Interactive carousel navigation added to registration flow
- Animated API response added for success
- Invalidation and UI indicators for failed API call
- Regex enforced validation for namespace name with maxlength enforcement
- Shared checkmark component added
sleepadded as a new method in utilities mixin
Final Features:
- Added footer links
- Refactor backend to work with Kfam.
- Simplifies the backend to add a user-aware middleware to enrich
the Request object with information about whether the cluster has
auth enabled and what the user's identity is. - Adds unit tests for all interactions with Kfam.
- Simplifies the backend to add a user-aware middleware to enrich
- Linked @prodonjs changes to front-end
Manage-Users:
- Vaadin charts and paper-toast added
- Profile Controller promise handler created
/get-contributorsapi route created- Namespace icon added
- Manage Users page added
- Dashboard made aware of cluster admin status and
isolationMode Manage Userssidebar entry only when isolationMode is multi- New
emptymacro added to utilities mixin - Paper-chip element added
- TSLint remove any warnings
Major updates 2.0:
- Reverted all webpack changes
- Updated failing api_tests.ts
- Corrected the fields being used to/from server for registration
- Removed base files since we do not have multiple entrypoints
- Welcome user toast added after successful namespace registration
- Corrected sidebar entries for Manage-Users
- Manage Users contrib action color now toggles based on status (error support)
- Rollback errors when successfully added contributor
- Namespace selector badge swapped with
(owned)indicator - Namespace selector now has corrected namespace icon
- Resolved all @ajayalfred and @prodonjs comments
- Registration Flow buttons moved to the right, flexed to the bottom of the container
- Updated namespace creation regex to what the server replies with
- Corrected flow to trigger completion event 2s after flow complete (for text animation to show)
- Empty mixin corrected to support Events, Strings, Error, Sets
- Paper-chip border-color updated
- Paper-chip ripple updated to accent color
- Fixed all tests
- Addressed all of @prodonjs' comments
- Fixed a jsdoc issue where a
*was missing
- Major Changes:
- New Return type from API SimpleBinding, removes front-end complexity by mapping all Bindings to Simple
- Manage Users page completed with the cluster admin overview table
- Ajax calls only fire when user and status conditions are fully met
- Style updates - Corrected Namespace selector
- Finalized Manage-User:
- Delete Contributor added
- Better error handling
- Add contributor passing auth, and deleting erroneous headers
- Paper-chip events finalized
- Flow complete
-
Corrected logic to use ownedNamespace than any namespace to trigger registration flow
-
Addressed all comments from @prodonjs:
- Moved all workgroup related routes to /api/workgroup
- Added a 404 to API
- Reverted req.user.auth in favor of all headers (explained in PR)
-
Updated css for add contribs box to not grow after first input
-
Fixed all comments and all tests
-
Fixed semicolon issue, builds work as expected
-
Removed debug statements and updated RoleMap, removed extraneous code
-
Fixed last semicolon issue
-
All UX comments updates:
- Text on Manage Contributors updated, membership roles clarified
- Page renamed to Contributors instead of users
- Font updates, title changes, weight changes, spacing changes
- Checkmark animation with api message hidden
- Shared macro,
fireadded to dispach custom events - Sidebar now hides when in Manage Contributors
- All paper-inputs changed to md2-input, with some interop
- Strong validators implemented
- Fixed all of Jason's comments:
- Migrated all profile specific code and functionality to api_contributors
- /api/has-workgroup -> /api/workgroup/exists
- Refactored tests
- Fixed error response logic
- Another set of review done:
- ContributorAPI -> ContributorApi
- Privitized NO_ROUTES conditional router
- Types made into ProperCase
- Nits, and spaces fixed, css beautification done
.fire()changed to.fireEvent()
-
Added a middleware to block all workgroup calls if not autoried
-
Fixed tests, static method removed
-
MUI Basic Auth: (#3842)
- Added support for communicating with Profile Controller for namespaces
- Renamed api_contributors to api_workgroup
- Updated nomenclature, removed unnecessary deps
- Fixed tests to work with new response structure
- MUI Style and Nomenclature: (#3843)
- Table left padding removed as per spec
- Headers boldened with Hacky CSS
- Updated Membership and info to be lowecase
- Updated membership table with new design
- Removed commented code
下载附件
-