Skip to content
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

User Dashboard should be configurable enough for reusing in Hosted Che #15462

Closed
6 tasks done
ibuziuk opened this issue Dec 12, 2019 · 11 comments
Closed
6 tasks done

User Dashboard should be configurable enough for reusing in Hosted Che #15462

ibuziuk opened this issue Dec 12, 2019 · 11 comments
Assignees
Labels
area/dashboard kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system.

Comments

@ibuziuk
Copy link
Member

ibuziuk commented Dec 12, 2019

Is your task related to a problem? Please describe.

Currently, on Hosted Che side we do a few UD related changed in comparison with upstream. I think now after reorg it is a good time to get rid of the rh-che specific changes and make UD generic / configurable enough to be fully reused in the downstream.

Motivation

Every sprint the Hosted Che team spent time for backporting changes from upstream to downstream. For example 7.5.1 related updates - redhat-developer/rh-che#1722

What needs to be done

It looks like we can relatively easily get rid of the Hosted Che specific changes:

image

Also, the "Organization" concept might be soon deprecated upstream - #15304 (comment)

I think it should be contributed to the upstream and it should be disabled by default. There should be a configuration option to enable in the upstream

This should be done in upstream. Also, we can have the same FAQ file for Eclipse Che and Hosted Che in the docs coming one after another. Related issue - redhat-developer/rh-che#1479

Describe alternatives you've considered

Hosted Che will continue to override UD in downstream every sprint release

Additional context

This issue is part of the #13265 epic

@ibuziuk ibuziuk added the kind/task Internal things, technical debt, and to-do tasks to be performed. label Dec 12, 2019
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Dec 12, 2019
@ibuziuk ibuziuk added severity/P1 Has a major impact to usage or development of the system. team/osio and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Dec 12, 2019
@ibuziuk ibuziuk added this to the Backlog - Hosted Che milestone Dec 12, 2019
@akurinnoy
Copy link
Contributor

@ibuziuk You are right, all this may and should be done in upstream for downstream projects to be able to configure UD just using their own product.json.

Controller Team can handle this issue.

@sleshchenko sleshchenko modified the milestones: Backlog - Hosted Che, Backlog - Controller Dec 21, 2019
@ibuziuk
Copy link
Member Author

ibuziuk commented Jan 8, 2020

@akurinnoy this would be awesome. Have you planned anything from this list as part of the next sprint? We would be happy to give a hand on some parts

@amisevsk
Copy link
Contributor

amisevsk commented Jan 8, 2020

Ephemeral toggle on Create Workspace screen - https://github.com/redhat-developer/rh-che/tree/3579c2a1618d60980be0533a6d8680a268c5b305/assembly/fabric8-ide-dashboard-war/src/app/workspaces/create-workspace

Another option that would be great to have for hosted Che is "use ephemeral by default", since part of the downstream changes to add the toggle also sets workspaces to persistVolumes: false on creation.

@ibuziuk
Copy link
Member Author

ibuziuk commented Jan 14, 2020

@skabashnyuk @sleshchenko since there was a discussion about the potential move of the dashboard and wsloader to separate repos it would be great to solve this issue first. Otherwise, it will much complicate the life for Hosted Che update process
cc: @gazarenkov

@skabashnyuk
Copy link
Contributor

@ibuziuk I don't see relation at all. However, I fully support you. This task looks important.

@ibuziuk
Copy link
Member Author

ibuziuk commented Jan 14, 2020

@skabashnyuk the relation is that refactoring of UD in the upstream will lead to refactoring of the UD usage in Hosted Che (smth. that would be really great to avoid)

@skabashnyuk
Copy link
Contributor

@ibuziuk I'm sorry I didn't know about any planned UD refactoring.

@akurinnoy
Copy link
Contributor

My proposal on how to extend product.json in order to make the UD more configurable:

{
  // all existing fields are above

  // will add FAQ link to the footer
  "faq": "https://github.com/redhat-developer/rh-che/blob/master/FAQ.adoc",

  "configuration": {
    "menu": {
      "disabled": [
         // will hide specified sidebar menu items, disable corresponding routes 
         // and related functionality such as workspace sharing
         "organizations"
      ]
    },
    "misc": {
      "idePrefetch": [
        // resources to prefetch
      ]
    }
  }
}

I hope I missed nothing but if you have any suggestion please let me know.

@gazarenkov
Copy link
Contributor

@akurinnoy what about Ephemeral toggle?

@akurinnoy
Copy link
Contributor

@gazarenkov yes, I didn’t mention the ephemeral toggle because of this PR. Che Server already has default configurable value for ephemeral mode and it makes sense for User Dashboard just to consume it. So, in scope of this issue we only need to fetch default value for ephemeral mode and add another ephemeral toggle to Create Workspace page.

@sleshchenko
Copy link
Member

@akurinnoy @olexii4 Just to left the result of our discussion here. We agree that we could introduce a more general format for a configuration that later can be extended and gives an ability for example to define navbar elements order or title, etc. For example:

---
configuration:
  views:
    organizations:
      navbar:
        displayed: true
        title: ''
        priority: 1
      enabled: 'true'
      baseRoute: "#teams"
    workspaces:
      views:
        sharing:
          enabled: 'false'
  footer:
    faq:
      title: ''FAQ"
      href/reference: ''che-7/docs/FAQ"
    docs:
      title: "Docs"
      href/reference: /che-7/docs

But it would require even more analysis and work on Dashboard side. So, the proposed format

{
  "configuration": {
    "menu": {
      "disabled": []
    },
    "misc": {
      "idePrefetch": []
     }
  }
}

is good enough to start and later we'll be able to provide a backward-compatible scenario to migrate to a new format if we'll see that it's needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/dashboard kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

7 participants