From b6b8786f7f41b3af48114648640b7eb6093eb5a1 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 16 Jan 2026 13:46:59 +0300 Subject: [PATCH] Documentation: Added document for Studio custom commands feature --- docs/en/docs-nav.json | 4 + docs/en/studio/custom-commands.md | 128 ++++++++++++++++++ .../custom-commands/create-edit-command.png | Bin 0 -> 61116 bytes .../custom-commands/management-window.png | Bin 0 -> 33103 bytes docs/en/studio/kubernetes.md | 48 +------ docs/en/studio/running-applications.md | 4 + 6 files changed, 143 insertions(+), 41 deletions(-) create mode 100644 docs/en/studio/custom-commands.md create mode 100644 docs/en/studio/images/custom-commands/create-edit-command.png create mode 100644 docs/en/studio/images/custom-commands/management-window.png diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index b59620e72b..d1385d01a5 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -347,6 +347,10 @@ { "text": "Working with ABP Suite", "path": "studio/working-with-suite.md" + }, + { + "text": "Custom Commands", + "path": "studio/custom-commands.md" } ] }, diff --git a/docs/en/studio/custom-commands.md b/docs/en/studio/custom-commands.md new file mode 100644 index 0000000000..916861442e --- /dev/null +++ b/docs/en/studio/custom-commands.md @@ -0,0 +1,128 @@ +```json +//[doc-seo] +{ + "Description": "Learn how to create and manage custom commands in ABP Studio to automate build, deployment, and other workflows." +} +``` + +# Custom Commands + +````json +//[doc-nav] +{ + "Next": { + "Name": "Working with ABP Suite", + "Path": "studio/working-with-suite" + } +} +```` + +Custom commands allow you to define reusable terminal commands that appear in context menus throughout ABP Studio. You can use them to automate repetitive tasks such as building Docker images, installing Helm charts, running deployment scripts, or executing any custom workflow. + +> **Note:** This is an advanced feature primarily intended for teams working with Kubernetes deployments or complex build/deployment workflows. If you're developing a standard application without custom DevOps requirements, you may not need this feature. + +## Opening the Management Window + +To manage custom commands, right-click on the solution root in *Solution Explorer* and select *Manage Custom Commands*. + +![Custom Commands Management Window](images/custom-commands/management-window.png) + +The management window displays all defined commands with options to add, edit, or delete them. + +## Creating a New Command + +Click the *Add New Command* button to open the command editor dialog. + +![Create/Edit Custom Command](images/custom-commands/create-edit-command.png) + +## Command Properties + +| Property | Description | +|----------|-------------| +| **Command Name** | A unique identifier for the command (used internally) | +| **Display Name** | The text shown in context menus | +| **Terminal Command** | The PowerShell command to execute. Use `&&&` to chain multiple commands | +| **Working Directory** | Optional. The directory where the command runs (relative to solution path) | +| **Condition** | Optional. A [Scriban](https://github.com/scriban/scriban/blob/master/doc/language.md) expression that determines when the command is visible | +| **Require Confirmation** | When enabled, shows a confirmation dialog before execution | +| **Confirmation Text** | The message shown in the confirmation dialog | + +## Trigger Targets + +Trigger targets determine where your command appears in context menus. You can select multiple targets for a single command. + +| Target | Location | +|--------|----------| +| **Helm Charts Root** | *Kubernetes* panel > *Helm* tab > root node | +| **Helm Main Chart** | *Kubernetes* panel > *Helm* tab > main chart | +| **Helm Sub Chart** | *Kubernetes* panel > *Helm* tab > sub chart | +| **Kubernetes Service** | *Kubernetes* panel > *Kubernetes* tab > service | +| **Solution Runner Root** | *Solution Runner* panel > profile root | +| **Solution Runner Folder** | *Solution Runner* panel > folder | +| **Solution Runner Application** | *Solution Runner* panel > application | + +## Execution Targets + +Execution targets define where the command actually runs. This enables cascading execution: + +- When you trigger a command from a **root or parent item**, it can recursively execute on all matching children +- For example: trigger from *Helm Charts Root* with execution target *Helm Sub Chart* → the command runs on each sub chart + +## Template Variables + +Commands support [Scriban](https://github.com/scriban/scriban/blob/master/doc/language.md) template syntax for dynamic values. Use `{{variable}}` to insert context-specific data. + +### Available Variables by Context + +**Helm Charts:** + +| Variable | Description | +|----------|-------------| +| `profile.name` | Kubernetes profile name | +| `profile.namespace` | Kubernetes namespace | +| `chart.name` | Current chart name | +| `chart.path` | Chart directory path | +| `metadata.*` | Hierarchical metadata values (e.g., `metadata.imageName`) | +| `secrets.*` | Secret values (e.g., `secrets.registryPassword`) | + +**Kubernetes Service:** + +| Variable | Description | +|----------|-------------| +| `name` | Service name | +| `profile.name` | Kubernetes profile name | +| `profile.namespace` | Kubernetes namespace | +| `mainChart.name` | Parent main chart name | +| `chart.name` | Related sub chart name | +| `chart.metadata.*` | Chart-specific metadata | + +**Solution Runner (Root, Folder, Application):** + +| Variable | Description | +|----------|-------------| +| `profile.name` | Run profile name | +| `profile.path` | Profile file path | +| `application.name` | Application name (Application context only) | +| `application.baseUrl` | Application URL (Application context only) | +| `folder.name` | Folder name (Folder/Application context) | +| `metadata.*` | Profile metadata values | +| `secrets.*` | Profile secret values | + +## Example: Build Docker Image + +Here's an example command that builds a Docker image for Helm charts: + +**Command Properties:** +- **Command Name:** `buildDockerImage` +- **Display Name:** `Build Docker Image` +- **Terminal Command:** `./build-image.ps1 -ProjectPath {{metadata.projectPath}} -ImageName {{metadata.imageName}}` +- **Working Directory:** `etc/helm` +- **Trigger Targets:** Helm Charts Root, Helm Main Chart, Helm Sub Chart +- **Execution Targets:** Helm Main Chart, Helm Sub Chart +- **Condition:** `{{metadata.projectPath}}` + +This command: +1. Appears in the context menu of Helm charts root and all chart nodes +2. Executes on main charts and sub charts (cascading from root if triggered there) +3. Only shows for charts that have `projectPath` metadata defined +4. Runs the `build-image.ps1` script with dynamic parameters from metadata diff --git a/docs/en/studio/images/custom-commands/create-edit-command.png b/docs/en/studio/images/custom-commands/create-edit-command.png new file mode 100644 index 0000000000000000000000000000000000000000..7091516a8f93b52099fb1ca11a295b5b8425e602 GIT binary patch literal 61116 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 literal 0 HcmV?d00001 diff --git a/docs/en/studio/images/custom-commands/management-window.png b/docs/en/studio/images/custom-commands/management-window.png new file mode 100644 index 0000000000000000000000000000000000000000..3a24ac8dc4dd8c167f1c84278874b9aa8b07fe9c GIT binary patch literal 33103 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 *Reload Solution* in the toolbar. After reloading, you will find the *Redeploy with Push Image* command in the context-menu of the service. +Custom commands can be added to the *Chart Root*, *Main Chart*, and *Sub Chart* in the *Helm* tab, as well as to the *Service* in the *Kubernetes* tab. ![redeploy-push-image](./images/kubernetes/redeploy-push-image.png) -The JSON object has the following properties: - -- `triggerTargets`: Specifies the trigger targets for the command. The added command will appear in these targets. You can add one or more trigger targets, accepting values such as *HELM_CHARTS_ROOT*, *HELM_MAIN_CHART*, *HELM_SUB_CHART* and *KUBERNETES_SERVICE*. -- `executionTargets`: Specifies the execution targets for the command. When executing the command on a root item, it will recursively execute the command for all children. Acceptable values include *HELM_CHARTS_ROOT*, *HELM_MAIN_CHART*, *HELM_SUB_CHART*, and *KUBERNETES_SERVICE*. -- `displayName`: Specifies the display name of the command. -- `workingDirectory`: Specifies the working directory of the command. It's relative to the solution path. -- `terminalCommand`: Specifies the terminal command for the custom command. The `&&&` operator can be used to run multiple commands in the terminal. Utilize the [Scriban](https://github.com/scriban/scriban/blob/master/doc/language.md) syntax to access input data, which varies based on the execution target. -- `requireConfirmation`: Specifies whether the command requires confirmation message before execution. Acceptable values include *true* and *false*. -- `confirmationText`: Specifies the confirmation text for the command. Utilize the [Scriban](https://github.com/scriban/scriban/blob/master/doc/language.md) syntax to access input data, which varies based on the execution target. -- `condition`: Specifies the condition for the command. If the condition returns *false*, it skips the current item and attempts to execute the command for the next item or child item. Utilize the [Scriban](https://github.com/scriban/scriban/blob/master/doc/language.md) syntax to access input data, which varies based on the execution target. - -You can use the following variables in the scriban syntax based on the execution target: - - `HELM_CHARTS_ROOT`: *profile*, *metadata*, *secrets* - - `HELM_MAIN_CHART`: *profile*, *chart*, *metadata*, *secret* - - `HELM_SUB_CHART`: *profile*, *chart*, *metadata*, *secret* - - `KUBERNETES_SERVICE`: *name*, *profile*, *mainChart*, *chart*, *metadata*, *secret* +For detailed information on creating and managing custom commands, see the [Custom Commands](custom-commands.md) documentation. diff --git a/docs/en/studio/running-applications.md b/docs/en/studio/running-applications.md index adec07ad66..1a0b22ae3c 100644 --- a/docs/en/studio/running-applications.md +++ b/docs/en/studio/running-applications.md @@ -244,6 +244,10 @@ The *Open with* submenu provides options to open the application project in exte - **Terminal**: Opens a terminal window in the project directory. - **Explorer / Finder**: Opens the project folder in the system file explorer. +### Custom Commands + +You can add custom commands that appear in the context menu of Solution Runner items (root, folders, and applications). These commands allow you to automate custom workflows and scripts. For details on creating and managing custom commands, see the [Custom Commands](custom-commands.md) documentation. + ### Miscellaneous - We can copy the selected application *Browse* URL with *Copy URL*. It copies the *Browse* URL instead of *Launch URL* since we could be connected to a *Kubernetes* service.