-
Notifications
You must be signed in to change notification settings - Fork 18
Implement support for the Federation Extension #230
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
Comments
Add a warning icon with the FA icon ( For jobs, services, files, UDPs a button with icon should work, for collections, processes, file formats it might just be a clickable icon without button style as it might look more pleasing. The JS client v2.7.0 supports the functionality to retrieve the properties since some months, see also Open-EO/openeo-js-client@fd78bb8 and Open-EO/openeo-js-client@2a14de7 The list of missing backends with a short explanation could be shown in a modal, toast or tooltip. High prio tasks should be implemented first. |
This can already be used with the version of the js-client on the `federation-as-object` branch there.
And one more in the DiscoveryToolbar
Regarding the issue that we don't really like a tooltip on a button, but a modal would also be overkill: How would you like a "compact" version of the FederationMissingNotice for the panels? Which styling is desired could be set via a boolean Consumes one line of space (two if the availability situation is really bad or the screen particularly small), but would be consistent with the rest and IMO fairly pleasing visually. |
I like that. I'd also expect that usually it's only a single backend, so the text should usually be a bit shorter. |
Nice, then I'll finish implementing that. For now I made it as a separate component in the templates of the panels (requiring to wrap everything in a new <template>
<div id="JobPanel">
<FederationMissingNotice ... />
<DataTable ... >
<template slot="toolbar">
...
</template>
...
</DataTable>
</div>
</template> Or would you prefer adding a new slot to DataTable? Would then look like this: <template>
<DataTable ... >
<template slot="notice">
<FederationMissingNotice ... />
</template>
<template slot="toolbar">
...
</template>
...
</DataTable>
</template> The latter would give the option to switch the places of toolbar and notice, but I prefer the current layout anyway (tools to manipulate the table are directly above it, not split from it by an annoying notice). Semantically I think one could find arguments for either version. |
I think I'd go with the first option, that seems a little more clean. |
* Pass federation info through to web components (#230) This can already be used with the version of the js-client on the `federation-as-object` branch there. * Convert federation info as needed (#230) See also Open-EO/openeo-js-client#67 (comment) * Simplify checking for non-federation case see https://github.com/Open-EO/openeo-web-editor/pull/353/files/5809f11e5917b3d8d465003cf6a25247866c05f1#r2036257667 Co-authored-by: Matthias Mohr <[email protected]> * Pass federation info to modals and wizards (#230) And one more in the DiscoveryToolbar * Fix typo * Show FedMissingNotice in user content panels (#230) * Adapt CSS name, fix getDefaultState, cleanup see Open-EO/openeo-vue-components#108 and #353 (comment) and #353 (comment) respectively * Upgrade dependencies
Regarding Currently the only idea I have would be in this part of the code, adapting the message of the toast in the openeo-web-editor/src/components/IDE.vue Lines 228 to 237 in 6433a60
|
I had to quickly think what the property probably means for each case:
If logs are shown, we could prepend a log entry at the beginning with the severity of info. Would you agree? |
What it means in each case is stated very explicitly here: https://github.com/Open-EO/openeo-api/blob/draft/extensions/federation/README.md#validation (however I still had a question, see Open-EO/openeo-api#563) Your summary aligns with that, yes. I also thought about adding a log entry, but didn't want to interfere with the raw data. And as we need a toast in the "OK" case anyway, I thought it would only be consistent for the "error" case to show the same info in the same way too.
What's the benefit of two toasts instead of squashing the infos into one? Also idk what you mean with "Utils.info, consistent with the logs". Have a look at the commit I just pushed to see how I mean my solution. (It's preliminary, I'm open for suggestions of changes.) |
Toasts are rather short-lived and also have restricted space, thus toast are pretty much the last resort in this case. The hint at utils.info is just about the "log level". We should use for a informational toast/log that shows the federation information the log level "info" in both cases. |
You've got good points why the info should (also) be in the logs. Convinced. I'll add that to the code and push something new. |
Looks like this now: Of course that might get a little long for a toast if there are more backends: But looks good when expanded in the logs: (Note the -> Keep the current message for the logs and shorten it for the toast? Options:
|
For the positive case, we don't want to open anything except the toast, so if we want to show the information at all, we have no choice than to put it all into that toast text: So if there's more than 1 backend that can run it, chances are pretty high that it's not gonna get displayed: This could be fixed by not replacing the IDs with the titles, as the IDs are usually much shorter, but at the cost of uglier UI that is also somewhat inconsistent as we replace with the titles everywhere else... These shortening options would hold back information from the user:
|
For the error case, I agree. We should keep it short in the toast and give details in the logs.
As discussed before, I think the federation details in the positive case are not so important.
|
So the cases listed in the spec now look like this respectively:
I kept the comparatively long message in the last case because its situation is not (necessarily) the same as "The process is invalid". If you want to rephrase it I'm open for suggestions, for now I kept it like in the spec so that everything aligns/I don't introduce ambiguities/misalignments. Another option that came to my mind is making the toast clickable (like it happens already e.g. with HTTP errors) and put the details there (e.g. in the positive case), so that this information would be principally available. |
Let's focus on the basics, conveying the most important information to users. First question: Does this all only apply if there's a federation?
|
Yes, I implemented a check openeo-web-editor/src/components/IDE.vue Line 228 in 18710cc
Which is then checked before all the other openeo-web-editor/src/components/IDE.vue Lines 235 to 236 in 18710cc
(The check uses the same logic I found in vue-components Capabilities.vue -- we could also make it a queriable attribute/method on the Connection object, but for now I didn't bother, for focusing reasons ;)) In the non-federated case, it's "The process is valid/invalid" as before.
Nice
IMO it doesn't hurt either and as it's a long message it might be nice to be able to read it again there. Also makes behaviour in the error case a bit more consistent. So overall I would leave it as it is right now and we could merge this. |
Okay, this is an issue though. So there's nothing to merge yet. |
True, I'll open the PR in a sec |
Closing in favor of #358. |
Uh oh!
There was an error while loading. Please reload this page.
See Open-EO/openeo-api#419 and https://github.com/Open-EO/openeo-api/blob/draft/extensions/federation/README.md
An intiial implementation: https://github.com/openEOPlatform/architecture-docs/issues/179#issuecomment-1007453499
In the EOEPCA+ project, we made an evaluation of the federation-related functionality available through the openEO Web Editor.
The following issues have been identified:
federation:missing
can't be accessed through the corresponding functions for the following endpoints:GET /collections
(high prio)GET /processes
(high)GET /file_formats
(high)GET /process_graphs
(high)GET /files
(high)GET /jobs
(high)GET /jobs/:id/logs
(low, missing upstream in Vue Components)GET /services
(high)GET /services/:id/logs
(low, missing upstream in Vue Components)federation:backends
can't be accessed through the corresponding functions for the following endpoints:POST /validation
(medium)GET /udf_runtimes
per version (low, missing upstream in Vue Components)GET /services/{id}
(low, missing upstream in Vue Components)Related issue for the upstream issues in Vue Components: Open-EO/openeo-vue-components#97
The text was updated successfully, but these errors were encountered: