-
Notifications
You must be signed in to change notification settings - Fork 309
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
Make frontends discoverable and add a frontend alias. #121
Comments
I like both ideas, although I'd like to see the alias be "frontend agnostic" so any server extensions could be listed simply (perhaps named If there was a |
Could you give some use cases for why this distinction is useful? It could help inform whether this is needed or not. |
shorter better... But is it agnostic? It seems that jupyter has 99 ways to be extended. |
mmh a jupyterlab extension is composed of frontend and optionally of server extensions (in the old term). I am confused here... Is a classic jupyter sever extension (https://jupyter-notebook.readthedocs.io/en/stable/extending/handlers.html#writing-a-notebook-server-extension) to be considered as the new way to extend this |
A jupyter_server is not always meant to deliver a frontend - It could be a REST endpoint that returns a JSON with e.g. the current authenticated user or the permissions he has. That kind of extensions should not be qualified of |
@echarles - I agree shorter is better, but I thought there could be non-server extensions to consider. If that's not the case (sorry, not really up on this aspect of the server), then I agree Things like |
In my mind, there are two classes of server extensions.
|
Yes, a "gateway" (Enterprise or Kernel Gateway) is a perfect example of a non-frontend server extension. |
Both can be constructed from the Calling notebook, lab, etc. extensions is probably very confusing for users even though, technically, that's what they are. I thought the categorization above is helpful. |
I don't think so. This should all happen in the jupyter/notebook logic. Server will likely be unaware of this info. |
I agree with the above. Still in my mind it is not clear if the old server extensions have to be considered as the new extension mecanism? It is the same name and prolly the same machinery behind, but should we make a distinction for the user/developer? |
I think we keep the server extension mechanism as is. That way, no ones extensions break when they port over the jupyter_server. From a traitlet's perspective, we've renamed them: Techically, there is no difference between the two categories above (frontends and non-frontends). In fact, they can add frontends and other server extnesions using the single For users, I think it might be helpful to add aliases like We can also add entry points like:
All of this is just to simplify things for the user. These are problems we didn't have in jupyter/notebook because a default frontend came with the server. |
Via which config would an extension be qualified of {
"ServerApp": {
"jpserver_extensions": {
"notebook": true
}
}
} We should go with a more nested structure like {
"ServerApp": {
"jpserver_extensions": {
"frontends": {
"notebook": true
},
"services": {
"simple_ext1": true
}
}
}
} PS: Maybe |
@Zsailer @kevin-bates Percolating more on this, an extension can have UI (user interface) or not. It would be the server responsibility to say if it has a ui/frontend or not based on the For
We can also nest more attributes like description and picto that would be used in an admin ui. {
"ServerApp": {
"jpserver_extensions": {
"notebook": {
"enabled": true,
"description": "The famous Jupyter Notebook",
"picto_uri" : "static/picto.png",
}
}
} mmh I realize now that we would need in anyway to ship a picto image in a static folder, so we would need to have a static_path even if we don't have UI. The other way would be to explicitly add a attributed
|
Those attributes could be used by the operator to override the extension attributes defined by the developer. |
FYI vscode had similar thoughts/questioning. They committed 2 days ago extension kind ui to be ui + workspace. You can read more microsoft/vscode#85036. So they have some |
* more progress toward deployment * add other files
One thing that comes up in @echarles server extension example #117 is the ugly syntax for launching multiple frontends (assuming they aren't enabled in the jupyter_server_config.d).
i.e.
I think we should add a
--frontend
aliasWhile thinking about this, I also realize we need to be able to distinguish frontends from other server_extensions. Maybe this means we add a
frontend
property to the ExtensionApp.Thoughts?
The text was updated successfully, but these errors were encountered: