Reaction: Show app version in Dashboard

Created on 8 Mar 2017  路  16Comments  路  Source: reactioncommerce/reaction

Once the Avalara PR is merged we will have the Reaction version in the Shops collection. Seems like it would be handy to have this display somewhere in the Dashboard for both us and customers.

enhancement good first issue help wanted

All 16 comments

Hey there! I'm super new to github but I'd like to try to take on this issue. At the moment I'm just trying to get my bearings in the code and figure out where the dashboard is being generated and how it's getting its data. I'm happy to keep looking around myself but I'd also take any pointers. Cheers!

There is a Reaction.getAppVersion method available and you could just add this as a read-only property in Shop settings.

Hey has anyone taken this? I'd be happy to.

@aguscha333 Sure. That would be great. Let me know if you need any help.

I was able to install the repo but not get it up and running apparently. I've been a long time at it already, don't think it's still worth It to keep trying for such a small contribution

Hi @all
I see that you have a lot of "help-wanted" issues and I have some time and would like to help. On the other hand I have a few years of ecommerce experience so that I really would like to see this app up-and-running.
I installed and executed everything written in the documentation for react-platform but I'm failing to start the platform due the message "You must set MONGO_URL environment variable.". Even if try to set this (i.e. localhost:27017, mongodb://mongo:27017/reaction and other combinations) I get the message "ERROR: MongoDB not reachable in time.". Can you give me a hint?

@yellowbrickc Let's make sure your mongo started. docker-compose -f reaction-platform/reaction/docker-compose.yml logs mongo might have some info on whether it's up or down or has an error, etc. It'll be easier for us to assist with your setup in our gitter chat vs cluttering up this github issue.

I started looking into this issue.

My thought was to add it to the bottom of the sidebar as a universal reference from the admin, kind of how Magento has in their footer... Maybe something like Reaction Commerce漏 v 2.1.3.4.5rev12

Screen Shot 2019-03-28 at 2 27 40 PM

This would involved adding appVersion to the graphql schema i believe so it's accessible to GraphQL. @aldeed what do you think of that?

@chrispotter Thanks for diving in! I have a few random thoughts related to this.

  • It's related to another thing we're hoping to do soon, which is add a health check URL that shows information like this as well as other status info. The health check URL would probably be a direct GET HTTP URL that doesn't go through the GraphQL server, but they could share the same function to build the response object.
  • @zenweasel recently added plugin versions to the shop panel, but it was done quickly using the existing Meteor publications. These would ideally be part of GraphQL query / health check URL version data, too.
  • While we currently version them the same and keep code in the same codebase, there is technically an operator UI (client) version and a core API version that could be different in the future. There's also a data version that is used for migrations, and when we soon rewrite migrations, there will likely be a data version for each plugin rather than just one. So in summary, there are a lot of versions we should display, not just one.

Given the above, I'd vote for a more generic query that can have all this information (even if you only implement parts of it now). Maybe something like:

{
  systemInfo {
    apiVersion
    dataVersion
    mongoDBVersion
    pluginVersions {
      name
      version
    }
  }  
}

Where systemInfo is the query name and the rest are fields of the response.

Then I'd also vote for a full page or a side bar or popup where all of this info can be shown. Brent put plugin versions in the shop settings panel, but I think that was just because we needed a quick place to put them. But I will defer to @rymorgan for how best to display system info in the operator UI. He may have some designs already.

Regarding where to put the related server code, the core/core plugin makes sense, but you could alternatively create a new included/system-info plugin for it, which would allow someone to more easily replace it with their own custom plugin. I think I slightly lean toward that approach unless others have feelings either way.

@aldeed @chrispotter We'll work on a quick mock. I think it should be a link from the bottom of the page on shop settings. It should not be part of the navigation. The navigation is screen real estate we need for more prominent UI elements. The version information only needs to be displayed for select set of users and only when they need to find it.

@aldeed @chrispotter here are mocks for the solution above - a link on the Shop settings page that launches a modal with the versions information:

reaction-versions
reaction-versions-modal

I removed the Plugin versions expanding card, since that info would display in the modal.

@cassytaylor OK for this modal to scroll? Also does it makes sense to list out explicitly the core (27 currently) and included (22 currently) plugins? I believe these will typically all not have separate versions, they're just the same as the main reaction, and given there are so many, best to leave them out. We should probably only list out the custom set of plugins with their individual versions.

@focusaurus Yes, agreed only the custom plugins. Don't need the rest.

The UI should simply show all plugins that HAVE a version, which is what Brent's UI does now. Core and included plugins don't have their own versions right now, so they won't show. Designs LGTM

Done

Was this page helpful?
0 / 5 - 0 ratings

Related issues

spencern picture spencern  路  3Comments

coooolers picture coooolers  路  4Comments

mikemurray picture mikemurray  路  4Comments

focusaurus picture focusaurus  路  4Comments

ajporlante picture ajporlante  路  4Comments