Links
Comment on page

Release Notes

The following release notes are for the Business Edition of Portainer. For Community Edition release notes, refer to the GitHub releases page.

Release 2.19.3

November 22, 2023

Portainer

Release 2.19.2

November 13, 2023

Breaking changes

  • Deprecation notice of Nomad support in next minor release.

Edge

  • Fixed bug around Update and Rollback menu showing when Edge Compute feature is disabled.
  • Resolved an issue where edge group details were missing from the update and rollback table.
  • Resolved an issue where searching on the Update & Rollback page caused the screen to go blank
  • Resolved an issue where users were unable to delete any failed remote update scheduler entries.
  • Resolved an issue where edge stack rollback and pause updates remained stuck in the pending state
  • Resolved an issue where the update scheduler would stay in a "pending" state indefinitely, even when some edge agents were already running the latest version in the target edge group.
  • Added a deprecation notice to inform users about the upcoming removal of Nomad support in next minor release.

Swarm

  • Resolved an issue where the Docker service page could not load correctly when the deployment was created using the GMSA credential spec parameter. portainer/portainer#10571​

Kubernetes

  • Introduced the ability for Helm chart repository searching and registry browsing to operate behind a forward proxy. portainer/portainer#10432​

Portainer

  • Improved security around non-admin user environment information access. portainer/portainer#10434​
  • Fixed 'unable to upgrade' error that could potentially occur when upgrading from CE to BE.
  • Resolved an issue where stacks that were initially deployed from a template could not be modified. portainer/portainer#10563​
  • Resolved an issue where users couldn't define a proxy for the agent and edge agent when their network relied on a proxy for internet access. portainer/portainer#10564​
  • Resolved an issue where pulling and redeploying Git stacks took longer than expected. portainer/portainer#10565​
  • Resolved an issue where stacks triggered from webhooks were marked as inactive status, even though they were running as expected portainer/portainer#10567​
  • Improved storage efficiency by retaining only one copy of Git repositories for versioning, preventing excessive disk usage.
  • Fixed an issue where authentication failures occurred when editing stacks deployed from Git repositories created with version 2.19.0 or 2.19.1.
  • Fixed an issue introduced in 2.19.0 when deploying from a custom template that was set up via API, where defined mustache variables are not always being prompted for.
  • Resolved an issue where users could interact with a console even after logging out from another tab in the browser portainer/portainer#10568​
  • Resolved an issue where there was no warning for version mismatch between the server and edge agent, now UI clearly indicates matching server and edge agent versions are required for feature availability. portainer/portainer#10569​
  • Resolved an issue where containers were not deleted when users removed them from asynchronous environments by browsing snapshots.

Rest API Changes

New Endpoints: 1
  • POST /edge_update_schedules/{id}
Modified Endpoints: 3
  • POST /auth/logout
    • Description changed from 'Access policy: authenticated' to 'Access policy: public'
  • POST /edge_update_schedules
    • Responses changed
      • New response: 200
      • Deleted response: 204
  • GET /edge_update_schedules/previous_versions
    • New query param: environmentIds
    • Deleted query param: skipScheduleID

Release 2.19.1

September 20, 2023

Breaking changes

  • Changes to API format and checking of some requests - See REST API Changes below for more details.

Edge

  • Resolved an issue with snapshots between Edge Agent versions 2.18.2 and Portainer Server 2.19.0, which caused dropping of remote commands in async mode due to mismatches.
  • Database migration for edge URLs now includes a check to verify if the edge feature is enabled. This fix ensures a more accurate and controlled upgrade process.
  • Fixed an issue where the migration of Edge Tunnel URLs was broken when the Portainer API URL did not contain a port.
  • We've improved the transparency of Edge Agent update scheduler and rollback statuses. Now, you'll have clear explanations for each status, simplifying monitoring and management.
  • We've added a info notice to clarify that the option to update edge agent from a private registry is exclusively available in Edge Agent version 2.18.1 or newer.
  • Fixed an issue where edge devices in the waiting room were incorrectly counted as part of the dynamic edge group.

Kubernetes

  • Fixed an issue introduced in 2.19.0 where standard and read-only users could no longer view node stats on a Kubernetes cluster.
  • Fixed an issue introduced in 2.19.0 where the Kubernetes Create Application screen no longer showed in the bottom of page summary when a Deployment would be created.

MicroK8s

  • Fixed an issue introduced in 2.19.0 where MicroK8s cluster creation would fail if the SSH access used a passworded login and sudo access required the password.

Portainer

  • Fixed an issue where backup files were missing the Chisel private key. This could have disrupted communication between the Portainer server and agent after a restoration from backup. portainer/portainer#10335​
  • Improved the upgrade process for the Portainer server, upgrade process now halts on database migration errors, preventing database version mismatches for a more stable environment. portainer/portainer#10336​
  • Fixed an issue when chatbot integration was enabled globally, where a user who then set a chatbot key could not subsequently clear out their key to turn off the feature for themselves.
  • Fixed an issue introduced in 2.19.0 when the chatbot integration feature was enabled for a user, where container logs did not display in the log viewer unless in full-screen mode.
  • Fixed an issue where webhooks were failing when updating a stack deployed from a private Git repository.
  • We've added a backup reminder for in-app updates, ensuring data safety during the update process.
  • Resolved issue where failed stack status persists after incorrect compose from Git. Now auto-recovers with the next successful update.
  • Fixed an issue where usernames and passwords were being stored along with Git stack configurations when Git credentials were used.
  • Fixed an issue where using spaces in an Organizational Unit (OU) or Common Name (CN) name caused incorrect data to be displayed in the Active Directory configuration.
  • Fixed an issue where toggles could be activated outside of their intended component area, potentially leading to inadvertent toggling. portainer/portainer#10324​

REST API Changes

  • Fixed API endpoints that were broken in the 2.19.0 release, ensuring that they retain their previous functionality. portainer/portainer#10337​
  • Fixed an issue introduced in 2.19.0 when Kubernetes environment metrics API features were enabled, where these features would return an 'Unable to reach metrics API' error.
  • Introduced new format around the change of a user's password via API. portainer/portainer#10326​
  • Updated the checking around change of a user via API. portainer/portainer#10326​

Release 2.19.0

August 31, 2023

Breaking changes

  • Introduced the ability for admins and environment admins to enable/disable community addons on a MicroK8s cluster created via Portainer. Note: On upgrade to this release, existing MicroK8s clusters created via Portainer are set to allow community addons.
  • A number of components/views have been migrated from Angular to React.
  • Helm, eksctl, and docker-compose have been updated to newer versions.
  • Internal versioning on stacks feature has introduced file structure changes in 2.19.
  • We have addressed an API issue in which an incorrect parameter was being used for API endpoint /edge_groups. Users relying on the HasEdgeGroup parameter should now use HasEdgeJob to achieve the intended functionality.
  • Select API endpoints are broken and will be restored in the next release:- see REST API changes for specific details.

Resolved CVEs

Edge

  • Fixed an issue where the edge agent was getting disconnected due to user updates to their remote update scheduler.
  • Resolved an issue where users were unable to create a rollback and subsequently edit it from the scheduler.
  • Introduced visual enhancement of dynamic progress bar for clearer edge stack status tracking. Get real-time deployment progress at a glance.
  • Fixed an issue where deploying a large volume edge stack triggered a 'URI too large' error. portainer/portainer#10128​
  • Resolved an issue where edge devices were not fully shown in the waiting room when the total amount exceeded 100
  • Introducing new statuses - 'Running', 'Deploying', and 'Partially running' - for increased transparency in edge stack monitoring.
  • Introduced staggered deployment & rollback for edge stacks. Update in stages, reduce risks & revert failed updates seamlessly.
  • Introduced internal versioning & Git commit ID as edge stack version. Clearer version tracking for Git-deployed stacks.
  • Added support for relative paths in Git-deployed edge stacks.
  • Resolved an issue where the 'change windows setting' option was shifting outside of the div when a user was using a smaller screen
  • Fixed an API issue where the incorrect parameter HasEdgeGroup was being used instead of HasEdgeJob for endpoint /edge_groups. Users relying on the HasEdgeGroup parameter should now use HasEdgeJob to achieve the intended functionality.
  • Introducing the ability to use environment variables for edge stack.
  • Introducing a new feature: GitOps Edge Configurations, which simplify edge device configurations with GitOps. Effortlessly manage settings via version-controlled Git repositories for enhanced configuration control.
  • Introducing the latest commit ID display in edge stacks. Perfect for GitOps updates, this feature lets you easily track your running version. Stay informed and up-to-date effortlessly.
  • Introduced ability to push per-device configurations effortlessly. Bundle settings in a zip package, Portainer matches and delivers to edge devices. Simplify management, enhance precision.
  • Fixed an issue where the count of edge stack deployments was incorrect when dealing with asynchronous devices exceeding 100.
  • Fixed an issue where the order of the list changed while logs were being retrieved, and where previously cleared logs were reappearing after retrieving logs for a different environment.
  • Improved logging for edge agent when polling fails. This enhancement provides more informative and detailed logs when polling encounters failures, aiding in quicker identification and resolution of issues. portainer/portainer#10143​
  • Introduced a feature that empowers you to associate edge devices with newly selected or dynamically generated meta values. Enhance flexibility and precision in device management with this innovative addition.
  • Introduced an informative enhancement to the waiting room experience. With the addition of the 'Last Check-In' field, users now have valuable insights into when edge devices last communicated with the Portainer server.
  • Introduced ability to remove edge devices that you no longer want sitting in the waiting room. This feature empowers you with streamlined waiting room management, enabling you to maintain a dynamic and optimised edge environment.
  • Resolved an issue where editing an existing scheduler caused an error due to a missing edge stack on a related endpoint.
  • Resolved an issue where users were able to create schedulers with an empty edge group, which is no longer allowed to ensure proper functionality and avoid potential errors portainer/portainer#10149​
  • Resolved an issue with Portainer tunnel server address validation error during migration. This fix ensures that when migrating, tunnel server addresses are validated correctly.
  • Fixed an issue where Edge groups were incorrectly marked as 'in use' after a scheduler was executed.
  • Addressed an issue where snapshot information was not reliable when the environment was offline. This fix ensures that snapshot information is now accurately presented even when the environment is offline.
  • Resolved an issue where the count for acknowledged edge stacks was dropping after deployment.
  • Resolved an issue where the edge agent default poll frequency selector was not lining up correctly portainer/portainer#10150​
  • Resolved an issue where users were unable to create an edge group when there were no members present in that group. Edge groups can now be created without requiring initial members, offering greater flexibility in edge device and configuration management. portainer/portainer#10153​
  • Introduce an enhancement to our snapshot creation process for edge devices which streamlines the snapshot creation experience, providing users with a more efficient and user-friendly way to capture snapshots on edge devices. portainer/portainer#10154​
  • Introduced ability to seamlessly browse snapshots for your asynchronous environment and access detailed stack information.
  • Fixed an issue where environment files were not functioning properly in Git deployments for edge stacks. portainer/portainer#10171​
  • Introduced webhooks for edge stack, you can now set up webhooks for your edge stacks, enabling automated polling for GitOps updates. portainer/portainer#10178​

Docker

  • Addressed an issue where the Docker client was not utilizing version negotiation. portainer/portainer#10125​
  • Resolved an issue where the image name was displayed incorrectly when a user tried to duplicate or edit a container portainer/portainer#10126​
  • Fixed an issue in the API where sending files to a Docker endpoint resulted in a panic. portainer/portainer#10129​
  • Resolved an issue with Docker Proxy's performance, resulting in improved overall performance and responsiveness when using the Docker Proxy feature. portainer/portainer#10131​
  • Resolved an issue in the Docker Container List where searching by published ports was no longer working. portainer/portainer#6656​
  • Resolved an issue where '.' was not allowed in the image name (but should be) when building a Docker image via the UI. portainer/portainer#8047​
  • Resolved some minor UI issues in Docker Services-related screens. portainer/portainer#10117​

Swarm

  • Fixed an issue in Docker Swarm version 24.0.0 where image tags were not being displayed. portainer/portainer#10134​
  • Resolved an issue where clicking into the details page of a Swarm stack would redirect users to the service section instead of the top of the page portainer/portainer#10151​

Kubernetes

  • Resolved an issue around Operator role users not being able to perform rolling restart, redeploy and rollback to previous version for Deployment, DaemonSet and StatefulSet resources.
  • Resolved an issue introduced in 2.18 that prevented the use of Amazon EKS provisioning of a Kubernetes as a Service (KaaS) cluster.
  • Fixed a Kubernetes environment issue when restricting access to the default namespace, where any other namespace with a resource quota may have the resource reservations of its apps incorrectly calculated, preventing standard users from editing the apps.
  • Amended the path for the eksctl binary (used by Amazon EKS KaaS cluster provisioning functionality) to a new expected location.
  • Adjusted Kubernetes Cluster setup screen's ingress settings to be clearer and to give info on ingress defaults. portainer/portainer#10101​
  • Resolved an issue with Kubernetes ECR image pull where the secret token was not updating on manifest deployment. portainer/portainer#10119​
  • Resolved an issue on use of the 'Restrict Proc Mount Types' Kubernetes pod security constraint where the restriction was not being applied.
  • Resolved an issue in the Kubernetes Advanced deployment screen, where a backend panic could occur when deploying some invalid YAML manifests.
  • Updated the link to Portainer documentation (following docs reorganization) for Kubernetes Add Environment via kubeconfig Import.
  • Resolved an issue where Node stats for a Google Kubernetes Engine (GKE) cluster gave an error 'unable to retrieve node metrics'.
  • Migrated the Kubernetes Add/Edit Application screen's Services section from Angular to React. portainer/portainer#9235​
  • Reintroduced the ability to specify and use (via Add/Edit Application) ingress defaults (hostname and annotations). portainer/portainer#10030​
  • Reintroduced the ability to publish via ingress from the Add/Edit Application screen. portainer/portainer#10103​
  • Introduced the ability to force setting of a note when creating/editing a Kubernetes application (via form), so it can immediately be labelled with its intended use.
  • Introduced correct redirecting of the user, following deployment of a Kubernetes manifest. Previously the user was always returned to the Applications List but will now arrive back at the screen from which they accessed the Advanced Deployment function. portainer/portainer#10115​
  • Migrated the Kubernetes Application Details screen's Summary and Details sections from Angular to React. portainer/portainer#10102​
  • Introduced a loading spinner to the Add/Edit ingress screen's ingress class dropdown, to indicate that available options are still being retrieved. portainer/portainer#10000​
  • Resolved an issue that was occurring on the exposing of Portainer over a subpath, where Kubernetes Cluster Setup and other screens failed to load and reported an error. portainer/portainer#10112​
  • Resolved an issue around limiting of Kubernetes pod security constraints updates.
  • Split the Kubernetes ConfigMaps & Secrets functionality in order to provide better performance and a clearer user experience. We now have separate tabs in the list screen and separate add/edit functions. portainer/portainer#9222​
  • Introduced the ability to set annotations against Kubernetes Services, so they can be configured for service meshes and other tools.
  • Resolved an issue with Kubernetes pages where a warning showed in the browser console ('findDOMNode is deprecated in StrictMode') when resource assignment was first toggled on for the namespace. portainer/portainer#10111​
  • Updated BE Kubernetes Add/Edit Ingress screen to allow use of NodePort or LoadBalancer service types (in addition to existing ClusterIP).
  • Updated Kubernetes ConfigMaps & Secrets terminology that was previously shown as Configurations, so as to align more clearly with Kubernetes. portainer/portainer#10025​
  • Introduced the ability to specify a manifest to be auto deployed to a Kubernetes cluster when connecting or provisioning one. This allows the environment to be initialized with users, namespaces, secrets, etc., as required.
  • In the Dashboard screen of Kubernetes environments, Ingresses and Services panels have now been introduced, providing a count of these resources and an easy means to click through and access their list screens. portainer/portainer#9223​
  • Introduced showing of the error that occurs when a Kubernetes deployment is prevented by any pod security constraints that have been enabled.
  • Migrated Kubernetes Application console page from Angular to React. portainer/portainer#9177​
  • Resolved a Node details issue where nodes showed incorrect role of 'Worker' due to deprecated 'node-role.kubernetes.io/master' K8s label (now 'control-plane'). Also where MicroK8s cluster nodes were incorrectly identified (though not due to labels). portainer/portainer#10104​

KaaS

  • Ensured Kubernetes 1.27 is supported with Google Kubernetes Engine (GKE) provisioning of KaaS clusters.
  • Ensured Kubernetes 1.26 is supported with Google Kubernetes Engine (GKE) provisioning of KaaS clusters.
  • Ensured Kubernetes 1.27 is supported with Azure Kubernetes Service (AKS) provisioning of KaaS clusters.
  • Ensured Kubernetes 1.27 is supported with Digital Ocean Kubernetes (DOKS) provisioning of KaaS clusters.
  • Ensured Kubernetes 1.26 is supported with Linode Kubernetes Engine (LKE) provisioning of KaaS clusters.
  • Applied updates and ensured Kubernetes 1.27 is supported with Amazon Elastic Kubernetes Service (EKS) provisioning of KaaS clusters.

MicroK8s

  • Added Beta support for MicroK8s version 1.28 when creating and managing MicroK8s clusters. Note that 1.27 is still the default option for now, as only limited testing of 1.28 has been performed.
  • Introduced the ability for admins to enable the nfs addon (that has prerequisites) for a MicroK8s cluster, and for admins and environments admins to enable or disable the nfs addon for a MicroK8s cluster, after is has been provisioned.
  • Introduced the ability for admins to enable the openebs addon (that has prerequisites) for a MicroK8s cluster, and for admins and environments admins to enable or disable the openebs addon for a MicroK8s cluster, after is has been provisioned.
  • Introduced the ability for admins and environment admins to retrieve a status report on each control plane node of a MicroK8s cluster.
  • Introduced the ability for admins and environment admins to enable and disable addons that require arguments and generally specify arguments for addons for a MicroK8s cluster.
  • Introduced the ability for admins and environment admins to connect via SSH console to nodes in a MicroK8s cluster.
  • Introduced the ability for admins and environment admins to enable/disable community addons on a MicroK8s cluster created via Portainer. Note: On upgrade to this release, existing MicroK8s clusters created via Portainer are set to allow community addons.
  • Introduced the ability for admins and environment admins to enable or disable addons for a MicroK8s cluster, after it has been provisioned.
  • Introduced the ability for admins, when removing a MicroK8s environment, to also delete the cluster on the nodes, leaving them in a fresh state, ready to begin again.
  • Introduced the ability for admins and environment admins to horizontally scale up or down a MicroK8s cluster (i.e. add or remove nodes), after it has been provisioned.
  • Introduced the ability for admins and environment admins to upgrade the version of a MicroK8s cluster.
  • Added support for MicroK8s version 1.27 when creating MicroK8s clusters and removed warnings in the UI around a Metrics Server issue with MicroK8s 1.25 and 1.26, now that they've been patched to resolve the issue.
  • Fixed an issue in Environment and Cluster Details screens for a MicroK8s cluster that failed to provision via Portainer. In this scenario, the display of enabled addons no longer triggers (whereas, it would previously still attempt it, causing a problem).
  • Added info text to Kubernetes MicroK8s functionality to inform that nodes must be internet routable and open on certain ports.

Portainer

  • Fixed an issue where a bad gateway response occurred when updating an environment with an empty URL. portainer/portainer#10123​
  • Resolved an issue where users were unable to deploy a stack when utilising an image from a private GitLab registry. portainer/portainer#10124​
  • To identify Portainer submenus more clearly, their sub-options are now indented. portainer/portainer#9216​
  • Added a link to the Portainer Assistant/Chatbot settings taking you to an explanatory blogpost.
  • Fixed an issue where the Portainer Assistant/Chatbot icon could eclipse list table screens' pagination.
  • Introducing a new feature that enhances version tracking and clarity for stacks deployed from Git repositories.
  • Resolved an issue around orphaned environments being included in the total count of nodes.
  • Renamed "Automatic updates" in Git deployment section to "GitOps Updates" to clarify the feature at first glance for users. Please note this is a name change only and no functionality has been altered. portainer/portainer#10175​
  • Resolved an issue with the App Templates screen, where a Kubernetes icon was incorrectly showing for Docker Swarm stacks. Also updated the Swagger API documentation to detail the existence of a 'Compose edge stack' App Template (numbered 4) type. portainer/portainer#10028​
  • Fixed an issue where saving Git credentials and subsequently redeploying a stack resulted in an error.
  • Resolved a minor UI issue where warning icons were smaller in size in multi-line warning messages. portainer/portainer#10118​
  • Fixed an issue where standard users were unable to create Azure Container Instances (ACI) resources. portainer/portainer#10152​
  • Fixed an issue where line break HTML tags were showing in some pop-up dialogs instead of actual line breaks. portainer/portainer#9226​
  • Improved App Templates page with enhanced cursor icon and tile highlighting portainer/portainer#10136​
  • Improved rolling back to CE from a CE to BE migration, by providing better logging and performing a check that the db file exists. portainer/portainer#9225​
  • Fixed an issue where edge devices were incorrectly counted as nodes while in the waiting room. Now, waiting room devices are excluded from node count, ensuring accurate resource allocation and adherence to policy.
  • Fixed an issue where the primary environment remained permanently down after restoring from backup. portainer/portainer#10137​
  • Introduced validation to prevent the use of invalid names when creating or editing Kubernetes or Docker Custom Templates. portainer/portainer#10113​
  • Fixed an issue where the 'Skip TLS Verification' option was not functioning properly for custom templates. portainer/portainer#10138​
  • Resolved a minor UI issue where multi-line text-tip and form-error icons were incorrectly vertically center-aligned rather than top-aligned. portainer/portainer#10118​
  • Fixed an issue where the hover interaction for the environment tile on the homepage was missing portainer/portainer#10136​
  • Fixed a security issue where usernames and passwords were displayed in responses. portainer/portainer#10140​
  • Improved error logging in libhttp to provide more useful context. portainer/portainer#10142​
  • Addressed an issue where TLS handshake error messages were being logged, which should only occur when using the DEBUG log level. portainer/portainer#10144​
  • Fixed an issue where using spaces in an Organizational Unit (OU) or Common Name (CN) name caused incorrect data to be displayed in the Active Directory configuration.
  • Fixed an issue where Git deployment did not synchronize authentication status.
  • Resolved an issue where unnecessary snapshots were being loaded on the home page, leading to improved loading times and a smoother user experience portainer/portainer#10147​
  • Resolved an issue where users were not being notified about the proper referencing of their uploaded .env files, requiring them to now utilize "stack.env" for appropriate referencing portainer/portainer#10148​
  • Introduced a 'copy to clipboard' button to web editors within the Portainer UI. portainer/portainer#10116​
  • Introduced the ability to manage time in seconds or milliseconds for container logs, expanding your time management options beyond seconds for more insightful troubleshooting. portainer/portainer#10176​
  • Resolved a logging issue with database migrations, where, if an error occurred causing a rollback to the pre-upgrade version of the database, that error was no longer output to the console. portainer/portainer#10110​
  • Provided icons for 'image up to date' indicators (in place of the previous colored circles) shown in Docker Stacks, Services and Containers list screens. This improves accessibility for color-blind users.
  • Resolved an issue that prevented users from stopping stacks with invalid project names during their upgrade from versions 2.6 or 2.7 to 2.13, 2.14, 2.15, 2.16, and subsequent versions. portainer/portainer#10163​
  • Resolved an issue that prevented users from deleting stacks with invalid project names during their upgrade from versions 2.6 or 2.7 to 2.13, 2.14, 2.15, 2.16, and subsequent versions. portainer/portainer#10164​
  • Resolved an issue where users were unable to browse image tags in a private Sonatype registry.
  • Resolved an issue where mouse clicks were not functioning within the "Display Users" section of Active Directory under authentication settings.
  • Resolved an issue where users were encountering difficulties when attempting to push images using a service principal account on Azure Registry. portainer/portainer#10155​
  • Fixed an issue where delete confirmation modals were absent for edge stacks, Docker images, environment groups, and tags. portainer/portainer#10156​
  • Fixed an issue where the creation of manifest file paths slice was incorrect. portainer/portainer#10170​
  • Resolved a minor grammatical issue with a log line recorded when the Docker image up to date indicator check runs but there are no registries defined.
  • Community contribution - The enhancement ensures that the response rewrite operation is properly wrapped with a valid status check, contributing to a more robust and reliable system behavior. portainer/portainer#2705​
  • Fixed an issue where enabling GPU support on existing containers resulted in errors. portainer/portainer#10174​
  • Addressed an issue where users were unable to update the TLS certificate for the Docker API environment. portainer/portainer#10166​
  • Resolved an issue where incorrect AWS ECR icon was used when creating registry portainer/portainer#10162​
  • Added a feature that allows users to update to the latest Portainer Business Edition version directly from within the app
  • Improved the way ANSI escape codes are handled in logs. With this enhancement, logs will now provide clearer and more readable information by effectively stripping out ANSI escape codes.
  • Fixed a user interface issue where only up to 100 groups were being displayed. portainer/portainer#10160​
  • Addressed an issue where using incorrect Azure registry credentials resulted in errors, even after updating with correct credentials, the issue persisted. portainer/portainer#10159​
  • Resolved an issue where custom templates created from Git were not being pulled again at deploy time. This improvement has also been extended to Kubernetes custom templates. portainer/portainer#10157​

Development

  • Resolved an issue with new React version list screens where filter icons were not positioned next to the correct column heading but were abutting the next heading along. portainer/portainer#10098​
  • Applied changes to the helper-reset-password utility to prevent it being accidentally used with the Docker Desktop Extension version of Portainer (where it could break access to the Portainer instance). portainer/portainer#10109​
  • Replaced archived gorilla/securecookie library with just the function that we need extracted out. portainer/portainer#10008​
  • Transitioned Edge stack environments table to React, delivering a more dynamic user experience with modernized interface, improved performance, and interactive management. portainer/portainer#10210​

REST API Changes

  • Corrected API method from 'GET' to 'POST' and path for generate edge key in Swagger API docs
  • Documented 'excludeSnapshots' in Swagger API docs portainer/portainer#10130​
  • Documented webhook types in Swagger API docs portainer/portainer#9121​
  • Resolved a 2.0 validation error in our Swagger API documentation portainer/portainer#10135​
  • Corrected an error in our Swagger API documentation where 'EdgeTunnelServerAddress' was marked as required. It is now correctly marked as optional
  • We have updated the response for /endpoint to correctly reference 'EdgeCheckinInterval' in line with the accurate API Swagger documentation portainer/portainer#10139​
  • Corrected missing type and 'file' to 'File' in Swagger API documentation for custom templates portainer/portainer#10141​
  • Added descriptions to the Swagger API documentation for Kubernetes API endpoints that were previously missing from the docs. portainer/portainer#10106​
  • Fixed an API issue where requests to create edge stacks with invalid deployment types were erroneously accepted portainer/portainer#10168​
  • Addressed an issue in the 'edgeStackCreate' API where sending an incorrect request resulted in a 500 error response instead of the expected 400 error. portainer/portainer#10169​
  • Fixed an issue in Swagger API documentation where 'endpointId' was incorrectly marked as optional. It is now correctly set as a required field portainer/portainer#10173​
  • Removed the incorrect documentation for the DELETE method on the license API, as it is not supported. Documented the correct way to perform the operation using the POST method on the license API in Swagger API documentation.
  • Corrected Swagger API documentation for starting or stopping stacks portainer/portainer#8001​
  • Corrected 'ResourceId' and 'endpointId' as required instead of optional in Swagger API documentation for webhooks portainer/portainer#9121​
  • Fixed the Swagger API documentation to require 'endpointId' when updating a stack portainer/portainer#10161​
  • Corrected 'Endpoints' to be listed in alphabetical order in Swagger API docs portainer/portainer#10158​
Broken endpoints: 10
  • GET /cloud/microk8s/addons
  • POST /cloud/{provider}
  • GET /cloudcredentials
  • POST /cloudcredentials
  • PUT /cloudcredentials
  • POST /custom_templates
  • POST /edge_jobs
  • POST /edge_stacks
  • GET /endpoints/{id}/edge/generate-key
  • POST /stacks
New endpoints: 70
  • GET /cloud/credentials
  • POST /cloud/credentials
  • PUT /cloud/credentials
  • GET /cloud/endpoints/{endpointid}/nodes/nodestatus
  • GET /cloud/endpoints/{environmentid}/addons
  • POST /cloud/endpoints/{environmentid}/addons
  • POST /cloud/endpoints/{environmentid}/nodes/add
  • POST /cloud/endpoints/{environmentid}/nodes/remove
  • POST /cloud/endpoints/{environmentid}/upgrade
  • GET /cloud/endpoints/{environmentid}/version
  • POST /cloud/testssh
  • POST /custom_templates/file
  • POST /custom_templates/repository
  • POST /custom_templates/string
  • PUT /custom_templates/{id}/git_fetch
  • GET /edge_configurations
  • POST /edge_configurations
  • PUT /edge_configurations
  • DELETE /edge_configurations/{id}
  • GET /edge_configurations/{id}
  • GET /edge_configurations/{id}/files
  • PUT /edge_configurations/{id}/{state}
  • POST /edge_jobs/create/file
  • POST /edge_jobs/create/string
  • POST /edge_stacks/create/file
  • POST /edge_stacks/create/repository
  • POST /edge_stacks/create/string
  • POST /edge_stacks/webhooks/{webhookID}
  • PUT /edge_stacks/{id}/git
  • GET /edge_stacks/{id}/stagger/status
  • POST /endpoints/edge/generate-key
  • PUT /endpoints/relations
  • POST /gitops/repo/file/preview
  • GET /kubernetes/{endpointId}/opa
  • GET /kubernetes/{id}/ingresscontrollers
  • PUT /kubernetes/{id}/ingresscontrollers
  • POST /kubernetes/{id}/ingresses/delete
  • GET /kubernetes/{id}/metrics/nodes
  • GET /kubernetes/{id}/metrics/nodes/{name}
  • GET /kubernetes/{id}/metrics/pods/{namespace}
  • GET /kubernetes/{id}/metrics/pods/{namespace}/{name}
  • GET /kubernetes/{id}/namespaces
  • DELETE /kubernetes/{id}/namespaces/{namespace}
  • GET /kubernetes/{id}/namespaces/{namespace}
  • POST /kubernetes/{id}/namespaces/{namespace}
  • PUT /kubernetes/{id}/namespaces/{namespace}
  • GET /kubernetes/{id}/namespaces/{namespace}/ingresscontrollers
  • PUT /kubernetes/{id}/namespaces/{namespace}/ingresscontrollers
  • GET /kubernetes/{id}/namespaces/{namespace}/ingresses
  • POST /kubernetes/{id}/namespaces/{namespace}/ingresses
  • PUT /kubernetes/{id}/namespaces/{namespace}/ingresses
  • GET /kubernetes/{id}/namespaces/{namespace}/services
  • POST /kubernetes/{id}/namespaces/{namespace}/services
  • PUT /kubernetes/{id}/namespaces/{namespace}/services
  • PUT /kubernetes/{id}/opa
  • POST /kubernetes/{id}/services/delete
  • POST /stacks/create/kubernetes/repository
  • POST /stacks/create/kubernetes/string
  • POST /stacks/create/kubernetes/url
  • POST /stacks/create/standalone/file
  • POST /stacks/create/standalone/repository
  • POST /stacks/create/standalone/string
  • POST /stacks/create/swarm/file
  • POST /stacks/create/swarm/repository
  • POST /stacks/create/swarm/string
  • POST /system/update
  • POST /webhooks/{id}
  • DELETE /webhooks/{token}
  • PUT /webhooks/{token}
  • GET /websocket/microk8s-shell
Modified endpoints: 56
  • GET /cloud/{provider}/info
    • New path param: provider
    • Deleted query param: credentialId
  • PUT /custom_templates/{id}
  • GET /docker/{environmentId}/containers/{containerID}/image_status
    • New path param: containerId
    • New path param: environmentId
  • GET /docker/{environmentId}/services/{serviceID}/image_status
    • New path param: environmentId
    • New path param: serviceId
  • GET /docker/{environmentId}/snapshot/containers/{containerId}
    • New path param: containerId
  • GET /docker/{environmentId}/stacks/{id}/images_status
    • New path param: environmentId
    • New path param: id
  • PUT /edge_stacks/{id}
  • GET /edge_stacks/{id}/file
    • New query param: commitHash
    • New query param: version
  • PUT /edge_stacks/{id}/status
  • DELETE /edge_stacks/{id}/status/{endpoint_id}
    • New path param: environmentId
    • Deprecated changed from false to true
  • GET /edge_update_schedules/previous_versions
    • New query param: skipScheduleID
  • DELETE /edge_update_schedules/{id}
    • New path param: id
  • GET /edge_update_schedules/{id}
    • New path param: id
  • GET /endpoints
    • New query param: edgeCheckInPassedSeconds
    • New query param: edgeStackStatus
    • New query param: excludeSnapshots
  • POST /endpoints
  • POST /endpoints/edge/async
    • Deleted path param: id
  • DELETE /endpoints/{id}
    • Responses changed
      • New response: 403
  • PUT /endpoints/{id}
  • GET /endpoints/{id}/edge/stacks/{stackId}
    • New query param: version
  • PUT /endpoints/{id}/pools/{rpn}/access
    • Description changed from 'update the access on the resource pool in the current environment Access policy: restricted' to 'update the access on the namespace in the current environment Access policy: restricted'
  • POST /fdo/configure/{guid}
    • New path param: guid
  • DELETE /fdo/profiles/{id}
    • New path param: id
  • GET /fdo/profiles/{id}
    • New path param: id
  • PUT /fdo/profiles/{id}
    • New path param: id
  • POST /fdo/profiles/{id}/duplicate
    • New path param: id
  • POST /gitops/repo/files/search
  • GET /kubernetes/config
    • Description changed from 'Generates kubeconfig file enabling client communication with k8s api server Access policy: authenticated' to 'Generate a kubeconfig file enabling client communication with k8s api server Access policy: authenticated'
  • PUT /kubernetes/{endpointId}/opa
    • New path param: environmentId
    • Deleted path param: id
  • GET /kubernetes/{id}/namespaces/{namespace}/applications
    • New path param: namespace
    • Deleted query param: namespace
  • GET /kubernetes/{id}/opa
    • Modified path param: id
      • Description changed from 'Environment(Endpoint) identifier' to 'Environment identifier'
  • GET /nomad/endpoints/{endpointID}/allocation/{id}/events
    • New path param: environmentId
    • New path param: id
  • GET /nomad/endpoints/{endpointID}/allocation/{id}/logs
    • New path param: environmentId
    • New path param: id
  • GET /nomad/endpoints/{endpointID}/dashboard
    • New path param: environmentId
  • GET /nomad/endpoints/{endpointID}/jobs
    • New path param: environmentId
  • DELETE /nomad/endpoints/{endpointID}/jobs/{id}
    • New path param: environmentId
    • New path param: id
  • GET /nomad/endpoints/{endpointID}/leader
    • New path param: environmentId
  • POST /open_amt/{id}/activate
    • Modified path param: id
      • Description changed from 'Environment(Endpoint) identifier' to 'Environment identifier'
  • POST /open_amt/{id}/devices/{deviceId}/action
    • New path param: deviceId
    • New path param: id
  • POST /open_amt/{id}/devices_features/{deviceId}
    • New path param: deviceId
    • New path param: id
  • GET /open_amt/{id}/info
    • New path param: id
  • DELETE /registries/{id}/ecr/repositories/{repositoryName}/tags
    • New path param: repositoryName
  • PUT /settings
  • PUT /ssl
  • POST /stacks/webhooks/{webhookID}
  • DELETE /stacks/{id}
    • Modified query param: endpointId
      • Description changed from 'Environment(Endpoint) identifier used to remove an external stack (required when external is set to true)' to 'Environment identifier'
      • Required changed from false to true
  • PUT /stacks/{id}
    • Modified query param: endpointId
      • Description changed from 'Stacks created before version 1.18.0 might not have an associated environment(endpoint) identifier. Use this optional parameter to set the environment(endpoint) identifier used by the stack.' to 'Environment identifier'
      • Required changed from false to true
  • PUT /stacks/{id}/associate
    • Modified query param: endpointId
      • Description changed from 'Stacks created before version 1.18.0 might not have an associated environment(endpoint) identifier. Use this optional parameter to set the environment(endpoint) identifier used by the stack.' to 'Environment identifier'
  • GET /stacks/{id}/file
    • New query param: commitHash
    • New query param: version
  • POST /stacks/{id}/start
    • New query param: endpointId
  • POST /stacks/{id}/stop
    • New query param: endpointId
  • POST /tags
  • GET /webhooks
    • Modified query param: EndpointID
      • Required changed from false to true
    • Modified query param: ResourceID
      • Required changed from false to true
  • POST /webhooks
  • PUT /webhooks/{id}
    • New path param: id
  • PUT /webhooks/{id}/reassign
    • New path param: id
  • POST /webhooks/{token}