-
Notifications
You must be signed in to change notification settings - Fork 113
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
Revamp Application Registry #1779
Comments
I'll sketch here what I think we need to achieve and then we discuss/evolve from here. The current full picture is that on top of the above, a site manager would need to configure the following in the WOPI server config:
Now what we need is:
We should also evolve the AppProvider so it supports non-WOPI apps with some abstraction layer as discussed long ago, but this is another task of course. It might help though to think about e.g. the Root viewer as a simple non-WOPI app for the case of configuring it entirely within Reva, without relying on the WOPI server to provide the app's URL. |
Further thoughts on this topic:
where the AppProvider at
For the latter, I'm thinking to introduce an endpoint in the wopiserver to be used by the WOPI AppProvider in Reva, essentially to say: "this is an app endpoint, go discover its capabilities" -> the wopiserver will GET /hosting/discovery (as it is the case today) and populate its internal dictionary, used afterwards by the protocol. How does that sound? The whole point is to have the wopiserver agnostic about the apps. |
So there's a misunderstanding here. The The config would look like
The workflow would look like:
We need to add a config parameter in the wopi driver to point to which app it should open the file with and this would be handled by the wopi driver code + wopiserver. All the wopi drivers (localhost:19000, localhost:19001, localhost:19002) can point to the same wopiserver but this config parameter would be different for those. |
For the record, this is where we are after further discussions:
Note the
|
One more update following discussions with @diocas: Instead of point 4. we can simply make sure that the WOPI driver of the AppProvider passes the "decorated" [*] Going in this direction, I'd create a separate endpoint in WOPI, [*] For a given WOPI application, two "decorated" URLs exist, that point to the viewer UI and the editor UI for a given file type. These can be obtained by calling |
See cs3org/reva#1779 for more details The concept is that WOPI will not be responsible for the discovery, and the functionality is implemented in the WOPI driver of the Reva AppProvider. Eventually, the discovery.py module will be dropped.
See cs3org/reva#1779 for more details The concept is that WOPI will not be responsible for the discovery, and the functionality is implemented in the WOPI driver of the Reva AppProvider. Eventually, the discovery.py module will be dropped.
See cs3org/reva#1779 for more details The concept is that WOPI will not be responsible for the discovery, and the functionality is implemented in the WOPI driver of the Reva AppProvider. Eventually, the discovery.py module will be dropped.
See cs3org/reva#1779 for more details The concept is that WOPI will not be responsible for the discovery, and the functionality is implemented in the WOPI driver of the Reva AppProvider. Eventually, the discovery.py module will be dropped.
For the registration, the |
Currently, the registry works by simply redirecting requests corresponding to the mimetype to the endpoint specified by a given set of rules.
For example, let's say we want to redirect office format requests to a reva appprovider running at localhost:16001 and codimd ones to one running at localhost:16002. We'll add the following rules to appregistry
Thus when we receive a request to open a file with the extension
.docx
in the app provider, the storage provider will resolve the mimetype to be an office text format and this request will be forwarded to the reva at localhost:16001.@glpatcern can you elaborate what is the desired mechanism?
The text was updated successfully, but these errors were encountered: