From 5961f4170a79f6116a1e61f890f747d1bd265fa3 Mon Sep 17 00:00:00 2001 From: k3dz0r Date: Tue, 24 Dec 2024 16:16:34 -0300 Subject: [PATCH 1/2] CLI Created the CLI tab. Moved Configure SPCTL and CLI Commands to CLI. --- .../cli_commands/files/delete.md | 4 +- .../cli_commands/files/download.md | 4 +- docs/cli/cli_commands/files/index.md | 19 +++++++ .../cli_commands/files/upload.md | 14 ++--- .../{developers => cli}/cli_commands/index.md | 30 +++++------ .../cli_commands/offers/add-slot.md | 4 +- .../cli_commands/offers/delete-slot.md | 6 +-- .../cli_commands/offers/disable.md | 4 +- .../cli_commands/offers/download-content.md | 2 +- .../cli_commands/offers/enable.md | 4 +- .../cli_commands/offers/get-info.md | 2 +- .../cli_commands/offers/get-option.md | 2 +- .../cli_commands/offers/get-slot.md | 4 +- .../cli_commands/offers/get.md | 2 +- docs/cli/cli_commands/offers/index.md | 38 +++++++++++++ .../cli_commands/offers/list.md | 2 +- .../cli_commands/offers/update-slot.md | 8 +-- .../cli_commands/offers/update.md | 4 +- .../cli_commands/orders/cancel.md | 2 +- .../cli_commands/orders/download-result.md | 2 +- .../cli_commands/orders/get.md | 2 +- docs/cli/cli_commands/orders/index.md | 19 +++++++ .../cli_commands/orders/list.md | 2 +- .../cli_commands/orders/replenish-deposit.md | 2 +- .../cli_commands/providers/get.md | 2 +- docs/cli/cli_commands/providers/index.md | 17 ++++++ .../cli_commands/providers/list.md | 2 +- .../cli_commands/providers/update.md | 4 +- .../cli_commands/quotes/index.md | 2 +- .../cli_commands/quotes/validate.md | 2 +- .../cli_commands/solutions/generate-key.md | 4 +- .../cli_commands/solutions/index.md | 4 +- .../cli_commands/solutions/prepare.md | 8 +-- .../cli_commands/tokens/balance.md | 2 +- .../cli_commands/tokens/index.md | 4 +- .../cli_commands/tokens/request.md | 2 +- .../cli_commands/workflows/create.md | 18 +++---- .../cli_commands/workflows/generate-key.md | 4 +- .../cli_commands/workflows/index.md | 4 +- .../cli_guides/configure.md => cli/index.md} | 22 ++++---- docs/developers/cli_commands/files/index.md | 19 ------- docs/developers/cli_commands/offers/index.md | 38 ------------- docs/developers/cli_commands/orders/index.md | 19 ------- .../cli_commands/providers/index.md | 17 ------ docs/developers/cli_guides/index.md | 1 - .../developers/cli_guides/providers_offers.md | 54 +++++++++---------- docs/developers/cli_guides/quick_guide.md | 10 ++-- .../deployment_guides/blockchain/oracles.md | 10 ++-- .../deployment_guides/python/data.md | 2 +- .../deployment_guides/python/exec_result.md | 6 +-- .../deployment_guides/python/solution.md | 6 +-- .../deployment_guides/tunnels/develop.md | 2 +- .../deployment_guides/tunnels/manual_run.md | 8 +-- .../deployment_guides/tunnels/repo.md | 2 +- .../tunnels/static_content.md | 4 +- .../deployment_guides/tunnels/superchat.md | 2 +- docs/developers/index.md | 6 +-- .../marketplace_gui/confidentiality.md | 2 +- .../developers/marketplace_gui/first-steps.md | 2 +- docs/developers/marketplace_gui/index.md | 36 ++++++------- docs/developers/marketplace_gui/moderation.md | 2 +- .../developers/marketplace_gui/walkthrough.md | 2 +- docusaurus.config.js | 20 ++++++- 63 files changed, 282 insertions(+), 271 deletions(-) rename docs/{developers => cli}/cli_commands/files/delete.md (86%) rename docs/{developers => cli}/cli_commands/files/download.md (88%) create mode 100644 docs/cli/cli_commands/files/index.md rename docs/{developers => cli}/cli_commands/files/upload.md (82%) rename docs/{developers => cli}/cli_commands/index.md (68%) rename docs/{developers => cli}/cli_commands/offers/add-slot.md (94%) rename docs/{developers => cli}/cli_commands/offers/delete-slot.md (72%) rename docs/{developers => cli}/cli_commands/offers/disable.md (81%) rename docs/{developers => cli}/cli_commands/offers/download-content.md (91%) rename docs/{developers => cli}/cli_commands/offers/enable.md (81%) rename docs/{developers => cli}/cli_commands/offers/get-info.md (93%) rename docs/{developers => cli}/cli_commands/offers/get-option.md (91%) rename docs/{developers => cli}/cli_commands/offers/get-slot.md (84%) rename docs/{developers => cli}/cli_commands/offers/get.md (92%) create mode 100644 docs/cli/cli_commands/offers/index.md rename docs/{developers => cli}/cli_commands/offers/list.md (95%) rename docs/{developers => cli}/cli_commands/offers/update-slot.md (71%) rename docs/{developers => cli}/cli_commands/offers/update.md (96%) rename docs/{developers => cli}/cli_commands/orders/cancel.md (87%) rename docs/{developers => cli}/cli_commands/orders/download-result.md (92%) rename docs/{developers => cli}/cli_commands/orders/get.md (95%) create mode 100644 docs/cli/cli_commands/orders/index.md rename docs/{developers => cli}/cli_commands/orders/list.md (95%) rename docs/{developers => cli}/cli_commands/orders/replenish-deposit.md (91%) rename docs/{developers => cli}/cli_commands/providers/get.md (93%) create mode 100644 docs/cli/cli_commands/providers/index.md rename docs/{developers => cli}/cli_commands/providers/list.md (92%) rename docs/{developers => cli}/cli_commands/providers/update.md (91%) rename docs/{developers => cli}/cli_commands/quotes/index.md (74%) rename docs/{developers => cli}/cli_commands/quotes/validate.md (90%) rename docs/{developers => cli}/cli_commands/solutions/generate-key.md (80%) rename docs/{developers => cli}/cli_commands/solutions/index.md (59%) rename docs/{developers => cli}/cli_commands/solutions/prepare.md (87%) rename docs/{developers => cli}/cli_commands/tokens/balance.md (87%) rename docs/{developers => cli}/cli_commands/tokens/index.md (64%) rename docs/{developers => cli}/cli_commands/tokens/request.md (89%) rename docs/{developers => cli}/cli_commands/workflows/create.md (85%) rename docs/{developers => cli}/cli_commands/workflows/generate-key.md (72%) rename docs/{developers => cli}/cli_commands/workflows/index.md (57%) rename docs/{developers/cli_guides/configure.md => cli/index.md} (89%) delete mode 100644 docs/developers/cli_commands/files/index.md delete mode 100644 docs/developers/cli_commands/offers/index.md delete mode 100644 docs/developers/cli_commands/orders/index.md delete mode 100644 docs/developers/cli_commands/providers/index.md diff --git a/docs/developers/cli_commands/files/delete.md b/docs/cli/cli_commands/files/delete.md similarity index 86% rename from docs/developers/cli_commands/files/delete.md rename to docs/cli/cli_commands/files/delete.md index f97a8990..62f640a8 100644 --- a/docs/developers/cli_commands/files/delete.md +++ b/docs/cli/cli_commands/files/delete.md @@ -7,7 +7,7 @@ sidebar_label: "delete" Deletes a file in remote storage using the information in a resource JSON file. -The resource JSON file is created as a result of the [`files upload`](/developers/cli_commands/files/upload) command. +The resource JSON file is created as a result of the [`files upload`](/cli/cli_commands/files/upload) command. ## Syntax @@ -17,7 +17,7 @@ The resource JSON file is created as a result of the [`files upload`](/developer [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/files/download.md b/docs/cli/cli_commands/files/download.md similarity index 88% rename from docs/developers/cli_commands/files/download.md rename to docs/cli/cli_commands/files/download.md index 4775d17f..9753dfe4 100644 --- a/docs/developers/cli_commands/files/download.md +++ b/docs/cli/cli_commands/files/download.md @@ -7,7 +7,7 @@ sidebar_label: "download" Downloads a file from remote storage and decrypts it using the information in a resource JSON file. -The resource JSON file is created as a result of the [`files upload`](/developers/cli_commands/files/upload) command. +The resource JSON file is created as a result of the [`files upload`](/cli/cli_commands/files/upload) command. ## Syntax @@ -17,7 +17,7 @@ The resource JSON file is created as a result of the [`files upload`](/developer [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/cli/cli_commands/files/index.md b/docs/cli/cli_commands/files/index.md new file mode 100644 index 00000000..c7a31d81 --- /dev/null +++ b/docs/cli/cli_commands/files/index.md @@ -0,0 +1,19 @@ +--- +id: "cli-files" +title: "files" +slug: "/cli_commands/files" +sidebar_position: 3 + +--- + +This command group contains commands to manage files in third-party storage such as Storj. + +Most of these commands require a Storj account and SPCTL configured to use it. Refer to the [Set up Storj](/cli#set-up-storj) section to create a bucket and access grants and set up SPCTL. + +## Commands + +| **Command** | **Description** | +| :- | :- | +| [files delete](/cli/cli_commands/files/delete) | Deletes a file in remote storage. | +| [files download](/cli/cli_commands/files/download) | Downloads and decrypt a file from remote storage. | +| [files upload](/cli/cli_commands/files/upload) | Uploads a file to remote storage or creates a storage order. | \ No newline at end of file diff --git a/docs/developers/cli_commands/files/upload.md b/docs/cli/cli_commands/files/upload.md similarity index 82% rename from docs/developers/cli_commands/files/upload.md rename to docs/cli/cli_commands/files/upload.md index 39a1bc04..9c743f3b 100644 --- a/docs/developers/cli_commands/files/upload.md +++ b/docs/cli/cli_commands/files/upload.md @@ -9,15 +9,15 @@ Uploads a file to remote storage such as Storj. The primary purpose of this command is to make the uploading files available for download and execution. This is necessary in two cases: -- With the [`workflows create`](/developers/cli_commands/workflows/create) command, **users** can add the uploaded solution or data to an order instead of a Marketplace offer. In this case, a short-term storage period is enough. +- With the [`workflows create`](/cli/cli_commands/workflows/create) command, **users** can add the uploaded solution or data to an order instead of a Marketplace offer. In this case, a short-term storage period is enough. - Solution and data **providers** can store the contents of their offers to make them available for customers' orders. This requires a long-term storage period. Depending on the options, the command provides two ways to upload and store the files. Choose one that suits you better: -- **Uploads to storage directly.** This requires a Storj account and SPCTL [configured](/developers/cli_guides/configure#set-up-storj) to use it. The command will upload the file to the root directory of the bucket specified in the SPCTL configuration file. +- **Uploads to storage directly.** This requires a Storj account and SPCTL [configured](/cli#set-up-storj) to use it. The command will upload the file to the root directory of the bucket specified in the SPCTL configuration file. - **Creates a storage order using a Marketplace storage offer.** This does not require a Storj account but requires paying TEE tokens for the order according to the offer pricing and selected lease duration. -The input of the command is a TAR.GZ archive file. For solutions, this file is created by the [`solutions prepare`](/developers/cli_commands/solutions/prepare) command. For data, it is an archive containing the dataset files. +The input of the command is a TAR.GZ archive file. For solutions, this file is created by the [`solutions prepare`](/cli/cli_commands/solutions/prepare) command. For data, it is an archive containing the dataset files. The output of the command is a resource JSON file with the information for a compute provider on how to access the uploaded file. @@ -36,7 +36,7 @@ The output of the command is a resource JSON file with the information for a com [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments @@ -51,7 +51,7 @@ Read about the Super Protocol [command syntax](/developers/cli_commands#command- | `--filename ` | Desired name of the resulting file in storage. The default is a random string. | | `--output ` | Path to save the output resource JSON file. The default is `./resource.json`. | | `--skip-encryption` | Flag to skip file encryption before uploading. The default is `false`. | -| `--metadata ` | Path to a metadata file for adding fields to the resource JSON file. This file is generated by the [solutions prepare](/developers/cli_commands/solutions/prepare) command. | +| `--metadata ` | Path to a metadata file for adding fields to the resource JSON file. This file is generated by the [solutions prepare](/cli/cli_commands/solutions/prepare) command. | | `--max-concurrent ` | Maximum concurrent pieces to upload at once per transfer to limit the number of threads. Use only when dealing with a memory-constrained environment. | | `--storage ` | Option to use a storage offer. State the storage offer ID and the requirement slot ID, separated by a comma. | | `--min-rent-minutes ` | Storage lease period in minutes. Use this option together with `--storage`. The default is `60`. | @@ -74,7 +74,7 @@ The following command uploads the `content.tar.gz` file located in the SPCTL roo ./spctl files upload content.tar.gz ``` -To execute this command successfully, you need a Storj account and SPCTL configured to use it. Refer to the [Set up Storj](/developers/cli_guides/configure#set-up-storj) section to create a bucket and access grants and set up SPCTL. +To execute this command successfully, you need a Storj account and SPCTL configured to use it. Refer to the [Set up Storj](/cli#set-up-storj) section to create a bucket and access grants and set up SPCTL. ### Example 2. Upload by creating a storage order @@ -89,7 +89,7 @@ Where: - `--storage 25,33`: create a storage order using the [Storj DCS Offer](https://marketplace.superprotocol.com/storage?offer=offerId%3D25&tab=pricing) (offer ID: 25) and the requirement slot with ID 33. - `--min-rent-minutes 120`: set the lease period for 120 minutes. -Since the `--storage` option is set, the command does not require a Storj account. However, when the lease period is over, the content will become unavailable unless you [replenish the order deposit](/developers/cli_commands/orders/replenish-deposit). +Since the `--storage` option is set, the command does not require a Storj account. However, when the lease period is over, the content will become unavailable unless you [replenish the order deposit](/cli/cli_commands/orders/replenish-deposit). ### Example 3. Use additional options diff --git a/docs/developers/cli_commands/index.md b/docs/cli/cli_commands/index.md similarity index 68% rename from docs/developers/cli_commands/index.md rename to docs/cli/cli_commands/index.md index 4fc02ad6..6aa08e12 100644 --- a/docs/developers/cli_commands/index.md +++ b/docs/cli/cli_commands/index.md @@ -2,25 +2,25 @@ id: "cli_commands" title: "CLI Commands" slug: "/cli_commands" -sidebar_position: 7 +sidebar_position: 2 --- This section contains the list of commands for the Super Protocol CLI tool SPCTL. -[Configure SPCTL](/developers/cli_guides/configure) before using these commands. Be mindful of the [testnet limitations](/marketplace/limitations) when using the Marketplace CLI and GUI. +[Configure SPCTL](/cli) before using these commands. Be mindful of the [testnet limitations](/marketplace/limitations) when using the Marketplace CLI and GUI. ## Command groups | **Group** | **Description** | | :- | :- | -| [tokens](/developers/cli_commands/tokens) | Receive test TEE and POL test tokens; **testnet only**. | -| [solutions](/developers/cli_commands/solutions) | Prepare a solution for deployment. | -| [files](/developers/cli_commands/files) | Manage files in decentralized storage. | -| [workflows](/developers/cli_commands/workflows) | Create a new order. | -| [orders](/developers/cli_commands/orders) | Manage your orders. | -| [offers](/developers/cli_commands/offers) | View and manage Marketplace offers. | -| [providers](/developers/cli_commands/providers) | View and manage offer providers. | -| [quotes](/developers/cli_commands/quotes) | Verify the authenticity and integrity of a Trusted Execution Environment. | +| [tokens](/cli/cli_commands/tokens) | Receive test TEE and POL test tokens; **testnet only**. | +| [solutions](/cli/cli_commands/solutions) | Prepare a solution for deployment. | +| [files](/cli/cli_commands/files) | Manage files in decentralized storage. | +| [workflows](/cli/cli_commands/workflows) | Create a new order. | +| [orders](/cli/cli_commands/orders) | Manage your orders. | +| [offers](/cli/cli_commands/offers) | View and manage Marketplace offers. | +| [providers](/cli/cli_commands/providers) | View and manage offer providers. | +| [quotes](/cli/cli_commands/quotes) | Verify the authenticity and integrity of a Trusted Execution Environment. | ## Command syntax @@ -30,13 +30,13 @@ SPCTL uses the following syntax format for commands: ./spctl ``` -_Command groups_ contain functionally related commands. Check the complete list of command groups in the [previous section](/developers/cli_commands#command-groups). +_Command groups_ contain functionally related commands. Check the complete list of command groups in the [previous section](/cli/cli_commands#command-groups). _Commands_ perform a specific function, like placing an order or showing the list of providers. -For example, the [`tokens`](/developers/cli_commands/tokens) command group includes the following commands: -- [`balance`](/developers/cli_commands/tokens/balance): checks the balance -- [`request`](/developers/cli_commands/tokens/request): requests testnet tokens. +For example, the [`tokens`](/cli/cli_commands/tokens) command group includes the following commands: +- [`balance`](/cli/cli_commands/tokens/balance): checks the balance +- [`request`](/cli/cli_commands/tokens/request): requests testnet tokens. _Options_ modify the command behavior and are prefixed by double hyphen `--`. For example, `--help` is an option that displays help information for a command. @@ -56,7 +56,7 @@ Never include these special characters, except backslash `\`, in the final comma ### Example -The following is a mandatory option `--solution` of the [`workflows create`](/developers/cli_commands/workflows/create) command: +The following is a mandatory option `--solution` of the [`workflows create`](/cli/cli_commands/workflows/create) command: ``` --solution {,[] | } diff --git a/docs/developers/cli_commands/offers/add-slot.md b/docs/cli/cli_commands/offers/add-slot.md similarity index 94% rename from docs/developers/cli_commands/offers/add-slot.md rename to docs/cli/cli_commands/offers/add-slot.md index 238ad584..6a130b21 100644 --- a/docs/developers/cli_commands/offers/add-slot.md +++ b/docs/cli/cli_commands/offers/add-slot.md @@ -10,7 +10,7 @@ Creates an additional [requirement slot](/fundamentals/slots#requirements) in an Refer to the [Providers and Offers](/developers/cli_guides/providers_offers#offer-requirements) guide to create the initial offer requirements. -**Important:** This command requires SPCTL with the [provider configuration file](/developers/cli_guides/configure#for-offer-providers). +**Important:** This command requires SPCTL with the [provider configuration file](/cli#for-offer-providers). ## Syntax @@ -22,7 +22,7 @@ Refer to the [Providers and Offers](/developers/cli_guides/providers_offers#offe [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/delete-slot.md b/docs/cli/cli_commands/offers/delete-slot.md similarity index 72% rename from docs/developers/cli_commands/offers/delete-slot.md rename to docs/cli/cli_commands/offers/delete-slot.md index e06c9610..a8a56e94 100644 --- a/docs/developers/cli_commands/offers/delete-slot.md +++ b/docs/cli/cli_commands/offers/delete-slot.md @@ -8,9 +8,9 @@ sidebar_position: 12 Deletes a [requirement slot](/fundamentals/slots#requirements) in an [offer](/fundamentals/offers). -**Important:** This command requires SPCTL with the [provider configuration file](/developers/cli_guides/configure#for-offer-providers). +**Important:** This command requires SPCTL with the [provider configuration file](/cli#for-offer-providers). -Use the [`offers get`](/developers/cli_commands/offers/offers/get) command to get the IDs of all slots in an offer. Use the [`offers get-slot`](/developers/cli_commands/offers/slots/get-slot) command to get additional information on a slot. +Use the [`offers get`](/cli/cli_commands/offers/offers/get) command to get the IDs of all slots in an offer. Use the [`offers get-slot`](/cli/cli_commands/offers/slots/get-slot) command to get additional information on a slot. ## Syntax @@ -22,7 +22,7 @@ Use the [`offers get`](/developers/cli_commands/offers/offers/get) command to ge [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/disable.md b/docs/cli/cli_commands/offers/disable.md similarity index 81% rename from docs/developers/cli_commands/offers/disable.md rename to docs/cli/cli_commands/offers/disable.md index 7258b2e9..565b47a1 100644 --- a/docs/developers/cli_commands/offers/disable.md +++ b/docs/cli/cli_commands/offers/disable.md @@ -8,7 +8,7 @@ sidebar_position: 7 Disables an existing enabled offer. -**Important:** This command requires SPCTL with the [provider configuration file](/developers/cli_guides/configure#for-offer-providers). +**Important:** This command requires SPCTL with the [provider configuration file](/cli#for-offer-providers). ## Syntax @@ -18,7 +18,7 @@ Disables an existing enabled offer. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/download-content.md b/docs/cli/cli_commands/offers/download-content.md similarity index 91% rename from docs/developers/cli_commands/offers/download-content.md rename to docs/cli/cli_commands/offers/download-content.md index cffc3351..18675600 100644 --- a/docs/developers/cli_commands/offers/download-content.md +++ b/docs/cli/cli_commands/offers/download-content.md @@ -19,7 +19,7 @@ The command only works with offers that allow this operation. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/enable.md b/docs/cli/cli_commands/offers/enable.md similarity index 81% rename from docs/developers/cli_commands/offers/enable.md rename to docs/cli/cli_commands/offers/enable.md index de69cb71..1a5ebcfc 100644 --- a/docs/developers/cli_commands/offers/enable.md +++ b/docs/cli/cli_commands/offers/enable.md @@ -8,7 +8,7 @@ sidebar_position: 8 Enables an existing disabled offer. -**Important:** This command requires SPCTL with the [provider configuration file](/developers/cli_guides/configure#for-offer-providers). +**Important:** This command requires SPCTL with the [provider configuration file](/cli#for-offer-providers). ## Syntax @@ -18,7 +18,7 @@ Enables an existing disabled offer. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/get-info.md b/docs/cli/cli_commands/offers/get-info.md similarity index 93% rename from docs/developers/cli_commands/offers/get-info.md rename to docs/cli/cli_commands/offers/get-info.md index 8f35a221..9b64586c 100644 --- a/docs/developers/cli_commands/offers/get-info.md +++ b/docs/cli/cli_commands/offers/get-info.md @@ -17,7 +17,7 @@ Displays the information on an offer as stored on the blockchain. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/get-option.md b/docs/cli/cli_commands/offers/get-option.md similarity index 91% rename from docs/developers/cli_commands/offers/get-option.md rename to docs/cli/cli_commands/offers/get-option.md index b6e016a6..ea089bcd 100644 --- a/docs/developers/cli_commands/offers/get-option.md +++ b/docs/cli/cli_commands/offers/get-option.md @@ -18,7 +18,7 @@ Displays the information on a [configuration option](/fundamentals/slots) of a c [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Options diff --git a/docs/developers/cli_commands/offers/get-slot.md b/docs/cli/cli_commands/offers/get-slot.md similarity index 84% rename from docs/developers/cli_commands/offers/get-slot.md rename to docs/cli/cli_commands/offers/get-slot.md index c3e26bc0..c00605f7 100644 --- a/docs/developers/cli_commands/offers/get-slot.md +++ b/docs/cli/cli_commands/offers/get-slot.md @@ -8,7 +8,7 @@ sidebar_position: 13 Displays the information for a [requirement slot](/fundamentals/slots#requirements) in an offer. -Use the [`offers get`](/developers/cli_commands/offers/offers/get) command to get the IDs of all slots in an offer. +Use the [`offers get`](/cli/cli_commands/offers/offers/get) command to get the IDs of all slots in an offer. ## Syntax @@ -21,7 +21,7 @@ Use the [`offers get`](/developers/cli_commands/offers/offers/get) command to ge [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/get.md b/docs/cli/cli_commands/offers/get.md similarity index 92% rename from docs/developers/cli_commands/offers/get.md rename to docs/cli/cli_commands/offers/get.md index f2fa9cea..6cf5991a 100644 --- a/docs/developers/cli_commands/offers/get.md +++ b/docs/cli/cli_commands/offers/get.md @@ -17,7 +17,7 @@ Displays information on an offer. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/cli/cli_commands/offers/index.md b/docs/cli/cli_commands/offers/index.md new file mode 100644 index 00000000..fad2da67 --- /dev/null +++ b/docs/cli/cli_commands/offers/index.md @@ -0,0 +1,38 @@ +--- +id: "cli-commands-offers" +title: "offers" +slug: "/cli_commands/offers" +sidebar_position: 6 + +--- + +This command group contains commands to view and manage [offers](/fundamentals/offers). Note that [Marketplace GUI](/developers/marketplace) can be more convenient to use than most of these commands. + +## Commands + +| **Command** | **Description** | +| :- | :- | +| [offers list](/cli/cli_commands/offers/offers/list) | Lists available offers. | +| [offers get](/cli/cli_commands/offers/offers/get) | Displays information on an offer. | +| [offers get-info](/cli/cli_commands/offers/offers/get-info) | Displays information on an offer as stored on the blockchain. | +| [offers download-content](/cli/cli_commands/offers/offers/download-content) | Downloads the content of an offer. | +| [offers update](/cli/cli_commands/offers/offers/update) | Updates an offer. | +| [offers disable](/cli/cli_commands/offers/offers/disable) | Disables an enabled offer. | +| [offers enable](/cli/cli_commands/offers/offers/enable) | Enables a disabled offer. | + +### Slot-related commands + +| **Command** | **Description** | +| :- | :- | +| [offers add-slot](/cli/cli_commands/offers/slots/add-slot) | Adds a new slot to an existing offer. | +| [offers update-slot](/cli/cli_commands/offers/slots/update-slot) | Updates a slot. | +| [offers delete-slot](/cli/cli_commands/offers/slots/delete-slot) | Deletes a slot. | +| [offers get-slot](/cli/cli_commands/offers/slots/get-slot) | Displays information on a slot. | + +### Option-related command + +This command only works with compute offers. + +| **Command** | **Description** | +| :- | :- | +| [offers get-option](/cli/cli_commands/offers/options/get-option) | Displays information for an option. | diff --git a/docs/developers/cli_commands/offers/list.md b/docs/cli/cli_commands/offers/list.md similarity index 95% rename from docs/developers/cli_commands/offers/list.md rename to docs/cli/cli_commands/offers/list.md index 02a0da23..cf54ceae 100644 --- a/docs/developers/cli_commands/offers/list.md +++ b/docs/cli/cli_commands/offers/list.md @@ -20,7 +20,7 @@ Displays a list of available offers. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/update-slot.md b/docs/cli/cli_commands/offers/update-slot.md similarity index 71% rename from docs/developers/cli_commands/offers/update-slot.md rename to docs/cli/cli_commands/offers/update-slot.md index 04969aee..c70bb92d 100644 --- a/docs/developers/cli_commands/offers/update-slot.md +++ b/docs/cli/cli_commands/offers/update-slot.md @@ -8,11 +8,11 @@ sidebar_position: 11 Updates a [requirement slot](/fundamentals/slots#requirements) in an existing offer using the information in a JSON file. -**Important:** This command requires SPCTL with the [provider configuration file](/developers/cli_guides/configure#for-offer-providers). +**Important:** This command requires SPCTL with the [provider configuration file](/cli#for-offer-providers). -Use the [`offers get`](/developers/cli_commands/offers/offers/get) command to get the IDs of all slots in an offer. Use the [`offers get-slot`](/developers/cli_commands/offers/slots/get-slot) command to get additional information on a slot. +Use the [`offers get`](/cli/cli_commands/offers/offers/get) command to get the IDs of all slots in an offer. Use the [`offers get-slot`](/cli/cli_commands/offers/slots/get-slot) command to get additional information on a slot. -Refer to [Offer requirements](/developers/cli_guides/providers_offers#offer-requirements) to create the initial offer requirements. Refer to the description of the [`offers add-slot`](/developers/cli_commands/offers/slots/add-slot) command for the JSON file format and object descriptions. +Refer to [Offer requirements](/developers/cli_guides/providers_offers#offer-requirements) to create the initial offer requirements. Refer to the description of the [`offers add-slot`](/cli/cli_commands/offers/slots/add-slot) command for the JSON file format and object descriptions. ## Syntax @@ -25,7 +25,7 @@ Refer to [Offer requirements](/developers/cli_guides/providers_offers#offer-requ [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/offers/update.md b/docs/cli/cli_commands/offers/update.md similarity index 96% rename from docs/developers/cli_commands/offers/update.md rename to docs/cli/cli_commands/offers/update.md index 0928de76..606345a3 100644 --- a/docs/developers/cli_commands/offers/update.md +++ b/docs/cli/cli_commands/offers/update.md @@ -10,7 +10,7 @@ Updates information of an existing offer using an offer description JSON file. Refer to the [Providers and Offers](/developers/cli_guides/providers_offers#offer-description) guide to create the initial offer description. -**Important:** This command requires SPCTL with the [provider configuration file](/developers/cli_guides/configure#for-offer-providers). +**Important:** This command requires SPCTL with the [provider configuration file](/cli#for-offer-providers). ## Syntax @@ -21,7 +21,7 @@ Refer to the [Providers and Offers](/developers/cli_guides/providers_offers#offe [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/orders/cancel.md b/docs/cli/cli_commands/orders/cancel.md similarity index 87% rename from docs/developers/cli_commands/orders/cancel.md rename to docs/cli/cli_commands/orders/cancel.md index c441c042..33c5dbff 100644 --- a/docs/developers/cli_commands/orders/cancel.md +++ b/docs/cli/cli_commands/orders/cancel.md @@ -15,7 +15,7 @@ Cancels an order. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/orders/download-result.md b/docs/cli/cli_commands/orders/download-result.md similarity index 92% rename from docs/developers/cli_commands/orders/download-result.md rename to docs/cli/cli_commands/orders/download-result.md index 1abf8b57..191e81c6 100644 --- a/docs/developers/cli_commands/orders/download-result.md +++ b/docs/cli/cli_commands/orders/download-result.md @@ -23,7 +23,7 @@ If the order status is `Error`, the result archive will contain a text file with [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/orders/get.md b/docs/cli/cli_commands/orders/get.md similarity index 95% rename from docs/developers/cli_commands/orders/get.md rename to docs/cli/cli_commands/orders/get.md index 58f1f979..efd336e4 100644 --- a/docs/developers/cli_commands/orders/get.md +++ b/docs/cli/cli_commands/orders/get.md @@ -20,7 +20,7 @@ This command allows you to check any order, not only yours. The information on a [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/cli/cli_commands/orders/index.md b/docs/cli/cli_commands/orders/index.md new file mode 100644 index 00000000..0637c7fe --- /dev/null +++ b/docs/cli/cli_commands/orders/index.md @@ -0,0 +1,19 @@ +--- +id: "cli-orders" +title: "orders" +slug: "/cli_commands/orders" +sidebar_position: 5 + +--- + +This command group contains commands to track and manage [orders](/fundamentals/orders). Note that [Marketplace GUI](/developers/marketplace) can be more convenient to use than most of the commands in this group. + +## Commands + +| **Command** | **Description** | +| :- | :- | +| [orders cancel](/cli/cli_commands/orders/cancel) | Cancels an order. | +| [orders download-result](/cli/cli_commands/orders/download-result) | Downloads the order result. | +| [orders get](/cli/cli_commands/orders/get) | Displays information on an order. | +| [orders list](/cli/cli_commands/orders/list) | Lists orders. | +| [orders replenish-deposit](/cli/cli_commands/orders/replenish-deposit) | Replenishes the order deposit. | \ No newline at end of file diff --git a/docs/developers/cli_commands/orders/list.md b/docs/cli/cli_commands/orders/list.md similarity index 95% rename from docs/developers/cli_commands/orders/list.md rename to docs/cli/cli_commands/orders/list.md index 39bc3eb9..a9ea65ea 100644 --- a/docs/developers/cli_commands/orders/list.md +++ b/docs/cli/cli_commands/orders/list.md @@ -23,7 +23,7 @@ This command displays a list of all orders and suborders, unless the `--my-accou [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Options diff --git a/docs/developers/cli_commands/orders/replenish-deposit.md b/docs/cli/cli_commands/orders/replenish-deposit.md similarity index 91% rename from docs/developers/cli_commands/orders/replenish-deposit.md rename to docs/cli/cli_commands/orders/replenish-deposit.md index 390fafe5..0f85b23d 100644 --- a/docs/developers/cli_commands/orders/replenish-deposit.md +++ b/docs/cli/cli_commands/orders/replenish-deposit.md @@ -17,7 +17,7 @@ Certain orders require a positive deposit balance to keep running. For example, [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/providers/get.md b/docs/cli/cli_commands/providers/get.md similarity index 93% rename from docs/developers/cli_commands/providers/get.md rename to docs/cli/cli_commands/providers/get.md index b4ee4e57..064ca3c1 100644 --- a/docs/developers/cli_commands/providers/get.md +++ b/docs/cli/cli_commands/providers/get.md @@ -16,7 +16,7 @@ Displays the information on a provider using its authority account address. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/cli/cli_commands/providers/index.md b/docs/cli/cli_commands/providers/index.md new file mode 100644 index 00000000..9a99bf59 --- /dev/null +++ b/docs/cli/cli_commands/providers/index.md @@ -0,0 +1,17 @@ +--- +id: "providers" +title: "providers" +slug: "/cli_commands/providers" +sidebar_position: 7 + +--- + +This command group contains commands to view and update [providers](/fundamentals/offers). + +## Commands + +| **Command** | **Description** | +| :- | :- | +| [providers get](/cli/cli_commands/providers/get) | Displays information on a provider using its authority account address. | +| [providers update](/cli/cli_commands/providers/update) | Updates the current provider information. | +| [providers list](/cli/cli_commands/providers/list) | Lists all providers. | \ No newline at end of file diff --git a/docs/developers/cli_commands/providers/list.md b/docs/cli/cli_commands/providers/list.md similarity index 92% rename from docs/developers/cli_commands/providers/list.md rename to docs/cli/cli_commands/providers/list.md index cfa384db..36c82130 100644 --- a/docs/developers/cli_commands/providers/list.md +++ b/docs/cli/cli_commands/providers/list.md @@ -16,7 +16,7 @@ Lists all registered providers. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Options diff --git a/docs/developers/cli_commands/providers/update.md b/docs/cli/cli_commands/providers/update.md similarity index 91% rename from docs/developers/cli_commands/providers/update.md rename to docs/cli/cli_commands/providers/update.md index fdbee848..a8c44f0e 100644 --- a/docs/developers/cli_commands/providers/update.md +++ b/docs/cli/cli_commands/providers/update.md @@ -9,7 +9,7 @@ Updates the current provider using a provider info JSON file. Provider Tools creates a provider info JSON file in [Step 4 of the Providers and Offers](/developers/cli_guides/providers_offers#step-4-register-the-provider-and-offer) guide. -**Important:** This command requires SPCTL with the [provider configuration file](/developers/cli_guides/configure#for-offer-providers). +**Important:** This command requires SPCTL with the [provider configuration file](/cli#for-offer-providers). ## Syntax @@ -20,7 +20,7 @@ Provider Tools creates a provider info JSON file in [Step 4 of the Providers and [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Options diff --git a/docs/developers/cli_commands/quotes/index.md b/docs/cli/cli_commands/quotes/index.md similarity index 74% rename from docs/developers/cli_commands/quotes/index.md rename to docs/cli/cli_commands/quotes/index.md index 0274936f..30db8c6d 100644 --- a/docs/developers/cli_commands/quotes/index.md +++ b/docs/cli/cli_commands/quotes/index.md @@ -12,4 +12,4 @@ This command group contains a single command to verify the authenticity and inte | **Command** | **Description** | | :- | :- | -| [quotes validate](/developers/cli_commands/quotes/validate) | Checks the confidentiality of a domain. | \ No newline at end of file +| [quotes validate](/cli/cli_commands/quotes/validate) | Checks the confidentiality of a domain. | \ No newline at end of file diff --git a/docs/developers/cli_commands/quotes/validate.md b/docs/cli/cli_commands/quotes/validate.md similarity index 90% rename from docs/developers/cli_commands/quotes/validate.md rename to docs/cli/cli_commands/quotes/validate.md index f33afa85..beb2e408 100644 --- a/docs/developers/cli_commands/quotes/validate.md +++ b/docs/cli/cli_commands/quotes/validate.md @@ -17,7 +17,7 @@ In the Marketplace GUI, use the [**Check Confidentiality**](/developers/marketpl [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/solutions/generate-key.md b/docs/cli/cli_commands/solutions/generate-key.md similarity index 80% rename from docs/developers/cli_commands/solutions/generate-key.md rename to docs/cli/cli_commands/solutions/generate-key.md index 6448c144..d0a79c73 100644 --- a/docs/developers/cli_commands/solutions/generate-key.md +++ b/docs/cli/cli_commands/solutions/generate-key.md @@ -7,7 +7,7 @@ sidebar_label: "generate-key" Generates a signing key necessary to prepare a solution. -Docker needs this key to [pack a solution](/developers/cli_commands/solutions/prepare) into a container. +Docker needs this key to [pack a solution](/cli/cli_commands/solutions/prepare) into a container. ## Syntax @@ -17,7 +17,7 @@ Docker needs this key to [pack a solution](/developers/cli_commands/solutions/pr [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/solutions/index.md b/docs/cli/cli_commands/solutions/index.md similarity index 59% rename from docs/developers/cli_commands/solutions/index.md rename to docs/cli/cli_commands/solutions/index.md index 15143b6d..621966b1 100644 --- a/docs/developers/cli_commands/solutions/index.md +++ b/docs/cli/cli_commands/solutions/index.md @@ -12,5 +12,5 @@ This command group contains commands to prepare a solution for deployment on Sup | **Command** | **Description** | | :- | :- | -| [solutions generate-key](/developers/cli_commands/solutions/generate-key) | Generates a solution signing key. | -| [solutions prepare](/developers/cli_commands/solutions/prepare) | Prepares a solution for deployment. | \ No newline at end of file +| [solutions generate-key](/cli/cli_commands/solutions/generate-key) | Generates a solution signing key. | +| [solutions prepare](/cli/cli_commands/solutions/prepare) | Prepares a solution for deployment. | \ No newline at end of file diff --git a/docs/developers/cli_commands/solutions/prepare.md b/docs/cli/cli_commands/solutions/prepare.md similarity index 87% rename from docs/developers/cli_commands/solutions/prepare.md rename to docs/cli/cli_commands/solutions/prepare.md index fb2b0ad2..bcb696e8 100644 --- a/docs/developers/cli_commands/solutions/prepare.md +++ b/docs/cli/cli_commands/solutions/prepare.md @@ -7,13 +7,13 @@ sidebar_label: "prepare" Packs and signs a solution with [Gramine](https://gramineproject.io/) and writes a [manifest](https://gramine.readthedocs.io/en/stable/manifest-syntax.html). -This allows the execution of the "graminized" solution code inside a Trusted Execution Environment. When the solution is prepared and packed, you can [upload](/developers/cli_commands/files/upload) the resulting archive to a distributed storage to use the solution in orders. +This allows the execution of the "graminized" solution code inside a Trusted Execution Environment. When the solution is prepared and packed, you can [upload](/cli/cli_commands/files/upload) the resulting archive to a distributed storage to use the solution in orders. The input of the command is the following: - Directory with the solution and all its dependencies -- Signing key file generated by the [solutions generate-key](/developers/cli_commands/solutions/generate-key) command -- Node.js or Python base image downloaded from their respective offers using the [offers download-content](/developers/cli_commands/offers/offers/download-content) command: +- Signing key file generated by the [solutions generate-key](/cli/cli_commands/solutions/generate-key) command +- Node.js or Python base image downloaded from their respective offers using the [offers download-content](/cli/cli_commands/offers/offers/download-content) command: + Python Base Image: `./spctl offers download-content 5` + Node.js Base Image: `./spctl offers download-content 6`. @@ -42,7 +42,7 @@ Note that the base image is graminized but not included in the output archive fi [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Arguments diff --git a/docs/developers/cli_commands/tokens/balance.md b/docs/cli/cli_commands/tokens/balance.md similarity index 87% rename from docs/developers/cli_commands/tokens/balance.md rename to docs/cli/cli_commands/tokens/balance.md index ad107e3e..e6d84369 100644 --- a/docs/developers/cli_commands/tokens/balance.md +++ b/docs/cli/cli_commands/tokens/balance.md @@ -15,7 +15,7 @@ Displays the balance of TEE and POL tokens in your wallet. [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Option diff --git a/docs/developers/cli_commands/tokens/index.md b/docs/cli/cli_commands/tokens/index.md similarity index 64% rename from docs/developers/cli_commands/tokens/index.md rename to docs/cli/cli_commands/tokens/index.md index 509cfc54..e534e884 100644 --- a/docs/developers/cli_commands/tokens/index.md +++ b/docs/cli/cli_commands/tokens/index.md @@ -14,5 +14,5 @@ TEE tokens are necessary to pay for orders in Super Protocol. POL tokens are for | **Command** | **Description** | | :- | :- | -| [tokens balance](/developers/cli_commands/tokens/balance) | Gets the wallet balance. | -| [tokens request](/developers/cli_commands/tokens/request) | Requests test tokens; **testnet only**. | +| [tokens balance](/cli/cli_commands/tokens/balance) | Gets the wallet balance. | +| [tokens request](/cli/cli_commands/tokens/request) | Requests test tokens; **testnet only**. | diff --git a/docs/developers/cli_commands/tokens/request.md b/docs/cli/cli_commands/tokens/request.md similarity index 89% rename from docs/developers/cli_commands/tokens/request.md rename to docs/cli/cli_commands/tokens/request.md index 97a3933c..e919ccbf 100644 --- a/docs/developers/cli_commands/tokens/request.md +++ b/docs/cli/cli_commands/tokens/request.md @@ -19,7 +19,7 @@ This command is only available during the Testnet. Be mindful of [Testnet limita [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Options diff --git a/docs/developers/cli_commands/workflows/create.md b/docs/cli/cli_commands/workflows/create.md similarity index 85% rename from docs/developers/cli_commands/workflows/create.md rename to docs/cli/cli_commands/workflows/create.md index bebdeb65..8f3910fb 100644 --- a/docs/developers/cli_commands/workflows/create.md +++ b/docs/cli/cli_commands/workflows/create.md @@ -7,15 +7,9 @@ sidebar_label: "create" Creates a main compute order and necessary suborders: solution, data, and storage. -The output of the command contains the order ID necessary to track and manage the order with the [`orders`](/developers/cli_commands/orders) commands or via the [Marketplace GUI](/developers/marketplace/). +The output of the command contains the order ID necessary to track and manage the order with the [`orders`](/cli/cli_commands/orders) commands or via the [Marketplace GUI](/developers/marketplace/). -For solutions and data, you can add to an order either Marketplace [offers](/fundamentals/offers) or [uploaded files](/developers/cli_commands/files/upload). Refer to the [fundamentals](/fundamentals) and the [Marketplace Walkthrough](/developers/marketplace/walkthrough/) to understand the logic of the Super Protocol order creation process. - -An example of the resulting order in the Marketplace GUI: - - - -
+For solutions and data, you can add to an order either Marketplace [offers](/fundamentals/offers) or [uploaded files](/cli/cli_commands/files/upload). Refer to the [fundamentals](/fundamentals) and the [Marketplace Walkthrough](/developers/marketplace/walkthrough/) to understand the logic of the Super Protocol order creation process. ## Syntax @@ -34,15 +28,15 @@ An example of the resulting order in the Marketplace GUI: [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Options |
**Name**
| **Description** | | :- | :- | -| `--solution {,[] │ }` | Solution you are adding to the order:

• For a Marketplace offer, state the solution offer ID and the solution [requirement slot](/fundamentals/slots#requirements) ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically.
• For an [uploaded](/developers/cli_commands/files/upload) solution, state the path to the solution resource JSON file.

You can use this option multiple times. | +| `--solution {,[] │ }` | Solution you are adding to the order:

• For a Marketplace offer, state the solution offer ID and the solution [requirement slot](/fundamentals/slots#requirements) ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically.
• For an [uploaded](/cli/cli_commands/files/upload) solution, state the path to the solution resource JSON file.

You can use this option multiple times. | | `--storage ,[]` | Storage offer you are adding to the order. State the storage offer ID and the storage requirement slot ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically. | -| `--data {,[] │ }` | Data you are adding to the order:

• For a Marketplace offer, state the data offer ID and the data requirement slot ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically.
• For [uploaded](/developers/cli_commands/files/upload) data, state the path to the data resource JSON file.

You can use this option multiple times.

Although this option is technically not mandatory, most solutions require data. | +| `--data {,[] │ }` | Data you are adding to the order:

• For a Marketplace offer, state the data offer ID and the data requirement slot ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically.
• For [uploaded](/cli/cli_commands/files/upload) data, state the path to the data resource JSON file.

You can use this option multiple times.

Although this option is technically not mandatory, most solutions require data. | | `--tee ,[]` | Compute offer you are adding to the order. State the compute offer ID and, optionally, the [configuration slot](/fundamentals/slots#configuration) ID, separated by a comma. If the configuration slot is not specified, it will be selected automatically.

If you do not use this option, the compute offer and its configuration will be selected automatically. | | `--tee-slot-count ` | Configuration slot increments—how many times the selected slot is applied. Use this option together with `--tee`.

If you do not use this option, the increments will be calculated automatically. | | `--tee-options [ ...]` | IDs of [configuration options](/fundamentals/slots#configuration) separated by spaces. Use `--tee-options` together with `--tee`.

If you do not use `--tee-options`, configuration options will be selected automatically. | @@ -130,7 +124,7 @@ For the offers in this example, the minimum deposit is 1.120 TEE tokens and the ### Example 3. Uploaded solution and data -The following command creates an order using an [uploaded](/developers/cli_commands/files/upload) solution and data instead of adding Marketplace offers: +The following command creates an order using an [uploaded](/cli/cli_commands/files/upload) solution and data instead of adding Marketplace offers: ``` ./spctl workflows create \ diff --git a/docs/developers/cli_commands/workflows/generate-key.md b/docs/cli/cli_commands/workflows/generate-key.md similarity index 72% rename from docs/developers/cli_commands/workflows/generate-key.md rename to docs/cli/cli_commands/workflows/generate-key.md index c5b91ab3..12c1ceef 100644 --- a/docs/developers/cli_commands/workflows/generate-key.md +++ b/docs/cli/cli_commands/workflows/generate-key.md @@ -7,7 +7,7 @@ sidebar_label: "generate-key" Generates a private key necessary to access order results. -SPCTL generates this key automatically during the [configuration](/developers/cli_guides/configure). Use this command only if you need another key or if you create the `config.json` file manually. +SPCTL generates this key automatically during the [configuration](/cli). Use this command only if you need another key or if you create the `config.json` file manually. ## Syntax @@ -17,7 +17,7 @@ SPCTL generates this key automatically during the [configuration](/developers/cl [--help | -h] ``` -Read about the Super Protocol [command syntax](/developers/cli_commands#command-syntax). +Read about the Super Protocol [command syntax](/cli/cli_commands#command-syntax). ## Option diff --git a/docs/developers/cli_commands/workflows/index.md b/docs/cli/cli_commands/workflows/index.md similarity index 57% rename from docs/developers/cli_commands/workflows/index.md rename to docs/cli/cli_commands/workflows/index.md index 566b2894..2541e694 100644 --- a/docs/developers/cli_commands/workflows/index.md +++ b/docs/cli/cli_commands/workflows/index.md @@ -12,5 +12,5 @@ This command group contains commands to create an [order](/fundamentals/orders) | **Command** | **Description** | | :- | :- | -| [workflows generate-key](/developers/cli_commands/workflows/generate-key) |Generates a private key to decrypt order results. | -| [workflows create](/developers/cli_commands/workflows/create) | Creates an order. | \ No newline at end of file +| [workflows generate-key](/cli/cli_commands/workflows/generate-key) |Generates a private key to decrypt order results. | +| [workflows create](/cli/cli_commands/workflows/create) | Creates an order. | \ No newline at end of file diff --git a/docs/developers/cli_guides/configure.md b/docs/cli/index.md similarity index 89% rename from docs/developers/cli_guides/configure.md rename to docs/cli/index.md index e103bcb2..5c9aa619 100644 --- a/docs/developers/cli_guides/configure.md +++ b/docs/cli/index.md @@ -1,7 +1,7 @@ --- -id: "configure_spctl" +id: "index" title: "Configure SPCTL" -slug: "/cli_guides/configure" +slug: "/" sidebar_position: 1 --- @@ -42,7 +42,7 @@ You can also download and install SPCTL manually from the Super Protocol [GitHub Execute the `./spctl setup` command to initiate the setup dialog. First, provide your Testnet Access Token and then your Testnet Private Key. You can find them in your Testnet invitation email. -Further, SPCTL asks if you have a Storj bucket with configured access grants. This step is optional. Select `No` if you do not have them yet. You can configure Storj and provide this information [later in this guide](/developers/cli_guides/configure#set-up-storj) or skip this step entirely. +Further, SPCTL asks if you have a Storj bucket with configured access grants. This step is optional. Select `No` if you do not have them yet. You can configure Storj and provide this information [later in this guide](/cli#set-up-storj) or skip this step entirely. After that, SPCTL creates `config.json` in the SPCTL root directory. If you need to update your account information, execute `./spctl setup` again or modify `config.json` manually in any text editor. @@ -54,7 +54,7 @@ For SPCTL to work correctly, `config.json` must be in the same directory as the ### Manual configuration -You can also skip the `./spctl setup` command completely and set up SPCTL manually. [Download the template](./assets/config.json) and rename it to `config.json`. Alternatively, create an empty `config.json` file in the SPCTL directory and then copy and paste the following template: +You can also skip the `./spctl setup` command completely and set up SPCTL manually. Create an empty `config.json` file in the SPCTL directory and add the following template: ```json title="config.json" { @@ -89,14 +89,14 @@ Do not change the preconfigured parameters and fill in the following ones: |:-|:-| |accessToken| Your Testnet Access Token from the Testnet invitation email|| |accountPrivateKey| Your Testnet Private Key from the Testnet invitation email| -|key| Private key for order result encryption. Use the [workflows generate-key](/developers/cli_commands/workflows/generate-key) command to create this key| +|key| Private key for order result encryption. Use the [workflows generate-key](/cli/cli_commands/workflows/generate-key) command to create this key| |bucket| Name of your Storj bucket (optional)| |writeAccessToken| Storj access grant with **write** and **delete** permissions for this bucket (optional)| |readAccessToken| Storj access grant with **read** permission for this bucket (optional)| ## For offer providers -This section is for offer providers only. If you are a regular user, skip it and go to the next section to [create a test order](/developers/cli_guides/configure#create-a-test-order). +This section is for offer providers only. If you are a regular user, skip it and go to the next section to [create a test order](/cli#create-a-test-order). Offer providers need another copy of SPCTL configured for their provider accounts. If you completed all the necessary steps in the [Providers and Offers](/developers/cli_guides/providers_offers) guide, you should have the configuration file created automatically in your Provider Tools directory. Its name looks like this: @@ -106,7 +106,7 @@ Where `0xB9f0b77BDbAe9fBe3E60BdC567E453f503605BAa` is your Authority Account wal Rename this file to `config.json` so SPCTL can recognize it as its configuration file. Copy or download the SPCTL executable to the Provider Tools root directory. -Alternatively, copy this provider's SPCTL config to your User Account's SPCTL directory. Use the `--config` option with [SPCTL commands](/developers/cli_commands) to manage your provider and orders. For example: +Alternatively, copy this provider's SPCTL config to your User Account's SPCTL directory. Use the `--config` option with [SPCTL commands](/cli/cli_commands) to manage your provider and orders. For example: ``` ./spctl orders list --my-account --type tee --config spctl-config-0xB9f0b77BDbAe9fBe3E60BdC567E453f503605BAa.json @@ -153,7 +153,7 @@ Do not change the preconfigured parameters and fill in the following ones: |accessToken| Your regular Testnet Access Token from the Testnet invitation email| |accountPrivateKey| Private Key of your provider's Action Account| |authorityAccountPrivateKey| Private Key of your provider's Authority Account| -|key| Private key for order result encryption. Use the key from your User Account or generate a new one with the [workflows generate-key](/developers/cli_commands/workflows/generate-key) command| +|key| Private key for order result encryption. Use the key from your User Account or generate a new one with the [workflows generate-key](/cli/cli_commands/workflows/generate-key) command| |bucket| Name of your Storj bucket (optional)| |writeAccessToken| Storj access grant with **write** and **delete** permissions for this bucket (optional)| |readAccessToken| Storj access grant with **read** permission for this bucket (optional)| @@ -185,7 +185,7 @@ Use the [`tokens request`](https://docs.dev.superprotocol.com/developers/cli_com ./spctl tokens request --matic ``` -It may take a couple of minutes for the tokens to appear on your account. When you have them, execute the [`workflows create`](/developers/cli_commands/workflows/create) command to create a [Super Chat](/developers/offers/superchat) order: +It may take a couple of minutes for the tokens to appear on your account. When you have them, execute the [`workflows create`](/cli/cli_commands/workflows/create) command to create a [Super Chat](/developers/offers/superchat) order: ``` ./spctl workflows create --solution 12,12 --solution 6,2 --data 17,22 --storage 25,30 @@ -199,11 +199,11 @@ Workflow was created, TEE order id: [""] Where `` is the ID of your order. -It usually takes 20-25 minutes for this order to be done. You can then check the order status using the [`orders`](/developers/cli_commands/orders) command or in [Marketplace GUI](/developers/marketplace). +It usually takes 20-25 minutes for this order to be done. You can then check the order status using the [`orders`](/cli/cli_commands/orders) command or in [Marketplace GUI](/developers/marketplace). ## Set up Storj -This step is optional. You can add a Marketplace storage offer to the [`files upload`](/developers/cli_commands/files/upload) command instead of configuring Storj. However, for additional control, you can set up and use your storage. +This step is optional. You can add a Marketplace storage offer to the [`files upload`](/cli/cli_commands/files/upload) command instead of configuring Storj. However, for additional control, you can set up and use your storage. Register a [Storj](https://www.storj.io/) account if you do not have one yet. diff --git a/docs/developers/cli_commands/files/index.md b/docs/developers/cli_commands/files/index.md deleted file mode 100644 index e89bfc83..00000000 --- a/docs/developers/cli_commands/files/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -id: "cli-files" -title: "files" -slug: "/cli_commands/files" -sidebar_position: 3 - ---- - -This command group contains commands to manage files in third-party storage such as Storj. - -Most of these commands require a Storj account and SPCTL configured to use it. Refer to the [Set up Storj](/developers/cli_guides/configure#set-up-storj) section to create a bucket and access grants and set up SPCTL. - -## Commands - -| **Command** | **Description** | -| :- | :- | -| [files delete](/developers/cli_commands/files/delete) | Deletes a file in remote storage. | -| [files download](/developers/cli_commands/files/download) | Downloads and decrypt a file from remote storage. | -| [files upload](/developers/cli_commands/files/upload) | Uploads a file to remote storage or creates a storage order. | \ No newline at end of file diff --git a/docs/developers/cli_commands/offers/index.md b/docs/developers/cli_commands/offers/index.md deleted file mode 100644 index 7b2c72ae..00000000 --- a/docs/developers/cli_commands/offers/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: "cli-commands-offers" -title: "offers" -slug: "/cli_commands/offers" -sidebar_position: 6 - ---- - -This command group contains commands to view and manage [offers](/fundamentals/offers). Note that [Marketplace GUI](/developers/marketplace) can be more convenient to use than most of these commands. - -## Commands - -| **Command** | **Description** | -| :- | :- | -| [offers list](/developers/cli_commands/offers/offers/list) | Lists available offers. | -| [offers get](/developers/cli_commands/offers/offers/get) | Displays information on an offer. | -| [offers get-info](/developers/cli_commands/offers/offers/get-info) | Displays information on an offer as stored on the blockchain. | -| [offers download-content](/developers/cli_commands/offers/offers/download-content) | Downloads the content of an offer. | -| [offers update](/developers/cli_commands/offers/offers/update) | Updates an offer. | -| [offers disable](/developers/cli_commands/offers/offers/disable) | Disables an enabled offer. | -| [offers enable](/developers/cli_commands/offers/offers/enable) | Enables a disabled offer. | - -### Slot-related commands - -| **Command** | **Description** | -| :- | :- | -| [offers add-slot](/developers/cli_commands/offers/slots/add-slot) | Adds a new slot to an existing offer. | -| [offers update-slot](/developers/cli_commands/offers/slots/update-slot) | Updates a slot. | -| [offers delete-slot](/developers/cli_commands/offers/slots/delete-slot) | Deletes a slot. | -| [offers get-slot](/developers/cli_commands/offers/slots/get-slot) | Displays information on a slot. | - -### Option-related command - -This command only works with compute offers. - -| **Command** | **Description** | -| :- | :- | -| [offers get-option](/developers/cli_commands/offers/options/get-option) | Displays information for an option. | diff --git a/docs/developers/cli_commands/orders/index.md b/docs/developers/cli_commands/orders/index.md deleted file mode 100644 index f224d6f7..00000000 --- a/docs/developers/cli_commands/orders/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -id: "cli-orders" -title: "orders" -slug: "/cli_commands/orders" -sidebar_position: 5 - ---- - -This command group contains commands to track and manage [orders](/fundamentals/orders). Note that [Marketplace GUI](/developers/marketplace) can be more convenient to use than most of the commands in this group. - -## Commands - -| **Command** | **Description** | -| :- | :- | -| [orders cancel](/developers/cli_commands/orders/cancel) | Cancels an order. | -| [orders download-result](/developers/cli_commands/orders/download-result) | Downloads the order result. | -| [orders get](/developers/cli_commands/orders/get) | Displays information on an order. | -| [orders list](/developers/cli_commands/orders/list) | Lists orders. | -| [orders replenish-deposit](/developers/cli_commands/orders/replenish-deposit) | Replenishes the order deposit. | \ No newline at end of file diff --git a/docs/developers/cli_commands/providers/index.md b/docs/developers/cli_commands/providers/index.md deleted file mode 100644 index 4368c6fd..00000000 --- a/docs/developers/cli_commands/providers/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: "providers" -title: "providers" -slug: "/cli_commands/providers" -sidebar_position: 7 - ---- - -This command group contains commands to view and update [providers](/fundamentals/offers). - -## Commands - -| **Command** | **Description** | -| :- | :- | -| [providers get](/developers/cli_commands/providers/get) | Displays information on a provider using its authority account address. | -| [providers update](/developers/cli_commands/providers/update) | Updates the current provider information. | -| [providers list](/developers/cli_commands/providers/list) | Lists all providers. | \ No newline at end of file diff --git a/docs/developers/cli_guides/index.md b/docs/developers/cli_guides/index.md index 86335d00..12974aad 100644 --- a/docs/developers/cli_guides/index.md +++ b/docs/developers/cli_guides/index.md @@ -11,6 +11,5 @@ sidebar_position: 6 | **Guide** | **Description** | |:--------------------------------------------------------|:--------------------------------------------------------| -| [Configure SPCTL](/developers/cli_guides/configure) | Set up SPCTL with your storage, encryption, and Super Protocol infrastructure. | | [Quick Guide](/developers/cli_guides/quick_guide) | The logic and sequence of the SPCTL steps for deploying your solutions with data. | | [Providers and Offers](/developers/cli_guides/providers_offers) | Create and manage providers and offers. | diff --git a/docs/developers/cli_guides/providers_offers.md b/docs/developers/cli_guides/providers_offers.md index 6756355a..c728c0d8 100644 --- a/docs/developers/cli_guides/providers_offers.md +++ b/docs/developers/cli_guides/providers_offers.md @@ -25,7 +25,7 @@ This guide requires a general understanding of Super Protocol basic concepts suc To set up a provider and create offers, you need: - Linux or macOS operating system. On Windows, install [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) (Windows Subsystem for Linux). -- [SPCTL](/developers/cli_guides/configure)—Super Protocol CLI tool for uploading your offers and creating an Offer Provisioner order. +- [SPCTL](/cli)—Super Protocol CLI tool for uploading your offers and creating an Offer Provisioner order. - [Storj](https://www.storj.io/) account, either Free Trial or Pro (optional). ### Set up Provider Tools @@ -87,7 +87,7 @@ Go to your SPCTL directory and create the offer content using your Testnet user **For solution offers** -Use the [`solutions prepare`](/developers/cli_commands/solutions/prepare) command. It will pack and sign the solution with [Gramine](https://gramineproject.io/) to prepare it for execution inside a Trusted Execution Environment. The command will create a TAR.GZ archive with the solution and a metadata JSON file. +Use the [`solutions prepare`](/cli/cli_commands/solutions/prepare) command. It will pack and sign the solution with [Gramine](https://gramineproject.io/) to prepare it for execution inside a Trusted Execution Environment. The command will create a TAR.GZ archive with the solution and a metadata JSON file. You can find a detailed example of preparing a Python solution in the [Python deployment guide](/developers/deployment_guides/python/solution_prep). @@ -120,7 +120,7 @@ Both ways have pros and cons. Pick the one that suits you better. It is a simpler and quicker way to upload offer content if you do not have a Storj account and have not configured SPCTL to use it. However, you must regularly check the storage order and [keep it alive](/developers/cli_guides/providers_offers#lease-on-uploaded-offer-content). Otherwise, your offer content will eventually become unavailable. -Execute the following [`files upload`](/developers/cli_commands/files/upload) command to create a storage order on Super Protocol with your offer content: +Execute the following [`files upload`](/cli/cli_commands/files/upload) command to create a storage order on Super Protocol with your offer content: ``` ./spctl files upload --storage 25,33 --min-rent-minutes 43200 @@ -129,15 +129,15 @@ Execute the following [`files upload`](/developers/cli_commands/files/upload) co Where - `` is the name of the archive file with your prepared solution or data. - `--storage 25,33` is the slot ID 33 of the storage offer ID 25. The maximum disk capacity for this slot is 0.977 GB; you may choose [another slot](https://marketplace.superprotocol.com/storage?offer=offerId%3D25&tab=pricing) that suits your offer content better. -- `--min-rent-minutes 43200` is the lease time set to 30 days. The offer content will be available for that period. You can make the lease time shorter or longer. You can also [replenish the balance](/developers/cli_commands/orders/replenish-deposit) later to prolong the storage order. +- `--min-rent-minutes 43200` is the lease time set to 30 days. The offer content will be available for that period. You can make the lease time shorter or longer. You can also [replenish the balance](/cli/cli_commands/orders/replenish-deposit) later to prolong the storage order. As a result, SPCTL generates the `resource.json` file with information for a compute provider to access your uploaded offer content. Copy this file to the Provider Tools directory. This file also contains the storage order ID. Use it to check the storage order and replenish the deposit if necessary. -You can check all your orders, including storage orders, by using the [`orders list`](/developers/cli_commands/orders/list) command. Note that you cannot see your storage orders in the Marketplace GUI. +You can check all your orders, including storage orders, by using the [`orders list`](/cli/cli_commands/orders/list) command. Note that you cannot see your storage orders in the Marketplace GUI. **Upload to a Storj account** -This way of uploading your content is more stable and provides more control. It is also less hassle in the long term since you do not need to keep a storage order running. As a downside, you must have a Storj account and [configured SPCTL](/developers/cli_guides/configure) to use it. +This way of uploading your content is more stable and provides more control. It is also less hassle in the long term since you do not need to keep a storage order running. As a downside, you must have a Storj account and [configured SPCTL](/cli) to use it. :::note @@ -145,7 +145,7 @@ Both Free Trial and Pro Storj accounts are suitable. However, if you have a free ::: -Execute the following [`files upload`](/developers/cli_commands/files/upload) command to upload your offer content to Storj using SPCTL: +Execute the following [`files upload`](/cli/cli_commands/files/upload) command to upload your offer content to Storj using SPCTL: ``` ./spctl files upload @@ -254,7 +254,7 @@ Fill in the following values: + `offers`: state the IDs of such required offers, including the IDs of their dependencies. Put each ID in quotation marks and separate with a comma. See the examples below. + `types`: state the types of the required offers. The type must be either `2` for a solution offer in `"offers"` or `3` for a data offer in `"offers"`. If there are several IDs in `"offers"`, state the type for each of them. Put each number in quotation marks and separate with a comma. See the examples below. -Refer to the documentation of the [`offers update`](/developers/cli_commands/offers/offers/update) command to learn more. +Refer to the documentation of the [`offers update`](/cli/cli_commands/offers/offers/update) command to learn more. **Example 1** @@ -316,7 +316,7 @@ To get more examples, check existing offers via the Marketplace GUI:
-Or via CLI using the SPCTL [`offers get`](/developers/cli_commands/offers/offers/get) command: +Or via CLI using the SPCTL [`offers get`](/cli/cli_commands/offers/offers/get) command: ``` ./spctl offers get value 8 @@ -358,7 +358,7 @@ The following is an `offer-slot.json` template file with example values: Copy it to your `offer-slot.json` file and modify all the values as necessary. Since this is your offer, only you know the [price](/fundamentals/orders#cost-and-pricing) and compute configuration your solution or data needs to run. Every offer can have multiple requirements slots. You must create a separate JSON file for each slot. -Refer to the [`offers add-slot`](/developers/cli_commands/offers/slots/add-slot) command's documentation to learn more about the objects and strings in this file. +Refer to the [`offers add-slot`](/cli/cli_commands/offers/slots/add-slot) command's documentation to learn more about the objects and strings in this file. To get more examples, check existing offers via the Marketplace GUI: @@ -366,7 +366,7 @@ To get more examples, check existing offers via the Marketplace GUI:
-Or via CLI using the [offers get-slot](/developers/cli_commands/offers/slots/get-slot) command: +Or via CLI using the [offers get-slot](/cli/cli_commands/offers/slots/get-slot) command: ``` ./spctl offers get-slot value --offer 8 --slot 4 @@ -424,9 +424,9 @@ Provider Tools also creates a new directory `solution-execution-controller` or ` Provider Tools also creates a provider SPCTL configuration file in its root directory. Its name is similar to `spctl-config-0xB9f0b7bBDbAe9fBe3E60BdC567e253f503605BAa.json`, where `0xB9f0b7bBDbAe9fBe3E60BdC567e253f503605BAa` is your authority account address. This SPCTL config allows you to manage your provider and offers. -Rename this file to `config.json` so SPCTL can recognize it as its configuration file. Copy or [download](/developers/cli_guides/configure) SPCTL to the Provider Tools directory. It is your provider SPCTL. +Rename this file to `config.json` so SPCTL can recognize it as its configuration file. Copy or [download](/cli) SPCTL to the Provider Tools directory. It is your provider SPCTL. -Alternatively, copy this provider's SPCTL config to your SPCTL directory. Use the `--config` option with [SPCTL commands](/developers/cli_commands) to manage your provider and orders. For example: +Alternatively, copy this provider's SPCTL config to your SPCTL directory. Use the `--config` option with [SPCTL commands](/cli/cli_commands) to manage your provider and orders. For example: ``` ./spctl orders list --my-account --type tee --config spctl-config-0xB9f0b77BDbAe9fBe3E60BdC567E453f503605BAa.json @@ -479,9 +479,9 @@ When the order is created, you will see the ID of the Offer Provisioner order in {"Successfully created workflow with id: 3394. You can go to https://marketplace.superprotocol.com/order/3394 to track order status."} ``` -Alternatively, you can create an Offer Provisioner order manually. Pack the content of the `execution-controller` directory (`config.json` and `.env`) into a TAR.GZ archive and upload it using the [`files upload`](/developers/cli_commands/files/upload) command. Add the resulting `resource.json` to the order as data and the Offer Provisioner solution offer (ID 26) as a solution using either Marketplace GUI or the `workflows create` SPCTL command. +Alternatively, you can create an Offer Provisioner order manually. Pack the content of the `execution-controller` directory (`config.json` and `.env`) into a TAR.GZ archive and upload it using the [`files upload`](/cli/cli_commands/files/upload) command. Add the resulting `resource.json` to the order as data and the Offer Provisioner solution offer (ID 26) as a solution using either Marketplace GUI or the `workflows create` SPCTL command. -Check that your offer is on the blockchain using the [offers get](/developers/cli_commands/offers/offers/get) command: +Check that your offer is on the blockchain using the [offers get](/cli/cli_commands/offers/offers/get) command: ``` ./spctl offers get value @@ -515,17 +515,17 @@ As a provider, you must ensure your offer stays active. Keep track of the storag Ensure your storage order does not end. -If you created a [storage order](/developers/cli_commands/files/upload) for your offer content in [Step 1](/developers/cli_guides/providers_offers#upload-offer-content), keep track of the balance and replenish it in time. +If you created a [storage order](/cli/cli_commands/files/upload) for your offer content in [Step 1](/developers/cli_guides/providers_offers#upload-offer-content), keep track of the balance and replenish it in time. ::: -If the storage order expires, the TEE can no longer access your uploaded offer content, and the customer order will fail. Execute the [`orders list`](/developers/cli_commands/orders/list) SPCTL command from your user account to get the list of your storage orders: +If the storage order expires, the TEE can no longer access your uploaded offer content, and the customer order will fail. Execute the [`orders list`](/cli/cli_commands/orders/list) SPCTL command from your user account to get the list of your storage orders: ``` ./spctl orders list --my-account --type storage ``` -Use the [`orders get`](/developers/cli_commands/orders/get) command to check the total and unspent deposits. Use the [`orders replenish-deposit`](/developers/cli_commands/orders/replenish-deposit) command to add tokens to the balance of the storage order. +Use the [`orders get`](/cli/cli_commands/orders/get) command to check the total and unspent deposits. Use the [`orders replenish-deposit`](/cli/cli_commands/orders/replenish-deposit) command to add tokens to the balance of the storage order. ### Lease on Offer Provisioner @@ -537,7 +537,7 @@ Keep track of the balance and replenish it in time. Without a response from Offe ::: -Execute the [`orders list`](/developers/cli_commands/orders/list) command using the provider SPCTL to get the list of your Offer Provisioner orders: +Execute the [`orders list`](/cli/cli_commands/orders/list) command using the provider SPCTL to get the list of your Offer Provisioner orders: ``` ./spctl orders list --my-account --type tee @@ -545,14 +545,14 @@ Execute the [`orders list`](/developers/cli_commands/orders/list) command using An [Offer Provisioner order](/developers/cli_guides/providers_offers#create-an-offer-provisioner-order) must always be active and ready to authorize its offer. -Use the [`orders get`](/developers/cli_commands/orders/get) command to check the total and unspent deposits. Use the [`orders replenish-deposit`](/developers/cli_commands/orders/replenish-deposit) command to add tokens to the Offer Provisioner order. +Use the [`orders get`](/cli/cli_commands/orders/get) command to check the total and unspent deposits. Use the [`orders replenish-deposit`](/cli/cli_commands/orders/replenish-deposit) command to add tokens to the Offer Provisioner order. ## FAQ ### Update provider info -It is possible to update provider information such as name, description, action account, and token receiver account. Make changes to `provider.json` you saved in [Step 4](/developers/cli_guides/providers_offers#step-4-register-the-provider-and-offer) and use the [`providers update`](/developers/cli_commands/providers/update) SPCTL command from your current action account. -It is possible to update provider information such as name, description, action account, and token receiver account. Make changes to `provider.json` you saved in [Step 4](/developers/cli_guides/providers_offers#step-4-register-the-provider-and-offer) and use the [`providers update`](/developers/cli_commands/providers/update) SPCTL command from your current action account. +It is possible to update provider information such as name, description, action account, and token receiver account. Make changes to `provider.json` you saved in [Step 4](/developers/cli_guides/providers_offers#step-4-register-the-provider-and-offer) and use the [`providers update`](/cli/cli_commands/providers/update) SPCTL command from your current action account. +It is possible to update provider information such as name, description, action account, and token receiver account. Make changes to `provider.json` you saved in [Step 4](/developers/cli_guides/providers_offers#step-4-register-the-provider-and-offer) and use the [`providers update`](/cli/cli_commands/providers/update) SPCTL command from your current action account. If you changed your action account address, update the Provider SPCTL's `config.json` with the new action account private key. @@ -560,13 +560,13 @@ If you changed your action account address, update the Provider SPCTL's `config. **Offer description:** -Modify `offer-info.json` you have prepared in [Step 3](/developers/cli_guides/providers_offers#offer-description) and then run the [`offers update`](/developers/cli_commands/offers/offers/update) command using the Provider SPCTL. +Modify `offer-info.json` you have prepared in [Step 3](/developers/cli_guides/providers_offers#offer-description) and then run the [`offers update`](/cli/cli_commands/offers/offers/update) command using the Provider SPCTL. **Offer requirements (slots):** -Modify `offer-slot.json` you have prepared in [Step 3](/developers/cli_guides/providers_offers#offer-requirements) and then run the [`offers update-slot`](/developers/cli_commands/offers/slots/update-slot) command using the Provider SPCTL. +Modify `offer-slot.json` you have prepared in [Step 3](/developers/cli_guides/providers_offers#offer-requirements) and then run the [`offers update-slot`](/cli/cli_commands/offers/slots/update-slot) command using the Provider SPCTL. -Similarly, you can use the [`offers add-slot`](/developers/cli_commands/offers/slots/add-slot) command to add another slot and the [`offers delete-slot`](/developers/cli_commands/offers/slots/delete-slot) command to remove a slot. +Similarly, you can use the [`offers add-slot`](/cli/cli_commands/offers/slots/add-slot) command to add another slot and the [`offers delete-slot`](/cli/cli_commands/offers/slots/delete-slot) command to remove a slot. ### Create additional offers @@ -578,7 +578,7 @@ You can also manually edit the `PROVIDER_OFFERS_JSON` array in the `.env` file t ### Enable/disable offers -Disable your offer if you no longer want to provide your application or data on Super Protocol. Execute the [`offers disable`](/developers/cli_commands/offers/offers/disable) command from your Provider SPCTL: +Disable your offer if you no longer want to provide your application or data on Super Protocol. Execute the [`offers disable`](/cli/cli_commands/offers/offers/disable) command from your Provider SPCTL: ``` ./spctl offers disable @@ -586,7 +586,7 @@ Disable your offer if you no longer want to provide your application or data on Replace `` with the ID of the offer you want to disable. -It will make the offer unavailable to use but will not delete it. Later, if you want to reinstate it back to active status, use the [`offers enable`](/developers/cli_commands/offers/offers/enable) command. +It will make the offer unavailable to use but will not delete it. Later, if you want to reinstate it back to active status, use the [`offers enable`](/cli/cli_commands/offers/offers/enable) command. ### Inactive offers diff --git a/docs/developers/cli_guides/quick_guide.md b/docs/developers/cli_guides/quick_guide.md index a9c71ff0..ecb8e046 100644 --- a/docs/developers/cli_guides/quick_guide.md +++ b/docs/developers/cli_guides/quick_guide.md @@ -11,13 +11,13 @@ This quick guide will take you step by step through deploying a solution and dat ### Step 1. Pack a solution -To prepare a solution for execution inside a Trusted Execution Environment, pack and sign it with [Gramine](https://gramineproject.io/). To do this, run the [`solutions prepare`](/developers/cli_commands/solutions/prepare) command. +To prepare a solution for execution inside a Trusted Execution Environment, pack and sign it with [Gramine](https://gramineproject.io/). To do this, run the [`solutions prepare`](/cli/cli_commands/solutions/prepare) command. It will create a TAR.GZ archive with the solution and a JSON file with essential metadata. ### Step 2. Upload the solution to the storage -Run the [`files upload`](/developers/cli_commands/files/upload) command using the TAR.GZ archive from the previous step. +Run the [`files upload`](/cli/cli_commands/files/upload) command using the TAR.GZ archive from the previous step. The command will create a resource JSON file with the information for the compute resource on how to access and download the solution. @@ -45,7 +45,7 @@ tar -czvf archived_data.tar.gz -C ./data . ### Step 2. Upload the data to the storage -Run the [`files upload`](/developers/cli_commands/files/upload) command using the TAR.GZ archive from the previous step. +Run the [`files upload`](/cli/cli_commands/files/upload) command using the TAR.GZ archive from the previous step. The command will create a resource JSON file with the information for the compute resource on how to access and download the data. @@ -53,12 +53,12 @@ The command will create a resource JSON file with the information for the comput ### Step 3. Create an order -Run the [`workflows create`](/developers/cli_commands/workflows/create) using the resource JSON file created in Step 2. When the order is created, you will see the order ID in the terminal output. +Run the [`workflows create`](/cli/cli_commands/workflows/create) using the resource JSON file created in Step 2. When the order is created, you will see the order ID in the terminal output. It may be more convenient to use the [**Marketplace GUI**](/developers/marketplace/) for this and the following step. ### Step 4. Receive the result -Orders take a few minutes to process. Use the [`orders get`](/developers/cli_commands/orders/get) command to track the progress. When the order status is `Done`, retrieve the result using the [`orders download-result`](/developers/cli_commands/orders/download-result) command. +Orders take a few minutes to process. Use the [`orders get`](/cli/cli_commands/orders/get) command to track the progress. When the order status is `Done`, retrieve the result using the [`orders download-result`](/cli/cli_commands/orders/download-result) command. Certain solutions, such as Tunnel Server, may have the result available earlier. For them, the status `Processing` means they are live and operational. Read more in the [Usage scenarios](Usage scenarios) section. \ No newline at end of file diff --git a/docs/developers/deployment_guides/blockchain/oracles.md b/docs/developers/deployment_guides/blockchain/oracles.md index 6783ecac..6d9b06e9 100644 --- a/docs/developers/deployment_guides/blockchain/oracles.md +++ b/docs/developers/deployment_guides/blockchain/oracles.md @@ -35,7 +35,7 @@ You will need: - [OpenSSL](https://www.openssl.org/) - you will need OpenSSL installed to generate solution signing key. Linux: by default, Ubuntu: `apt install openssl`, MacOs: `brew install openssl`. -- [SPCTL](/developers/cli_guides/) - our CLI tool, must be fully [configured](/developers/cli_guides/configure), including access to decentralized storage: it will be used to store encrypted configurations for the oracle script. +- [SPCTL](/developers/cli_guides/) - our CLI tool, must be fully [configured](/cli), including access to decentralized storage: it will be used to store encrypted configurations for the oracle script. ### Create / generate @@ -174,7 +174,7 @@ In this step we will cover the first component. All the solutions deployed on Super Protocol have to use a base image solution offer. In this case it will be a Node.js base image. -Go to your project root directory and execute this [command](/developers/cli_commands/offers/offers/download-content): +Go to your project root directory and execute this [command](/cli/cli_commands/offers/offers/download-content): ```shell ./spctl offers download-content 6 @@ -190,7 +190,7 @@ Next, we will build a Docker image of the service. For the Docker image to run i ./spctl solutions generate-key signing-key ``` -Execute the following [command](/developers/cli_commands/solutions/prepare) in the root of your project to prepare and pack the solution: +Execute the following [command](/cli/cli_commands/solutions/prepare) in the root of your project to prepare and pack the solution: ```shell ./spctl solutions prepare --pack-solution oracle-solution.tar.gz --write-default-manifest --base-image-path ./solutions/Blockchain/sp-oracle/script/run/ signing-key @@ -207,7 +207,7 @@ MRSIGNER: 36f3bb39d10617852d1eef2f5066d8f9add2c65fb1a026d86398fec405fe725c **Save these values!** Important: different MRENCLAVE and MRSIGNER values are generated for each run of the `prepare` command. -Finally, we will [encrypt and upload](/developers/cli_commands/files/upload) the prepared solution to decentralized storage (Storj): +Finally, we will [encrypt and upload](/cli/cli_commands/files/upload) the prepared solution to decentralized storage (Storj): ```shell ./spctl files upload oracle-solution.tar.gz --output oracle-solution.json --filename oracle-solution.tar.gz --metadata ./metadata.json @@ -344,7 +344,7 @@ An `oracle-input.json` will be created. We will use this file and `oracle-soluti The result will be an order ID. -You can check the status of the order using [Marketplace GUI](/developers/marketplace) or this [command](/developers/cli_commands/orders/get): +You can check the status of the order using [Marketplace GUI](/developers/marketplace) or this [command](/cli/cli_commands/orders/get): ```shell ./spctl orders get diff --git a/docs/developers/deployment_guides/python/data.md b/docs/developers/deployment_guides/python/data.md index 2c1ff58d..f2c28016 100644 --- a/docs/developers/deployment_guides/python/data.md +++ b/docs/developers/deployment_guides/python/data.md @@ -24,7 +24,7 @@ Please make sure that system or hidden files are not included into the archive. ::: ## Upload data archives -And [upload](/developers/cli_commands/files/upload) archives to storage: +And [upload](/cli/cli_commands/files/upload) archives to storage: ``` ./spctl files upload input-1.tar.gz --output input-1.json --filename input-1.tar.gz diff --git a/docs/developers/deployment_guides/python/exec_result.md b/docs/developers/deployment_guides/python/exec_result.md index 556d39de..6e2838f2 100644 --- a/docs/developers/deployment_guides/python/exec_result.md +++ b/docs/developers/deployment_guides/python/exec_result.md @@ -15,7 +15,7 @@ Now you will need to execute together: * Python base image solution offer from the [Marketplace](https://marketplace.superprotocol.com/solutions?offerId=5&offer=offerId%3D5); * Your two datasets represented by `input-1.json` and `input-2.json` (which will direct TEE to download the archives from storage). -Use the following [command](/developers/cli_commands/workflows/create): +Use the following [command](/cli/cli_commands/workflows/create): ``` ./spctl workflows create --tee 1,1 --tee-slot-count 1 --storage 25,30 --solution 5,1 --solution solution.json --data input-1.json --data input-2.json @@ -25,7 +25,7 @@ An order ID is generated upon execution. ## Check Order Status -You can check the order status using the [Marketplace GUI](/developers/marketplace) or the SPCTL [command](/developers/cli_commands/orders/get): +You can check the order status using the [Marketplace GUI](/developers/marketplace) or the SPCTL [command](/cli/cli_commands/orders/get): ``` ./spctl orders get @@ -35,7 +35,7 @@ When the status turns to `Done`, proceed to the next step. ## Receive Result -Retrieve the result using the [Marketplace GUI](/developers/marketplace) or the following [command](/developers/cli_commands/orders/download-result): +Retrieve the result using the [Marketplace GUI](/developers/marketplace) or the following [command](/cli/cli_commands/orders/download-result): ``` ./spctl orders download-result diff --git a/docs/developers/deployment_guides/python/solution.md b/docs/developers/deployment_guides/python/solution.md index ccef8ce2..f2685aa2 100644 --- a/docs/developers/deployment_guides/python/solution.md +++ b/docs/developers/deployment_guides/python/solution.md @@ -114,7 +114,7 @@ If done correctly, the `output` directory should contain `.csv` file with result Now that we are happy with the way solution runs locally, the next steps are related to preparation for deployment to Super Protocol. -Run the following [command](/developers/cli_commands/solutions/generate-key) in the directory where you placed the SPCTL executable to generate the signing key for the solution: +Run the following [command](/cli/cli_commands/solutions/generate-key) in the directory where you placed the SPCTL executable to generate the signing key for the solution: ``` ./spctl solutions generate-key signing-key @@ -122,7 +122,7 @@ Run the following [command](/developers/cli_commands/solutions/generate-key) in ## Pack the solution -When the Docker image should run inside an Intel SGX enclave, the image has to be built and signed with [Gramine](https://gramine.readthedocs.io/en/latest/gsc-installation.html) (a.k.a graminized). Execute the following [command](/developers/cli_commands/solutions/prepare) to prepare and pack the solution: +When the Docker image should run inside an Intel SGX enclave, the image has to be built and signed with [Gramine](https://gramine.readthedocs.io/en/latest/gsc-installation.html) (a.k.a graminized). Execute the following [command](/cli/cli_commands/solutions/prepare) to prepare and pack the solution: ``` ./spctl solutions prepare --pack-solution solution.tar.gz --write-default-manifest \ @@ -138,7 +138,7 @@ After running the command, `solution.tar.gz` and `metadata.json` files are gener ## Upload the solution -Solution needs to be uploaded to decentralized storage before it may be executed in TEE. The storage credentials have been configured during the [SPCTL setup](/developers/cli_guides/configure#set-up-storj). +Solution needs to be uploaded to decentralized storage before it may be executed in TEE. The storage credentials have been configured during the [SPCTL setup](/cli#set-up-storj). Run the following command: diff --git a/docs/developers/deployment_guides/tunnels/develop.md b/docs/developers/deployment_guides/tunnels/develop.md index c4055317..90044810 100644 --- a/docs/developers/deployment_guides/tunnels/develop.md +++ b/docs/developers/deployment_guides/tunnels/develop.md @@ -87,7 +87,7 @@ server.listen(port, () => { ## Testing -Test your solution using our Node.js base image. You need to test specifically with the same base image that is contained in the Node.js base image offer. You can download it using this [command](/developers/cli_commands/offers/offers/download-content): +Test your solution using our Node.js base image. You need to test specifically with the same base image that is contained in the Node.js base image offer. You can download it using this [command](/cli/cli_commands/offers/offers/download-content): ```bash ./spctl offers download-content 6 diff --git a/docs/developers/deployment_guides/tunnels/manual_run.md b/docs/developers/deployment_guides/tunnels/manual_run.md index 48be8a89..615df8f3 100644 --- a/docs/developers/deployment_guides/tunnels/manual_run.md +++ b/docs/developers/deployment_guides/tunnels/manual_run.md @@ -26,7 +26,7 @@ Create an archive of the token: tar -czf tunnel-server-data.tar.gz -C ./tunnel-server-data . ``` -Encrypt and upload the archive to storage using the [`files upload`](/developers/cli_commands/files/upload) command: +Encrypt and upload the archive to storage using the [`files upload`](/cli/cli_commands/files/upload) command: ```bash ./spctl files upload tunnel-server-data.tar.gz --output tunnel-server-data.json --filename tunnel-server-data.tar.gz @@ -40,7 +40,7 @@ Create an order for Tunnel Server using the `tunnel-server-data.json` file conta ./spctl workflows create --tee 1 --solution 6,2 --solution 11,10 --data tunnel-server-data.json --storage 25,30 --orders-limit 10 --min-rent-minutes 60 ``` -**Tip:** to create order make sure that you have sufficient amount of TEE and POL tokens in your testnet wallet. You can get more tokens using the [tokens request](/developers/cli_commands/tokens/request) command. Be mindful of testnet [limitations](/marketplace/limitations). +**Tip:** to create order make sure that you have sufficient amount of TEE and POL tokens in your testnet wallet. You can get more tokens using the [tokens request](/cli/cli_commands/tokens/request) command. Be mindful of testnet [limitations](/marketplace/limitations). The last line of the output will look like this: @@ -50,7 +50,7 @@ Workflow was created, TEE order id: ["XXXX"] Where XXXX is the order ID. -You can check the status of the order using [Marketplace GUI](/developers/marketplace) or this [command](/developers/cli_commands/orders/get): +You can check the status of the order using [Marketplace GUI](/developers/marketplace) or this [command](/cli/cli_commands/orders/get): ```shell ./spctl orders get @@ -123,7 +123,7 @@ Add the folder to archive: tar -czf tunnel-client-data.tar.gz -C ./tunnel-client-data . ``` -Encrypt and upload the archive to storage using the [files upload](/developers/cli_commands/files/upload) command: +Encrypt and upload the archive to storage using the [files upload](/cli/cli_commands/files/upload) command: ```bash ./spctl files upload tunnel-client-data.tar.gz --output tunnel-client-data.json --filename tunnel-client-data.tar.gz diff --git a/docs/developers/deployment_guides/tunnels/repo.md b/docs/developers/deployment_guides/tunnels/repo.md index 640349d8..101b3f1b 100644 --- a/docs/developers/deployment_guides/tunnels/repo.md +++ b/docs/developers/deployment_guides/tunnels/repo.md @@ -59,7 +59,7 @@ You need to add the following secrets: If you private key and certificate files are named differently, then adjust the commands accordingly. -- `SPCTL_CONFIG_BASE64` - save here your [SPCTL config](/developers/cli_guides/configure) in base64 format. Use this command: +- `SPCTL_CONFIG_BASE64` - save here your [SPCTL config](/cli) in base64 format. Use this command: ``` echo "$(cat config.json)" | base64 diff --git a/docs/developers/deployment_guides/tunnels/static_content.md b/docs/developers/deployment_guides/tunnels/static_content.md index 6e23bf0b..d59edc7d 100644 --- a/docs/developers/deployment_guides/tunnels/static_content.md +++ b/docs/developers/deployment_guides/tunnels/static_content.md @@ -34,7 +34,7 @@ This will result in `tunnel-server-data.tar.gz`. ### Upload archive -Solution needs to be encrypted and uploaded to decentralized storage before it may be executed in Super Protocol. The storage credentials will need to have been configured during the [SPCTL setup](/developers/cli_guides/configure#set-up-storj): +Solution needs to be encrypted and uploaded to decentralized storage before it may be executed in Super Protocol. The storage credentials will need to have been configured during the [SPCTL setup](/cli#set-up-storj): ``` ./spctl files upload tunnel-server-data.tar.gz --output tunnel-server-data.json --filename tunnel-server-data.tar.gz @@ -134,7 +134,7 @@ Remember the resulting order ID. ### Check Order Status -You can check the status of the server and client tunnels using the order ID's using this [command](/developers/cli_commands/orders/get): +You can check the status of the server and client tunnels using the order ID's using this [command](/cli/cli_commands/orders/get): ``` ./spctl orders get diff --git a/docs/developers/deployment_guides/tunnels/superchat.md b/docs/developers/deployment_guides/tunnels/superchat.md index 3eef3025..ae464ba5 100644 --- a/docs/developers/deployment_guides/tunnels/superchat.md +++ b/docs/developers/deployment_guides/tunnels/superchat.md @@ -28,7 +28,7 @@ Create `.env` file using command: cp .env.example .env ``` -In addition to storage access that you have previously [created](/developers/cli_guides/configure) to configure SPCTL, you will need S3 credentials for those buckets (because the Super Chat app uses S3 to interact with StorJ). Get them through [this guide](https://docs.storj.io/dcs/access#create-s3-credentials). +In addition to storage access that you have previously [created](/cli) to configure SPCTL, you will need S3 credentials for those buckets (because the Super Chat app uses S3 to interact with StorJ). Get them through [this guide](https://docs.storj.io/dcs/access#create-s3-credentials). Add `Access Key`, `Secret Key`, `S3 Endpoint` and the name of your bucket to the `.env` file. diff --git a/docs/developers/index.md b/docs/developers/index.md index 11d410fa..7b45ff7d 100644 --- a/docs/developers/index.md +++ b/docs/developers/index.md @@ -22,15 +22,15 @@ If you are just starting out, feel your way around Super Protocol using the Mark When you know the basics, try SPCTL—the Super Protocol CLI tool: -1. [Configure SPCTL](/developers/cli_guides/configure) as a user. -2. Read about the [fundamentals](/fundamentals), [Testnet limitations](/marketplace/limitations), and key [CLI commands](/developers/cli_commands). +1. [Configure SPCTL](/cli) as a user. +2. Read about the [fundamentals](/fundamentals), [Testnet limitations](/marketplace/limitations), and key [CLI commands](/cli/cli_commands). 3. Read the [Quick Deployment Guide](/developers/cli_guides/quick_guide) to learn about deploying your solutions. 4. Choose a [deployment guide](/developers/deployment_guides/) to get an example for additional deployment scenarios. ## Create your provider and offers with CLI 1. Follow the [Providers and Offers](/developers/cli_guides/providers_offers) guide to create your provider and a first offer. 2. Follow the [Moderation Guidelines](/developers/marketplace/moderation/) to approve your offer for Marketplace GUI. -3. [Update SPCTL configuration](/developers/cli_guides/configure#for-offer-providers) as a provider to enable management of your provider and offers. +3. [Update SPCTL configuration](/cli#for-offer-providers) as a provider to enable management of your provider and offers. 4. Use the [SPCTL commands](/developers/cli_guides/providers_offers#faq) to manage your provider and offers. Join us on [Discord](https://discord.gg/superprotocol). The Super Protocol team welcomes any feedback and questions! \ No newline at end of file diff --git a/docs/developers/marketplace_gui/confidentiality.md b/docs/developers/marketplace_gui/confidentiality.md index 1d899e05..638345cc 100644 --- a/docs/developers/marketplace_gui/confidentiality.md +++ b/docs/developers/marketplace_gui/confidentiality.md @@ -9,7 +9,7 @@ _Quote verification_ checks the authenticity and integrity of a Trusted Executio In simple terms, quote verification ensures that the content of a domain is running in a TEE. Additionally, if the content is Super Protocol solution offers, the quote verification links the content to the offers. -For quote verification, use the [`quotes validate`](/developers/cli_commands/quotes/validate) CLI command or the **Check confidentiality** function in the Marketplace GUI. +For quote verification, use the [`quotes validate`](/cli/cli_commands/quotes/validate) CLI command or the **Check confidentiality** function in the Marketplace GUI. ## Check how it works diff --git a/docs/developers/marketplace_gui/first-steps.md b/docs/developers/marketplace_gui/first-steps.md index 2657317a..9a628225 100644 --- a/docs/developers/marketplace_gui/first-steps.md +++ b/docs/developers/marketplace_gui/first-steps.md @@ -5,7 +5,7 @@ slug: "/marketplace/first-steps/" sidebar_position: 1 --- -This guide provides step-by-step instructions to help you set up MetaMask and access the Super Protocol Marketplace via the web-based [graphical user interface (GUI)](/developers/marketplace/). If you want to use the command-line interface (CLI), check the [Configure SPCTL](/developers/cli_guides/configure/) guide. +This guide provides step-by-step instructions to help you set up MetaMask and access the Super Protocol Marketplace via the web-based [graphical user interface (GUI)](/developers/marketplace/). If you want to use the command-line interface (CLI), check the [Configure SPCTL](/cli/) guide. The Marketplace GUI is available for anyone to browse even without the MetaMask extension installed. However, you need a [Web3 account](/marketplace/account) to access the full functionality of Super Protocol Marketplace. diff --git a/docs/developers/marketplace_gui/index.md b/docs/developers/marketplace_gui/index.md index ae55415e..b46c40ae 100644 --- a/docs/developers/marketplace_gui/index.md +++ b/docs/developers/marketplace_gui/index.md @@ -5,7 +5,7 @@ slug: "/marketplace/" sidebar_position: 3 --- -Marketplace graphical interface (GUI) is a user-friendly web interface to [Marketplace](/fundamentals). It also provides an interactive learning experience for new users. GUI serves as a companion tool to the Super Protocol command-line interface (CLI) tool [SPCTL](/developers/cli_commands). However, GUI capabilities are currently limited so it is not a full alternative to CLI. +Marketplace graphical interface (GUI) is a user-friendly web interface to [Marketplace](/fundamentals). It also provides an interactive learning experience for new users. GUI serves as a companion tool to the Super Protocol command-line interface (CLI) tool [SPCTL](/cli/cli_commands). However, GUI capabilities are currently limited so it is not a full alternative to CLI. Go to Marketplace GUI: [**marketplace.superprotocol.com**](https://marketplace.superprotocol.com/) @@ -26,29 +26,29 @@ The things you can do in the Marketplace GUI and the their respective CLI comman | **Function** | **SPCTL Command** | |:-----------------------------------------------|:------------------------------------------------------------------------------| -| View details of offers available on blockchain | [`offers`](/developers/cli_commands/offers) | -| Receive test TEE and POL tokens | [`tokens request`](/developers/cli_commands/tokens/request) | -| Create orders using offers | [`workflows create`](/developers/cli_commands/workflows/create) | -| Use your own data for the solution offers | [`workflows create`](/developers/cli_commands/workflows/create) | -| Generate encryption keys for orders | [`workflows generate-key`](/developers/cli_commands/workflows/generate-key) | -| See list of all your orders | [`orders list`](/developers/cli_commands/orders/list) | -| See details and statuses of specific orders | [`orders get`](/developers/cli_commands/orders/get) | -| Replenish order deposits | [`orders replenish-deposit`](/developers/cli_commands/orders/replenish-deposit) | -| Cancel orders | [`orders cancel`](/developers/cli_commands/orders/cancel) | -| Receive order results | [`orders download-result`](/developers/cli_commands/orders/download-result) | -| Check confidentiality | [`quotes validate`](/developers/cli_commands/quotes/validate) | +| View details of offers available on blockchain | [`offers`](/cli/cli_commands/offers) | +| Receive test TEE and POL tokens | [`tokens request`](/cli/cli_commands/tokens/request) | +| Create orders using offers | [`workflows create`](/cli/cli_commands/workflows/create) | +| Use your own data for the solution offers | [`workflows create`](/cli/cli_commands/workflows/create) | +| Generate encryption keys for orders | [`workflows generate-key`](/cli/cli_commands/workflows/generate-key) | +| See list of all your orders | [`orders list`](/cli/cli_commands/orders/list) | +| See details and statuses of specific orders | [`orders get`](/cli/cli_commands/orders/get) | +| Replenish order deposits | [`orders replenish-deposit`](/cli/cli_commands/orders/replenish-deposit) | +| Cancel orders | [`orders cancel`](/cli/cli_commands/orders/cancel) | +| Receive order results | [`orders download-result`](/cli/cli_commands/orders/download-result) | +| Check confidentiality | [`quotes validate`](/cli/cli_commands/quotes/validate) | ## Available in the Marketplace CLI only -The most important functions available only in [SPCTL](/developers/cli_commands): +The most important functions available only in [SPCTL](/cli/cli_commands): | **Function** | **SPCTL Command** | |:-----------------------------------------------|:------------------------------------------------------------------------------| -| Prepare a solution for execution | [`solutions prepare`](/developers/cli_commands/solutions/prepare) | -| Upload files to storage | [`files upload`](/developers/cli_commands/files/upload) | -| Create orders using your solutions | [`workflows create`](/developers/cli_commands/workflows/create) | -| Update an offer | [`offers update`](/developers/cli_commands/offers/offers/update) and [`offers update-slot`](/developers/cli_commands/offers/slots/update-slot)| -| Update a provider | [`providers update`](/developers/cli_commands/providers/update) | +| Prepare a solution for execution | [`solutions prepare`](/cli/cli_commands/solutions/prepare) | +| Upload files to storage | [`files upload`](/cli/cli_commands/files/upload) | +| Create orders using your solutions | [`workflows create`](/cli/cli_commands/workflows/create) | +| Update an offer | [`offers update`](/cli/cli_commands/offers/offers/update) and [`offers update-slot`](/cli/cli_commands/offers/slots/update-slot)| +| Update a provider | [`providers update`](/cli/cli_commands/providers/update) | Refer to the [Providers and offers](/developers/cli_guides/providers_offers) guide to register a provider and create a solution or data offer. diff --git a/docs/developers/marketplace_gui/moderation.md b/docs/developers/marketplace_gui/moderation.md index 1f84b936..fd2c9d6f 100644 --- a/docs/developers/marketplace_gui/moderation.md +++ b/docs/developers/marketplace_gui/moderation.md @@ -20,7 +20,7 @@ Marketplace GUI has a special filter that divides the offers into four categorie -These categories are exclusive meaning an offer can belong only to one category. Offers with the **Disabled** status do not appear in the Marketplace GUI. Providers can use [`offers disable`](/developers/cli_commands/offers/offers/disable) and [`offers enable`](/developers/cli_commands/offers/offers/enable) commands to manage this. +These categories are exclusive meaning an offer can belong only to one category. Offers with the **Disabled** status do not appear in the Marketplace GUI. Providers can use [`offers disable`](/cli/cli_commands/offers/offers/disable) and [`offers enable`](/cli/cli_commands/offers/offers/enable) commands to manage this. ## Requirements diff --git a/docs/developers/marketplace_gui/walkthrough.md b/docs/developers/marketplace_gui/walkthrough.md index 90c725f1..66161d8b 100644 --- a/docs/developers/marketplace_gui/walkthrough.md +++ b/docs/developers/marketplace_gui/walkthrough.md @@ -146,7 +146,7 @@ Either input your own passphrase or generate a new one. Then press the `Place Or ::: -Note: MetaMask is used only for Marketplace GUI. When creating orders via CLI your passphrase will be a part of your [SPCTL configuration](/developers/cli_guides/configure). +Note: MetaMask is used only for Marketplace GUI. When creating orders via CLI your passphrase will be a part of your [SPCTL configuration](/cli). diff --git a/docusaurus.config.js b/docusaurus.config.js index 6913f4f3..ec53562b 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -43,6 +43,17 @@ const config = { rehypePlugins: [katex], }, ], + [ + "@docusaurus/plugin-content-docs", + { + id: "cli", + path: "./docs/cli", + routeBasePath: "/cli", + //sidebarPath: "./sidebars.js", + remarkPlugins: [math], + rehypePlugins: [katex], + }, + ], [ "@docusaurus/plugin-client-redirects", { @@ -111,6 +122,13 @@ const config = { label: "Fundamentals", docsPluginId: "fundamentals", }, + { + type: "doc", + docId: "index", + position: "right", + label: "CLI", + docsPluginId: "cli", + }, /*{ type: "doc", docId: "index", @@ -145,7 +163,7 @@ const config = { "@easyops-cn/docusaurus-search-local", ({ hashed: true, - docsRouteBasePath: [/*"developers", */"marketplace", "whitepaper", "fundamentals"], + docsRouteBasePath: [/*"developers", */"marketplace", "whitepaper", "fundamentals", "cli"], language: ["en"], highlightSearchTermsOnTargetPage: true, explicitSearchResultPath: true, From e77e78b939c4f1b27842ff7461be8ae9d6c1d2ed Mon Sep 17 00:00:00 2001 From: k3dz0r Date: Wed, 25 Dec 2024 15:16:21 -0300 Subject: [PATCH 2/2] Marketplace Updated guides, troubleshooting, order-builder, order --- docs/marketplace/guides/place-order.md | 7 ++++++- docs/marketplace/guides/troubleshooting.md | 2 ++ docs/marketplace/images/model-warning.png | Bin 6043 -> 0 bytes .../images/order-builder-queue.png | Bin 0 -> 3732 bytes docs/marketplace/images/order-full.png | Bin 26874 -> 25067 bytes .../marketplace/orders/order-builder/index.md | 15 +++++++-------- docs/marketplace/orders/order/index.md | 7 ++++--- 7 files changed, 19 insertions(+), 12 deletions(-) delete mode 100644 docs/marketplace/images/model-warning.png create mode 100644 docs/marketplace/images/order-builder-queue.png diff --git a/docs/marketplace/guides/place-order.md b/docs/marketplace/guides/place-order.md index f9d33f80..b7984bbc 100644 --- a/docs/marketplace/guides/place-order.md +++ b/docs/marketplace/guides/place-order.md @@ -76,6 +76,11 @@ Once you add an engine, click **Select Compute** to open the list of available c Click the blue **[+]** button to add a machine to the order. +**In Queue** shows the number of orders waiting for an empty slot on this machine. If it is not zero, your order may take longer to process. Consider choosing another compute offer. + + +
+ ## Step 4. Set lease time The panel at the bottom of the screen displays the total prices: @@ -123,7 +128,7 @@ Once the Deploy order is placed successfully, you will be redirected to its [**O ## Step 6. Manage the order -Your order may take about 30 minutes to process if you used a model from Marketplace and up to one hour for uploaded models. You can check the order status in the **Order** screen. When the model is deployed and available, you will see **Online** in the tunnel's status. +Your order may take about 30 minutes to process if you used a model from Marketplace and up to one hour for uploaded models. You can check the order status in the **Order** screen. When the model is deployed and available, you will see **Deployed** in the order status and **Online** in the tunnel's status.
diff --git a/docs/marketplace/guides/troubleshooting.md b/docs/marketplace/guides/troubleshooting.md index 63fd5d68..28adddc3 100644 --- a/docs/marketplace/guides/troubleshooting.md +++ b/docs/marketplace/guides/troubleshooting.md @@ -19,6 +19,8 @@ If MetaMask shows no requests, refresh the page and press the **Enter Marketplac If the problem persists, restart your browser and unlock MetaMask before trying to enter the Marketplace. +This issue may also occur due to Marketplace maintenance. Wait a few minutes and try again, or contact Super Protocol on Discord for a quick update. + ## Order status: Error The **Error** status means something went completely wrong, and the model was not deployed. diff --git a/docs/marketplace/images/model-warning.png b/docs/marketplace/images/model-warning.png deleted file mode 100644 index 8dedb45afa85e140d91a30ac116b1cce3f224488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6043 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 Ctf=Y$ diff --git a/docs/marketplace/images/order-builder-queue.png b/docs/marketplace/images/order-builder-queue.png new file mode 100644 index 0000000000000000000000000000000000000000..afdc0e1b76db40d7a77440f0f33e0597ef15d647 GIT binary patch literal 3732 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 w^IDAj_=B{JZ22Y6Fu?i$BfW$4 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μsC}xC@K>MLndYIVMV! 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%0DXBPZ9h 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 diff --git a/docs/marketplace/orders/order-builder/index.md b/docs/marketplace/orders/order-builder/index.md index eb07ac64..a2bad0d7 100644 --- a/docs/marketplace/orders/order-builder/index.md +++ b/docs/marketplace/orders/order-builder/index.md @@ -40,13 +40,7 @@ Clicking the model's name opens its [**Offer**](/marketplace/marketplace/offer) To view the model's requirement slot, expand the **Requirements**. If an offer has multiple requirement slots, the **[+]** and **Requirements** buttons will open the **Pricing** tab within the model's **Offer** window. There, you can find the complete list of the model's requirement slots. -If you add your uploaded model, a yellow warning icon will appear. - - -
-
- -It indicates that the requirements of the model are not specified. The system will not include the model in the automatic calculation of the compute configuration because it doesn't know how much resources it needs to run. +If you add your uploaded model, its requirements are not specified. The system does not include such models in the automatic calculation of the compute configuration. :::warning @@ -94,12 +88,17 @@ For orders using tunnels, the engine settings will include the **Tunnels** tab w ## Compute -The term _compute_ refers to a confidential computing device that processes the order. +The term _compute_ refers to a confidential computing machine that processes the order. The system automatically calculates a compute configuration that meets or exceeds the combined requirements of the models, datasets, and engine added to the order. To add a machine to the order, click the blue **[+]** button next to it. +**In Queue** shows the number of orders waiting for an empty slot on this machine. If it is not zero, your order may take longer to process. Consider choosing another compute offer. + Clicking the machine's name opens its [**Offer**](/marketplace/marketplace/offer) window. + +
+ Learn more about [requirements and configurations](/fundamentals/slots). ## Checkout diff --git a/docs/marketplace/orders/order/index.md b/docs/marketplace/orders/order/index.md index 04012839..c64df64e 100644 --- a/docs/marketplace/orders/order/index.md +++ b/docs/marketplace/orders/order/index.md @@ -20,7 +20,8 @@ The contents of an order are encrypted and accessible only to the user who place - **Suspended**. The order is awaiting the creation of suborders. - **Blocked**. A suborder temporarily blocks the order to generate access keys and authorize the confidential computing device to access the suborder's content. - **New**. The order is awaiting in the queue for the computing device to become available. -- **Processing**. The computign device is executing the order inside a Trusted Execution Environment. Note that for Deploy orders this status may also mean the model is deployed and running normally; in this case the status of the tunnels will be **Online**. +- **Processing**. The machine is executing the order inside a Trusted Execution Environment. +- **Deployed**. The model is deployed and running. - **Done**. The computation is done, and the order result is available for download. For Deploy orders, it also means the model is no longer running. Additional possible statuses: @@ -43,9 +44,9 @@ The **Financials** section shows payment-related information about the order: - **Cost Per Hour** is the total cost of all the offers priced per hour. The order balance decreases by this amount every hour. - **Balance** is the remaining order balance. You can replenish the balance using the **Extend Lease** button. -## Tunnels +## Deployment -The **Tunnels** section informs about the launched tunnel. Tunnels enable end users to securely access a model deployed on Super Protocol from the internet. Learn more about [Tunnels](/fundamentals/tunnels). +The **Deployment** section informs about the launched tunnel. Tunnels enable end users to securely access a model deployed on Super Protocol from the internet. Learn more about [Tunnels](/fundamentals/tunnels). **Status** indicates the current state of the tunnel: