Moonshine-IDE / Super.Human.Portal

Portal interface to show documentation for DominoVagrant and Super.Human.Installer
Other
0 stars 1 forks source link

Display Access Information About Installed Genesis Applications #13

Closed JoelProminic closed 1 year ago

JoelProminic commented 1 year ago

As discussed with @JustinProminic, we would like to display access information in the interface for applications installed from Genesis. This can include:

The proposed JSON format will be something like this:

      "apps": [
        {
          "installed": false,
          "access": {
            "description": "Placeholder description.",
            "links": [
              {
                "name": "Example Link",
                "type": "browser",
                "url": "/auth.nsf/XMLAuthenticationTest?OpenAgent"
              }
            ]
          },
          "AppID": "javaaddindemo",
          "DetailsURL": "https://genesis.directory/apps/javaaddindemo",
          "Label": "JavaAddin - Demo",
          "InstallCommand": "install javaaddindemo"
        },

I'll add more details as I continue working on this.

JoelProminic commented 1 year ago

I made a quick mockup to clarify what we want here: image

Note that we may have another type called database which will open the database with:

I'm hoping I can simplify this down to just a url property so that the functionality is the same between the browser and database types.

JoelProminic commented 1 year ago

@piotrzarzycki21, @JustinProminic would like to get some implementation of this interface working before the demo. The components are:

I'll plan to get you an agent with some placeholder configuration for this by the end of the day so that you can start testing. I thought we had done this earlier, but I didn't see any test agents linked.

JoelProminic commented 1 year ago

@piotrzarzycki21, I added an example entry called "Xample Addin" (I wanted it to appear at the end of the list so that it would be less obvious if we forget to remove it). The configuration looks like this:

    {
      "access": {
        "description": "This is not a real application.  It is being used for testing only, and will be removed at a later time.",
        "links": [
          {
            "name": "Example Link",
            "type": "browser",
            "url": "/SuperHumanPortal.nsf/XMLAuthenticationTest?OpenAgent"
          },
          {
            "name": "Example Database",
            "type": "database",
            "url": "notes://demo.startcloud.com/SuperHumanPortal.nsf"
          }
        ]
      },
      "AppID": "xampleaddin",
      "DetailsURL": "https://genesis.directory/apps/superhumanportal",
      "Installed": true,
      "Label": "Xample Addin",
      "InstallCommand": "install superhumanportal"
    }

You will need to import the agents with Project > Run on Vagrant to get the changes.

Note that the second link uses the notes:// protocol. Unfortunately, this will only work with the default server name - as a future task we will need to find a way to insert the local server.

I remember that I had brainstormed other link types with @JustinProminic and @dpastov, but I haven't found my notes for this. This should be enough to experiment with the interface updates, though.

JoelProminic commented 1 year ago

@dpastov, I updated the agent to copy the access node if it is found in the Genesis API data. If we need to change the format, that is fine at this point.

To make these links portable, I would select a couple conventions.

piotrzarzycki21 commented 1 year ago

Update:

https://github.com/Moonshine-IDE/Super.Human.Portal/actions/runs/4754037736

JoelProminic commented 1 year ago

@piotrzarzycki21, this is looking good so far: image

I tried:

  1. Load the application. The Installed Apps are populated
  2. Install an app. This does not update Installed Apps automatically, but the install is not finished at this point.
  3. Hit the Refresh button in Genesis Apps. Installed Apps is updated. With the current logic, I would expect the installed application to be available almost immediately.
piotrzarzycki21 commented 1 year ago

Update:

More updates over email. You can test build -> https://github.com/Moonshine-IDE/Super.Human.Portal/actions/runs/4758481829

JoelProminic commented 1 year ago

The update looks like this. I see the buttons are still pending: image

Note that the App Details link give a 404 for Xample Addin. I see this was a problem with the original URL (from the Super.Human.Portal addin). The link does work properly for DBSigner:

piotrzarzycki21 commented 1 year ago

@JoelProminic I have pushed version with links. I have decided merge as well everything to master as squashed commit. If for some reason we would like to get back to previous version it will be easy revert that one commit. Here is how it looks like:

Screenshot 2023-04-21 at 13 44 03

Release:

I should be available till 1PM your time today, but later on next I will check stuff in 6h or so.

Side note: We were checking Super Human Portal deployed so far in Super Human Installer and it looks like agents do not return what is installed. Maybe they there are old version of these agents there ?

JoelProminic commented 1 year ago

@piotrzarzycki21, I confirmed you update is working.

image

@dpastov added this link for the "Absence Mail" addin. Note that this is type=database, but we'll add new logic for this in a separate issue. For now, I'll clean up this on the agent side so that it will work like a browser link.

JoelProminic commented 1 year ago

@piotrzarzycki21, if the Installed flag is not working, then try updating my agents for this change.

I'll planning to make some quick changes for the type=database case, so watch for that. These updates will be included in my next database update for the Genesis superhumanportal addin.

piotrzarzycki21 commented 1 year ago

Joel but this was not my local problem with demo-1.1 vagrant, but problem with what was run from Super Human Installer. Trough demo-1.1 everything is working.

JoelProminic commented 1 year ago

Hmm, this is working properly for me with Super.Human.Installer. Note that you'll need to change gradle.properties to match your created server name. Maybe I should update the server to "" and rely on us using Project > Run on Vagrant for test deployment...

JoelProminic commented 1 year ago

Anyway, this is working as expected for browser links. I'll create a separate issue for database links. I'm going to push 0.1.4 in a bit.