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

Integrate with Neon Users Service #33

Merged
merged 28 commits into from
Dec 26, 2024
Merged

Conversation

NeonDaniel
Copy link
Member

@NeonDaniel NeonDaniel commented Oct 30, 2024

Description

Update client_manager to use mq_connector for authentication via neon-users-service
Update tokens to include more data, maintaining backwards-compat and adding TokenConfig compat.
Update tokens for Klat token compat
Update permissions handling to respect user configuration values
Update auth request to include token_name for User database integration
Add UserProfile.from_user_config for database compat. Update MQ connector to integrate with users service

Issues

Other Notes

This includes breaking changes to JWT handling. Existing tokens do not follow RFC7519; these changes update token contents to use Registered and Public Claim names where available.

This includes a change to permissions handling by using roles defined in neon-data-models. The affected code has not been included in a stable release and behavior is unchanged when interacting with the HTTP endpoints.

…`neon-users-service`

Update tokens to include more data, maintaining backwards-compat and adding `TokenConfig` compat.
Update tokens for Klat token compat
Update permissions handling to respect user configuration values
Update auth request to include token_name for User database integration
Add UserProfile.from_user_config for database compat.
Update MQ connector to integrate with users service
Update TokenConfig for compat.
Remove `password` from tokens and allow users service auth via token
Add RegistrationRequest model with example
Update MQ API calls to pass `username` and `password` to resolve validation errors
Add helper method for `update` requests to allow for changing the current auth method (password or token)
Deprecate `ClientPermissions` which duplicates role-based permissions spec in neon-data-models
Refactor token handling to use JWT model and updated configuration spec
Fix error in token generation logic
Update exception handling for proper JWTs
Add `__getitem__` to `AuthenticationResponse` for backwards-compat.
…sable_auth` config

Use `disable_auth` config to skip MQ Users service connection
Deprecate `node_v1` schema that is moved to `neon-data-models`
Update imports to use `neon_data_models`
Mark old imports in `schema` as deprecated
Better document usage, including token management
…f also requiring the (potentially expired) auth token
…le config

Refactor rate limiting to consolidate code
Refactor rate limit buckets to be semantically consistent
…names

Remove `handle_update_user_request` and use `update_user` directly to consolidate logic
Add method to read `user_id` from a token for user update endpoint support
Add support for admin authentication to `update_user` endpoint
Refactor internal `_query_users_api` method to accept CRUD request objects
Update dependencies to stable spec
Update dockerfile to resolve warnings
@NeonDaniel NeonDaniel force-pushed the FEAT_IntegrateUsersService branch from 39afe75 to eb76f47 Compare November 22, 2024 01:36
Replace validation that auth and refresh tokens match
@NeonDaniel NeonDaniel requested a review from mikejgray December 21, 2024 00:57
@NeonDaniel NeonDaniel marked this pull request as ready for review December 21, 2024 00:57
@NeonDaniel
Copy link
Member Author

Deployed to hana.neonaialpha.com for validating changes

Copy link
Contributor

@mikejgray mikejgray left a comment

Choose a reason for hiding this comment

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

Approved based on code, I don't think I'll have a chance to test this live any time too soon but I believe you're running these changes with Klat so that's probably ok

neon_hana/app/routers/user.py Outdated Show resolved Hide resolved
neon_hana/auth/client_manager.py Show resolved Hide resolved
neon_hana/auth/client_manager.py Outdated Show resolved Hide resolved
neon_hana/mq_websocket_api.py Show resolved Hide resolved
@NeonDaniel NeonDaniel requested a review from mikejgray December 23, 2024 17:46
@NeonDaniel NeonDaniel merged commit d387765 into dev Dec 26, 2024
6 checks passed
@NeonDaniel NeonDaniel deleted the FEAT_IntegrateUsersService branch December 26, 2024 23:36
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.

2 participants