-
Notifications
You must be signed in to change notification settings - Fork 66
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
[Request deployment] New Hub: CosmicDS/Harvard #2128
Comments
Hi @nmearl! Following a suggestion from @choldgraf in a meeting earlier today, we will get a good signal to the will it work? item above if CosmicDS can be launched on binder. Do you know if that works? Or can you give it a try? @jmunroe pointed out that the Glue in Jupyter documentation includes examples that launch in binder so that's encouraging. |
Apologies for the late follow up. Thanks again for getting this rolling, @colliand. Yes, the app works on Binder modulo some issues with Though, I caution taking a Binder deployment to be representative of the setup we've been working under with regards to kubernetes. In general, we use admin-defined dashboards setup through ContainDS to circumvent the normal jupyter environments. But having this on Binder does show, at least, the Voila rendering functions as intended. |
Hey @colliand, @nmearl and @patudo ! I will be the one deploying the CosmicDS hub early next week. Can you help me get the info needed for this? (The info required is listed in the top comment)
Also, after reading through the discussion in this thread, esp the ⬆️, (though I might me missing additional context) I was thinking to start with:
What do you think? Thank you! |
Hi @GeorgianaElena, thanks for taking this on! I'd like to start with some clarifications:
Responses to the initial post:
Thanks again! |
For the logo image, here are two options, depending on the background color:
|
Can @nmearl describe the anticipated users during the pilot? Can we expect them to have community college accounts? Google accounts? GitHub? The auth options 2i2c offers now are CIlogon and those described here: https://docs.2i2c.org/en/latest/admin/howto/manage-users.html#authentication |
Thanks @patudom. My conversation with @nmearl helped me understand that the scenarios for the CosmicDS pilot (classes in high schools and community colleges) do not have a natural authentication service endpoint. From earlier conversations, I understood that CosmicDS plans to build a web app that will manage logins. In the meantime, I am hopeful we can find an effective workaround. Possible workarounds include using membership in a GitHub organization, or an allow-list via CIlogon. There is a lot of flexibility through CIlogon! 2i2c does not recommend managing passwords inside the hub due to security concerns. |
Given the current 2i2c's infrastructure model and upstream local JupyterHub authenticator options, managing hub authentication through a local authenticator is something that would require additional engineer work and possibly also some compromises. But, as @colliand said, there is a lot of flexibility through CILogon. I think this might be worth exploring for this pilot hub, before pushing forward the more complex effort that comes with a local authenticator. CILogon flexibilityWhen using CILogon with a 2i2c hub, you we can have the users authenticate using any institutional provider that CILogon supports. This includes campus identity providers, but also GitHub, Google, Microsoft, and ORCID. One can enable all, some or just one of them in a hub, but additional care should be taken to not have multiple hub usernames associated to the same person. User's hub access can then be managed from the administrator panel https://docs.2i2c.org/en/latest/admin/howto/manage-users.html#manage-users-from-the-administrator-panel. The above would be the most straightforward setup. But, more complex things can also be achieved.
For example https://demo.2i2c.cloud only shows two identity providers as login options: Google + Texas Uni and only these two are permitted. If logging in through Google, only Google email address that end in |
I think the next steps here are:
And we go from there! |
Hub is now running at https://cosmicds.2i2c.cloud 🎉 Check it out. |
I used the configurator to change the default experience to JupyterLab from the classic notebook. But I'm expecting that the CosmicDS/Harvard team will soon be trying out their own docker image. Since we are deprecating 2i2c-hubs-image for non-data8 hubs, should we be changing the hub image to cds-containds:latest instead? @nmearl -- you can change this using the "configurator" tool in the JupyterHub control panel but we can also hardcode the docker image to use. Please chime in here if it is not clear how to choose a different image for your hub. |
Thanks so much! I logged in using my github credentials but was not able to access the server. I tried twice and got two slightly different sets of error messages. I'll post them here in case it's useful: Attempt 1:
Attempt 2:
|
@jmunroe what's the image used for the hub setup? Is it the default |
That would be great - thank you, @yuvipanda. Enabling the google/microsoft accounts as soon as the numerical ID is available (preferably, no later than Friday 7/14) would be great. The google/microsoft account logon can be disabled any time after 5pm ET on Friday 7/21. |
@patudom @nmearl alright, I did a bunch of research and spoke to some privacy / cryptography folks, and have a solution that would provide usernames like I'll work on getting a PR up soon. |
- Implement the feature - Write documentation on how to enable it, and why not to - Enable it for cosmicds TODO: - Describe *how* this works - Validate that authorization can work with this at all Ref 2i2c-org#2128 (comment)
@yuvipanda this sounds good, but I'm curious why not simply use one of the We do not mind having the user provide their username for support purposes. |
@nmearl @patudom I've written up a short document here on why this is needed to not store PII at https://github.com/2i2c-org/infrastructure/pull/2809/files#diff-ac02bcb032968f861b77821bb371824dfa6bfad4da743117e853e463cb902682. Take a look and let me know if that helps answer your questions? |
Thanks, @yuvipanda - we appreciate your research on this and the detailed writeup on pros, cons, and limitations of this method. None of the downsides you listed will be an issue with our current setup, so please go ahead and enable the anonymization. Thank you. |
Thank you, @yuvipanda. |
yw, @patudom. I'll update the issue once it gets merged. Note that all existing users' names will change, so the contents of their home directory will go missing, as that's tied to their name. So for any existing users, please ask them to backup / download their home directories so as to not lose anything. |
Just as an side: no user should have anything in their home directories. Users should never know there's a JupyterHub running. As discussed in our chats, we hope to disable the Lab/Notebook environment and simply use the proxy to serve the content the users should interact with. |
@nmearl can we just turn off the persistent home directory completely? So nothing is preserved between server restarts. |
@yuvipanda Yes, that would be fine. |
Thank you, @yuvipanda! I've been able to log on with google credentials and have my username appear as the random constructed string. We'll work on our end on tying those usernames to our database where we will store the students' activity within the Data Story. I did notice a couple additional issues. If there's the possibility of addressing this first one by Wednesday, that would be great, but we understand if that's not possible.
This 2nd issue can be addressed after next week's implementation:
|
@patudom for (2), you can use the user-redirect feature here. So if you want to send users to As for (1), unfortunately I don't think that's something we can really help with, as I don't really know how the dashboards work or what is taking time. I can help answer specific questions if you have any though. |
Hey @yuvipanda. Yes, you can go ahead and remove the generic auth now. The test did not go as well as hoped, and we were forced to revert back to our own deployment. There are a few facets to this that I had hoped we could talk about over our Zoom call, but many revolved around subpar performance when a handful of active users were on the hub, as well as a database communication issue which only seems to occur on the 2i2c hub and that we're hoping we can get access to the hub server logs to diagnose. |
@nmearl ah sorry to hear that! Let's catch up and see what we can do |
I will close this one now since a hub was deployed and other additional features deployed. Thanks! |
[Report from email] @yuvipanda We’ve successfully transitioned to using the hub user image template you provided. I’m curious if you could point out how we might access the server logs using this approach? For the integration with the front-end site and the CILogon authentication, in addition to 2i2c providing the client id and client secret to us, do we need to provide you a callback url? |
Important dates
Hub Authentication Type
Other (may not be possible, please specify in comments)
First Hub Administrators
@nmearl, Nicholas Earl
@patudom, Patricia Udomprasert
[GitHub Auth only] How would you like to manage your users?
None
[GitHub Teams Auth only] Profile restriction based on team membership
No response
Hub logo image URL
pending...
Hub logo website URL
pending...
Hub user image GitHub repository
pending...
Hub user image tag and name
pending...
Extra features you'd like to enable
(Optional) Preferred cloud provider
None
(Optional) Billing and Cloud account
None
Other relevant information to the features above
Navigating the complexities associated with auth and software environment are the responsibility of the CosmicDS team (with some input and suggestions from 2i2c's Engineering Team). If significant work and software development is required from 2i2c, we will need to revisit the business terms of this pilot.
Tasks to deploy the hub
The text was updated successfully, but these errors were encountered: