diff --git a/docs/admin/cloudshell-event-queue.md b/docs/admin/cloudshell-event-queue.md index b3eed1ff4b..893c167540 100644 --- a/docs/admin/cloudshell-event-queue.md +++ b/docs/admin/cloudshell-event-queue.md @@ -58,11 +58,21 @@ ServerEventsWhiteList.csv should be line-break separated, not comma separated. [See](#supported-events) which [events](#supported-events) are supported (all are sent by default) +:::warning Use the event name, not the .NET class name +Each entry must be the event's **name** as listed in [Supported Events](#supported-events) — for example `UserCreated`, not `UserCreatedEvent`. Names that do not match an entry in that list are ignored, and CloudShell Server writes a warning to its log: + +``` +Could not subscribe to event ''. Please make sure the event name is spelled correctly in your whitelist file +``` + +If every name in the file is unrecognized, no events are published at all. +::: + :::info[Example csv] ``` -UserCreatedEvent -UserGroupsListUpdatedEvent -LoginEvent +UserCreated +UserGroupsListUpdated +Login ``` ::: @@ -85,89 +95,100 @@ In the above example, Cloudshell Server would only emit events related to new us ## Supported Events -**UserCreatedEvent**: This event is triggered when a new user is created. -**UserDeletedEvent**: This event occurs when a user is deleted. +The name in bold is the event's name: use it in `ServerEventsWhiteList.csv`, and expect it in the `EventType` field of the published message. + +**UserCreated**: This event is triggered when a new user is created. + +**UserDeleted**: This event occurs when a user is deleted. + +**UserGroupsListUpdated**: This event is fired when the list of user groups is updated. + +**UserUpdated**: This event happens when a user's details are updated. + +**Login**: This event is triggered when a user logs in. *Since CloudShell 2024.1.0.2596*, login events are also generated for SSO (Single Sign-On) logins. Previously, login events were only created for direct authentication. + +**GroupAdded**: This event occurs when a new user group is added. -**UserGroupsListUpdatedEvent**: This event is fired when the list of user groups is updated. +**GroupDeleted**: This event is fired when a user group is deleted. -**UserUpdatedEvent**: This event happens when a user's details are updated. +**GroupDomainsUpdated**: This event is triggered when the domains of a user group are updated. -**LoginEvent**: This event is triggered when a user logs in. *Since CloudShell 2024.1.0.2596*, login events are also generated for SSO (Single Sign-On) logins. Previously, login events were only created for direct authentication. +**GroupUpdated**: This event happens when a user group is updated. -**UserGroupAddedEvent**: This event occurs when a new user group is added. +**JobEnded**: This event occurs when a job ends. -**UserGroupDeletedEvent**: This event is fired when a user group is deleted. +**JobSetEnded**: This event is fired when a job suite ends. -**UserGroupDomainsUpdatedEvent**: This event is triggered when the domains of a user group are updated. +**ResourceAvailabilityChanged**: This event is triggered when the availability of a resource changes. -**UserGroupUpdatedEvent**: This event happens when a user group is updated. +**BlueprintCreated**: This event occurs when a new blueprint is created. -**JobEndedEvent**: This event occurs when a job ends. +**BlueprintUpdated**: This event is fired when a blueprint is updated. -**JobSetEndedEvent**: This event is fired when a job suite ends. +**BlueprintDeleted**: This event is triggered when a blueprint is deleted. -**ResourceAvailabilityChangedDomainEvent**: This event is triggered when the availability of a resource changes. +**BlueprintRenamed**: This event happens when a blueprint is renamed. -**BlueprintCreatedEvent**: This event occurs when a new blueprint is created. +**DeployResource**: This event occurs when a resource is deployed. -**BlueprintUpdatedEvent**: This event is fired when a blueprint is updated. +**ResourceIncluded**: This event is fired when a resource is enabled (included). -**BlueprintDeletedEvent**: This event is triggered when a blueprint is deleted. +**ResourceExcluded**: This event is triggered when a resource is disabled (excluded). -**BlueprintRenamedEvent**: This event happens when a blueprint is renamed. +**ResourceAdded**: This event occurs when a resource is added. -**DeployResourceEvent**: This event occurs when a resource is deployed. +**ResourceDeleted**: This event is fired when a resource is deleted. -**ResourceEnabledEvent**: This event is fired when a resource is enabled. +**ResourceMoved**: This event happens when a resource is moved. -**ResourceDisabledEvent**: This event is triggered when a resource is disabled. +**ResourceRenamed**: This event occurs when a resource is renamed. -**ResourceAddedEvent**: This event occurs when a resource is added. +**ResourceUpdated**: This event is fired when a resource is updated. -**ResourceDeletedEvent**: This event is fired when a resource is deleted. +**ResourcesReserved**: This event is triggered when resources are reserved. -**ResourceMovedEvent**: This event happens when a resource is moved. +**ResourceUnlocked**: This event occurs when a resource is unlocked. -**ResourceRenamedEvent**: This event occurs when a resource is renamed. +**BulkResourcesAdded**: This event is fired when multiple resources are added in bulk. -**ResourceUpdatedEvent**: This event is fired when a resource is updated. +**SandboxCreated**: This event is triggered when a sandbox is created. -**ResourcesReservedEvent**: This event is triggered when resources are reserved. +**SandboxDeleted**: This event occurs when a sandbox is deleted. -**ResourceUnlockedEvent**: This event occurs when a resource is unlocked. +**SandboxEnd**: This event is fired when a sandbox ends. -**BulkResourcesAddedEvent**: This event is fired when multiple resources are added in bulk. +**SandboxEndTimeChanged**: This event is triggered when the end time of a sandbox is changed. -**SandboxCreatedEvent**: This event is triggered when a sandbox is created. +**SandboxRejected**: This event happens when a sandbox is rejected (typically due to user or license restrictions). -**SandboxDeleteEvent**: This event occurs when a sandbox is deleted. +**SandboxRenamed**: This event occurs when a sandbox is renamed. -**SandboxEndEvent**: This event is fired when a sandbox ends. +**SandboxSetupEnded**: This event is fired when the setup of a sandbox ends. -**SandboxEndTimeChangedEvent**: This event is triggered when the end time of a sandbox is changed. +**SandboxStartTimeChanged**: This event is triggered when the start time of a sandbox is changed. -**SandboxRejectedEvent**: This event happens when a sandbox is rejected (typically due to user or license restrictions). +**SandboxUpdated**: This event happens when a sandbox is updated. -**SandboxRenamedEvent**: This event occurs when a sandbox is renamed. +**SandboxRouteConnected** *(Added in CloudShell 2024.1.0.2529)*: This event is triggered when a route is connected in a sandbox. -**SandboxSetupEndedEvent**: This event is fired when the setup of a sandbox ends. +**SandboxRouteDisconnected** *(Added in CloudShell 2024.1.0.2529)*: This event occurs when a route is disconnected in a sandbox. -**SandboxStartTimeChangedEvent**: This event is triggered when the start time of a sandbox is changed. +**SandboxCableConnected** *(Added in CloudShell 2024.1.0.2529)*: This event is triggered when a cable is connected in a sandbox. -**SandboxUpdateEvent**: This event happens when a sandbox is updated. +**SandboxCableDisconnected** *(Added in CloudShell 2024.1.0.2529)*: This event occurs when a cable is disconnected in a sandbox. -**WorkOrderResourceUpdatedEvent**: This event is fired when a work order resource is updated in an assembly lab sandbox. +**WorkOrderResourceUpdated**: This event is fired when a work order resource is updated in an assembly lab sandbox. -**WorkOrderResourceSolvedEvent**: This event occurs when a concrete resource is selected for a work order resource in an assembly lab sandbox. +**WorkOrderResourceSolved**: This event occurs when a concrete resource is selected for a work order resource in an assembly lab sandbox. -**WorkOrderResourceCreatedEvent**: This event is triggered when a work order resource is created in an assembly lab sandbox. +**WorkOrderResourceCreated**: This event is triggered when a work order resource is created in an assembly lab sandbox. -**WorkOrderResourceUnsolvedEvent**: This event is fired when a concrete match for a work order resource is unselected in an assembly lab sandbox. +**WorkOrderResourceUnsolved**: This event is fired when a concrete match for a work order resource is unselected in an assembly lab sandbox. -**WorkOrderResourceRemovedEvent**: This event happens when a work order resource is removed in an assembly lab sandbox. +**WorkOrderResourceRemoved**: This event happens when a work order resource is removed in an assembly lab sandbox. -**AttributeChangedEvent** *(Added in CloudShell 2024.1)*: This event is triggered when an attribute value is changed on a resource. Useful for monitoring attribute changes via MQ integration for audit or automation purposes. +**ResourceAttributeUpdated** *(Added in CloudShell 2024.1.0.2549)*: This event is triggered when an attribute value is changed on a resource. Useful for monitoring attribute changes via MQ integration for audit or automation purposes. ## Domain ID in Events diff --git a/docs/admin/cloudshell-identity-management/managing-cloudshell-permissions/capabilities/index.md b/docs/admin/cloudshell-identity-management/managing-cloudshell-permissions/capabilities/index.md index 919711a3a3..260b9806fb 100644 --- a/docs/admin/cloudshell-identity-management/managing-cloudshell-permissions/capabilities/index.md +++ b/docs/admin/cloudshell-identity-management/managing-cloudshell-permissions/capabilities/index.md @@ -23,22 +23,31 @@ Capability Sets can be managed through both the CloudShell API and the CloudShel Administrators can then associate these Capability Sets with user groups. If multiple Capability Sets apply to a user group, the system prioritizes the most permissive settings for each capability. -### Example Capabilities - -- **VIEW SETTINGS**: Access to the Manage page in CloudShell Portal. -- **VIEW EXECUTION SERVERS**: Access to Manage/Execution Servers. -- **VIEW_CATEGORIES**: Access to Manage/Categories. -- **VIEW_SANDBOX_DATA**: Access to sandbox data in CloudShell Portal. -- **MANAGE_USERS_PERMISSIONS**: Ability to manage Capability Sets and Roles. -- **ADD_REMOVE_BLUEPRINT_RESOURCE**: Add or remove resources from blueprints. -- **ADD_REMOVE_SANDBOX_RESOURCE**: Add or remove resources from sandboxes. -- **ADD_REMOVE_BLUEPRINT_ABSTRACT_RESOURCE**: Modify abstract resources in blueprints. -- **ADD_REMOVE_SANDBOX_ABSTRACT_RESOURCE**: Modify abstract resources in sandboxes. -- **ADD_REMOVE_BLUEPRINT_SERVICE**: Add or remove services from blueprints. -- **ADD_REMOVE_SANDBOX_SERVICE**: Add or remove services from sandboxes. -- **UPDATE_WORK_ORDER**: Make changes to work orders. -- **VIEW_WORK_ORDER**: View work orders within sandboxes. -- **UNSOLVE_SANDBOX_ABSTRACT**: Modify abstract matches in sandboxes. +### Available Capabilities + +In CloudShell Portal, each capability's description is shown as a tooltip when you build a capability set. + +| Capability | Description | +| --- | --- | +| `VIEW_SETTINGS` | Access to the Manage page in CloudShell Portal. | +| `VIEW_EXECUTION_SERVERS` | Access to Manage/Execution Servers, to monitor execution servers. | +| `VIEW_CATEGORIES` | Access to Manage/Categories. | +| `VIEW_SANDBOX_DATA` | Access to sandbox data in CloudShell Portal. | +| `MANAGE_USERS_PERMISSIONS` | Ability to manage Capability Sets and Roles. | +| `ADD_REMOVE_BLUEPRINT_RESOURCE` | Add or remove resources from blueprints. | +| `ADD_REMOVE_SANDBOX_RESOURCE` | Add or remove resources from sandboxes. | +| `ADD_REMOVE_BLUEPRINT_ABSTRACT_RESOURCE` | Modify abstract resources in blueprints. | +| `ADD_REMOVE_SANDBOX_ABSTRACT_RESOURCE` | Modify abstract resources in sandboxes. | +| `ADD_REMOVE_BLUEPRINT_SERVICE` | Add or remove services from blueprints. | +| `ADD_REMOVE_SANDBOX_SERVICE` | Add or remove services from sandboxes. | +| `ADD_REMOVE_SANDBOX_ROUTE_CONNECTION` | Add or remove routes in sandboxes. | +| `SHARE_UNSHARE_SANDBOX_RESOURCE` | Share or unshare resources in sandboxes. | +| `UNSOLVE_SANDBOX_ABSTRACT` | Modify abstract matches in sandboxes. | +| `MOVE_RESOURCE` | Move sub-resources to a different resource, or change the resource path. | +| `SET_SANDBOX_START_TIME` | Set the start time for sandboxes. | +| `SET_SANDBOX_END_TIME` | Set the end time for sandboxes. | +| `UPDATE_WORK_ORDER` | Make changes to work orders. | +| `VIEW_WORK_ORDER` | View work orders within sandboxes. | ## Conclusion diff --git a/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md b/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md index 1e76d1cfa1..5b31d730c3 100644 --- a/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md +++ b/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md @@ -726,15 +726,15 @@ Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x ## Environment variable configuration overrides -*Starting with CloudShell 2024.1*, CloudShell supports overriding `customer.config` values using environment variables. This enables configuration management without modifying files directly, which is useful for containerized deployments and automation scenarios. +*Starting with CloudShell 2024.1.0.2682*, CloudShell supports overriding `customer.config` values using environment variables. This enables configuration management without modifying files directly, which is useful for containerized deployments and automation scenarios. -To override a configuration key, set an environment variable with the prefix `QS_` followed by the key name (with dots replaced by underscores). For example, to override ``, set the environment variable `QS_MyKey`. +To override a configuration key, set an environment variable whose name is **exactly the configuration key name** — there is no prefix and no character substitution. For example, to override ``, set an environment variable named `UseRabbitServer`. - + @@ -754,13 +754,17 @@ To override a configuration key, set an environment variable with the prefix `QS - +
KeyN/A (environment variable prefix: `QS_`)N/A (the environment variable is named after the configuration key it overrides)
Possible values
Version2024.1 and above2024.1.0.2682 and above
:::note Environment variable overrides take precedence over values defined in `customer.config`. This allows you to manage configuration centrally (e.g., via orchestration tools or container runtime) without modifying config files on disk. + +An environment variable that is unset or set to an empty string is ignored, and the value from `customer.config` (or the key's built-in default) is used instead. You therefore cannot use an environment variable to override a key to an empty value. + +This applies to the great majority of configuration keys, but not to every one of them — a small number are read straight from the configuration file and ignore the environment. If a key does not respond to an environment variable, set it in `customer.config` instead. ::: ## Allow unicode characters in script command context diff --git a/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md b/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md index f936254aeb..21dbff3db4 100644 --- a/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md +++ b/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md @@ -9,11 +9,28 @@ CloudShell email notifications are based on HTML templates, which can be customi :::note Important Make backup copies of any templates you want to customize just in case you need to revert back. Upgrading CloudShell will override any custom templates you have so make sure to keep backups. +To avoid this, keep your templates outside the installation directory using the [`EmailTemplatesDirectory`](#storing-templates-outside-the-installation-directory) key. + After modifying these files, restart the Quali Server service for the changes to take effect. ::: These templates reside on the Quali Server machine at `C:\Program Files (x86)\QualiSystems\CloudShell\Server\EmailTemplates` and use a combination of text and CloudShell variables that pass information from CloudShell. +## Storing templates outside the installation directory + +*Starting with CloudShell 2024.1.0.2529*, the templates directory is configurable. Pointing it outside the CloudShell installation directory keeps your customized templates from being overwritten when you upgrade. + +To change it, add the following key to `customer.config` in the Quali Server installation directory and restart the Quali Server service: + +```xml + +``` + +:::note +- When the key is absent or empty, CloudShell uses the default `EmailTemplates` folder under the Quali Server installation directory. +- The directory you point to must contain the full set of template files that CloudShell expects — it replaces the default directory rather than layering on top of it. Copy the default `EmailTemplates` folder to the new location before setting the key, then customize the copy. +::: + For example, the "Sandbox Ending" email template: ![](/Images/Admin-Guide/Setting-Up-CloudShell/EmailNotificationTemplate.png) diff --git a/docs/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md b/docs/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md index 4002b420ff..e50a2bca47 100644 --- a/docs/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md +++ b/docs/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md @@ -199,6 +199,26 @@ The final value is ultimately set by the system. Available For Abstract Resources Only attributes with the **Available For Abstract Resource** rule are available as possible requirements or additional information when creating or editing abstract resources. + + Abstract Strategy Match All + + Recommends the most suitable value for an abstract input used in a blueprint, based on the matches currently available. The heuristic scores candidates so that requests with rare matches are prioritized over those with common matches. + +Requires the **Available For Abstract Resources** rule on the same attribute, and the `EnableAbstractParameterInfosPerBlueprintCache` configuration key set to `False`. Consider also disabling `EnableBlueprintResolutionCache` so that resolution runs for each sandbox rather than being served from cache. + + + + Fixed + (Applies to Assembly Lab) Marks the resource structure as fixed: a resource request for this family or model cannot be partially solved — either the whole requested structure is matched, or the request stays unsolved. + + + Fixed Connectivity + (Applies to Assembly Lab) Marks connectivity as fixed. A resource request cannot be solved by a candidate that is connected via a cable, and the request cannot be partially solved. Use this instead of **Fixed** when cabled candidates must also be excluded. + + + `WorkOrderSkipMoveCheck` + (Applies to Assembly Lab) Skips the resource-structure check for abstract resources of this resource family, allowing moves that structure validation would otherwise block. + Displayed In Search Filters Enables CloudShell users to search CloudShell elements by specific attribute values. diff --git a/docs/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md b/docs/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md index 1b8b012c3d..6dfb571d30 100644 --- a/docs/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md +++ b/docs/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md @@ -9,7 +9,7 @@ sidebar_position: 16 Ends a sandbox per specified sandbox ID. Returns a successful response when the sandbox is stopped. :::note -*Added in CloudShell 2024.1:* This method also supports canceling **pending** (future/scheduled) reservations, not just stopping active sandboxes. +*Added in CloudShell 2024.1.0.2603:* This method also supports canceling **pending** (future/scheduled) reservations, not just stopping active sandboxes. ::: ### URL diff --git a/docs/release-notes/whats-new.md b/docs/release-notes/whats-new.md index cd2c82da94..fe4fd8390b 100644 --- a/docs/release-notes/whats-new.md +++ b/docs/release-notes/whats-new.md @@ -138,6 +138,7 @@ CloudShell now supports PostgreSQL as an alternative database backend. Contact Q ## Post-2024.1 GA Patch Releases ### 2024.1.0.2534 (October 2024) +- **Route and Cable Connectivity Events** *(added in 2024.1.0.2529)* — Four new publishable server events, `SandboxRouteConnected`, `SandboxRouteDisconnected`, `SandboxCableConnected` and `SandboxCableDisconnected`, let MQ subscribers react to connectivity changes in a sandbox. See [CloudShell Server Events Queue](../admin/cloudshell-event-queue.md) - **Abstract Editor: Collapse Nodes** — Collapse abstract nodes in the diagram editor for cleaner visualization - **Reservation State Filter** — Now visible for all domain types in the Reservations Dashboard - **L1 Port Filter** — Filter resources by L1 ports when adding resources to a reservation