diff --git a/content/en/docs/apps/_index.md b/content/en/docs/apps/_index.md index 79ee03d8..db120d21 100644 --- a/content/en/docs/apps/_index.md +++ b/content/en/docs/apps/_index.md @@ -14,7 +14,7 @@ the Edgeworx Cloud platform to connect to one or more edge nodes. Apps are defin and can be deployed and updated by uploading those YAML files. Edgeworx nodes can be set up to interact with applications, process information, and move data between multiple apps. -![Application view in the Edgeworx Cloud platform]() +![Application view in the Edgeworx Cloud platform]() ## Application Components diff --git a/content/en/docs/apps/demo-apps/heart-rate.md b/content/en/docs/apps/demo-apps/heart-rate.md index 12e5a104..2a6a232d 100644 --- a/content/en/docs/apps/demo-apps/heart-rate.md +++ b/content/en/docs/apps/demo-apps/heart-rate.md @@ -37,7 +37,7 @@ follow the steps below: 5. Select the node(s) where you want it to run 6. Click `DEPLOY` -![Application Deployment Page](/images/12done.png) +![Application Deployment Page](/images/heart_rate_app_modal.png) ## See Application Results @@ -47,12 +47,12 @@ right of your screen. If you are not already seeing the app listed, click the `APPS` tab to see all of the apps in your current project. Click the app to access the app detail view. -![Project Details View](/images/13done.png) +![Project Details View](/images/deployed_app.png) From the app detail view, click the linked text under the `ports` column to navigate to the app output. -![Application Detail View](/images/14done.png) +![Application Detail View](/images/app_details.png) You should be brought to the Heart Rate Demo App. @@ -81,7 +81,7 @@ spec: data_label: Anonymous Person - name: viewer agent: - name: virtual-node-alexpc + name: nodename images: arm: 'edgeworx/heart-rate-demo-viewer:1.0.0' x86: 'edgeworx/heart-rate-demo-viewer:1.0.0' diff --git a/content/en/docs/cloud/_index.md b/content/en/docs/cloud/_index.md index f3319dc9..5237fa26 100644 --- a/content/en/docs/cloud/_index.md +++ b/content/en/docs/cloud/_index.md @@ -33,7 +33,7 @@ thoughtful REST APIs and opinionated (and extensible) YAML specs for software de integration with today’s most popular developer tools and workflows. If you know how to use Terraform or Kubernetes then you'll be immediately at home with Edgeworx Cloud. -![Projects Overview](/images/portal-projects-overivew-luckyspin.jpg) +![Projects Overview](/images/project_view_remote.png) ### Features diff --git a/content/en/docs/cloud/access-tokens.md b/content/en/docs/cloud/access-tokens.md index 2311a0c3..82f6e1c7 100644 --- a/content/en/docs/cloud/access-tokens.md +++ b/content/en/docs/cloud/access-tokens.md @@ -24,7 +24,7 @@ https://@api.edgeworx.io/v1/... ```text window.fetch( - "https://api.edgeworx.io/v1/account/cypress%40edgeworx.io", + "https://api.edgeworx.io/v1/account/penny.lim@edge-ample.io", { headers: { Authorization: "Basic " + window.btoa(":")} } @@ -43,14 +43,14 @@ edgectl --token account get Personal Access Tokens have the same privilege as the user they represent and have a lifecycle connected to the user account. -![Personal Access Tokens]() +![Personal Access Tokens]() ### Project Access Token [Project](../more/terminology#project) Access Tokens have full access to the project they represent and have a lifecycle connected to their project. Those are the token used in the [node register script](../more/terminology#node-install-script). -![Project Access Token]() +![Project Access Token]() ### Third Party Access Tokens diff --git a/content/en/docs/cloud/adding-nodes/add-node.md b/content/en/docs/cloud/adding-nodes/add-node.md index 7fd56a71..a4a0f90b 100644 --- a/content/en/docs/cloud/adding-nodes/add-node.md +++ b/content/en/docs/cloud/adding-nodes/add-node.md @@ -18,16 +18,16 @@ Add nodes using the Edgeworx Portal UI or terminal commands via [edgectl](../edg Log into [Edgeworx Cloud](https://cloud.edgeworx.io) and select the project you want to [add the node](../../more/terminology#node-register-script). -![Add Node](/images/add-node.png) +![Add Node](/images/project_view_empty_sandbox.png) Click the `+ ADD NODE` button. This will bring up a modal dialog which shows all the types of nodes you could add in your project. -![Register Node Script](/images/select-node-type.png) +![Register Node Script](/images/node_modal.png) Click on `EDGE NODE`. This will bring up a modal dialog which shows the one line command that must be run on your host for it to become a node in your edge project. -![Register Node Script](/images/add-edge-node.png) +![Register Node Script](/images/node_modal_script.png) Click the `COPY` button to copy the install command to your clipboard. @@ -40,7 +40,7 @@ The entire install process can take up to a few minutes (depending on the spec of your node, your internet connection speed, and other dependencies). -![Install Node](/images/edge-node-added.png) +![Install Node](/images/node_script_terminal.png) {{}} If you would like to choose a specific name for your node, use the @@ -53,7 +53,7 @@ as in the example below. Switch back to your project and if you have not done so yet, click the `DONE` button in the modal dialog. You should see your new node `ONLINE` in your nodes list. -![Node Added](/images/1st-node-added.png) +![Node Added](/images/project_view_sandbox_firstnode.png) ## Add a node using edgectl @@ -89,43 +89,43 @@ This is helpful if you wish to review or debug the installation procedure. As the register script runs, you will see it's progress as it install dependencies. ```bash -pi@raspberrypi:~ $ curl -s https://ecj_vfsdasdasdxaeaeh2kskkv301e9f0ip@api.edgeworx.io/v1/project/b7asdasdas-e3f-4808-a992-0811e077d783/node-register-script | sudo bash +pi@raspberrypi:~ $ curl -s https://ecj_usert0ken@api.edgeworx.io/v1/project/pr0jectuuid/node-register-script | sudo bash Installing Edgeworx Agent 1 Initializing ✔ Package manager updated 2 Performing preflight checks ▶ Checking for dependencies ✔ curl found - ✔ jq found - ✔ java found - ✔ docker found + ✘ jq not found + ✘ java not found + ✘ docker not found + ▶ Installing dependencies: jq + ✔ jq installed 3 Verifying node state - ✔ Detected Linux distribution: debian - ! Adding this node to a new project will leave a dangling node in the old project: neil/proj1/raspberrypi14511447b32329f25b77. - ! Make sure to migrate any microservices that were running on it, then delete it. E.g. `edgectl node remove neil/proj1/raspberrypi14511447b32329f25b77` - ✔ Node name raspberrypie1c0fe7939883f228946 is valid - ✔ Node name raspberrypie1c0fe7939883f228946 is available + ✔ Detected Linux distribution: ubuntu + ✔ Node name myfirstnode265dedacfa9961ab3b2a is valid + ✔ Node name myfirstnode265dedacfa9961ab3b2a is available ✔ Node is ready for installation 4 System finger print ▶ Shell ∙ Exec: /bin/bash ∙ User: root ▶ Host - ∙ Hostname: raspberrypi - ∙ OS Release: Debian GNU/Linux 11 (bullseye) - ∙ Kernel: Linux raspberrypi 5.10.94-v8+ #1518 SMP PREEMPT Thu Jan 27 14:55:19 GMT 2022 aarch64 GNU/Linux + ∙ Hostname: MyFirstNode + ∙ OS Release: Ubuntu 22.04.3 LTS + ∙ Kernel: Linux MyFirstNode 5.15.0-87-generic #97-Ubuntu SMP Mon Oct 2 21:09:21 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux ▶ System - ∙ CPUs: 4 - ∙ Memory: 5.5Gi - ∙ Storage: 9.5G/118G (9%) + ∙ CPUs: 1 + ∙ Memory: 130Mi + ∙ Storage: 1.7G/4.7G (35%) 5 Installing services - ▶ Edgeworx agent - ✔ Edgeworx Cloud Node created + ▶ Edgeworx Agent + ✔ Node registered with Edgeworx Cloud ✔ GPG found ✔ Edgeworx Agent installed ▶ Deviceplane ✔ Deviceplane Agent registered - ✔ Deviceplane Agent configured + ✔ Deviceplane Agent installed ▶ ioFog Agent ✔ Scripts downloaded ✔ Ready to install @@ -135,7 +135,7 @@ Installing Edgeworx Agent ✔ ioFog Agent registered ✔ ioFog Agent provisioned 6 SUCCESS - ✔ You can view this Agent in your Edgeworx Cloud project here: https://cloud.edgeworx.io/alice/edge-project-1/node/raspberrypie1c0fe7939883f228946 + ✔ You can view this Agent in your Edgeworx Cloud project here: https://cloud.darcy.ai/pennylim/sandbox/node/myfirstnode265dedacfa9961ab3b2a ✔ To uninstall, execute `sudo /opt/edgeworx/uninstall.sh` ``` diff --git a/content/en/docs/cloud/adding-nodes/virtual-node.md b/content/en/docs/cloud/adding-nodes/virtual-node.md index f9f452cf..40a222b2 100644 --- a/content/en/docs/cloud/adding-nodes/virtual-node.md +++ b/content/en/docs/cloud/adding-nodes/virtual-node.md @@ -28,16 +28,16 @@ You can still build locally using attached video and deploy to edge devices with Log into [Edgeworx Cloud](https://cloud.edgeworx.io) and select the project to which you want to add the node. -![Add Virtual Node](/images/add-node.png) +![Add Virtual Node](/images/project_view_empty_sandbox.png) Click the `+ ADD NODE` button. This will bring up a modal dialog which shows the different types of nodes you can add to your project. -![Portal: Select Virtual Node](/images/select-virtual-node.png) +![Portal: Select Virtual Node](/images/node_modal.png) Choose `VIRTUAL NODE` to get the instructions for adding a virtual node. -![Virtual Node Script](/images/add-virtual-node.png) +![Virtual Node Script](/images/node_modal_vn_script.png) Make sure you have the latest versions of [edgectl]({{}}) and [Multipass](https://multipass.run) installed. Click the `COPY` button to copy the command to @@ -50,7 +50,7 @@ Paste the command line that you copied in the previous step into your local term process can take up to a few minutes (depending on the spec of your machine, your internet connection speed, and other dependencies). -![Install Node](/images/virtual-node-added.png) +![Install Node](/images/virtual_node_script_terminal.png) {{}} If you would like to choose a specific name for your node, update the `--name="your-choice-of-name"` in the _edgectl create virtual-node_ command as seen in the above @@ -62,7 +62,7 @@ Switch back to Edgeworx Cloud in your browser and if you have not done so yet, c in the modal dialog. You should see your new node `ONLINE` in your Nodes list. If you do not see your node online, see troubleshooting (below) for more information. -![Node Added](/images/virtual-node-portal-view.png) +![Node Added](/images/project_view_sandbox_vn.png) You now have an edge node, let's start using it! @@ -92,6 +92,9 @@ You can use Multipass' flags in edgectl to control the amount of memory, CPU cor We recommend using `edgectl delete virtual-node` command to delete the Virtual Node after use, so that all the resources used are cleaned up properly i.e. Ubuntu VM. +{{}} Deleting Virtual Nodes in the Portal will require you delete the virtual machines manually where ever they are hosted. Using `edgectl delete virtual-node ` or `multipass delete ` on the host machine will delete the virtual machine. +{{}} + ## Troubleshooting
diff --git a/content/en/docs/cloud/deploy-an-app.md b/content/en/docs/cloud/deploy-an-app.md index 6c821928..9784cce7 100644 --- a/content/en/docs/cloud/deploy-an-app.md +++ b/content/en/docs/cloud/deploy-an-app.md @@ -21,13 +21,13 @@ of [how to structure app YAML]({{}}) for Ed 3. Click on `+ DEPLOY APP` 4. Drag n' drop a [YAML file]({{}}) into the box -![Application Deployment Page](/images/cloud-deploy-demo.png) +![Application Deployment Page](/images/app_select.png) ### View your Application Details Click on your app in the list of [applications](../more/terminology#application) to see its details. -![Application Detail View](/images/18done.png) +![Application Detail View](/images/app_details.png) The app details page contains information about its [microservices](../apps/microservices.md), routes, the nodes involved in running the microservices and its YAML Definition. @@ -80,7 +80,7 @@ e.g. `edgectl get app edgeworx-heart-rate --json`: (output abbreviated for clari "id": 1, "isActivated": true, "name": "edgeworx-heart-rate", - "projectUUID": "b75676cb-ae3f-4808-a992-0811e077d783", + "projectUUID": "pr0jectuuid", "routes": [ { "from": "monitor", @@ -98,8 +98,8 @@ Use `edgectl get microservices`: ```bash $ edgectl get microservices --app edgeworx-heart-rate NAME STATUS IMAGE NODE -monitor RUNNING edgeworx/healthcare-heart-rate:arm-v1 raspberrypie1c0fe7939883f228946 -viewer RUNNING edgeworx/healthcare-heart-rate-ui-arm:1.0.0 raspberrypie1c0fe7939883f228946 +monitor RUNNING edgeworx/healthcare-heart-rate:arm-v1 west-sf-rnd2346fadc292082f70ed0 +viewer RUNNING edgeworx/healthcare-heart-rate-ui-arm:1.0.0 west-sf-rnd2346fadc292082f70ed0 ``` To view the details of the `monitor` microservice in the `edgeworx-heart-rate` app: diff --git a/content/en/docs/cloud/node-remote-access.md b/content/en/docs/cloud/node-remote-access.md index 30e786e7..9c33ee12 100644 --- a/content/en/docs/cloud/node-remote-access.md +++ b/content/en/docs/cloud/node-remote-access.md @@ -15,12 +15,12 @@ and `ONLINE` and some knowledge of `SSH` commands. In the portal, click on any node to access the node's detail page. -![Node Detail Page](/images/7done.png) +![Node Detail Page](/images/app_details_empty.png) From here, click on the `SSH` button. This will open a new tab in your browser, after a small loading time, you'll have access to a terminal on your node. -![SSH Terminal Page]() +![SSH Terminal Page]() {{}}You can also access the SSH shortcut from the [project](/docs/more/terminology#project) overview page by clicking the 3 dots to the right of your node and selecting `SSH` from the drop down menu. diff --git a/content/en/docs/cloud/orgs-and-members.md b/content/en/docs/cloud/orgs-and-members.md index 04362b54..19b69cf4 100644 --- a/content/en/docs/cloud/orgs-and-members.md +++ b/content/en/docs/cloud/orgs-and-members.md @@ -30,9 +30,9 @@ you first sign up). You will then be guided through creation. The only required ![Org Create Screen](/images/orgs/org-create.png) -![Org Create Details Screen](/images/orgs/org-create-details.png) +![Org Create Details Screen](/images/create_org_modal.png) -![Org Details Screen](/images/orgs/org-details.png) +![Org Details Screen](/images/dashboard_org_details.png) ## Invite members @@ -62,11 +62,7 @@ members into the org by email. ![Org Member Invite Screen](/images/orgs/org-member-invite.png) If you need to invite more members, you can do so through the member details screen. -Navigate to the org page, and click invite to invite a new member by their email. - -![Org Details Screen](/images/orgs/org-details.png) - -![Org Member Invite Screen](/images/orgs/org-member-invite.png) +Navigate to the org page, and click `INVITE MEMBER` to invite a new member by their email. ## Accept invite @@ -104,7 +100,7 @@ UUID NAME PERSONAL ORG CREATED UTC SCOPES You should receive an email with directions on how to accept an org invite. Follow the instructions to create an account and accept the invite to the new org. -![Org Member Invite Email](/images/orgs/org-member-invite-email.png) +![Org Member Invite Email](/images/verification_email.png) ## Modify member scopes @@ -123,9 +119,9 @@ Updated scopes on account {bob} in org {15e23cf5-c4f7-4ac9-aedb-689231124f10|acm In the Cloud Portal, navigate to the org page, click the settings wheel next to the "members" header, and select the permission you want to change for a user. -![Org Member Details](/images/orgs/org-member-details.png) +![Org Member Details](/images/org_details_members.png) -![Change Member Permissions](/images/orgs/org-member-change-permissions.png) +![Change Member Permissions](/images/org_details_members_perm.png) ## Remove member @@ -143,6 +139,4 @@ edgectl delete member --org acme --account bob In the Cloud Portal, navigate to the org page, click the settings wheel next to the "members" header, and remove the user with the "delete" icon next to the user's email. -![Org Member Details](/images/orgs/org-member-details.png) - -![Remove Member](/images/orgs/org-member-remove.png) +![Remove Member](/images/org_member_delete_modal.png) diff --git a/content/en/docs/guides/deploy.md b/content/en/docs/guides/deploy.md index 655fb31f..81e1a789 100644 --- a/content/en/docs/guides/deploy.md +++ b/content/en/docs/guides/deploy.md @@ -4,7 +4,7 @@ linkTitle: "Deploy to the edge" weight: 250 --- -![Edgeworx CLoud Project Page](/images/guide4-deploy-cloud.jpg) +![Edgeworx CLoud Project Page](/images/project_view.png) ## What you will accomplish @@ -48,7 +48,7 @@ at [https://cloud.edgeworx.io](https://cloud.edgeworx.io). Once you are in your Edgeworx Cloud account, choose your Sandbox or a [project](/docs/more/terminology#project) nested in an Org, and [add your device as a node](/docs/cloud/adding-nodes/add-node.md) using the `+ ADD NODE` button. Follow the instructions in the pop-up window to continue with either a virtual node or physical device. -![Cloud Portal Plus Button](/images/guides/deploy-node-ui.gif) +![Cloud Portal Plus Button](/images/project_empty.png) ### Create your application YAML @@ -94,11 +94,11 @@ in the steps above. Now that you have all of the pieces, it's easy to deploy your application to your device. In the project where the target device is located, open the `APPS` tab and click `+ DEPLOY APP` and follow the instructions in the pop up. -![Deploy app animation](/images/guides/deploy-app-ui.gif) +![Deploy app animation](/images/app_select.png) In the pop-up window, choose the `UPLOAD YOUR APP` option and you can drag and drop your YAML file into that window or upload it. -![Deploy App](/images/guides/deployAnApp.PNG) +![Deploy App](/images/app_details.png) Edgeworx Cloud will notify you if there are issues with the YAML file or your app deployment. Once deployed, you can monitor the image or images being pulled and their status once it is running. diff --git a/content/en/docs/guides/start-portal.md b/content/en/docs/guides/start-portal.md index 25bb28c7..ebd1135e 100644 --- a/content/en/docs/guides/start-portal.md +++ b/content/en/docs/guides/start-portal.md @@ -12,33 +12,35 @@ Navigate to [Edgeworx Cloud](https://cloud.edgeworx.io/welcome) using your brows and Safari preferred- other browsers are not thoroughly maintained) and click the `Create Account` button. -![Edgeworx Cloud Welcome Page](/images/cloud-home.png) +![Edgeworx Cloud Welcome Page](/images/splash_page.png) Enter your unique username and click `NEXT`. -![Create Account]() +![Create Account]() On the "Welcome" page, choose an auth provider or provide your own email and password. Edgeworx Cloud uses Auth0 to provide secure account creation and access. -![Create Account Auth0]() - -![Verify Email]() +![Create Account Auth0]() ## Verify Your Email -You may need to check your spam folders. The email sender will be `no-reply@auth0user.net`. +You may need to check your spam folders. The email sender will be `support@edgeworx.io`. + +![Verify Email]() + +![Verify Email]() -![Email Verified]() +![Email Verified]() -## View Your Edgeworx Cloud edge project +## View Your Edgeworx Cloud project Once your account has been created, you can spin up a personal Sandbox or a fully featured 30-day free trial Org. -![Your Project is Being Created]() +![Your Project is Being Created]() Once your edge project is created, you will see your project overview page and be able to [add your first node!](/docs/cloud/adding-nodes). -![Project Overview](/images/1done.png). +![Project Overview](/images/sandbox.png) diff --git a/package-lock.json b/package-lock.json index eb4c1186..3c2d1e2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,12 +81,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -132,12 +133,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.21.3", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -260,9 +261,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -281,25 +282,25 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -429,30 +430,30 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -497,13 +498,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -511,9 +512,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1626,33 +1627,33 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1661,13 +1662,13 @@ } }, "node_modules/@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2269,9 +2270,9 @@ } }, "node_modules/auto-changelog/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5559,9 +5560,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -5970,9 +5971,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6314,9 +6315,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -6326,10 +6327,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -6854,9 +6859,9 @@ } }, "node_modules/read-pkg/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7198,9 +7203,9 @@ "dev": true }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -8005,9 +8010,9 @@ } }, "node_modules/stylelint/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -8045,9 +8050,9 @@ } }, "node_modules/stylelint/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8588,9 +8593,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" diff --git a/static/images/15done.png b/static/images/15done.png index 997941ac..017a2452 100644 Binary files a/static/images/15done.png and b/static/images/15done.png differ diff --git a/static/images/access_token_modal.png b/static/images/access_token_modal.png new file mode 100644 index 00000000..ca8e4f3c Binary files /dev/null and b/static/images/access_token_modal.png differ diff --git a/static/images/app_details.png b/static/images/app_details.png new file mode 100644 index 00000000..1130142b Binary files /dev/null and b/static/images/app_details.png differ diff --git a/static/images/app_details_empty.png b/static/images/app_details_empty.png new file mode 100644 index 00000000..fc71cbb8 Binary files /dev/null and b/static/images/app_details_empty.png differ diff --git a/static/images/app_select.png b/static/images/app_select.png new file mode 100644 index 00000000..3ff920c6 Binary files /dev/null and b/static/images/app_select.png differ diff --git a/static/images/apps_full.png b/static/images/apps_full.png new file mode 100644 index 00000000..a42091a1 Binary files /dev/null and b/static/images/apps_full.png differ diff --git a/static/images/auth0.png b/static/images/auth0.png new file mode 100644 index 00000000..77e2bcca Binary files /dev/null and b/static/images/auth0.png differ diff --git a/static/images/create_org_modal.png b/static/images/create_org_modal.png new file mode 100644 index 00000000..978512a0 Binary files /dev/null and b/static/images/create_org_modal.png differ diff --git a/static/images/dashboard_org_details.png b/static/images/dashboard_org_details.png new file mode 100644 index 00000000..81952feb Binary files /dev/null and b/static/images/dashboard_org_details.png differ diff --git a/static/images/deployed_app.png b/static/images/deployed_app.png new file mode 100644 index 00000000..58f1bfbf Binary files /dev/null and b/static/images/deployed_app.png differ diff --git a/static/images/heart_rate_app_modal.png b/static/images/heart_rate_app_modal.png new file mode 100644 index 00000000..641ca100 Binary files /dev/null and b/static/images/heart_rate_app_modal.png differ diff --git a/static/images/node_modal.png b/static/images/node_modal.png new file mode 100644 index 00000000..9bc4bbd4 Binary files /dev/null and b/static/images/node_modal.png differ diff --git a/static/images/node_modal_script.png b/static/images/node_modal_script.png new file mode 100644 index 00000000..c9b0521c Binary files /dev/null and b/static/images/node_modal_script.png differ diff --git a/static/images/node_modal_vn_script.png b/static/images/node_modal_vn_script.png new file mode 100644 index 00000000..4f2dfa00 Binary files /dev/null and b/static/images/node_modal_vn_script.png differ diff --git a/static/images/node_script_terminal.png b/static/images/node_script_terminal.png new file mode 100644 index 00000000..60755634 Binary files /dev/null and b/static/images/node_script_terminal.png differ diff --git a/static/images/org_details_members.png b/static/images/org_details_members.png new file mode 100644 index 00000000..ed97d5df Binary files /dev/null and b/static/images/org_details_members.png differ diff --git a/static/images/org_details_members_perm.png b/static/images/org_details_members_perm.png new file mode 100644 index 00000000..db38e19a Binary files /dev/null and b/static/images/org_details_members_perm.png differ diff --git a/static/images/org_member_delete_modal.png b/static/images/org_member_delete_modal.png new file mode 100644 index 00000000..aff68498 Binary files /dev/null and b/static/images/org_member_delete_modal.png differ diff --git a/static/images/project_access_token_modal.png b/static/images/project_access_token_modal.png new file mode 100644 index 00000000..64f3daa0 Binary files /dev/null and b/static/images/project_access_token_modal.png differ diff --git a/static/images/project_empty.png b/static/images/project_empty.png new file mode 100644 index 00000000..6e785ca3 Binary files /dev/null and b/static/images/project_empty.png differ diff --git a/static/images/project_view.png b/static/images/project_view.png new file mode 100644 index 00000000..56dbf580 Binary files /dev/null and b/static/images/project_view.png differ diff --git a/static/images/project_view_empty_sandbox.png b/static/images/project_view_empty_sandbox.png new file mode 100644 index 00000000..80a9aab1 Binary files /dev/null and b/static/images/project_view_empty_sandbox.png differ diff --git a/static/images/project_view_remote.png b/static/images/project_view_remote.png new file mode 100644 index 00000000..35c780d5 Binary files /dev/null and b/static/images/project_view_remote.png differ diff --git a/static/images/project_view_sandbox_firstnode.png b/static/images/project_view_sandbox_firstnode.png new file mode 100644 index 00000000..3bbe06b7 Binary files /dev/null and b/static/images/project_view_sandbox_firstnode.png differ diff --git a/static/images/project_view_sandbox_vn.png b/static/images/project_view_sandbox_vn.png new file mode 100644 index 00000000..72ea2c02 Binary files /dev/null and b/static/images/project_view_sandbox_vn.png differ diff --git a/static/images/sandbox.png b/static/images/sandbox.png new file mode 100644 index 00000000..9f0f018e Binary files /dev/null and b/static/images/sandbox.png differ diff --git a/static/images/sandbox_loading.png b/static/images/sandbox_loading.png new file mode 100644 index 00000000..ebc56ee4 Binary files /dev/null and b/static/images/sandbox_loading.png differ diff --git a/static/images/splash_page.png b/static/images/splash_page.png new file mode 100644 index 00000000..a1117f35 Binary files /dev/null and b/static/images/splash_page.png differ diff --git a/static/images/ssh_terminal_cropped.png b/static/images/ssh_terminal_cropped.png new file mode 100644 index 00000000..3af1e16b Binary files /dev/null and b/static/images/ssh_terminal_cropped.png differ diff --git a/static/images/username_modal.png b/static/images/username_modal.png new file mode 100644 index 00000000..ecceb1fe Binary files /dev/null and b/static/images/username_modal.png differ diff --git a/static/images/verification_email.png b/static/images/verification_email.png new file mode 100644 index 00000000..1b2c8142 Binary files /dev/null and b/static/images/verification_email.png differ diff --git a/static/images/verification_modal.png b/static/images/verification_modal.png new file mode 100644 index 00000000..05964576 Binary files /dev/null and b/static/images/verification_modal.png differ diff --git a/static/images/verified_modal.png b/static/images/verified_modal.png new file mode 100644 index 00000000..d48a5d6a Binary files /dev/null and b/static/images/verified_modal.png differ diff --git a/static/images/virtual_node_script_terminal.png b/static/images/virtual_node_script_terminal.png new file mode 100644 index 00000000..1b82de19 Binary files /dev/null and b/static/images/virtual_node_script_terminal.png differ diff --git a/static/verification_email.png b/static/verification_email.png new file mode 100644 index 00000000..1b2c8142 Binary files /dev/null and b/static/verification_email.png differ