Skip to content

Conversation

@thaJeztah
Copy link
Member

@thaJeztah thaJeztah commented Dec 18, 2025

commit 4d3a76d updated the list of directories for discovering CLI plugins, adding %ProgramFiles%\Docker\cli-plugins for system-wide plugins.

For backward compatibility, the %PROGRAMDATA%\Docker\cli-plugins was kept, however, this location is no longer used, and not generally recommended for storing non-data content (such as CLI plugin binaries). From the ProgramData documentation:

ProgramData specifies the path to the program-data folder (normally C:\ProgramData).
Unlike the Program Files folder, this folder can be used by applications to store
data for standard users, because it does not require elevated permissions.

It also mentions "It can’t contain any serviceable components.", effectively meaning that these paths should not contain data that is managed (through updates etc.), making it a poor choice for installing "system wide" CLI plugins.

This patch removes the path from the list, given that this location is no longer used by Docker Desktop, and the CLI-plugin API is considered an internal implementation (since 459c608).

- What I did

- How I did it

- How to verify it

- Human readable description for the release notes

Remove `%PROGRAMDATA%\Docker\cli-plugins` from the list of paths used for CLI plugins on Windows. This path was present for backward compatibility with old installation, but replaced by `%ProgramFiles%\Docker\cli-plugins`.

- A picture of a cute animal (not mandatory but encouraged)

commit 4d3a76d updated the list of directories
for discovering CLI plugins, adding `%ProgramFiles%\Docker\cli-plugins` for
system-wide plugins.

For backward compatibility, the `%PROGRAMDATA%\Docker\cli-plugins` was kept,
however, this location is no longer used, and not generally recommended for
storing non-data content (such as CLI plugin binaries). From the [ProgramData]
documentation:

> ProgramData specifies the path to the program-data folder (normally C:\ProgramData).
> Unlike the Program Files folder, this folder can be used by applications to store
> data for standard users, because it does not require elevated permissions.

It also mentions "It can’t contain any serviceable components.", effectively
meaning that these paths should not contain data that is managed (through
updates etc.), making it a poor choice for installing "system wide" CLI plugins.

This patch removes the path from the list, given that this location is no longer
used by Docker Desktop, and the CLI-plugin API is considered an internal
implementation (since 459c608).

[ProgramData]: https://learn.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-shell-setup-folderlocations-programdata

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@thaJeztah thaJeztah requested a review from vvoland December 18, 2025 09:49
@thaJeztah thaJeztah added impact/changelog kind/refactor PR's that refactor, or clean-up code labels Dec 18, 2025
@thaJeztah
Copy link
Member Author

Thx! I'll bring this one in, but feel free to tweak the release-notes, @vvoland

@thaJeztah thaJeztah merged commit 7c38d6b into docker:master Dec 18, 2025
122 of 125 checks passed
@thaJeztah thaJeztah deleted the remove_legacy_plugin_path branch December 18, 2025 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants