0mar
f4ba57b1d7
Implemented filter list skeleton
2021-01-04 16:24:50 +01:00
Ivana
f9a3eec147
Merge branch 'rbac' into implementing-default-roles
2020-12-08 08:41:04 +01:00
Min RK
f8040209b0
allow services to call /api/user to identify themselves
2020-12-02 12:21:25 +01:00
Min RK
6fc3dc4c01
Merge master into rbac
2020-12-02 11:28:53 +01:00
IvanaH8
de04ae1471
verifying api requested token roles permissions against the token owner permissions
2020-12-01 08:44:29 +01:00
Omar Richardson
d7d27ad97a
Fixed scopes and added more specific logs/errors
2020-11-23 13:26:36 +01:00
IvanaH8
c0cadc384d
adding roles to tokens
2020-11-19 08:22:52 +01:00
0mar
365921d162
Added filtering to decorator and added tests
2020-11-09 14:25:02 +01:00
0mar
fad0679ce4
Refactored api method param names
2020-11-05 16:35:42 +01:00
0mar
422fbf8dcc
Fixed scoping and authentication
2020-10-30 15:07:10 +01:00
0mar
e26fa682c1
Implemented mock scopes in tests and fixed scopes
2020-10-28 17:45:58 +01:00
IvanaH8
4142dc1bc0
update to roles utils
2020-10-21 16:36:50 +02:00
IvanaH8
f1ed74bae1
creating roles module
2020-10-19 19:57:55 +02:00
0mar
b6fa353201
Implemented scope-based access in API handlers
2020-10-19 13:09:26 +02:00
Min RK
30b8bc3664
add ?state= filter for GET /users
...
allows selecting users based on the 'ready' 'active' or 'inactive' states of their servers
- ready: users who have any servers in the 'ready' state
- active: users who have any servers in the 'active' state (i.e. ready OR pending)
- inactive: users who have *no* servers in the 'active' state (inactive + active = all users, no overlap)
Does not change the user model, so a user with *any* ready servers will still return all their servers
2020-09-17 12:31:16 +02:00
Greg
d126baa443
remove diaeresis
...
Signed-off-by: Greg <werner.greg@gmail.com >
2020-01-17 09:43:46 -05:00
Min RK
74958d9397
catch some CancelledErrors
...
which can occur during app shutdown
2019-08-28 19:02:58 +02:00
Min RK
f3aee9bd16
ensure spawner for named servers is fully deleted
...
if spawner wasn't running, the wrapper could have been left in the user.spawners dict
2019-04-05 16:50:55 +02:00
Min RK
5e60582ef3
run autoformat
...
apologies to anyone finding this commit via git blame or log
run the autoformatting by
pre-commit run --all-files
2019-02-19 17:00:10 +01:00
Min RK
d8d1b6c149
test activity api
2019-02-11 16:17:23 +01:00
Min RK
0063752a7f
push activity to hub via api
...
servers publish activity on a regular interval (default: 5m)
2019-02-11 15:03:17 +01:00
Daisuke Taniwaki
71f2b73c36
Update error message of named server limit
2019-01-19 15:48:35 +09:00
Daisuke Taniwaki
b34bdd2846
Limit max named server per user
2019-01-19 15:48:35 +09:00
Gerhard Weis
c2aa7f1748
call base handler self.authenticate instead of accessing authenticator directly
2018-11-27 06:41:36 +10:00
Gerhard Weis
9ac6ed344c
UserTokenListAPIHandler should support Authenticator.authenticate returning a dict
2018-11-22 14:33:48 +10:00
Min RK
e79b43e906
support removing named servers
2018-09-24 16:21:40 +02:00
Min RK
fcbc6e06c8
stop keepalive loop promptly on finish
...
rather than waiting until keepalive_interval, which leaves idle coroutines for at least 8 seconds
2018-09-24 15:54:01 +02:00
Min RK
d79a99323e
make .get_current_user
async
...
- `.get_current_user` is called in the `prepare` stage for all handlers
- use `.current_user` to access current user in methods
- adds Authenticator.refresh_user for refreshing user auth (unused at this point)
2018-09-13 10:16:13 +02:00
Min RK
54449562bd
remove spurious print from keepalive code
...
and send keepalive every 8 seconds
to protect against possibly aggressive proxies dropping connections after 10 seconds of inactivity
2018-09-11 16:50:48 +02:00
Min RK
e29fad06ed
write needs no await
2018-09-11 16:41:27 +02:00
Min RK
146587ffff
add keepalive to progress eventstream
...
avoids issues with proxies dropping connections when no data passes through
Progress behavior should already be resilient to dropped connections,
as the progress ought to just resume anew.
2018-08-30 19:03:14 +02:00
Min RK
58c91e3fd4
implement API token expiry
2018-05-07 13:00:37 +02:00
Min RK
0e08963355
suppress auth errors on authenticated token request
...
since Authenticators may not be prepared for this
2018-05-04 17:18:32 +02:00
Min RK
cd9e39bf54
allow authenticators to authenticate API requests for tokens
...
gives Authenticators the ability to authenticate token requests,
e.g. with an existing OAuth token from the upstream provider
2018-05-04 17:18:32 +02:00
Richard Darst
2344d696ca
API: pass 'server_state' through to admin clients only
...
- This will allow, for example, cull_idle_servers to be more
intelligent when culling servers.
- This is only given to admin API users, because we don't know if all
spawners expect their state to be made available to users.
2018-04-24 16:52:18 +03:00
Min RK
4281babee4
make server-model inclusion opt-in
...
so only certain API endpoints include server info:
- user list
- get named user
The rest exclude running servers
2018-04-24 11:35:51 +02:00
Min RK
976fa9c907
update default note for API-requested tokens
2018-04-20 15:34:52 +02:00
Min RK
ce535b55bc
Revoking one oauth token revokes all oauth tokens for that client
2018-04-20 15:34:52 +02:00
Min RK
f7f0b72776
retrieve tokens by id in REST API, not full token in URL
2018-04-20 15:34:52 +02:00
Min RK
251289fc05
add new token management to REST API
...
- list tokens
- create new tokens
- delete tokens
2018-04-20 15:34:52 +02:00
Carol Willing
cbf2b8cb78
Merge pull request #1790 from minrk/409-conflict
...
raise 409 conflict on duplicate actions
2018-04-13 10:29:52 -07:00
Min RK
c08148266a
raise 409 conflict on duplicate actions
...
Makes it easier for upstream clients to retry failed actions and ignore failure due to duplicate transactions
2018-04-11 10:52:05 +02:00
Min RK
9b914e8f01
fix waiting for spawner to fail in progress
2018-04-09 14:46:28 +02:00
Min RK
a189196855
ensure async generators are properly closed
...
only terminate with iterate_until in handler, not Spawner._generate_events
2018-04-09 13:03:18 +02:00
Min RK
c0f37c48a1
fix wait for spawn future
...
asyncio.wait takes a list
2018-04-09 11:16:17 +02:00
Min RK
ee1a86d192
progress url is at server/progress
...
instead of server-progress
2018-04-05 11:22:00 +02:00
Min RK
707b300bd6
add iterate_until utility
...
allows iterating through an async generator, yielding items until another Future resolves
if/when that deadline Future resolves, ready items will continue to be yielded until there is one that actually needs to wait
at which point the iteration will halt
2018-04-05 11:22:00 +02:00
Min RK
c9e12182a2
halt progress iteration on completed spawn
...
requires calling `__aiter__` and `__anext__` instead of `async for`
2018-04-05 11:22:00 +02:00
Min RK
4f78cbbd1b
implement progress on spawn_pending page
...
- add Spawner.progress method. Must be an async generator of JSON-able progress events
- add /api/users/:user/server-progress eventstream endpoint
- use eventstream to fill progress bar on the spawn pending page
2018-04-05 11:22:00 +02:00
Tim Head
5b9f51417f
Fix permission check when handing out auth state
2018-03-27 10:02:59 +02:00