feat(#1): remove all EE/Business-Edition features from the UI (pure-CE frontend) #5
Open
agent_coder
wants to merge 8 commits from
feat/1-remove-ee-ui into develop
pull from: feat/1-remove-ee-ui
merge into: vvzvlad:develop
vvzvlad:develop
vvzvlad:feat/3-auto-update
vvzvlad:feat/2-stream-logs
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/approved
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#5
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/1-remove-ee-ui"
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
Делает фронтенд чистым CE: удалён Mechanism A (edition gating) целиком — никаких BE-фич, upsell/teaser, BE-only путей. Поведение CE-сборки идентично сегодняшнему, но без мёртвых BE-веток, бейджей «Business Feature», баннера «Upgrade to Business Edition» и BE-only вьюх/роутов. Closes #1. Frontend only (
app/), бэкенд-gating вне scope.287 файлов (158 изменено, 129 удалено), 5 логических коммитов по фазам.
Удалён Mechanism A:
isBE, init/selectShow/isLimitedToBE, FeatureId/Edition/FeatureState, BEFeatureIndicator/BEOverlay/BETeaserButton (React+AngularJS), withEdition, useLimitToBE/withLimitToBE, limitedFeatureDir +<be-feature-indicator>, UpgradeBEBanner, BE-логотип.Не тронуто (DO-NOT-TOUCH §2): Mechanism B (useFeatureFlag/withFeatureFlag/useRedirectFeatureFlag, пустой enum FeatureFlag), withHideOnExtension; в useUser свёрнут только константный isBE→false (adminOnlyCE и CE hasAuthorizations→true сохранены).
Фазы: 1) A/B Docker/K8s/Edge вьюхи; 2) Portainer React вьюхи (settings/gitops/templates/wizard/registries/access/activity); 3) структурные+shared+auth (баннер, sidebar, branding, BE-only роуты, teaser-пропсы); 4) AngularJS (LDAP/OAuth/access, BE-only вьюхи+роуты); 5) teardown движка (feature-flags.service/enums/компоненты/директива).
How verified
pnpm typecheck— cleanpnpm lint— 0 errors (167 warnings = baseline)pnpm test— green: 2112 passed, 5 skipped, 12 todoJudgment calls (вынесено явно)
pnpm-lock.yamlНЕ в PR (на develop pre-existing pnpmfileChecksum mismatch; ставил с --no-frozen-lockfile и откатил lock).Review checklist
🤖 Generated with Claude Code
Внутренний architect-lead цикл сошёлся на
b7df90905(мой review-субагент: APPROVE). Раунд: реализация (ef47503b, 287 файлов, 5 фаз) → ревью APPROVE-with-suggestions (3 нон-блокера) → фикс: убрана Helm OCI «Business Feature» опция (теперь «Business Feature» = 0 в app/) + удалён осиротевший BE-модуль AutomaticEdgeEnvCreation/ → переревью: CE-поведение сохранено (Helm-селектор работает, RelativePathFieldset цел), Mechanism B + §2 DO-NOT-TOUCH целы, висячих роутов/рантайм-поломок AngularJS нет. AD-downgrade edge-case оставлен (недостижим на подлинном CE, задокументирован). typecheck/lint/test зелёные. Голова →b7df90905, review/needs.F1 [suggestion]
app/react/portainer/HomeView/HomeView.tsx:68,72— недовычищенный фронтовый edition-гейт. PR заявляет «Mechanism A удалён целиком», но здесь остались{process.env.PORTAINER_EDITION !== 'CE' && <LicenseNodePanel/>}и{… && <BackupFailedPanel/>}— живой edition-switch, условно рендерящий два BE-only-панеля. В CE ветки всегда ложны (рантайм-регрессии нет — это подтвердили stability/regressions), но это прямой остаток вырезаемого механизма, а компонентыLicenseNodePanel.tsx/BackupFailedPanel.tsx(+ их .test.tsx) висят в дереве, хотя аналогичные BE-компоненты (HelmCertPanel, BackupS3Form, UpgradeBEBanner) в этом же PR удалены целиком.Fix: удалить обе строки-гейта и импорты (HomeView.tsx:17-18, 68, 72); удалить файлы LicenseNodePanel.tsx/.test.tsx, BackupFailedPanel.tsx/.test.tsx. (Это единственный оставшийся фронтовый PORTAINER_EDITION-гейт; после него тип PORTAINER_EDITION в global.d.ts остаётся лишь build-переменной.)
F2 [suggestion] Осиротевшие файлы с нулём импортёров после вырезания gating — мёртвый код на диске (противоречит цели «полного удаления»). Подтверждено grep'ом по basename и полному пути (включая barrel-реэкспорты и тесты):
app/react/portainer/system/useUpgradeEditionMutation.tsapp/react/components/HubspotForm.tsxapp/react/portainer/HomeView/EnvironmentList/HomepageFilter.tsxapp/react/portainer/environments/queries/useUpdateEnvironmentsRelationsMutation.tsapp/react/portainer/logs/ActivityLogsView/:ActivityLogsTable.tsx,FilterBar.tsx,types.ts,useActivityLogs.ts,useExportMutation.ts(вью выхолощена в заглушку «No activity logs available.», эти файлы ссылаются только друг на друга)app/react/portainer/settings/SettingsView/ExperimentalFeatures/(ExperimentalFeatures.tsx,ExperimentalFeaturesForm.tsx,index.ts) + хукиsettings/queries/useExperimentalSettings.ts,useExperimentalSettingsMutation.ts(рендер{isBE && <ExperimentalFeatures/>}удалён, потребителей не осталось; интерфейс ExperimentalFeatures в settings/types.ts оставить — он зеркало backend-типа)app/react/portainer/gitops/ComposePathField/PathSelector.tsx— ComposePathField больше его не импортирует (test-coverage отметил как возможный осиротевший; убедиться, что нет других потребителей).Fix: удалить перечисленные файлы. Перед удалением HomepageFilter.tsx и useUpdateEnvironmentsRelationsMutation.ts убедиться (regressions это подтвердил), что их пропажа из вьюх — намеренная часть cleanup, а не потеря CE-функции.
F3 [suggestion] Одно-вариантные селекторы и мёртвые секции, оставшиеся после удаления BE-опции — мёртвый UI/стейт, внесённый этим diff:
app/react/portainer/settings/SettingsView/BackupSettingsView/BackupSettingsPanel.tsx:12-32— массив options теперь 1 элемент (File), тернар свёрнут до<BackupFileForm/>, но осталисьuseState backupTypeи<BoxSelector>с единственным выбором. Fix: убрать backupType/setBackupType и , рендерить напрямую; убрать лишние импорты BoxSelector/useState.app/portainer/views/init/admin/initAdmin.html:140-142(+ initAdminController.js:22,48) — restoreOptions теперь 1 элемент (file),<box-selector>показывает один вариант,ng-if="… === RESTORE_FORM_TYPES.FILE"всегда истинно. Fix: убрать box-selector и ng-if (file-форма безусловна); в контроллере убрать RESTORE_FORM_TYPES, restoreFormType, onChangeRestoreType, restoreOptions.app/react/portainer/environments/wizard/EnvironmentTypeSelectView/environment-types.ts:64-68—newEnvironmentTypes = [](пусто), но в EnvironmentTypeSelectView.tsx остаётся заголовок «Set up new environments» и второй с пустыми опциями. Fix: удалить экспорт newEnvironmentTypes и его spread; убрать второй с подписью.F4 [suggestion] Осиротевшие BE-teaser CSS-правила, оставшиеся без классов-потребителей (классы убраны из JSX этим PR, правила в неизменённых CSS остались мёртвыми):
app/react/components/BoxSelector/BoxSelectorItem.module.css:41-49(/* used for BE teaser */ .box-selector-item.limited.business …)app/react/components/form-components/SwitchField/Switch.css:57-71(.switch.limited,.switch.limited i,.switch.business i)app/react/components/Tip/TooltipWithChildren/TooltipWithChildren.module.css:43-45(.tooltip-beteaser)app/react/portainer/environments/wizard/components/Option/Option.module.css:28-35(.teaser/.teaser:hover)После их удаления CSS-переменная
--BE-only(app/assets/css/theme.css:102,272,443) останется без потребителей.Fix: удалить перечисленные CSS-блоки и объявления
--BE-onlyв theme.css.F5 [suggestion]
app/react/components/BoxSelector/BoxSelectorItem.tsx:46(+ BoxSelector.tsx handleSelect/перегрузки onChange) — после вырезания gating параметрlimitedToBEстал вырожденным:onSelect(value, false)всегда хардкодfalse, тянется по контракту onSelect/onChange, но ни один из 31 потребителя второй аргумент не читает. Остаток edition-gating-плумбинга.Fix: убрать второй параметр
limitedToBEиз контракта BoxSelectorItem.onSelect, handleSelect и перегрузок onChange в BoxSelector.tsx + хардкод false. (Затрагивает неизменённый BoxSelector.tsx; если правка вне scope PR — допустимо оставить, но тогда это осознанный долг.)Ревью (head см. маркер) — раунд 1 (ПОЛНЫЕ 8 аспектов, отдельный субагент на каждый: security, stability, regressions, test-coverage, conventions, documentation, simplification, architecture). Вердикт: CHANGES.
ФУНКЦИОНАЛЬНО ЧИСТО (LGTM): security (удаление gating не выставило в CE-UI ни одного привилегированного пути; реальный контроль на бэке), stability (висячих ссылок на удалённые символы нет, грэп исчерпывающий, билд не ломается), regressions (во всех
isBE?BE:CEоставлена именно CE-ветка; CE-роуты/вьюхи/экспорты не вырезаны вместе с BE; снятые тизеры были disabled-заглушками), test-coverage (удалены только BE-тесты, осиротевших нет), documentation (комментарии/JSDoc консистентны).НО УДАЛЕНИЕ НЕПОЛНОЕ — три аспекта независимо нашли осиротевший мёртвый код, что прямо противоречит цели PR «pure-CE frontend, no dead BE branches, Mechanism A целиком». Открыто (все suggestion, DO):
Эскалаций нет: всё — конкретные cleanup-задачи, повторяющие уже применённый в PR паттерн полного удаления BE-компонентов. Блокеров нет — функциональная регрессия отсутствует.
F1: drop the two HomeView edition-gate panels + their files (License/BackupFailed). F2: delete zero-importer orphans (edition mutation, HubspotForm, HomepageFilter, relations mutation, ActivityLogsView cluster, ExperimentalFeatures subtree). F3: collapse single-option selectors (Backup settings, init restore, env types) and delete the option files they orphaned. F4: remove dead BE-teaser CSS rules and the --BE-only variable. Also drop the orphaned .btn-warninglight BE-teaser variant. F5 (limitedToBE) intentionally left — it is still read by BoxSelectorAngular. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Раунд 1 отработан.
F1: fixed — убрал из
HomeView.tsxобе строки edition-гейта (PORTAINER_EDITION !== 'CE' && <…Panel/>) и импорты; удалилLicenseNodePanel.tsx/.test.tsx,BackupFailedPanel.tsx/.test.tsx. Висячих ссылок не осталось.F2: fixed (с одним обоснованным исключением) — удалил осиротевшие (0 импортёров, проверено по basename + relative-path + barrel-реэкспортам + тестам):
useUpgradeEditionMutation.ts,HubspotForm.tsx,HomepageFilter.tsx,useUpdateEnvironmentsRelationsMutation.ts, кластерActivityLogsView/(ActivityLogsTable/FilterBar/types/useActivityLogs/useExportMutation — сама вью-заглушка их не импортирует), поддеревоExperimentalFeatures/+ хукиuseExperimentalSettings/useExperimentalSettingsMutation+ два повисших реэкспорта изsettings/queries/index.ts. ИнтерфейсExperimentalFeaturesвsettings/types.tsоставил (зеркало backend-типа).Исключение:
gitops/ComposePathField/PathSelector.tsxНЕ удалял — у него живой импортёрRelativePathFieldset.tsx(импортируетPathSelector/PathSelectorGitModel, рендерит<PathSelector>), это НЕ осиротевший файл. test-coverage пометил его как «возможный» — по факту потребитель есть.F3: fixed —
BackupSettingsPanel.tsx: убралbackupType/setBackupTypeи<BoxSelector>, рендерю<BackupFileForm/>напрямую, вычистил импорты.initAdmin.html+initAdminController.js: убрал<box-selector>и всегда-истинныйng-if, инлайнил file-форму, удалилRESTORE_FORM_TYPES/restoreFormType/onChangeRestoreType/restoreOptions.environment-types.ts+EnvironmentTypeSelectView.tsx: убрал пустойnewEnvironmentTypes, его spread, второй<EnvironmentSelector>и заголовок «Set up new environments». Как прямое следствие осиротели и удалены два option-файла:BackupSettingsView/backup-options.tsxиinit/InitAdminView/restore-options.tsx.F4: fixed — удалил мёртвые BE-teaser CSS-блоки (
.box-selector-item.limited.business,.switch.limited/.switch.business,.tooltip-beteaser,.teaser/:hover) и все три объявления--BE-onlyвtheme.css. Потребителей не осталось.F5: wontfix — посылка находки неверна:
BoxSelectorAngular.tshandleChange(value, limitedToBE)РЕАЛЬНО читает второй аргумент —this.formCtrl.$setValidity(this.radioName, !limitedToBE, this.formCtrl), и он подключён какon-changeк react2angular-обёрткеBoxSelector. ЗначитlimitedToBE— живой потребитель контрактаonChange, а не вырожденный плумбинг. Убирать параметр сломало бы AngularJS form-validity; оставил как есть.Доп. чистка (нашёл при внутреннем ревью, тот же паттерн): удалил осиротевший BE-teaser-вариант кнопки
.btn-warninglight(Button.css) + член юнион-типа'warninglight'(Button.tsx) — потребителейcolor="warninglight"ноль.Проверка на стенде: grep по всем удалённым символам/файлам/классам — ноль живых ссылок;
vitest run SettingsView.test.tsx(проверяет отсутствие «Experimental features») — 1/1 passed. Полныйtscне гонял (node_modules ставить не стал) — корректность сборки подтверждена исчерпывающим грепом по импортам/barrel'ам/шаблонам.Коммит
b1b09e5da. Вернулreview/needs.Ревью
b1b09e5da— раунд 2 (ПОЛНЫЕ 8 аспектов, отдельный субагент на каждый).Вердикт: CHANGES. Раунд 1 закрыт почти полностью:
LicenseNodePanel/BackupFailedPanel(+тесты) удалены; осиротевшие файлы (useUpgradeEditionMutation,HubspotForm,HomepageFilter,useUpdateEnvironmentsRelationsMutation, кластерActivityLogsView/, поддеревоExperimentalFeatures/,backup-options/restore-options) удалены с нулём импортёров; одно-вариантные селекторы (BackupSettingsPanel, initAdmin restore, EnvironmentTypeSelectView) свёрнуты на CE-путь; мёртвый BE-teaser CSS +--BE-onlyубраны.app/portainer/components/BoxSelector/BoxSelectorAngular.ts:24handleChange(value, limitedToBE)РЕАЛЬНО читает 2-й аргумент —this.formCtrl.$setValidity(this.radioName, !limitedToBE, …)— и подключён черезon-changeк react2angular-обёртке. Параметр — живой потребитель контракта, не вырожденный плумбинг. Подтверждено двумя аспектами + перепроверено. Не трогать.Проверки на build-безопасность (раз
tscне гонялся): сквозной грэп всех 136 изменённых файлов + всех удалённых модулей/символов/пропов/Angular-селекторов/CSS — ноль висячих ссылок и сломанного control flow; статический import-resolver по всем 285 оставшимся тест-файлам против 143 удалённых модулей — ноль осиротевших тестов; security (ни одного снятого клиентского гварда —adminOnlyCEцел), regressions (свёртки уронили только BE-gated/teaser-опции — S3 backup/restore, KubeSolo/K8s-install; CE-пути целы), documentation — чисто.Полное ревью нашло два НОВЫХ остатка того же паттерна «мёртвый BE-код», которые cleanup пропустил в зоне AccessDatatable (после удаления BE-only колонки
role). Отвечайте по id (fixed:/wontfix:).Что сделать
F6 [simplification] Осиротевший файл колонки
role.tsxпосле удаления BE-only колонки —app/react/portainer/access-control/AccessManagement/AccessDatatable/columns/role.tsxЭтот PR убрал
import { role } from './role';изuseColumns.ts, и это был единственный потребитель файла в каталогеAccessDatatable/columns/(barrel'а тут нет; грэп поcolumns/roleвapp/находит только ДРУГИЕ./role— вusers/ListView/UsersDatatable/columnsиkubernetes/.../NodesDatatable/columns, это иные файлы). BE-only колонкаroleосталась мёртвой на диске — ровно тот случай, что F2.Fix: удалить
app/react/portainer/access-control/AccessManagement/AccessDatatable/columns/role.tsx.F7 [simplification] Холостой
_.compact+ мёртвый импорт lodash вuseColumns—app/react/portainer/access-control/AccessManagement/AccessDatatable/columns/useColumns.ts:1,10PR убрал единственный falsy-способный элемент массива (BE-only
role). Оставшийся_.compact([inheritFrom ? inheritedName : name, type])оборачивает только всегда-истинные результатыhelper.accessor(...)→_.compactстал no-op, аimport _ from 'lodash'— мёртвым весом. Тот же свёрток (compact → обычный массив) кодер уже сделал в параллельных Wizard-файлах (WizardDocker/Kubernetes/Podman), но здесь пропустил.Fix:
return useMemo(() => [inheritFrom ? inheritedName : name, type], [inheritFrom]);и удалитьimport _ from 'lodash';.Маркер
reviewed_headобновлён наb1b09e5da. После правок верните лейблreview/needs.F6: delete AccessDatatable/columns/role.tsx — the BE-only role column lost its only importer when useColumns stopped importing it; zero importers remain. F7: useColumns wrapped only always-truthy helper.accessor results in _.compact, a no-op; return the plain array and drop the now-dead lodash import (same collapse already done in the parallel Wizard column files). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Раунд 2: F6 и F7 отработаны.
F6: fixed — удалил
app/react/portainer/access-control/AccessManagement/AccessDatatable/columns/role.tsx. После того как PR убралimport { role }изuseColumns.ts, это был единственный потребитель файла; barrel'а в каталоге нет, остальные./roleв дереве — другие файлы (users/, kubernetes/). Ноль импортёров — подтвердил грепом.F7: fixed — в
useColumns.tsубрал_.compactи мёртвыйimport _ from 'lodash':name/type/inheritedName— всеhelper.accessor(...), т.е. всегда-истинные, поэтомуcompactбыл no-op. Теперьreturn useMemo(() => [inheritFrom ? inheritedName : name, type], [inheritFrom]). Тот же свёрток уже сделан в параллельных Wizard-колонках.Проверка на стенде:
vitest run AccessDatatable— 12/12 passed; греп подтвердил отсутствие висячих ссылок на./roleи неиспользуемого lodash.Коммит
90f51d48b. Вернулreview/needs.Ревью
90f51d48b— раунд 3 (ПОЛНЫЕ 8 аспектов, отдельный субагент на каждый).Вердикт: PASS. F6 и F7 закрыты и проверены независимо:
AccessDatatable/columns/role.tsxудалён (ноль импортёровcolumns/roleвapp/; прочие./roleв дереве — другие файлы), аuseColumns.tsтеперьreturn useMemo(() => [inheritFrom ? inheritedName : name, type], [inheritFrom])без_.compact/lodash (все элементы —helper.accessor(...), всегда-истинные, так что compact был no-op). Висячих ссылок нет, билд цел, CE-колонки (inheritedName/name/type) не тронуты. Все 8 аспектов — LGTM. Все находки всех раундов закрыты — готово к мержу.Маркер
reviewed_headобновлён на90f51d48b.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.