Commit Graph

243 Commits

Author SHA1 Message Date
Min RK
239902934a Merge pull request #4988 from manics/ipv6
More IPv6: Use bare IPv6 for configuration, use `[ipv6]` when displaying IPv6 outputs
2025-03-28 10:31:07 +01:00
Min RK
b74f1b1b14 add some debugging output for intermittent share code failure 2025-03-19 14:00:23 +01:00
Simon Li
5b02d9c222 Add method to handle formatting of IPv6 in URLs 2025-01-30 18:44:50 +00:00
Simon Li
ec83356261 Wrap ipv6 in [] when displaying/logging messages 2025-01-30 18:28:49 +00:00
Min RK
a2877c7be2 satisfy updated ruff rules
mostly f-strings, manual fixes
2024-12-03 09:45:09 +01:00
Min RK
5383a60d4a test: make sure we don't lose users across temp hubs 2024-08-15 12:55:38 +02:00
Min RK
6be699c333 Revoke all permissions from Authenticator.blocked_users
rather than only disabling login, fully block the user from Hub operations
by removing all group membership and role assignments
2024-08-12 15:01:32 +02:00
Min RK
5636472ebf apply ruff fixes for UP031 2024-05-07 11:33:59 +02:00
Min RK
ce74fdf0a3 don't allow null in managed_by_auth 2024-04-15 10:55:46 +02:00
krassowski
5aa8d29913 Make role_associations private again 2024-04-07 10:00:42 +01:00
krassowski
633aa69623 Implement removal of stale managed roles and role assignment 2024-04-05 16:03:14 +01:00
Min RK
52af3abedc run ruff via pre-commit 2024-03-11 09:39:10 +01:00
Min RK
e15b7c2620 apply pyupgrade fixes via ruff
ruff check --fix --select UP
2024-03-11 09:16:02 +01:00
Min RK
41fff711e7 user-initiated sharing (#4594)
Squashed merge of https://github.com/jupyterhub/jupyterhub/pull/4594

Co-authored-by: Samuel Gaist <samuel.gaist@idiap.ch>
2024-02-07 08:34:39 +01:00
pre-commit-ci[bot]
ef568e3d61 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-02-05 20:27:29 +00:00
Min RK
8c3596d923 Improve validation, docs for token.expires_in
- accept 0 meaning no expiration, since folks have tried to use it that way
- clear error message for invalid (e.g. negative) values
- specify example in rest api doc so it doesn't default to invalid `0`
- better error if orm token fails to be retrieved
2024-01-19 10:23:49 +01:00
Min RK
be14baf096 avoid deprecated datetime.utcnow
deprecated in Python 3.12

replace with equivalent utils.utcnow(with_tz=False)
2023-12-20 14:23:49 +01:00
Min RK
a5061deeee Merge main into query-performance 2023-08-09 12:54:29 +02:00
Min RK
45102b248b store what fields get persisted in trait metadata
rather than checking columns in the db

makes things more explicit
2023-08-09 11:22:16 +02:00
pre-commit-ci[bot]
81885d5c61 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-07-05 17:21:35 +02:00
Duc Trung LE
aa754a1a2c Apply suggestions 2023-07-04 15:13:40 +02:00
Duc Trung Le
bdcf697fe9 Add tests 2023-07-04 11:33:21 +02:00
Duc Trung Le
bf565ece3b Update service table schema 2023-07-04 11:33:21 +02:00
Duc Trung Le
95781880c5 Update service table schema 2023-07-04 11:33:21 +02:00
Duc Trung Le
d251b705e8 [WIP] Update old revisions to support new table 2023-07-04 11:33:21 +02:00
Duc Trung Le
28464f9c47 WIP 2023-07-04 11:33:21 +02:00
Min RK
38126ecfe1 refine use of joinedload
- use it fewer places
- mostly on queries, not attributes
- add innerjoin for some backrefs
2023-06-30 11:06:34 +02:00
Min RK
e12a317e7a join some more relationships 2023-06-28 15:53:50 +02:00
Min RK
f24fbc761f reduce repeat queries in GET /api/users
add eager loading of several relationships that are ~always used when the given objects are requested
add specific eager loading of spawners to the users query

- roles, groups (always needed to resolve permissions)
- APIToken.user, service
2023-06-28 15:53:50 +02:00
Min RK
4fb4eed5e9 add default eager loading to several relationships 2023-06-28 15:53:49 +02:00
Min RK
f92af04e0e trade backref for back_populates
backref considered 'legacy', and back_populates makes it easier to specify lazy loading options
2023-06-28 12:30:11 +02:00
Min RK
d38dd92415 avoid fetching potentially large list of users to compute repr of groups 2023-06-28 12:27:19 +02:00
Min RK
7d0bc1a112 avoid warning on engine_connect listener 2023-03-09 09:16:15 +01:00
Min RK
51b6376634 require sqlalchemy 1.4
removes some workarounds needed for sqlalchemy 1.1 + 2.0 support

1.4 backports most 2.0 behavior, keeping it off-by-default for an easier opt-in transition

opt-in with `session.future = True` flag
2023-01-27 14:15:02 +01:00
Min RK
2db7c47fbf sqlalchemy 2 compatibility
- avoid backref warnings by adding objects to session explicitly before creating any relationships
- remove unnecessary `[]` around scalar query
- use `text()` wrapper on connection.execute
- engine.execute is removed
- update import of declarative_base
- ensure RemovedIn20Warning is available for warnings filters on sqlalchemy < 1.4 (needs editable install to avoid pytest path mismatch)
- explicitly relay password in engine.url to alembic
2023-01-27 10:42:03 +01:00
Vlad Vifor
e84359cc23 Merge branch 'jupyterhub:main' into group_property_feature 2023-01-03 16:00:45 +01:00
pre-commit-ci[bot]
865d5f7646 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-11-16 14:53:12 +00:00
Vlad Vifor
9186594dc1 Merge branch 'jupyterhub:main' into group_property_feature 2022-08-03 12:24:35 +02:00
Min RK
8aac18c96d More documentation for 3.0 role/scope changes
a few more outdated `versionchanged` notes
2022-08-02 14:39:03 +02:00
Min RK
a35a2ec8b7 less space
Co-authored-by: Erik Sundell <erik.i.sundell@gmail.com>
2022-08-02 13:34:42 +02:00
vpopescu
1ccf282170 Merge commit '63b7defe1a40b3abc3582a65a0402c1e82a2e230' into group_property_feature 2022-06-14 14:57:06 +02:00
Min RK
62b38934e5 store scopes on oauth clients, too
rather than roles, matching tokens

because oauth clients are mostly involved with issuing tokens,
they don't have roles themselves (their owners do).

This deprecates the `oauth_roles` config on Spawners and Services, in favor of `oauth_allowed_scopes`.

The ambiguously named `oauth_scopes` is renamed to `oauth_access_scopes`.
2022-06-08 12:26:48 +02:00
Min RK
e229c63e11 use equality to filter token prefixes
otherwise, index isn't used

note: this means changing the token prefix size requires revoking all tokens,
where before only _increasing_ the token prefix size required doing that.
2022-05-25 15:54:34 +02:00
Vlad Vifor
35f4c76982 Merge branch 'main' into group_property_feature 2022-04-14 17:17:21 +02:00
Min RK
b6210dc225 add !service and !server scope filters
allows oauth clients to issue scopes that only grant access to the issuing service

e.g. access:service!service or access:servers!server

especially useful with custom scopes
2022-04-08 20:10:23 +02:00
Min RK
7a9778249f run pre-commit with isort 2022-03-31 12:33:26 +02:00
Vlad Vifor
6ede428990 Merge branch 'jupyterhub:main' into group_property_feature 2022-03-30 11:25:53 +02:00
Min RK
3076845927 tokens have scopes
instead of roles, which allow tokens to change permissions over time

This is mostly a low-level change,
with little outward-facing effects.

- on upgrade, evaluate all token role assignments to their current scopes,
  and store those scopes on the tokens
- assigning roles to tokens still works, but scopes are evaluated and validated immediately,
  rather than lazily stored as roles
- no longer need to check for role permission changes on startup, because token permissions aren't affected
- move a few scope utilities from roles to scopes
- oauth allows specifying scopes, not just roles.
  But these are still at the level specified in roles,
  not fully-resolved scopes.
- more granular APIs for working with scopes and roles
2022-03-18 14:13:16 +01:00
vladfreeze
5aed99b4a6 Improved design 2021-12-02 11:29:26 +01:00
vladfreeze
4c30e9e1d1 Updated code to fit with latest version 2021-12-02 11:29:24 +01:00