-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Idea: Release the SecretManagement and SecretStore modules with PowerShell #327
Comments
Yes please |
Agree |
This would be great. Please do add these module with PS7. |
Would they be installed in the "built-in" Modules folder, e.g., %PROGRAMFILES%\PowerShell\7\Modules in Windows to avoid being uninstalled from the cmdlet? |
That would be super useful |
As long as there's still pursuit of breaking out all the subsystems and having a "slim" powershell option, I'm fine with a "batteries included" version that includes SecretManagement, it follows with the philosophies of .NET and the BCL. |
@JustinGrote there is under this issue which is still in the consider bucket |
There's lots of subsystems (remoting, etc.) that can be stripped out too and is a work item, that's more what I want slim to be rather than a simple repackaging. |
I'd really appreciate this! |
Wow, great idea! |
Yes, please. That'd be really neat. Not to mention an extra push to migrate to PS7. :) |
Absolutely yes!!! Then yes, after that yes, and then yes please :-) Maybe not in that order, but that would be an awesome addition. What a fantastic idea! |
This will be awesome. This is general problem and having a separate package is pain. |
Awesome!!! |
I'm going to have to go against the curve here and say -1 (the following is a cleaned up version of my Twitter posts https://twitter.com/BoreanJordan/status/1550006497752788992) This seems to be going against the general way of working in PowerShell where new contributions outside of the existing set of builtin cmdlets and engine details are being redirected to 3rd party modules and the PSGallery. One of the harder aspects of this is getting buy in to people willing to use modules and it seems like MS is coming across a similar problem with If the problem is people are not allowed or don't know how to install modules the answer isn't to bundle it with pwsh but to figure out what those blockers are and come up with solutions to make it easier for pepole. You help make this less of a problem and it will result in more people willing to use modules rather than rely on what comes out of the box. This means more people will want to try and contribute code to pwsh itself rather than go their own way and result in a poorer ecosystem overall. Another counterpoint is that when you bundle things then people become reliant on the version it came with. Now my code will need to continue to support older versions of these modules because of the bulk of the users will be relying on what comes in box and will never upgrade things. On the extreme end of the scale we saw this with Pester where WinPS shipped with v3. If these stay truly independent then the bulk of the users will more than likely follow along with the latest version out there. Pwsh will also be constrained with whatever version it can bundle as people will be expecting no breaking changes in minor releases which means either;
In addition to that it might make the SecretManagement team less likely to take on larger or potentially breaking changes as they are now expected to be backwards compatible just like people expect pwsh 7.x to mostly be backwards compatible with 6 and earlier. TLDR: If you want to encourage a vibrant ecosystem you need to be part of it and drive the adoption of things not in the box. |
@jborean93 agree that I think for |
I tend to agree with @jborean93. One of the longstanding problems for PSReadLine is that many users stay on old PS versions and thus keep running into issues that were already fixed in new versions of the PSReadLine module (we get tons of issues opened for bugs that were already fixed). Also, for anyone hosting PowerShell, they would still need to install the I think another question to ask is: how much efforts are we really saving if we bundle the |
We appreciate all of the feedback. The @PowerShell/powershell-committee discussed this and agree with the concerns. At this time we will not consider shipping SecretMgmt and SecretStore in PS7, but looking at a different approach to make it easier for users to discover sets of modules. |
@SteveL-MSFT re this |
Since different communities have different needs we might look at Windows Server - today it is nano, core and full. We could do the same. It could be some distributives or one with options. |
@kilasuit I agree that secure secrets management SHOULD be part of the platform. However, I think we can have a solution where we have a (open to better names) |
Two ideas:
|
I like idea 2 a lot, but the tricky thing in implementation will be tying the engine to a packagemanagement system and how that would work. |
There was a suggested feature on PowerShellGet v3 RFC #237 which would find the command and suggest to the user which command to run to install the module.
PS> Get-Satisfaction
Get-Satisfaction : The term 'Get-Satisfaction' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Get-Satisfaction
+ ~~~
+ CategoryInfo : ObjectNotFound: (Get-Satisfaction:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion: You can obtain `Get-Satisfaction` by running `Install-PSResource HappyDays`.
PS> Install-PSResource HappyDays |
On @daxian-dbw point here
That's a historic issue with how things work with PowerShell & Windows Updates, which realistically I think modules like PSReadLine, or Pester, that were added to Windows, should be updated alongside any updates made to inboxed versions of PowerShell, but that's an argument to have with the Windows team, because the right way would be that an inboxed module was updated when it was updated elsewhere. Though we had absolute hell with Only thing that I know is that if I was building Windows, and I had a package like Also on @daxian-dbw point here
Not all users of PowerShell are working to DevOps Methodologies or even in some cases secure or repeatable IT practices, and in my years of consulting with organisations, many of those that are holding their businesses up in the IT department are still yet to learn how to automate anything, let alone automate it in a secure fashion. To @jborean93 point
The problem in many cases is that there are a number of organisations who run and manage critical IT infrastructure for others, who, quite frankly, should not be allowed to do so. Some of the blockers in those that run their own infrastructure or are more well established organisations is that there is often a need to have a internal review of any module that is published to the gallery, as an independent review process, whereas if we bundled the |
PowerShellGet v3 will (eventually) have improved ability to install a large set of modules and their dependencies concurrently. Along with that, the new PSFeedbackProvider experimental feature in 7.4 will allow PowerShellGet v3 integration where if you try to use a cmdlet or module that is not installed, it can tell the user how to install the module to get that cmdlet. Shipping modules with PS7 is way different than shipping modules with Windows. Windows has a much stricter requirement for backwards compat (which is why we can't ship PS7 in Windows and just keep updating it to newest .NET). Pester is a prime example of this problem. We can't update it nor remove it right now because folks are dependent on that version. In the long run, we want to have a smaller PS7 package and have folks be comfortable updating modules from PowerShellGallery rather than always needing to get latest PS7 to get latest version of some module. |
I 100% agree with the vision being PowerShell being a lean core runtime with a lot of the existing subsystems broken out into modules, but this will require package management to be as mature as |
I'd like to add that one thing that I think would improve the adoption of secrets management would be promotion of quality SecretManagement extensions. While it's entirely possible that I've hitched my horse to the wrong post, I happen to like KeePass, and the only extension for KeePass is the beta experimentation that @JustinGrote published and hasn't come back to in over a year.
Without the (availability of) other extensions SecretManagement is of limited value. |
Summary of the new feature / enhancement
As a user, I have a consistent need to manage secure strings without exposing them in scripts and other automation artifacts. To rely on this capability in PowerShell, I need it to always be available without the need to add the installation to every new project, or finding workarounds to add it in the tools of my choice that run PowerShell.
Proposed technical implementation details (optional)
This experience would align with other modules that are released with the "default" installation footprint of PowerShell. There is no need to merge the source repo's or manage the projects as a single entity. When the PowerShell packages are built, the latest Microsoft.PowerShell.SecretManagement and Microsoft.PowerShell.SecretStore modules would be included.
The text was updated successfully, but these errors were encountered: