Min RK
f49606dff6
add user.count_active_users
...
produces summary of active/pending/ready spawner counts
Avoids brittle bookkeeping of running counts,
computing the value upon request.
For 10k users this is still only a few milliseconds, which seems worth it
2017-08-01 17:00:45 +02:00
Min RK
75c1d36237
trade privy for raw Fernet
...
only benefit of privy was KDF, but if users provide good 32B keys, this doesn't help.
Fernet already adds randomness, etc. to tokens, so is good enough on its own if keys are good.
2017-07-28 16:08:12 +02:00
Min RK
90e8e1a8aa
move auth_state encryption outside the ORM
...
privy is used for encryption
- db only has blob column, no knowledge of encryption
- add CryptKeeper for handling encryption
- use privy for encryption, so we have fewer choices to make
- storing/loading encrypted auth_state runs in a ThreadPool
2017-07-28 16:08:12 +02:00
Min RK
8f1115a257
remove handling of changing db sessions
...
this was purely for accessing the db from multiple threads in tests
2017-07-27 11:37:19 +02:00
Min RK
3e796b579d
Address review in named_servers
...
from willingc
- consistency of repr/str when logging usernames
- cleanup some attribute declarations
- add comments about db session weirdness
2017-07-26 10:47:35 +02:00
Min RK
2cec124b4f
support named servers in REST API
...
and exercise them in tests
2017-07-24 16:55:17 +02:00
Min RK
9a555d8a6e
move user.proxy_pending to Spawner._proxy_pending
2017-07-24 15:22:36 +02:00
Min RK
e28f3947bd
Merge branch 'master' into named_servers
2017-07-21 15:43:09 +02:00
Min RK
382a7121e1
further clear up named servers
...
- use spawner.server instead of user.server
- user.running, proxy_spec are methods that take spawner names
2017-07-20 16:54:17 +02:00
CRegenschein
72550725da
jupyterhub-1219 Enhancement: automatically create a directory for the user after successful login
2017-07-20 14:02:13 +02:00
Min RK
4b5aad41b1
make user.running a method
...
accept server names
2017-07-18 14:48:29 +02:00
Min RK
a2e94b8493
create Spawners table
...
for named servers
removes User.servers
2017-07-18 14:28:31 +02:00
Min RK
9eef5d7b1e
refresh session of spawner server
2017-07-17 11:05:25 +02:00
Min RK
aee3c74681
Merge origin/master into named_servers
2017-07-17 10:53:17 +02:00
Min RK
653a39c05e
checkpoint: named server state
2017-07-17 10:41:36 +02:00
Min RK
a6c2939bb4
delay stop_pending until the end of stop
...
avoids stop_pending being False while there's still one yield to go
2017-07-14 15:53:38 +02:00
Min RK
a79071bb33
add User.proxy_pending
...
flag for waiting for the proxy to be updated
avoids User.running being True when the user's server has not yet been added to the proxy,
causing potential redirect loops.
2017-07-14 15:17:56 +02:00
Min RK
d167e275d1
compare hub and single-user server versions
...
in both directions - Hub checks singleuser server on spawn and singleuser server checks Hub on startup
if minor versions mismatch, log at warning level, otherwise debug
2017-06-28 21:55:15 +01:00
Min RK
1015f3bf53
Merge pull request #1187 from minrk/fix-db
...
fix db reconnect when user.db changes
2017-06-27 15:21:20 +01:00
Min RK
88040362b0
fix db reconnect when user.db changes
...
store id on outer User, rather than accessing orm_user.id, which seems to fail sometimes
this may fix the recent increase in intermittent test failures
2017-06-26 12:46:55 +02:00
Min RK
11e6c38702
routespecs are strings (again)
...
- no slash means host-routing
- slash means no-host
2017-06-23 14:49:42 +02:00
Min RK
31fc89c944
add RouteSpec namedtuple for route specification
...
namedtuple(path, host)
everywhere that accepts a RouteSpec must also accept a string
and treat it as RouteSpec(string).
RouteSpec.as_routespec(spec_or_string) handles this.
2017-06-23 14:12:30 +02:00
Min RK
5263e4ceae
user.state is keyed by server name
2017-06-21 16:52:54 +02:00
Min RK
5da4348c2d
move some state to Spawner
...
now that there are more than one per user
2017-06-21 16:33:16 +02:00
Min RK
e33e34748f
Re-sync with master
2017-06-21 15:33:01 +02:00
Min RK
8704deeb31
ensure db.commit happens before yield
2017-06-14 21:19:38 +02:00
Min RK
1069799ea7
get rid of single-user cookie_name
...
it's unused now that single-user uses OAuth
2017-05-04 12:20:02 +02:00
Min RK
5e55753baa
various cleanup to get most tests passing (yay!)
2017-05-04 12:16:47 +02:00
Min RK
be8f847309
move proxy management to Proxy object
...
out of the Application
2017-05-04 11:13:19 +02:00
Min RK
acc31b8441
remove Hub, Proxy from database
...
These are in-memory-only objects, no need for a table with one row
2017-05-04 11:05:58 +02:00
Christian Barra
2b2eefdd1f
catch KeyError for get_spawner
2017-04-19 14:58:43 +02:00
Christian Barra
db77932a95
moving track of spawner's instances inside user
2017-04-19 14:46:54 +02:00
Christian Barra
2aaf82412d
add a dict to save spawner's instances, fix user.server with server
2017-04-19 03:25:26 +02:00
Christian Barra
ced8e9f874
add named_servers proxy
2017-04-15 05:22:01 +03:00
Christian Barra
76b589bc90
fix named_servers, change server.base_url
2017-04-15 03:47:09 +03:00
Min RK
99369aa5a1
fix trailing -
in oauth-client-id for single-user servers with empty server_name
2017-04-05 15:53:49 +02:00
Min RK
ffd3c171fe
fix oauth url for SU servers with subdomains
...
and services without
2017-04-05 15:53:49 +02:00
Min RK
6d647b5387
use API token for oauth client secret
...
rather than a separate single-purpose secret
since we need the token anyway, use it for the secret handshake as well
2017-04-05 15:53:48 +02:00
Min RK
5e1516189b
allow oauth provider to be missing
...
mostly for testing
2017-03-31 16:15:00 +02:00
Min RK
4bb8e47f3b
implement admin-access with OAuth
2017-03-30 19:15:43 +02:00
Min RK
7e55220c3f
use OAuth in single-user server
2017-03-30 15:24:35 +02:00
Christian Barra
bfe1457897
fix after test fail
2017-03-17 01:53:04 +01:00
Christian Barra
f873b77a5f
correct self.allow_multiple_servers to self.allow_named_servers
2017-03-17 01:15:47 +01:00
Christian Barra
7a38a57397
remove unused imports and correct base_url
2017-02-24 00:37:41 +01:00
Christian Barra
4fdf405d77
add JupyterHub.allow_multiple_servers
2017-02-24 00:37:41 +01:00
Christian Barra
488706293f
pass server_name to the spawner
2017-02-24 00:37:41 +01:00
Christian Barra
9373325f1b
fix options error and base_url
2017-02-24 00:37:40 +01:00
Christian Barra
e151248ac2
fix server_name
2017-02-24 00:37:40 +01:00
Christian Barra
f4a7e28aa5
add default_server_name, change spawn start
2017-02-24 00:37:40 +01:00
Christian Barra
d682edd44f
use only the first 10 chars of server_url
2017-02-24 00:09:48 +01:00