Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1660,3 +1660,4 @@ CPython
XXE
CWE
Mono
whitespace
9 changes: 9 additions & 0 deletions bash.exe.stackdump
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Stack trace:
Frame Function Args
000FFFFBC80 00210062B0E (00210297158, 00210275E3E, 00000000000, 000FFFFAB80)
000FFFFBC80 0021004846A (00000000000, 00000000000, 00000000000, 00000000004)
000FFFFBC80 002100484A2 (00210297209, 000FFFFBB38, 00000000000, 00000000000)
000FFFFBC80 002100D2FFE (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFBC80 002100D3125 (000FFFFBC90, 00000000000, 00000000000, 00000000000)
001004F84B7 002100D46E5 (000FFFFBC90, 00000000000, 00000000000, 00000000000)
End of stack trace
Original file line number Diff line number Diff line change
Expand Up @@ -769,7 +769,9 @@ This applies to the great majority of configuration keys, but not to every one o

## Allow unicode characters in script command context

When set to `true`, allows passing unicode characters to script environment variables. This is useful when usernames or other context values contain unicode characters.
When set to `true`, allows passing unicode characters to script environment variables. This is useful when usernames or other context values contain unicode characters. By default, unicode characters are suppressed when CloudShell builds the environment variables that pass the command context to a script.

The Execution Server reads this key, so set it on each Execution Server that runs the affected scripts — setting it on the Quali Server has no effect. Restart the Execution Server service after changing it.

<table>
<tbody>
Expand All @@ -783,19 +785,19 @@ When set to `true`, allows passing unicode characters to script environment vari
</tr>
<tr>
<td>Where to add/change</td>
<td>`customer.config` CloudShell Server installation directory</td>
<td>`customer.config` Execution Server installation directory</td>
</tr>
<tr>
<td>Default value</td>
<td>False</td>
</tr>
<tr>
<td>Affected CloudShell Component</td>
<td>CloudShell Server</td>
<td>Execution Server</td>
</tr>
<tr>
<td>Version</td>
<td>2024.1 and above</td>
<td>2024.1.0.2669 and above</td>
</tr>
</tbody>
</table>
Expand All @@ -819,6 +821,8 @@ The following placeholders are supported:
| `{version}` | CloudShell version (without the build number). |
| `{pageType}` | Identifier of the current Portal page (empty if not available). |
| `{pageUrl}` | Path and query string of the current Portal page. |
| `{pageContent}` | The visible text of the Portal's main content area, with runs of whitespace collapsed to single spaces and **truncated to the first 2000 characters**. |
| `{context}` | All of the other placeholder values as a single JSON object. Use this to hand the whole context to a chat service that takes one free-text query — it is the placeholder used in the example that ships in `customer.config`. |

**Available only inside a sandbox or blueprint page** (replaced with empty values on all other pages, such as the catalog or inventory):

Expand All @@ -832,14 +836,20 @@ The following placeholders are supported:
| `{resourceCount}` | Number of resources in the sandbox/blueprint. |

:::note
Sandbox placeholders (`{sandboxId}`, `{sandboxName}`, `{status}`, `{setupStage}`, `{resourceList}`, `{resourceCount}`) are only populated when the user opens the AI Assistant from within a sandbox or blueprint diagram. On any other page they are replaced with empty values.
- Sandbox placeholders (`{sandboxId}`, `{sandboxName}`, `{status}`, `{setupStage}`, `{resourceList}`, `{resourceCount}`) are only populated when the user opens the AI Assistant from within a sandbox or blueprint diagram. On any other page they are replaced with empty values.
- Each value is URL-encoded automatically when it is substituted, so do not encode the placeholders yourself.
- A placeholder that is not in the list above — including a misspelled one — is replaced with an empty string rather than reported as an error. If a template produces a URL with missing values, check the placeholder spelling first.
:::

:::warning Both `{pageContent}` and `{context}` send Portal content off-site
`{pageContent}` carries whatever text is currently on the user's screen, and `{context}` embeds `{pageContent}` along with every other value. Using either one sends that content — which can include resource names, addresses, and attribute values shown on the page — to the external chat service in the URL, where it may be logged or retained by that service. Point the template only at a service your organization is willing to share this data with, and prefer the narrower placeholders if you do not need the full page.
:::

<table>
<tbody>
<tr>
<td>Key</td>
<td>`<add key="AIChatURL" value="https://your-ai-chat-url.com?page={pageUrl}&amp;sandbox={sandboxId}"/>`</td>
<td>`<add key="AiChatUrl" value="https://your-ai-chat-url.com?page={pageUrl}&amp;sandbox={sandboxId}"/>`</td>
</tr>
<tr>
<td>Possible values</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,25 @@ sudo docker run -d --name ExecutionServer --restart unless-stopped -p 5093:5093

*Added in CloudShell 2026.1*

The Docker Execution Server supports passing **Execution Server Selector** attributes via environment variables. This allows CloudShell to route commands to the correct Execution Server based on attribute matching (e.g., by region or capability).
The Docker Execution Server can register itself with attributes, such as an **Execution Server Selector** value. This allows CloudShell to route commands to the correct Execution Server based on attribute matching (for example, by region or capability).

To pass attributes, add `-e` flags to the `docker run` command using the format `ATTRIBUTE_<AttributeName>=<Value>`:
Attributes are passed in a **single** `ES_ATTRIBUTES` environment variable holding a JSON object of attribute names and values — not as one variable per attribute:

```javascript
sudo docker run -d --name ExecutionServer --restart unless-stopped -p 5093:5093 \
-e PARAMS="192.168.25.4,admin,admin,ES-Docker" \
-e ATTRIBUTE_Region="US-East" \
-e ATTRIBUTE_Location="SiteA" \
-e ES_ATTRIBUTES="{'Execution Server Selector':'US-East','MyAttr':'MyValue'}" \
-v ~/customer.config:/opt/ExecutionServer/customer.config qualihub/executionserver
```

These attributes function as Execution Server Selectors — when a resource or App has matching selector attributes, CloudShell will route its commands to this Execution Server. For more on Execution Server selection, see [Setting Up Execution Servers to Run Commands](../../../admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md).
:::note
- Attribute names and values are single-quoted inside the JSON, and the whole value is wrapped in double quotes so the shell passes it as one argument.
- Attribute names may contain spaces, as `Execution Server Selector` does.
- `ES_ATTRIBUTES` is optional. When it is omitted, the Execution Server registers with no attributes beyond the Ansible support attribute, which the container always sets.
- Attributes are applied when the container first registers the Execution Server. To change them later, update the variable and re-create the container.
:::

To make CloudShell route a resource's or App's commands to this Execution Server, give the resource or App a matching **Execution Server Selector** attribute value. For details, see [Setting Up Execution Servers to Run Commands](../../../admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md).
:::info
- If you want to specify the version, you can edit the end of the command to include the version number. Example: qualihub/executionserver:2024.1
- See what versions are available here: https://hub.docker.com/r/qualihub/executionserver/tags
Expand Down
Loading