From ae041e2cf62a027d7fcd96f8bf52f08ac23d240d Mon Sep 17 00:00:00 2001 From: "QUALISYSTEMS\\nahum-t" Date: Thu, 23 Jul 2026 18:54:43 +0300 Subject: [PATCH 1/2] Document 2026.1.0.52 release: What's New, behavior changes, EnableSessionRehydration key, PyPI-at-setup and maintenance-window notes Co-Authored-By: Claude Opus 4.8 (1M context) --- .../maintenance-window.md | 4 +++ .../general.md | 33 +++++++++++++++++++ .../pypi-server.md | 4 +++ docs/release-notes/behavior-change.md | 4 +++ docs/release-notes/whats-new.md | 14 ++++++++ 5 files changed, 59 insertions(+) diff --git a/docs/admin/cloudshell-manage-dashboard/maintenance-window.md b/docs/admin/cloudshell-manage-dashboard/maintenance-window.md index e3c76889a5..cdd5a8f3ec 100644 --- a/docs/admin/cloudshell-manage-dashboard/maintenance-window.md +++ b/docs/admin/cloudshell-manage-dashboard/maintenance-window.md @@ -40,6 +40,10 @@ The **Maintenance Window** page is only displayed for system administrators in t 6. Click **Save**. +:::note +When editing an **active** maintenance window, you cannot set its end time to a time that is not in the future (at or before the current time). To end an active maintenance window immediately, use the **Stop** action rather than editing its end time. +::: + ## Navigating the maintenance window In the image below, hover over an area or option to learn more about it, or use the table that follows. You can edit any of the messages presented in the **Maintenance Window**. Click **Save** to apply your changes. 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 3399d40a21..1e76d1cfa1 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 @@ -858,4 +858,37 @@ Sandbox placeholders (`{sandboxId}`, `{sandboxName}`, `{status}`, `{setupStage}` 2026.1 and above + + +## Keep Portal users signed in across application-pool recycles + +When enabled, the Portal rebuilds a user's session from the sign-in cookie after an application-pool recycle instead of forcing a re-login. This applies to standard and SSO/SAML users, and lets background page refreshes recover silently. Set to `False` to restore the previous behavior of signing users out on recycle. + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version2026.1 and above
\ No newline at end of file diff --git a/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md b/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md index ad4bdefc1f..125ad15035 100644 --- a/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md +++ b/docs/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md @@ -4,6 +4,10 @@ sidebar_position: 14 # PyPi Server +:::note +*Starting with CloudShell 2026.1*, the `RequirementsRepository`, `RequirementsTrustedHost`, and `RequirementsExtraRepository` keys are also honored during Execution Server **setup** and default-environment bootstrap — not only when running driver commands. This lets an Execution Server that must use a private or HTTPS-only PyPI index complete setup against that index without a workaround. Set the keys before running Execution Server setup. +::: + ## Set the online computer's name and port :::note This applies to CloudShell deployments using PyPi Server to retrieve and serve Python dependencies from a dedicated online computer. diff --git a/docs/release-notes/behavior-change.md b/docs/release-notes/behavior-change.md index 876473cacb..a5ede02df2 100644 --- a/docs/release-notes/behavior-change.md +++ b/docs/release-notes/behavior-change.md @@ -13,6 +13,10 @@ The following list includes changes in behavior introduced into CloudShell by ve | Capability | Change Description | Changed in Release | | --- | --- | --- | | Server defaults changed | `UseRabbitServer` now defaults to `false` (previously `true`). `UseEmbeddedSandboxService` now defaults to `false` (previously `true`). If your deployment relies on these, explicitly set them to `true` in `customer.config` after upgrading. | 2026.1 | +| Job Scheduling messaging path | Job Scheduling now reads the global `UseRabbitServer` setting instead of an independent default of `true`. When `UseRabbitServer` is not explicitly set, scheduled jobs now use the direct (non-RabbitMQ) path, matching manually launched reservations. Set `UseRabbitServer=true` in `customer.config` to keep scheduled jobs on the RabbitMQ path. | 2026.1 | +| Editing an active maintenance window | When editing an **active** maintenance window, an end time that is not in the future (at or before the current time) is now rejected — including the former within-grace "ends immediately" behavior. To end an active maintenance window immediately, use the **Stop** action. | 2026.1 | +| Custom PyPI repository applied at setup | The `RequirementsRepository`, `RequirementsTrustedHost`, and `RequirementsExtraRepository` keys are now honored during Execution Server setup and default-environment bootstrap, not only at driver-command time. Deployments that set a custom PyPI index will use it earlier; there is no change when no custom repository is configured. | 2026.1 | +| Portal session survives app-pool recycle | The Portal now rebuilds a user's session from the sign-in cookie after an application-pool recycle instead of forcing a re-login, and a transient CloudShell Server `MessageSecurityException` no longer signs users out. Controlled by the `EnableSessionRehydration` app setting (default `true`); set it to `false` to restore the previous force-logout behavior. | 2026.1 | | Erlang version | To accommodate the upgraded RabbitMQ version (3.12.0) explained in [Breaking Changes](#breaking-changes), Erlang will be upgraded to newer version 25.2.3. This version is the maximum supported Erlang for RabbitMQ 3.12.0. Environment variables will be updated accordingly to suite the new Erlang version. | 2023.2 EA | | Python versions | In 2022.1, we updated CloudShell's Python versions as follows: This may cause unexpected behavior if your automation is constrained to use specific Python versions. | 2022.1 EA | | API tokens | To increase security and to allow time-based token access to the system, CloudShell 2022.1 generates a time-based token for our product APIs. In previous versions, only some of the APIs used such a system. By default, the token validity period is 5 hours. Notes: | 2022.1 EA | diff --git a/docs/release-notes/whats-new.md b/docs/release-notes/whats-new.md index c13be4e8cf..ee294812d4 100644 --- a/docs/release-notes/whats-new.md +++ b/docs/release-notes/whats-new.md @@ -32,9 +32,16 @@ Export sandbox diagrams as PNG images directly from the browser. Available in th ### AI Chat Integration Configurable AI Assistant menu item in the Portal. Administrators can set a URL template to integrate with AI chat services. +### Portal Session Resilience +Portal users — including those signing in via SSO/SAML — are no longer logged out when the Portal application pool recycles. CloudShell rebuilds the session from the existing sign-in cookie, so open tabs and background page refreshes keep working without a forced re-login, and a transient CloudShell Server outage no longer signs users out. Controlled by the `EnableSessionRehydration` setting (enabled by default). + +### Custom PyPI Repository Honored at Execution Server Setup +A configured custom PyPI repository (`RequirementsRepository`, `RequirementsTrustedHost`, `RequirementsExtraRepository`) is now used during Execution Server setup and default-environment bootstrap, not only when running driver commands. Environments with a private or HTTPS-only PyPI index can complete Execution Server setup against a reachable custom index without a workaround. + ### Server Default Changes - `UseRabbitServer` now defaults to `false` - `UseEmbeddedSandboxService` now defaults to `false` +- Job Scheduling now follows the global `UseRabbitServer` setting instead of an independent default, so scheduled and manually launched reservations take the same messaging path ### Docker Execution Server - Consolidated Dockerfile with Python 3 virtualenv and TLS/Kerberos compatibility @@ -55,6 +62,13 @@ When a blueprint reservation fails due to unresolvable abstract resources or rou ### Bug Fixes - Fixed an issue where App deployment could retry unnecessarily on certain internal errors instead of failing fast with clear diagnostics. +- Fixed SSO (SAML) users being bounced to the login page in a loop, instead of seeing the maintenance page, when signing in during a maintenance window. Aborted logins no longer leave a half-authenticated session. +- Fixed an active maintenance window being left stranded open when its end time was edited to a past time. Such edits are now rejected — use **Stop** to end an active window immediately. +- Fixed the RabbitMQ messaging service failing to start after an Erlang upgrade. CloudShell now validates and refreshes stale Erlang location settings automatically. +- Fixed abstract resource port names in Assembly Lab work order fields and route tooltips intermittently truncating to the leaf port name instead of the full path. +- Fixed the Sandbox API crashing on the Node.js 24 runtime when handling conditional (cache-revalidation) requests to the explore endpoints. +- Restored the full Ansible package (with bundled collections) in the Docker Execution Server image, fixing playbooks that failed with missing-module errors. +- The About dialog now shows the full four-part product version, including the build number (for example, `2026.1.0.52`). --- From 7fcb1032d7532ee2d90523bedc6fd786b392995b Mon Sep 17 00:00:00 2001 From: "QUALISYSTEMS\\nahum-t" Date: Thu, 23 Jul 2026 19:00:55 +0300 Subject: [PATCH 2/2] Add 'revalidation' to spellcheck wordlist (used in 2026.1.0.52 Sandbox API fix note) Co-Authored-By: Claude Opus 4.8 (1M context) --- .wordlist.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.wordlist.txt b/.wordlist.txt index 15674d9991..0fe908e704 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -1640,4 +1640,5 @@ GetResourceReservations RemoveEntitiesFromTopology copiable dialogs -unresolvable \ No newline at end of file +unresolvable +revalidation