Code Monkey home page Code Monkey logo

console-old's Introduction

Akash Console - Web UI deployment tool for Akash Network

Akash Console is an easy to use deployment tool for deploying workloads on to Akash Network providers. It is an alternative to the Command Line Interface (CLI). Akash Console can be run as a hosted service or locally (for development). Overclock Labs (creators of Akash Network) run an instance of Akash Console at https://console.akash.network/.

Contributing

If you would like to contribute to Akash Console, here are some ways to do so:

  1. Beta test the public facing app and report issues.
  2. Read up on Akash Console Strategy & Roadmap doc
  3. Run it locally (instructions below) to get acquainted with the application.
  4. Review the project board at https://github.com/orgs/akash-network/projects/2/ and comment on any issue that you wish to work on.
  5. Join the Akash Networks Clients SIG meetings to learn about other issues or features you can help build.
  6. Reach out to anil [at] akash.network to get access to our discord channel for Console OSS devs

NOTE: If you need AKT for deployment, share your Keplr wallet ID in the comment for the specific issue and we'll drop you 10AKT to test with (should let you test deploys 100s of times)

Running it locally

Please ensure you have the below set of dependencies installed on your workstation:

  • node 18+
  • yarn (1.22.19)
  • concurrently (7.2.2)
  • craco (6.4.4)

You can install dependencies by running

npm install -g yarn concurrently craco

Then checkout, build and run Console

git clone https://github.com/akash-network/console.git
cd console
yarn install
yarn dev
console-dev-setup.mp4

Note for MacOS

If you see errors regarding port 5000 being in use, this is due to AirPlay using the port. You can disable this service in the MacOS Sharing settings.

console-old's People

Contributors

amit0617 avatar andy108369 avatar anilmurty avatar arthuremma2 avatar avikt18 avatar c0deb1ind31 avatar crystaldime avatar gosuri avatar jonasgrilleres avatar jtary avatar kaushik-rishi avatar mspilimbergo avatar shumakmanohar avatar web-flow avatar yshsaxena avatar zjuuu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

console-old's Issues

Add pendo.initialize() for in-app designer support

Is your feature request related to a problem? Please describe.
Add support for Pendo In-App Designer

Describe the solution you'd like
In-app designer is the only way to tag new pages in pendo that it hasn't found by itself: https://support.pendo.io/hc/en-us/articles/360032292151-Tagging-and-viewing-Pages

We have the pendo snippet:
https://github.com/akash-network/console/blob/main/web/public/index.html#L78
But are missing the initialize code:

// This function creates anonymous visitor IDs in Pendo unless you change the visitor id field to use your app's values
// This function uses the placeholder 'ACCOUNT-UNIQUE-ID' value for account ID unless you change the account id field to use your app's values
// Call this function in your authentication promise handler or callback when your visitor and account id values are available
// Please use Strings, Numbers, or Bools for value types.
    pendo.initialize({
        visitor: {
            id:              'VISITOR-UNIQUE-ID'   // Required if user is logged in, default creates anonymous ID
            // email:        // Recommended if using Pendo Feedback, or NPS Email
            // full_name:    // Recommended if using Pendo Feedback
            // role:         // Optional

            // You can add any additional visitor level key-values here,
            // as long as it's not one of the above reserved names.
        },

        account: {
            id:           'ACCOUNT-UNIQUE-ID' // Required if using Pendo Feedback, default uses the value 'ACCOUNT-UNIQUE-ID'
            // name:         // Optional
            // is_paying:    // Recommended if using Pendo Feedback
            // monthly_value:// Recommended if using Pendo Feedback
            // planLevel:    // Optional
            // planPrice:    // Optional
            // creationDate: // Optional

            // You can add any additional account level key-values here,
            // as long as it's not one of the above reserved names.
        }
    });

workaround
A workaround is to manually initialize the in-app designer using Chrome devtools console:

  1. Open Console (the app) and then Chrome Dev Tools Console
  2. > pendo.initialize()
    That should launch the designer overlay on console

Support Shell Access

Is your feature request related to a problem? Please describe.
Being able to execute commands from a remote Shell interface is important for certain specific tasks, like being able to run ML/ AI workloads and tweak them sometimes or checking on files when running a static site or setting up a validator etc

Describe the solution you'd like
Detailed Spec TBD but this would essentially have to support CLI commands and be exposed in the below section of the UI:

Screenshot 2023-03-14 at 11 39 09 AM

Cert generation/ use flaky at times

Describe the bug
cert generation & validation isn't reliable

To Reproduce

  1. start with good cert and wallet connected, successful deploy
  2. remove all certs
  3. start new deploy - may see preflight say "valid cert". If you do, refresh and it'll say "invalid cert" and "invalid SDL"
  4. Go back a screen and come back. Now it'll only say "invalid cert". Click button to create and accept keplr. Stays in invalid cert.
  5. Restart from templates and back to pre-flight. Still "invalid cert".
  6. Refresh preflight check page - now "valid cert" but "invalid SDL" - go back a page and come back and now all good and can deploy.
  7. (I realize the "invalid SDL" can't be solved but cert one should be

Summary:

  • Revoking the cert isn’t reflected on the preflight till after a refresh
  • Refreshing on the preflight page loses the SDL (causing the invalid message)
  • Creating cert from the preflight page isn’t working properly (creating cert, but it’s not being activated).

Expected behavior
If there is a valid and current cert, it should pass the pre-flight check and deploy fine.
If there isn't a valid and current cert, it should block at pre-flight but let user create cert right there (and refresh page, showing pass) and successfully deploy.

Workaround
Create Cert from Pre-flight check page, refresh page and then go back one page and come back (to clear out the SDL invalid state)

Support IP Leases in Console

Since we're announcing GA of IP leases around the same time as Console GA - it'll be great to fast follow Console GA with support for IP leases. For information on how this works see https://docs.akash.network/other-resources/experimental/ip-leases

I believe we have to work on the following things:

  • Allow the user to request an IP endpoint when creating a deployment
    - Option to view/ add an IP endpoint. I think we need an "endpoint" configuration section that is on the same level as "services" and then we need a per service configuration of which ip endpoint the service is using (only one per service)
    - The endpoint section should have just one config item for now with two fields. One to specify the "kind" of endpoint - this will have on on selection for now "IP". The other to specify a name for the endpoint - this will be a text box where the user can specify the name for the endpoint like "myipendpoint"
    • The field will be populated based on the SDL template to start with but the user will also have the option to add/ remove endpoints similar to env variables. The user should not be allowed to remove an endpoint configuration until it has been removed from all the services. Alternatively, we can warn the user and as them if they want us to remove the IP endpoint from all the services for them.
  • Show IP address when viewing the lease details. We already have a field for this in the left side bar.
  • Show IP address in the endpoint (IP endpoint as well as http endpoint) - in the lease details as well as deployments list. We already have a place for this in the left side bar of the lease details page. For the deployments list, we should default to this when available.

Local build doesn't work per instructions

Describe the bug
yarn install and yarn dev does not work, requires running yarn build in the /proxy folder as well. Also docker-compose up throws errors as well.

Expected behavior
should be able to run locally with either yarn dev or docker-compose up. See logs below from both runs

Seems like it is a change to the package.json file (?)

anilmurty@Anils-MBP console % pwd
/Users/anilmurty/console
anilmurty@Anils-MBP console % ls
CODE_OF_CONDUCT.md	README.md		docker-compose.yml	package-lock.json	proxy			web
LICENSE.md		_docs			node_modules		package.json		scripts			yarn.lock
anilmurty@Anils-MBP console % node --version
v18.1.0
anilmurty@Anils-MBP console % docker-compose up
Starting console_proxy_1 ... done
Starting console_web_1   ... done
Attaching to console_proxy_1, console_web_1
proxy_1  | yarn run v1.22.19
web_1    | yarn run v1.22.19
proxy_1  | $ node ./src/index.js
web_1    | $ craco start --config ./craco.config.js
proxy_1  | node:internal/modules/cjs/loader:958
proxy_1  |   throw err;
proxy_1  |   ^
proxy_1  | 
proxy_1  | Error: Cannot find module '/usr/src/app/src/index.js'
proxy_1  |     at Module._resolveFilename (node:internal/modules/cjs/loader:955:15)
proxy_1  |     at Module._load (node:internal/modules/cjs/loader:803:27)
proxy_1  |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
proxy_1  |     at node:internal/main/run_main_module:18:47 {
proxy_1  |   code: 'MODULE_NOT_FOUND',
proxy_1  |   requireStack: []
proxy_1  | }
proxy_1  | 
proxy_1  | Node.js v18.9.0
proxy_1  | error Command failed with exit code 1.
proxy_1  | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
console_proxy_1 exited with code 1
web_1    | Browserslist: caniuse-lite is outdated. Please run:
web_1    |   npx update-browserslist-db@latest
web_1    |   Why you should do it regularly: https://github.com/browserslist/update-db#readme
web_1    | (node:36) [DEP_WEBPACK_DEV_SERVER_ON_AFTER_SETUP_MIDDLEWARE] DeprecationWarning: 'onAfterSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.
web_1    | (Use `node --trace-deprecation ...` to show where the warning was created)
web_1    | (node:36) [DEP_WEBPACK_DEV_SERVER_ON_BEFORE_SETUP_MIDDLEWARE] DeprecationWarning: 'onBeforeSetupMiddleware' option is deprecated. Please use the 'setupMiddlewares' option.
web_1    | Starting the development server...
web_1    | 
^CGracefully stopping... (press Ctrl+C again to force)
Stopping console_web_1   ... done
anilmurty@Anils-MBP console % 
anilmurty@Anils-MBP console % yarn install
yarn install v1.22.19
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > proxy > [email protected]" has unmet peer dependency "@types/node@*".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > @craco/[email protected]" has incorrect peer dependency "react-scripts@^4.0.0".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > @mui/[email protected]" has unmet peer dependency "@mui/system@^5.4.1".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > [email protected]" has unmet peer dependency "webpack@^4.5.0 || 5.x".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > [email protected]" has incorrect peer dependency "react@^17.0.0 || ^16.3.0 || ^15.5.4".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > [email protected]" has incorrect peer dependency "react-dom@^17.0.0 || ^16.3.0 || ^15.5.4".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > @testing-library/[email protected]" has unmet peer dependency "@testing-library/dom@>=7.21.4".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > [email protected]" has unmet peer dependency "postcss@^8.0.9".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > @emotion/react > @emotion/[email protected]" has unmet peer dependency "@babel/core@^7.0.0".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > react-json-view > [email protected]" has incorrect peer dependency "react@^15.0.2 || ^16.0.0 || ^17.0.0".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > @emotion/react > @emotion/babel-plugin > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > react-scripts > eslint-config-react-app > [email protected]" has unmet peer dependency "@babel/plugin-syntax-flow@^7.14.5".
warning "workspace-aggregator-0de88f37-41f6-4384-814f-c59d2692ffb7 > web > react-scripts > eslint-config-react-app > [email protected]" has unmet peer dependency "@babel/plugin-transform-react-jsx@^7.14.9".
warning Workspaces can only be enabled in private projects.
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
✨  Done in 47.06s.
anilmurty@Anils-MBP console % node --version
v18.1.0
anilmurty@Anils-MBP console % yarn dev
yarn run v1.22.19
$ concurrently --kill-others "yarn dev:web" "yarn dev:proxy"
$ yarn workspace web start
$ yarn workspace proxy start
$ craco start --config ./craco.config.js
$ node ./src/index.js
[1] node:internal/modules/cjs/loader:942
[1]   throw err;
[1]   ^
[1] 
[1] Error: Cannot find module '/Users/anilmurty/console/proxy/src/index.js'
[1]     at Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
[1]     at Module._load (node:internal/modules/cjs/loader:780:27)
[1]     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
[1]     at node:internal/main/run_main_module:17:47 {
[1]   code: 'MODULE_NOT_FOUND',
[1]   requireStack: []
[1] }
[1] 
[1] Node.js v18.1.0
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed.
[1] Exit code: 1
[1] Command: /Users/anilmurty/.nvm/versions/node/v18.1.0/bin/node
[1] Arguments: /opt/homebrew/Cellar/yarn/1.22.19/libexec/lib/cli.js start
[1] Directory: /Users/anilmurty/console/proxy
[1] Output:
[1] 
info Visit https://yarnpkg.com/en/docs/cli/workspace for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
[1] yarn dev:proxy exited with code 1
--> Sending SIGTERM to other processes..
[0] yarn dev:web exited with code 1
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
anilmurty@Anils-MBP console % 

Remove static atoms which rely on RPC

Describe the bug
Currently some queried data (such as provider info), is only pulled once when the application starts up. While this data is unlikely to change during the lifetime of the app, it creates problems if the RPC node changes (as will be possible after #7 is complete).

Expected behavior
This data should be pulled using react-query on the component that require it, not stored inside an atom.

string.charCodeAt is not a function

Describe the bug
After creating a deployment with persistent storage i receive this error: string.charCodeAt is not a function caught in CustomApp.tsx#105 originated in @protobufjs/utf8/index.js#18.
This happens because it tries to use charCodeAt on a Uint8Array.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'console.akash.network'
  2. Click on 'import SDL'
  3. Paste (Att. 1, See below)
  4. Click save&close + create deployment + 'Next' after preflight check
  5. See caught Error in console

Expected behavior
Create deployment for supplied sdl. (Att. 1)

Desktop (please complete the following information):

  • OS: Win11
  • Browser: Firefox
  • Version: 111.0

Additional context
I added a log to the utf8.length function and saw that it crashes after receiving a Uint8Array.
Please note that i removed the catch in CustomApp.tsx#105 and added a console.log to node_modules@protobufjs\utf8\index.js#16 to receive this console output:
grafik

Att. 1:

---
version: '2.0'
services:
  node:
    image: 'ghcr.io/akash-network/cosmos-omnibus:v0.3.26-juno-v13.0.0'
    expose:
      - port: 26657
        as: 80
        to:
          - global: true
      - port: 26656
        to:
          - global: true
    env:
      - MONIKER=node_1
      - CHAIN_JSON=https://raw.githubusercontent.com/cosmos/chain-registry/master/juno/chain.json
      - GENESIS_URL=https://github.com/CosmosContracts/mainnet/raw/main/juno-1/genesis.json
      - SNAPSHOT_URL=https://snapshots.polkachu.com/snapshots/juno/juno_7469035.tar.lz4
      - JUNOD_IAVL_CACHE_SIZE=781250
      - JUNOD_IAVL_DISABLE_FASTNODE=false
      - ADDRBOOK_URL=https://snapshots.polkachu.com/addrbook/juno/addrbook.json
    params:
      storage:
        data:
          mount: /root/.juno
          readOnly: false
profiles:
  compute:
    node:
      resources:
        cpu:
          units: 4
        memory:
          size: 32Gi
        storage:
          - size: 1Gi
          - name: data
            size: 400Gi
            attributes:
              persistent: true
              class: beta2
  placement:
    dcloud:
      pricing:
        node:
          denom: uakt
          amount: 1000
deployment:
  node:
    dcloud:
      profile: node
      count: 1

Custom dropdown component

The design uses a non-standard drop down.
Implement a custom component to replicate this styling.

Screen Shot 2023-01-31 at 4 36 59 PM

Add support for using custom RPC node and chain ID

Currently the RPC node and chain ID are hard-coded into the build file. To enable safer testing, it would be ideal if these values could be picked up from the ENV and overridden in the UI.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Additionally, the meta files could used to get the data for the chain: (eg: https://github.com/ovrclk/net/blob/master/mainnet/meta.json)

Filter auditor based on selection

Is your feature request related to a problem? Please describe.
We currently don't allow filtering on providers based on Auditor selection. The goal of this task is to add support for being able to select an auditor and then update the SDL and subsequently filter the list of providers based on the selected filter.

Describe the solution you'd like

When the user selects a template right now, the configuration screen has no auditor selection
Screen Shot 2023-02-23 at 9 54 54 AM

The goal is to add an option to select an auditor, apply the selection to the SDL and then include this in the bid request, so that only providers audited by the selected auditor are included in the bids

Screen Shot 2023-02-23 at 9 51 47 AM

Fix stale deployment data after create/delete deployment

Describe the bug
When you access the deployment list page, you'll see the data from the last fetch for several seconds before its updated. While this is ideal for general access, it can be confusing if you've just deleted or created a deployment as those changes won't be reflected right away. There is also no indication on the page that anything is happening.

To Reproduce
Steps to reproduce the behavior:

  1. Go to deployments
  2. Click on an active deployment
  3. Close the deployment
  4. Return to deployment list
  5. Observe stale data

Expected behavior
After any operation that would change the deployment list, the query data needs to be invalidated/updated before control is handed back to the user. This ensures that when the visit the deployment list next, they won't be presented with stale data.

Automatically activate valid certificates if available

Describe the bug
Currently, it's possible for the active certificate to be invalid, while having other valid certificates available. These can be activated from the settings page, but this is unintuitive. I would be much better UX for the active certificate to be updated automatically to a valid cert if one is available.

The bug aspect of this is the many ways in which a user can be told they have a valid cert, when they don't, or vice-versa.

Additional context
Currently the active cert is stored in an atom. This should be changed to a getter function that returns a cached value, and can update the value if it's appropriate to do so.

Note: This change would have require significant re-work of the various pages that use the certificate, so it could be time consuming and has a higher risk of introducing regressions. Time for development and testing should be planned accordingly.

Add Template for Kava RPC

We'd like to support being able to spin up a Kava RPC node via console. Three things need to happen for this:

Open Source Console

  • Replace the manifest generation code that was based on Cloudmos, with the new implementation going into AkashJS.

  • Update Readme to include "Getting started guide" that talks about how to build and run locally, how to obtain AKT and how to use a Sandbox network for testing

  • Fix bugs reported from QA after the above code changes are made:
    - Cert generation issue: https://github.com/ovrclk/console/issues/401
    - SDL inconsistency: https://github.com/ovrclk/console/issues/402

  • Rename this repo to "Console-Internal-Archive" and create a fresh (not forked) "Console" repo under https://github.com/akash-network with the same source code.

  • Move any open issues to the new repo

@jtary @boz - please update with anything I may have missed

UI/UX Provider Info

The initial (MVP) released version of Console lets the user click on "More Info" for a given provider to view details about the providers
Screen Shot 2023-02-23 at 10 02 40 AM

But the page that displays the provider info isn't well polished.
Screen Shot 2023-02-23 at 10 03 39 AM

The goal of this enhancement request is to implement better designed version as shown below. If you decide to work on this, you will have access to the figma design for this page

Screen Shot 2023-01-31 at 4 37 43 PM

Indicate in deploy details that a cert is missing

Describe the bug
When there's no vald cert, we can't pull lease status and other details but we don't tell the user that.

To Reproduce
Steps to reproduce the behavior:

  1. Have at least one active deployment
  2. Delete all certs
  3. View an active deployment detail screen

Expected behavior
User should be told that a valid certificate is necessary for lease details to be pulled (similar to cloudmos)

Screenshots

Screen.Recording.2022-11-07.at.5.31.19.PM.mov

Insufficient Funds Reported on Preflight Check (CORS issue)

Receive insufficient funds during preflight check when greater than 5AKT is available in connected wallet.

Screenshot below depicts example scenario in which preflight check fails due to Insufficient funds when the wallet holds approx 15AKT currently.

This appears to be a sporadic issue and have not been able to identify what circumstances may trigger issue.

image

Button to Generate New Certificates Generates an Infinite Number of Certificates When Not Connected to a Wallet

Describe the bug
On the settings page, generating new certificates while not connected to any wallet will run indefinitely and generate an excessive number of certificates.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Settings' page
  2. Click on the 'Generate New Certificate' button
  3. Click 'Create' in the modal
  4. This state will persist indefinitely:

image

Screenshots
See the error in the console when confirming the generation of certificates in the modal:
image

See hundreds of (possibly unnecessary) certificates created:
image

Expected behavior
I would expect the button to be disabled when the wallet is not connected (with a tooltip or an error message explaining why it is disabled):
image

Additional context
I propose this solution: akash-network/console#67. I would be happy to receive feedback on how to properly address this issue.

Storage subsystem for app data

We need a storage subsystem that can be used to store things like appnames etc
We currently store things like certificates in clear text - need this to be stored encrypted

Migrate workloads off of Lumen provider

Current properties that need to be migrated off the Lumen provider:

  • Akash.network Staging
  • Akash.network Prod
  • Ovrclk Website Staging
  • Ovrclk website Prod
  • Greg's blog
  • Console Proxy Staging
  • Console Web Staging

The above properties, with the exception of Greg's blog, are currently deployed with our website-payment wallet.

Target Provider Requirements:

Work involved with each property

  • Deploy each property+env to it's target provider
    • Enable ovrclk private image repository pulls
    • Create custom ingress for basic auth if needed
      • Enable Cloudflare SSO to replace basic auth (optional, but desired)
  • Update workflow files with new DSEQ
  • (prod deployments) Create cloudflare LB
    • Add each deployment replica as an origin
  • Update DNS (enable proxy)

Notes

  • Console Prod will be provisioned following the above requirements, no migration work needed

Cert generation is broken

Describe the bug
Generating a cert doesn't seem to work consistenty

To Reproduce

  1. Generate new cert, confirm "current"
  2. Refresh page, see banner saying no active cert
  3. Also, sometimes cert generation is requiring explicit activation - this should not be necessary

.

Introduce caching in CI/CD process

Is your feature request related to a problem? Please describe.
Implement caching in CI to speed up the build and CD process

Describe the solution you'd like
Use actions/cache@v3 to cache libs and skip yarn install if is not needed

Example

      - name: Cache dependencies
        id: cache-dependencies
        uses: actions/cache@v3
        with:
          path: ./node_modules
          key: modules-${{ hashFiles('yarn.lock') }}

      - name: Install dependencies
        if: steps.cache-dependencies.outputs.cache-hit != 'true'
        run: yarn --frozen-lockfile

      - name: Build the project
         ...

Show better errors when parsing SDLs into Manifest

Describe the bug
When clicking 'next' on the preflight check. If there are any parsing errors on the SDL, the action will just silently fail. The only indication that something has gone wrong is a notice in the app console.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new custom deployment using a malformed SDL (see below)
  2. Go through deployment as usual
  3. On preflight, click next
  4. Observe no effect

Expected behavior
Any parse error should show a clear message to the user, with an explanation of the problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Clone Deployment doesn't seem to work (v.0.1.249)

Describe the bug
Attempting to clone a deployment stays "spinning" forever in v.0.1.249

To Reproduce

  1. Deploy something
  2. Go to /my-deployments/
  3. Click "Clone Deployment"
  4. You'll see the prompt confirming if you want to do this action (with correct DSEQ)
  5. Accept and see it spin forever
console-clone-deploy.mp4

[OC MVP] Insiders Release (Soft Launch)

  • deploy flow works (for prod)
  • user facing documentation
  • proper channels for bug reports
  • uptime monitoring
  • analytics setup and working
  • final url up and running w/ password
  • system for release notes

Lease details missing port numbers

Describe the bug

To Reproduce
Steps to reproduce the behavior:

  1. Deploy an RPC node with Console
  2. Check lease details - notice no port numbers listed
  3. Repeat same with CLI or Cloudmos

Expected behavior
Expect to see port numbers in lease details the way we do with cloudmos and CLI

Screenshots

image

Validate and block on required/ custom parameters

Is your feature request related to a problem? Please describe.
Some SDLs (for example the kava node SDL in omnibus) require that the base parameter be updated with a use specific value (in case of kava node, it is the SNAPSHOT_URL). Since Console hides the params in the UI to reduce cognitive overload, it is easy for the user to miss updating them.

Describe the solution you'd like
Console should support validating required URLs and surfacing them up in the parameter editor step. Suggested design would be:

  1. Any missing, required parameters would be marked with asterisk
  2. The parameter editor fields that are normally minimized under the specific service name, would be open and exposed.
  3. A message would be shown at the top (right under the service name) indicating that the required parameters need to be filled in and a link to the SDL that contains comments would be provided.

Screenshot 2023-03-14 at 11 29 32 AM

Describe alternatives you've considered
Provide instructions to users to update and have them use the import function to fill in the custom SDL. While this is a workable solution, it doesn't result in the best "one-click" user experience we desire.

Preflight Checks Not Conducted on Custom SDL Use

Issue :
Appears console does not conduct preflight checks when a custom SDL is used.

Details:

-When a SDL is used from library - I.e. Fun & Games > Minesweeper - preflight checks are conducted and if no certificate is available the deployment will not proceed past preflight checks

-If a. custom SDL is used/imported - I.e. Import SDL > paste in custom SDL into editor pane - no preflight check occurs and if no cert is available this is not recognized until the deployment process proceeds thru order/bid generation, provider selection, and only when the manifest send attempt to provider is attempted is an error generated

Disconnecting Wallet Causes black screen on pre-flight check

Describe the bug
Disconnecting wallet results in a blank screen on the preflight check

To Reproduce
tested on version 0.1.249:

  1. Log into Console
  2. Confirm Wallet connected and confirm can deploy
  3. Hit "Disconnect wallet"
  4. Try deploying and you'll see an empty page on the preflight check.

Workaround
Go back to a page that displays and hit "connect wallet" and log in, then you'll be able to deploy

[OC MVP] UI/UX fixes for SDL editor

Describe the bug
Fix various discrepencies between design and implementation on SDL editor page.

ref: https://www.figma.com/file/5Ahxm6mEoupAk6gS7Cafvj/Overclock-Console-UI-REVIEW?node-id=313%3A2223&t=SZuinktOX4YEufIC-4

  • add radius to panels and correct drop-shadow
  • fix padding inside of buttons
  • missing secondary element groups (background frames)
  • active fields should be red
  • fix padding around buttons and headers (monaco editor)
  • image name should be above group selection

Make log window the same size as the side panel

The log window currently starts out really sim and then expands as logs come in, stopping at a (seemingly) random place about 2/3rd of the heigh of the side panel.

We should update this so that:

  1. The log window is fixed width (does not grow as the logs come in)
  2. The size should match the size of the side panel

Screen Shot 2023-02-23 at 5 37 07 PM

Clean up TSLint warning during build

Describe the bug
A few lining issues have cropped in involving unused variables. These should be cleaned up

To Reproduce
Steps to reproduce the behavior:

  1. Run yarn dev in the web directory

Screenshots

[0] Starting the development server...
[0] 
[0] Compiled with warnings.
[0] 
[0] [eslint] 
[0] src/components/Bid/index.tsx
[0]   Line 78:24:  Array.prototype.map() expects a value to be returned at the end of arrow function  array-callback-return
[0] 
[0] src/components/PlaceholderCard/index.tsx
[0]   Line 1:10:  'Button' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/components/SdlConfiguration/EnvironmentVariable.tsx
[0]   Line 1:29:  'FormikValues' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/components/SdlConfiguration/Ports.tsx
[0]   Line 4:23:  'Grid' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/components/WalletDeployButton/index.tsx
[0]   Line 122:7:  'Recommended' is assigned a value but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/hooks/useAppCache.ts
[0]   Line 1:8:  'React' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/hooks/useWallet.ts
[0]   Line 3:10:  'KeplrWallet' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/index.tsx
[0]   Line 10:10:  'ReactQueryDevtools' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/FeaturedApps.tsx
[0]   Line 11:7:  'LightIcon' is assigned a value but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/PreflightCheck.tsx
[0]   Line 8:41:   'loadActiveCertificate' is defined but never used  @typescript-eslint/no-unused-vars
[0]   Line 13:10:  'getKeplr' is defined but never used               @typescript-eslint/no-unused-vars
[0]   Line 18:17:  'setKeplr' is assigned a value but never used      @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/SelectApp.tsx
[0]   Line 3:18:  'Box' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/UpdateDeployment.tsx
[0]   Line 23:10:  'Manifest' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/style/mui-theme.ts
[0]   Line 1:23:  'PaletteOptions' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] Search for the keywords to learn more about each warning.
[0] To ignore, add // eslint-disable-next-line to the line before.
[0] 
[0] WARNING in [eslint] 
[0] src/components/Bid/index.tsx
[0]   Line 78:24:  Array.prototype.map() expects a value to be returned at the end of arrow function  array-callback-return
[0] 
[0] src/components/PlaceholderCard/index.tsx
[0]   Line 1:10:  'Button' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/components/SdlConfiguration/EnvironmentVariable.tsx
[0]   Line 1:29:  'FormikValues' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/components/SdlConfiguration/Ports.tsx
[0]   Line 4:23:  'Grid' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/components/WalletDeployButton/index.tsx
[0]   Line 122:7:  'Recommended' is assigned a value but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/hooks/useAppCache.ts
[0]   Line 1:8:  'React' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/hooks/useWallet.ts
[0]   Line 3:10:  'KeplrWallet' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/index.tsx
[0]   Line 10:10:  'ReactQueryDevtools' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/FeaturedApps.tsx
[0]   Line 11:7:  'LightIcon' is assigned a value but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/PreflightCheck.tsx
[0]   Line 8:41:   'loadActiveCertificate' is defined but never used  @typescript-eslint/no-unused-vars
[0]   Line 13:10:  'getKeplr' is defined but never used               @typescript-eslint/no-unused-vars
[0]   Line 18:17:  'setKeplr' is assigned a value but never used      @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/SelectApp.tsx
[0]   Line 3:18:  'Box' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/pages/UpdateDeployment.tsx
[0]   Line 23:10:  'Manifest' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] src/style/mui-theme.ts
[0]   Line 1:23:  'PaletteOptions' is defined but never used  @typescript-eslint/no-unused-vars
[0] 
[0] webpack compiled with 1 warning
[0] No issues found.

2 strokes on button "+ New Deployment"

Describe the bug
A clear and concise description of what the bug is.
2 outlines are shown when hovered over button "+ New Deployment".

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'console.akash.network'
  2. Hover on button " + New Deployment"
  3. See error

Expected behavior
Hover state should have only one stroke - red. without the gray.

Screenshots
Screenshot 2023-03-16 at 12 31 16

Desktop (please complete the following information):

  • OS: macos monterey 12.2
  • Browser chrome
  • Version Version 110.0.5481.177 .

Pre-flight check does not check cert validity sometimes

Describe the bug
Pre-flight check passes cert check even when the cert page says no valid and current cert

To Reproduce

  1. Remove/ revoke all certs
  2. Attempt deploy
  3. Check if the pre-flight check passes
  4. Deploy and end in manifest send failure because of "bad cert"

Expected behavior
pre-flight check should fail

Refresh portions of page, instead of whole page

Is your feature request related to a problem? Please describe.
There are pages where we don't need to refresh the whole page but we do - like when a user views the deployments detail page and when the user views the bids page

Describe the solution you'd like
When we refresh the providers bid page, we should just refresh the provider portion of the page - no need to refresh the whole page.
When we are trying to pull data for the deployments detail page, we initially load the empty fields and then refresh the whole page when the data comes in. There should be no need to load the side banner, the logos etc

All SDLs aren't working after code refactor

Describe the bug
Some SDLs are not returning bids in console (while they do in other tools)

To Reproduce

  1. Attempt deploy of Tetris
  2. Repeat same with minesweeper. no bids received

====
Scott Carruthers
20 hours ago
@anil

@Joseph Tary

  • I am not getting manifest send issues and was able to successfully deploy the Memory game via the console.
    However I attempted to deploy the Minesweeper SDL prior and was getting no bids.
    Overall results:
    -Deployment attempt #1 - Minesweeper - no provider bids received
    -Deployment attempt #2 - Minesweeper - no provider bids received
    -Deployment attempt #3 - Memory game - deployment successful
    ====

Add In-Product Help

SUMMARY:

  1. We would like to add in-product DETAILED HELP in THREE PLACES in the Console app. One is after the user clicks on the icon next to the "Get started with a ready template or upload your own SDL" line and the other for when the user clicks the "help" icon at the bottom of the left side bar (the "?")
  2. We would also like to add TOOLTIPS in FOUR places in the app

IN-PRODUCT DETAILED HELP IN SIDE BAR

  • FIRST ITEM. Help after "Get started with a ready template or upload your own SDL"
    Screen Shot 2022-10-24 at 1.27.09 PM.png
    Two changes requested here:
  1. Add "what is SDL?" label/ icon. Clicking it should pop open a side bar as shown below
    Screen Shot 2022-12-20 at 10 14 10 AM

  2. Display the following content in the side bar in the format indicated in the design above (ignore the orange comment icon)
    ======
    "SDL stands for “Stack Definition Language” and, as the name suggests, is a way for you (as a user or tenant) to specify what infrastructure stack you need for your application. The SDL file includes compute needs, locations, pricing and other things that help Akash determine the best provider(s) for you to run your application on.

To dig deeper into SDL and it's various sections, read this documentation

To see some samples SDL configurations, check out this awesome akash repository. Each directory in the awesome akash repository contains a sample "deploy.yaml" SDL file that deploys a specific application on to akash"!

======

  • SECOND ITEM: Clicking Help (?) on the left nav bar, should pop open the side bar with the following elements. The topy and hyperlinks are provided below (hyperlinks should open in new tabs)
    Screen Shot 2022-12-20 at 10 18 28 AM

Copy for the above design:

"Documentation": "Review detailed documentation" (hyperlink: https://docs.akash.network/guides/deploy)
"Discussion Forum": "View current and past community discussions" (https://github.com/orgs/akash-network/discussions)
"Discord Server": "Join the Discord server and ask any questions" (https://discord.akash.network/)
"Github Repository": "Check out the Akash Network Open Source code bases and community repository" (https://github.com/akash-network)

  • THIRD ITEM:
    Wallet Help (@aktdenis - can you please add link and screenshot to the figma designs for this? I know we worked on them together but I can't seem to locate it)
    Two places we will want to guide people: 1) On the top right "Wallet Connected" action and 2) On the "Connect Wallet" button in the deployment configuration screen (once we implement it).
    The help for this needs to be a detailed help in the right side nav bar. Text on the right side nav bar should be as follows:
    ==========
    "Deploying workloads on Akash Network requires you to pay in Akash Token ($AKT) using a Keplr Wallet.

To use Keplr wallet with Overclock Console, install the Keplr browser plugin for your browser.
There are two main ways to fund your Keplr Wallet with AKT:

  1. Purchase them from one of the exchanges listed below:
  1. If you have tokens of other Cosmos chains you can exchange them for AKT using the Osmosis App.

For a step-by-step instruction on all that, consult our documentation on topic here"

===========

TOOL TIP HELP

  • 1. Hover + tooltip after "Configure Services" here
    Screen Shot 2022-12-20 at 10 16 43 AM

Text: "This is where you can specify various parameters (one per service) that make up your SDL file. The number and name of the services will vary depending on the application/ SDL"

  • 2. Hover + tooltip help after "pricing" here:
    Screen Shot 2022-10-24 at 2.06.53 PM.png
    text: "The value you specify here is the maximum you would like to pay for the compute resources you are requesting for this service. uakt allows you to specify an amount that is a fraction of 1AKT"

  • 3. Hover+tooltip text after "Resources"
    Screen Shot 2022-12-20 at 10 16 58 AM
    Text: "This is where you specify how much CPU, memory and storage you would like to lease from the provider, to host your application."

  • 4. Deployment details screen

    • Hover tooltip help next to "Update Deployment" with text "This will update a limited set of fields in an existing/ active deployment. Compute resources and placement criteria are not updatable."
    • Hover tooltip help next to "Re-Deploy" with text "This will create a whole new replica of this deployment. The existing deployment will not be touched."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.