Closed
agent_coder
wants to merge 2 commits from
feat/12-hardening into feat/11-autoupdate
pull from: feat/12-hardening
merge into: vvzvlad:feat/11-autoupdate
vvzvlad:develop
vvzvlad:feat/1-remove-ee-ui
vvzvlad:feat/2-stream-logs
vvzvlad:feat/3-auto-update
vvzvlad:feat/4-stack-breadcrumbs
vvzvlad:release/2.43
vvzvlad:release/2.39
vvzvlad:community
vvzvlad:release/2.39.3
vvzvlad:release/2.33
vvzvlad:release/2.42.0
vvzvlad:release/2.42
vvzvlad:release/2.41.1
vvzvlad:release/2.41
vvzvlad:release/2.39.2
vvzvlad:release/2.33.8
vvzvlad:release/2.41.0
vvzvlad:release/2.40.0
vvzvlad:release/2.40
vvzvlad:release/2.39.1
vvzvlad:release/2.39.0
vvzvlad:release/2.38.1
vvzvlad:release/2.38
vvzvlad:release/2.33.7
vvzvlad:release/2.38.0
vvzvlad:release/2.33.6
vvzvlad:release/2.37.0
vvzvlad:release/2.37
vvzvlad:release/2.33.5
vvzvlad:release/2.36.0
vvzvlad:release/2.36
vvzvlad:release/2.33.4
vvzvlad:release/2.33.3
vvzvlad:release/2.35.0
vvzvlad:release/2.35
vvzvlad:release/2.33.2
vvzvlad:release/2.34.0
vvzvlad:release/2.34
vvzvlad:release/2.33.1
vvzvlad:release/2.33.0
vvzvlad:release/2.33.0-rc2
vvzvlad:release/2.33.0-rc1
vvzvlad:release/2.32.0
vvzvlad:release/2.32
vvzvlad:release/2.32.0-rc1
vvzvlad:release/2.31.3
vvzvlad:release/2.31
vvzvlad:release/2.27.9
vvzvlad:release/2.27
vvzvlad:release/2.31.2
vvzvlad:release/2.27.8
vvzvlad:release/2.31.1
vvzvlad:release/2.27.7
vvzvlad:release/2.31.0
vvzvlad:release/2.30.1
vvzvlad:release/2.30
vvzvlad:release/2.30.0
vvzvlad:release/2.27.6
vvzvlad:release/2.27.5
vvzvlad:release/2.29.2
vvzvlad:release/2.29
vvzvlad:release/2.29.1
vvzvlad:release/2.29.0
vvzvlad:release/2.27.4
vvzvlad:release/2.27.3
vvzvlad:release/2.28.1
vvzvlad:release/2.28
vvzvlad:release/2.27.2
vvzvlad:release/2.28.0
vvzvlad:yd-develop
vvzvlad:release/2.27.1
vvzvlad:release/2.27.0
vvzvlad:release/2.27.0-rc3
vvzvlad:lp-test-branch2
vvzvlad:release/2.27.0-rc2
vvzvlad:release/2.27.0-rc1
vvzvlad:release/2.26.1
vvzvlad:release/2.26
vvzvlad:release/2.26.0
vvzvlad:release/2.25.1
vvzvlad:release/2.25
vvzvlad:release/2.21.5
vvzvlad:release/2.21
vvzvlad:release/2.25.0
vvzvlad:release/2.24.1
vvzvlad:release/2.24
vvzvlad:release/2.24.0
vvzvlad:release/2.23
vvzvlad:release/2.22
vvzvlad:release/2.21.4
vvzvlad:placeholder
vvzvlad:fix/r8s-120/app-table-settings-persistence
vvzvlad:fix/r8s-109/alow-standard-user-to-edit-volumes
vvzvlad:fix/r8s-103/more-resources-system-filtering
vvzvlad:fix/BE-11102/force-redeploy-edge-stack
vvzvlad:test-update
vvzvlad:vault/release-2.21
vvzvlad:lp-test-branch1
vvzvlad:vault/develop
vvzvlad:refactor/EE-7128/webeditor-doc-type
vvzvlad:test-version-semver
vvzvlad:feat/be-11276/be-ce-agent-change
vvzvlad:feat/be-11276/be-ce-agent-change-lts
vvzvlad:feat/be-11275/be-ce-change
vvzvlad:feat/be-11275/change-be-ce-lts
vvzvlad:vault/release-2.22
vvzvlad:fix/r8s-99/create-application-ns-dropdown
vvzvlad:rc/2.22.0-rc1
vvzvlad:chore/BE-11236/change-linode-branding-to-akamai-connected-cloud
vvzvlad:rc/2.21.0-rc2
vvzvlad:refactor/k8s-namespaces
vvzvlad:rc/2.21.0-rc1
vvzvlad:fix/EE-7284/show-services-explaination
vvzvlad:refactor/EE-2229/docker-images-list-view
vvzvlad:refactor/EE-2208/docker-configs-list-view
vvzvlad:refactor/EE-2300/env-item-view-react
vvzvlad:develop-james-nfs
vvzvlad:refactor/EE-6923/settings-api
vvzvlad:fix/EE-7150/tls-cipher-suites-2.20
vvzvlad:release/2.20
vvzvlad:fix/7011/refactor3
vvzvlad:fix/EE-6631/wait-in-defer-close-websocket
vvzvlad:fix/EE-7049/update-reachable-check-release
vvzvlad:fix/EE-6705/namespace-yaml-no-rq
vvzvlad:release/2.19
vvzvlad:refactor/data-cy
vvzvlad:fix/EE-6855/removed-user-cause-auto-update-fail
vvzvlad:fix/release/EE-6855/removed-user-cause-auto-update-failure
vvzvlad:fix/release/EE-6855/removed-user-cause-auto-update-fail
vvzvlad:fix/release/EE-6808/add-api-endpoint-access-check-1
vvzvlad:chore/XT-1188/add-data-cy-for-backup-and-restore
vvzvlad:fix/EE-6843/tunnel-timeout
vvzvlad:fix/EE-6818/api-error-message-rel
vvzvlad:fix/EE-6818/api-error-message
vvzvlad:fix/EE-6744/compose-runc-develop
vvzvlad:fix/EE-5936/EE-6736/reject-to-assign-edge-admin
vvzvlad:fix/release/EE-5936/EE-6736/reject-to-assign-edge-admin
vvzvlad:fix/release/EE-6627/lint-failure
vvzvlad:fix/EE-6627/lint-failure
vvzvlad:fix/EE-6723/use-pure-admin-release
vvzvlad:fix/EE-6723/use-pure-admin
vvzvlad:fix/EE-6647/tables-correct-external-display-for-resource-release
vvzvlad:fix/EE-6647/tables-correct-external-display-for-resource
vvzvlad:fix/EE-6596/edge-stack-create-template
vvzvlad:feat/EE-6454/support-docker-compose-run
vvzvlad:refactor/EE-6549/EE-6444/git-redeploy-form-section
vvzvlad:fix/EE-6411/env-vars-cursor-shift
vvzvlad:fix/EE-6459/CVEs
vvzvlad:fix/EE-661/staticcheck
vvzvlad:fix/EE-6435/close-before-restore-release
vvzvlad:revert-10718-fix/EE-6392/show-edit-external-app
vvzvlad:fix/EE-6346/gitops-commit-links-2-release
vvzvlad:fix/EE-5664/oauth-show-asterisks-placeholder-release
vvzvlad:fix/release/EE-6373/target-path-exist-error-when-upgrade
vvzvlad:fix/EE-6373/target-path-exist-error-when-upgrade
vvzvlad:fix/EE-661/enable-ineffassign
vvzvlad:fix/EE-6377/singleflight-gitops-rel
vvzvlad:fix/EE-6114/gitops-data-race-rel
vvzvlad:fix/EE-6114/gitops-data-race-dev
vvzvlad:fix/EE-6373/upgrade-target-path-exists
vvzvlad:fix/EE-6321/gitops-online-check-rel
vvzvlad:fix/EE-6211/stack-build-context-validation-rel
vvzvlad:fix/EE-6211/stack-build-context-validation-dev
vvzvlad:release/2.19.2
vvzvlad:feat/EE-5573/related-changes
vvzvlad:refactor/with-form-validation-set-field-value
vvzvlad:refactor/EE-5521/migrate-app-create-form-to-react
vvzvlad:refactor/EE-2307/EE-5207/container-base-form
vvzvlad:fix/EE-4602/switch-color-fix-rel
vvzvlad:fix/EE-4602/switch-color-fix-rel-new
vvzvlad:feat/EE-4337/EE-4484/CE/docker-networks-datatable
vvzvlad:refactor/EE-4337/service-task-datatable
vvzvlad:fix/EE-5980/version-stack-backward-capability
vvzvlad:snyk-fix-0fc01e6b5b4266e90ae8d7d367ac399f
vvzvlad:feat/EE-4500/gorm-sqlite-poc
vvzvlad:release/2.18
vvzvlad:fix/EE-5695/env-manage-access
vvzvlad:fix/EE-5497/helm-repo-url-update
vvzvlad:fix/EE-5406/remove-path-ingress-host-rel
vvzvlad:fix/EE-3841/fix-associated-environments
vvzvlad:refactor/EE-2270/EE-5502/settings-components
vvzvlad:feat/EE-4986/enable-lb-np-type-ingresses
vvzvlad:fix/EE-1976/support-copy-paste-in-container-console
vvzvlad:fix/revert-makefile-218
vvzvlad:fix/dev-build-scripts
vvzvlad:fix/EE-5311/endpoint-api-swagger-doc
vvzvlad:fix/EE-3059/security-scan-debug
vvzvlad:feat/EE-5028/security_teaser
vvzvlad:fix/EE-5234/non-existent-pvc-rel
vvzvlad:fix/EE-5234/non-existent-pvc
vvzvlad:fix/EE-5149/namespace-cache-refresh-rel
vvzvlad:fix/EE-4498/fix-swagger-id-types
vvzvlad:fix/EE-4839/normalize-project-name
vvzvlad:release/2.17
vvzvlad:feat/EE-4754/omit-empty
vvzvlad:chore/update-tool-versions
vvzvlad:fix/EE-4991/kube-storage-detection
vvzvlad:chore/EE-4951/update-edgestack-test
vvzvlad:chore/remove-old-pkg-path
vvzvlad:feat/EE-4752/go-json
vvzvlad:fix/release/EE-4781/no-error-message-if-ce-upgrade-fails
vvzvlad:fix/EE-4766/fix-data-race-in-edgeJobTasksCollect
vvzvlad:fix/EE-4781/no-error-message-if-ce-upgrade-fails
vvzvlad:feat/EE-3604/ui-edge-devices
vvzvlad:feat/EE-3417/EE-3418/multiple-git-repository
vvzvlad:release/2.16
vvzvlad:fix/EE-4548/vulnerable-to-path-traversal-attacks
vvzvlad:fix/EE-3155/cannot-save-internal-authentication
vvzvlad:fix/EE-4286/update-tls-cert-for-docker-env
vvzvlad:feat/fedex/sqlite
vvzvlad:feat/fedex/sqlite-settings
vvzvlad:revert-7749-bug/EE-4311/ingressclass-disallowed-rel
vvzvlad:fix/EE-4322/namespace-disallow
vvzvlad:fix/EE-4312/js-paths
vvzvlad:release/2.15
vvzvlad:fix/EE-3641/page-title-fix
vvzvlad:fix/root-provider
vvzvlad:feat-fdo-1.1
vvzvlad:feat/EE-3894/ui-waiting-room-icon
vvzvlad:snyk-fix-afd68b0b2e0ac933fa52b1544ba67c24
vvzvlad:feat/EE-3513/ui-docker-volume-browser-2
vvzvlad:feat/EE-3388/EE-3478/ui-improvements-namespace-access
vvzvlad:feat/EE-3505/ui-docker-images-item-test
vvzvlad:fix/EE-3683/stack-permissions-are-ignored
vvzvlad:feat/EE-3576/portainer-wizard-ui-change
vvzvlad:feat/EE-3375/ce/wizard-add-identifiers-for-TA
vvzvlad:feat/EE-3491/new-docker-create-ui
vvzvlad:release/2.14
vvzvlad:feat/DTD-102/new-logger
vvzvlad:feat/EE-3533/ui-edge-stacks-create
vvzvlad:fix/EE-2907/ce/missing-kubernetes-sidebar-entries
vvzvlad:fix/EE-3686/fix-tooltip-double-issue
vvzvlad:fix/ee-3506/update-image-list-ui
vvzvlad:fix/EE-3521/swarm-service-list-ui
vvzvlad:feature/EE-3636/icon-styling
vvzvlad:fix/EE-3512/swarm-secrets-list-ui
vvzvlad:fix/EE-3488/swarm-config-list-ui
vvzvlad:fix/ee-3509/update-network-list-ui
vvzvlad:fix/ee-3516/update-vol-list-ui
vvzvlad:feat/EE-2552/EE-3451/-be-supply-build-info
vvzvlad:oscarzhou-portainer-patch-1
vvzvlad:feat/EE-3079/edge-stack-logs
vvzvlad:fix/EE-3445/open-tooltip-on-hover
vvzvlad:fix/EE-3324/password-change-error
vvzvlad:feat/EE-3252/remove-unused-port-on-extension
vvzvlad:feat/3143-nvidia-container-toolkit
vvzvlad:edge-wss
vvzvlad:podman-2022
vvzvlad:release/2.13
vvzvlad:debug-api-endpoint
vvzvlad:fix/EE-3152/tls-downgrade-release
vvzvlad:feat/EE-3152/tls-downgrade
vvzvlad:feat/EE-3062/EE-3085/document-extension
vvzvlad:feat/ce-220-security-scan
vvzvlad:fix/EE-2835/add-edge-groups-column-in-edge-device-view
vvzvlad:feat/EE-2680/allow-env-vars-passed-on-webhooks
vvzvlad:fix/EE-2966/migration-test-dev
vvzvlad:feat/EE-2747/docker-desktop-extension-auto-generation
vvzvlad:snyk-fix-bcb96aa2f9b730b2f44c3825ceba182a
vvzvlad:fix/EE-2594/empty-network-option-in-windows
vvzvlad:EE-2691-experiment
vvzvlad:snyk-fix-af06d21279ebae87a2d003141849185d
vvzvlad:fix/broken-go-lint-settings
vvzvlad:release/1.25
vvzvlad:snyk-fix-411816fd9cf6e70ce95f0fc76a2e8f42
vvzvlad:feat/EE-810/EE-2691/disable-instance-if-not-initialized
vvzvlad:fix/EE-2167/Migrate-124-users-to-213
vvzvlad:refactor/EE-2545/migration-improvements
vvzvlad:feat/EE-2597/create-object-with-string-id
vvzvlad:feat/EE-2404/async-edge-command-queue
vvzvlad:1.24
vvzvlad:feat/support-agent-auto-upgrade
vvzvlad:chore/reduce-dependency-obfuscation
vvzvlad:fix/EE-2167/Migrate-1x-users-to-2x
vvzvlad:feat/EE-2493/poc-mtls-for-edge-agent
vvzvlad:spike/DTD-58/DTD-72/useractivity-middleware
vvzvlad:fix/EE-2432/edge-stacks-status-update
vvzvlad:master
vvzvlad:release/2.11
vvzvlad:feat/dev-metrics
vvzvlad:fix/EE-2489/release/amt-devices-table-hide-expand
vvzvlad:2.11.1-fdo
vvzvlad:fix/release/remove-double-import
vvzvlad:feat/EE-1905/environment-type-filter
vvzvlad:db-fixture-support
vvzvlad:feat/edge-devices-view-react
vvzvlad:feat/INT-32/intel-images-openamt
vvzvlad:feat/EE-1852/EE-1983/encryption-key-with-store-refactor
vvzvlad:feat/ee-1977/rollup-duplicated-volumes
vvzvlad:feat/EE-1852/EE-1983/encryption-key
vvzvlad:feat/EE-506/release-2.11-support-base-url
vvzvlad:revert-6182-revert-6172-fix/INT-6/open-amt-config
vvzvlad:fix/ee-2060/support-upload-huge-file
vvzvlad:feat/INT-16/poc-amt-api-rpc-handler
vvzvlad:fix/EE-1939/provide-right-order-to-registries-in-dropdown-menu
vvzvlad:fix/EE-1973/container-logs-download-extra-CR
vvzvlad:feat/INT-15/proxy-mps
vvzvlad:release/2.9
vvzvlad:fix/swagger/restore-params
vvzvlad:fork_branch
vvzvlad:feat/EE-1942/resource-setting-update
vvzvlad:toolkit-v2
vvzvlad:fix/EE-1922/harden-filesystem-service
vvzvlad:fix/EE-1971/bubble-panic-error
vvzvlad:fix/EE-1971/bubble-panic-error-release
vvzvlad:chore/upgrade-to-bbolt
vvzvlad:poc-searchbar
vvzvlad:fix/EE-1867/standard-user-unable-to-access-pod-and-node-stats
vvzvlad:fix/EE-1911/can-not-update-application-publishing-mode-develop
vvzvlad:fix/EE-1911/can-not-update-application-publishing-mode
vvzvlad:feat/EE-1611/EE-1878/pull-and-redeploy-button-visibility
vvzvlad:fix/EE-1872/namespaces-stack-deletion-develop
vvzvlad:fix/EE-1872/namespaces-stack-deletion
vvzvlad:feat/EE-568/admin-auto-population-ldap-ce
vvzvlad:fix/release-conflicts
vvzvlad:feat/EE-568/admin-auto-population-ldap
vvzvlad:snyk-fix-234920d529b1716a428f2b20a3048d37
vvzvlad:fix/EE-1845/ldap-user-enable-release
vvzvlad:fix/EE-1845/ldap-user-enable
vvzvlad:fix/EE-882/EE-1793/box-selector-icon-position
vvzvlad:fix/EE-1316/jwt-is-exposed-in-the-activity-log
vvzvlad:feat/EE-1543/Allow-Services-to-be-managed-for-external-kube-apps
vvzvlad:feat/EE-189/EE-577/support-git-automated-sync-for-k8s-applications
vvzvlad:feat/EE-577/EE-1760/remove-stack-when-no-app
vvzvlad:XT-807-ui-automation-kube-smoke-tests-helm
vvzvlad:feat/EE-1627/introduce-the-ability-to-filter-applications-by-type
vvzvlad:bug/EE-1734/Registry-page-displays-No-registry-available-despite-being-dockerhub-registry-available
vvzvlad:feat/EE-882/EE-1672/registry-view
vvzvlad:feat/EE882/EE-1675/logs
vvzvlad:fix/EE-1439/modify-new-data-store-check-logic
vvzvlad:docs/add-tool-versions
vvzvlad:fix/EE-1696/polling-webhook-of-stack-from
vvzvlad:fix-release-production
vvzvlad:fix/EE-1714/add-debug-log-for-volume-migration-develop
vvzvlad:fix/EE-1714/add-debug-log-for-volume-migration
vvzvlad:fix/EE-1707/cannot-deploy-git-stack-without-username-de
vvzvlad:fix/EE-1707/cannot-deploy-git-stack-without-username
vvzvlad:fix/EE-1678/failed-to-create-namespace-when-having-registry-de
vvzvlad:feat/EE-1635/remove-stack-from-app-list
vvzvlad:fix/EE-1710/Error-message-in-stats-view-non-admin-missing-description
vvzvlad:fix/EE-1710/error-message-in-stats-view-non-admin-missing-description
vvzvlad:fix/EE-1709/Fix-git-stack-authentication-on-by-default
vvzvlad:fix/EE-1709/fix-git-stack-authentication-on-by-default
vvzvlad:fix/EE-1712/no-icon-displayed-when-template-created-via-upload-file
vvzvlad:fix/EE-1712/No-icon-displayed-when-template-created-via-upload-file
vvzvlad:fix/EE-1678/failed-to-create-namespace-when-having-registry
vvzvlad:fix/EE-1661/fully-rename-endpoint-to-environment-in-swagger-doc
vvzvlad:fix/EE-1660/fix-custom-logo-not-updated
vvzvlad:fix/EE-1636/fix-question-mark-alignment-in-PAT-field
vvzvlad:test/node_env
vvzvlad:fix/EE-1653/wrong_table_background_color_for_helm_application_listing
vvzvlad:feat/ee-834/fix-openapi-errors
vvzvlad:fix/EE-1073/fix_difficulties_selecting_mixed_protocols_for_k8s
vvzvlad:feat/EE-1635/removed-stack-deletion-in-app-list-page
vvzvlad:feat/EE-1089/First-UX-experience
vvzvlad:fix/EE-1586/file-not-persisted-after-deployed-with-url
vvzvlad:feat/EE-577/EE-1594/use-user-token-for-autoupdate
vvzvlad:chore/EE-1052/Replace-all-the-references-to-deviantony
vvzvlad:fix/EE-1591/non-admin-users-cannot-deploy-charts-containing-secrets
vvzvlad:feat/EE-909/Dark_high_contrast_mode_supported
vvzvlad:feat/EE-1206/Rename_endpoints_to_environments
vvzvlad:snyk-fix-ed0fa419898eea7805b20ec7511ebde2
vvzvlad:fix/EE-1553/unable-to-apply-note-to-k8s-application
vvzvlad:feat/EE-809/EE-466/kube-advanced-apps
vvzvlad:feat/EE-1278/swagger-doc-fixes
vvzvlad:fix/EE-1454/tag-not-attached-to-local-k8s-endpoint
vvzvlad:fix/EE-1564/CE-missing-header-namespace-create-view
vvzvlad:feat/EE-1096/CE-registry-delete-warning-modal
vvzvlad:default-namespace-selector-behavior
vvzvlad:snyk-fix-f52082e2df9f9108004d0a670eeb3f6a
vvzvlad:snyk-fix-491ba6a89fe0b2b0e65e3b4c0ef0fd14
vvzvlad:fix/EE-1505/CE-update-default-namespace
vvzvlad:fix/EE-1424/CE-equal-in-env-vars
vvzvlad:fix/EE-1291/EE-1292/git-stack-form-validation-improvements
vvzvlad:fix/release-commits-cherrypick
vvzvlad:fix/EE-1540/fix_changing_helm_repo_not_refresh_issue
vvzvlad:fix/EE-1540/changing_the_default_helm_repo_still_shows_old_charts
vvzvlad:fix/EE-1511/robust-kubernetes-API-proxy
vvzvlad:poc-kube-deploy-from-url
vvzvlad:toolkit-update
vvzvlad:release/2.6
vvzvlad:chore/EE-1509/replace-stalebot-with-action
vvzvlad:feat/EE-466/EE-1199/front-end-CE-backport
vvzvlad:release/2.6.3/EE-1143/update-networking-v1beta1-to-v1
vvzvlad:feat/EE-1502/auth-detail-not-remembered
vvzvlad:feat/EE-466/EE-1189/backport-to-ce
vvzvlad:feat/EE-248/EE-1425/enable-save-button-when-password-exists
vvzvlad:fix/EE-1402/increment-api-version
vvzvlad:feat/EE-1178/CE-clarify-metrics-switch
vvzvlad:demo-v2
vvzvlad:feat/EE-248/EE-1323/dont-return-password-back
vvzvlad:feat/EE-248/EE-1310/substituting-from-env-file-in
vvzvlad:feat/update-github-banner
vvzvlad:feat/update-readme-from-marketing
vvzvlad:snyk-fix-6a198797807c43d474095224f758f0b8
vvzvlad:refactor/EE-1053/CE-rename-storage-section
vvzvlad:feat/EE-951/CE-registries-accesses-relocation-indicator
vvzvlad:feat/EE-883/CE-getting-started-page
vvzvlad:snyk-fix-8976c3e2173dcb1c31a7b3f2e97ebc23
vvzvlad:fix/EE-1152/importing-images
vvzvlad:feat/EE-1148/modify-ldap-get-groups-func
vvzvlad:feat/EE-986/add-admin-mapping-section-inLDAP
vvzvlad:feat/EE-1021/fe-backport-automated-sync-for-stacks
vvzvlad:528
vvzvlad:feat/ee-370/ee-515/ce-update-to-1-16
vvzvlad:fix/EE-1072/ingresses-hostname-fields-fix
vvzvlad:feat/EE-992/update-ldap-settings
vvzvlad:feat/EE-930/admin-auto-population-oauth
vvzvlad:feat/EE-971/admin-mapping-section-oauth
vvzvlad:snyk-fix-f7a7da24eb70f58d73a6949d4765aa68
vvzvlad:feat/EE-975/mapping-oauth-group-to-admin-role
vvzvlad:refactor4071-constants-step2
vvzvlad:feat/EE-971/admin-mapping-section
vvzvlad:feat/EE-161/redeploy-stack-from-git
vvzvlad:feat/EE-781/change-edit-stack-view
vvzvlad:feat/EE-829/implement-edit-git-deploy-stack-endpoint
vvzvlad:feat/EE-780/change-add-stack-view
vvzvlad:snyk-fix-e6fed59bc40accf75940b773b4175580
vvzvlad:snyk-fix-536f1662b19d0dec5659b4501ba650d2
vvzvlad:feat/EE-447/k8s-advanced-deployment-from-git-repo
vvzvlad:snyk-fix-6f2c5f2ac6b982591828a069f9645d54
vvzvlad:Testing-merge-of-161-446-447
vvzvlad:fix/EE-948/swagger-param-name-fix-for-endpoint-create
vvzvlad:release/2.5
vvzvlad:feat/EE-786/create-stack-updates-for-git-sync
vvzvlad:feat/GH/827-service-healthchecks
vvzvlad:epic/CE-309/backup-private-registries-20210531
vvzvlad:fix/EE-812/can-not-deploy-stack-app-templates
vvzvlad:snyk-fix-19f7491fbb67710fad7da7da2d291d88
vvzvlad:epic/CE-309/feat/CE-512/backport-ee-30-backend
vvzvlad:feat/EE-608/update-store-and-retrieve-settings-handler
vvzvlad:epic/CE-309/feat/CE-513/backport-ee-30-frontend
vvzvlad:feat/EE-643/logout-logic-changes
vvzvlad:feat/EE-672/CE-reorder-placement-policies-options
vvzvlad:feat/EE-607/settings-view
vvzvlad:fix/CE-575/type-downgrade-error
vvzvlad:fix/EE-645/ACI-UAC-breaks-when-redeploying-container-with-same-name-as-one-already-existing
vvzvlad:revert-5021-feat/EE-596/update-agent-version-in-deployment-instructions
vvzvlad:feat/CE-223/migrate-selector
vvzvlad:snyk-fix-520e95e409cb8ddd217a7f0aa2160ce9
vvzvlad:feat/EE-596/update-agent-version-in-deployment-instructions
vvzvlad:snyk-fix-6fd487252f28262d8a4f0f6a99808327
vvzvlad:snyk-fix-5aff38ac9bd148fe8a3b5d45adb2dcc8
vvzvlad:snyk-fix-bdfbcf8def6d0925eb3a3090aa4fec17
vvzvlad:snyk-fix-c741bd40fab715925bb9221fefb7f1d9
vvzvlad:revert-4952-feat/CE-414/add-UAC-to-ACI
vvzvlad:refactor/EE-31/use-docker-compose-wrapper
vvzvlad:snyk-fix-89cdb3c26b67f4a51e27f70eeefcb3c4
vvzvlad:feat(backup)-backup-restore-system
vvzvlad:feat(backup)-add-s3-stubs-to-ce
vvzvlad:snyk-fix-a8022c23ed6afd9c00eb9dd4441da8ef
vvzvlad:snyk-fix-b72acb2aca16fd54a76ac2eda18230d2
vvzvlad:fix/EE-458/pull-latest-image-toggle-missing
vvzvlad:snyk-fix-dbde1a343d9bd699ea8bb876f27953de
vvzvlad:snyk-fix-9de633ccccac0fa6c366b8c9747b637e
vvzvlad:snyk-fix-d3a07bfe2eea4450b0c42fa6adb9007c
vvzvlad:Chore--Add-Licenses-attributions
vvzvlad:feat-1.24.2
vvzvlad:feat/CE/487-registry-access-control-merge
vvzvlad:epic/CE-309/private-registries-backup
vvzvlad:feat/CE/487-registry-access-control
vvzvlad:fix/CE-478/Unable-to-save-cluster-configuration-with-fresh-deployment
vvzvlad:feat/CE-493/update-docker-swarm-kubernetes-sidebars
vvzvlad:feat/CE-490/kubernetes-registries-support
vvzvlad:feat/CE-485/remove-registry-usage-information-panel
vvzvlad:feat/CE-486/introduce-dockerhub-authenticated
vvzvlad:feat/GH/4419-kubernetes-create-volume
vvzvlad:feat/GH/4240-show-error-reason-when-custom-template-creation-fails
vvzvlad:fix/CE-471/config-vars-showing-on-environment-variables-section-on-application-edit-screen
vvzvlad:fix/CE/466-app-templates-not-loading-error
vvzvlad:fix/CE/466-app-templates-not-loading
vvzvlad:fix/CE-463/cluster-configuration-fresh-deployment
vvzvlad:fix/CE/4843-update-application-persisted-data
vvzvlad:fix/ce-51-labels
vvzvlad:feat(dev)--CE-420-Add-automatic-rebase-to-github
vvzvlad:2.1.1
vvzvlad:feat/GH/3143-nvidia-container-toolkit
vvzvlad:feat/GH/4743-not-filter-custom-templates
vvzvlad:release/2.1
vvzvlad:fix/private-registries
vvzvlad:fix/ce-401-private-registry
vvzvlad:feat/GH/4779-kubernetes-edit-yaml
vvzvlad:fix-ce395-parse-empty-configuration-as-empty-string-yaml
vvzvlad:fix-ce#394-trigger-port-validation-while-changing-protocol
vvzvlad:fix-ce394-trigger-port-validation-while-changing-protocol
vvzvlad:fix/missing-kubectl-download
vvzvlad:sec/utils-extend
vvzvlad:fix/compose-Bump-docker-compose-to-1.28.2
vvzvlad:feat/cd-187-docker-compose-wrapper
vvzvlad:feat-4728-better-form-validation-for-configuration-keys
vvzvlad:feat/cd-187-add-auth-proxy-to-docker-compose
vvzvlad:chore-4473-bump-kompose-version
vvzvlad:fix-4503-cannot-access-configuration-details-view-containing-binary-data
vvzvlad:release/2.0.1
vvzvlad:feat/GH/4419-create-volume
vvzvlad:fix/201-api-version
vvzvlad:revert-4475-chore-ce-86-bump-kompose-version
vvzvlad:CE-185-build-static-docker-compose-linux-binary
vvzvlad:revert-4418-feat/gh/3889-stacks-create-update-dates
vvzvlad:fix-4595-transform-username-to-be-dns-compliant
vvzvlad:feat/GH/4011-pods-as-applications
vvzvlad:fix-4553-revalidate-configuration-name-when-change-resource-pool
vvzvlad:fix-4547-override-confgiuration-keys-disappear
vvzvlad:feat4545-matomo
vvzvlad:fix4463-resourcecontrol-deletion
vvzvlad:feat95-applications-configurations-modals
vvzvlad:fix/GH/4502-update-sensitive-configuration
vvzvlad:feat/GH/4404-start-without-endpoint
vvzvlad:fix/GH/4488-refreshing-yaml-panel-change-panel
vvzvlad:fix/GH/4492-cluster-setup-incorrectly-expand-endpoint-sidebar
vvzvlad:fix/GH/4490-invalid-display-load-balancer-panel
vvzvlad:chore56-add-JS-source-map
vvzvlad:Disable-Container-Capabilities-for-non-admins
vvzvlad:fix/gh/4390-sort-labels
vvzvlad:fix-k8s-daemonset-noschedule
vvzvlad:fix-k8s-volume-filter
vvzvlad:fix-k8s-system-volumes-filter
vvzvlad:feat4204-banner
vvzvlad:revert-4197-fix-login-after-restart
vvzvlad:telemetry-matomo
vvzvlad:mockup4003-placement
vvzvlad:demo
vvzvlad:feat-db-migration-1.24.1
vvzvlad:revert-3966-feat454-endpoint-url
vvzvlad:fix3604-remove-runtime-persistence
vvzvlad:fix3936-add-database-migration
vvzvlad:feat-rbac-tests
vvzvlad:poc-orphaned-stack
vvzvlad:2.0
vvzvlad:feat3742-telemetry
vvzvlad:feat3744-aci
vvzvlad:feat3580-username-lowercase
vvzvlad:fix3272-bad-volume-ownership
vvzvlad:fix-windows-multiarch-build
vvzvlad:feat-1807-service-network-management
vvzvlad:fix3429-networks-object-undefined
vvzvlad:hotfix-1.22.2
vvzvlad:feat2901-introduce-backup
vvzvlad:feat2928-dockerhub-registry
vvzvlad:feat1752-introduce-deploymentkeys
vvzvlad:feat-upload-files-container
vvzvlad:storidge-standalone
vvzvlad:dbg11042019
vvzvlad:refactor-es9-migration
vvzvlad:fix2626-endpoint-management-cmd-line
vvzvlad:feat2456-ux-high-latency
vvzvlad:feat1752-stack-deploy-keys
vvzvlad:adsense
vvzvlad:feat807-i18n
vvzvlad:gh-pages-bkp
No Reviewers
No Label
review/changes-requested
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: vvzvlad/portainer#18
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "feat/12-hardening"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Хардненинг авто-апдейта: health-gated rollback (standalone), per-endpoint enable, notifier-seam. Closes #12 (эпик #3, финальный M5). Бэкенд Go + фронт React. Стек поверх M4 (#16): base =
feat/11-autoupdate, ретаргет наdevelopпосле мержа цепочки. Расширяет M4, не форкает.P0 — health-gated rollback (standalone-путь):
updateStandaloneпереписан: (1) перед recreate захватывает старый image id (sha256), оригинальный ref (Config.Image), наличие healthcheck; гейт только если rollback включён, healthcheck есть (nil/empty/NONE → skip, лог) и id+ref разрешены; (2) обычныйRecreate(pull=true); (3) health-poll (healthGate, новыйrollback.go) каждые 3с поState.Health.Status/Running, контекст отbaseCtx; (4) rollback:ImageTag(oldImageID, originalRef)возвращает старый образ на ref (новый становится dangling, остаётся для разбора) →Recreate(pull=false)пересоздаёт на старом (реюз сохранения конфига); при сбое re-tag/recreate — unhealthy-контейнер не уничтожается, лог+update-failed; (5) cleanup перенесён за гейт — старый образ удаляется только после confirmed-healthy (цель отката не пропадает); при выключенном rollback поведение M4 без изменений.decideRollback(health, now, deadline)→healthy/trigger/continue(юнит-тест без Docker). Stack-rollback вне scope (документировано как будущее).P1 — per-endpoint enable:
Endpoint.ContainerAutomationDisabled bool(zero-value участвует → миграция не нужна), оба демона пропускают черезAutomationEnabledForEndpoint; задаётся в endpoint update API. UI-контрол отложен (форма env большая; issue явно разрешает минимальную/daemon-side реализацию — бэкенд готов и покрыт тестами).P2 — notifier-seam:
Notifierинтерфейс +logNotifier(структурный zerolog),Event{Kind,EndpointID,ContainerID,StackID,Image,Message,Err}, kindsupdated/rollback/update-failed/heal-restarted; вшит в update/redeploy/rollback/recreate-fail/heal-restart. Без внешних интеграций — это seam под будущее.Настройки:
AutoUpdate.{RollbackOnFailure bool, RollbackTimeout string="120s"}— init-дефолты, backfill в M1/M4-миграции, golden, settings_update валидация,AutoUpdatePanel(тоггл+таймаут, тултип «standalone-only»), TS-типы.How verified
go build ./api/...— чисто;go vet(containerautomation/datastore/settings/cmd/endpoints) — чисто;go test -race ./api/containerautomation/...— ok;go test ./api/datastore/ ./api/http/handler/settings/...— ok;gofmt -l— пусто. Тесты:TestDecideRollback,TestHasHealthGate,TestParseRollbackTimeout,TestLogNotifierDoesNotPanic,TestRecordingNotifierCapturesEvents,TestAutomationEnabledForEndpoint,TestSettingsUpdatePayloadValidateRollbackTimeout.pnpm typecheck— чисто;pnpm lint— 0 ошибок; vitest (AutoUpdatePanel+validation) — зелёные.Только ручная проверка: реальный rollback против живого Docker (unhealthy после апдейта → откат на старый образ), re-tag side-effect, cleanup-ordering, per-endpoint disable, Swarm.
Известные компромиссы (документированы)
originalRefсо нового образа на старый; новый (плохой) образ остаётся dangling для пост-мортема.Review checklist
Ревью M5 «hardening: health-gated rollback + per-endpoint enable + notifier-seam» — agent_reviewer
Полный веер 8 аспектов против базы стека
origin/feat/11-autoupdate...(headcdf17d9).Очень крепкий PR. security / regressions / test-coverage / documentation / conventions / architecture — LGTM: чистое ядро отката (
decideRollback/effectiveRollbackDeadline/isTagReference/inspectErrorTolerated) образцово отделено от Docker-IO и покрыто юнит-тестами с границами (deadline, start_period, transient-inspect ≤3); rollback не подтягивает чужой образ (ImageTag+Recreate(pull=false), digest-pinned/bare-id отсекаются); cleanup корректно перенесён ЗА health-gate (цель отката не удаляется до confirmed-healthy); при сбое re-tag/recreate unhealthy-контейнер не уничтожается; per-endpoint opt-out на верном уровне с обратно-совместимым zero-value (без миграции); путь при rollback=off идентичен M4; дефолт120s/floor10sсогласованы во всех местах вкл. golden/swagger.verdict: CHANGES — 1 warning + 1 suggestion.
F1 [warning] pre-update inspect на неограниченном
baseCtxможет навсегда подвесить авто-апдейтНовый pre-update
cli.ContainerInspect(s.baseCtx, c.ID)(autoupdate.go:246) вызывается на голомs.baseCtx(контекст жизни приложения, без per-operation таймаута). Все остальные Docker-вызовы пакета ограничены: листинг/heal —endpointTimeout, status-check —statusCheckTimeout, recreate —recreateTimeout, health-poll —context.WithDeadline(autoupdate.go:127,152,274,339,374,rollback.go:212,autoheal.go:136,174). Этот единственный inspect — исключение.Последствие: если Docker API подвиснет на этом inspect (реалистично для remote-TCP эндпоинта при сетевом partition / неотвечающем демоне), горутина авто-апдейта повиснет до самого shutdown, а overlap-guard (
updateRunning.CompareAndSwap) превратит ВСЕ последующие тики в no-op — авто-апдейт молча умрёт до перезапуска Portainer, без таймаут-ошибки в логах. Регресс внесён именно M5 (раньше этого inspect не было). Проверено чтением кода.DO: обернуть в ограниченный контекст, как остальные inspect-вызовы:
inspectCtx, cancel := context.WithTimeout(s.baseCtx, statusCheckTimeout); defer cancel()и передатьinspectCtx. Поведение при ошибке уже корректное (лог + продолжение без health-gate).F2 [suggestion] мёртвый guard
newContainer != nilRecreate(api/docker/container.go) приerr==nilвсегда возвращает не-nil*ContainerJSON; послеif err != nil { return }вupdateStandalonenewContainerне может быть nil. Поэтому блокautoupdate.go:292-294(newImage := ""; if newContainer != nil { newImage = newContainer.Config.Image }) содержит недостижимую ветку — и это противоречит коду ниже, гдеnewContainer.IDразыменовывается безусловно (:304,:310,:320). Та же лишняя проверка осталась в условии cleanup (:324).DO: заменить блок
:292-294наnewImage := newContainer.Config.Imageи убратьnewContainer != nilиз условия:324.DROP (в калибровку): notifier-seam (
Notifier/Event/logNotifier) — по факту один внутренний потребитель и нет точки инъекции (YAGNI), плюс дублирует существующиеlog.Warn/Infoна тех же call-site. Но это намеренный deliverable милстоуна M5, дёшево и обратимо — не DO и не ESCALATE.reviewer: agent_reviewer · LGTM: security, regressions, test-coverage, documentation, conventions, architecture.
Объединено в один PR на эпик #3 → #19 (M5 вошёл целиком). Этот PR закрываю как superseded; ветка будет удалена (все коммиты в feat/3-auto-update).
Pull request closed