As storage backends were introduced, all integrations got broken, as the uri-scheme is some kind of - specific.
At our company we use a lookup plugin written for ansible which is not working anymore as the uri scheme for the key "path" now includes a leading "gpgcli-gitcli-fs+".
Also the Terraform provider for gopass is not working anymore.
There was nothing written about breaking changes for the release 1.7.0
cat $HOME/.config/gopass/config.yml | grep path
I would expect that the storage backend is not part of the uri itself.
Please define the storage backend as a separate key of the mount dictionary. Remove the scheme from path completely. In this way old implementations have the chance to be still compatible.
Thanks for raising this issue!
Unfortunately I wasn't aware of any integrations using the config file directly. The problem is that when you write a CLI tool the "API" is the command line interface. We try (although not always succeed) to document any breaking changes there.
Of couse you can also use the packages that are used by this CLI as libraries, but we don't guarantee any API stability for those (yet). We documented this fact some time ago: https://github.com/gopasspw/gopass/blob/master/docs/faq.md#api-stability
That being said: I'm very happy that these integrations exist and would like to support them!
But introducing pluggable backend (incl. their configuration) was a major effort for 1.7.
So while I think that this can be changed it will definitely take some time.
While I fixed our plugin by just splitting the uri into scheme, location and path to skip the scheme itself completely to get things work again, I will take some time this week having a look at the Terraform Provider too.
If you have any ideas how we can support you with that let us know, please.
The only thing to keep in mind is that we probably won't be able to make any quick "fix" to change the path URL. It took quite some time to build and test it and it will definitely take some time to split it up (if we decide to do so).
We just ran into this as well, it might be helpful if the 1.6.x series could be uploaded to the new Bintray repo so that those who have some additional integration (like the terraform-pass provider mentioned above) can still operate by apt-get install gopass=1.6.11 and pinning it, and a fix release of 1.6.xx that can properly handle the downgrade from 1.7.x to 1.6.x and revert to standard path: options instead of the uri scheme that would be greatly appreciated.
I love the new features, but wasn't anticipating this breakage, especially since the previously configured repo was taken offline which is what caused me to install the new one and get the 1.8 alpha and encounter the breaking change.
Uhm, yeah. Sorry. We'll try to sort this out ASAP. At least providing a workaround.
I built and uploaded a 1.6.12 that should work with 1.7+ configs, but had some trouble uploading that to bintray. Will do that later.
Bintray has been backfilled with the old releases and the new 1.6.12 release. Now y'all should be able to work around this breakage by pinning to gopass=1.6.12 until we get this properly fixed.
I'm still not entirely sure what broke wrt. the integrations so please raise issues for that!
Thanks @dominikschulz what I had previously found was after downgrading I needed to remove the uri bits in the path: before I could use existing stores again. Below is a non-optimized regex that can be used to "fix" the paths in the short term for folks who need to downgrade or can't grab 1.6.12 right away.
sed -i -e 's%path: .*//%path: /%' ~/.config/gopass/config.yml
If I had more time to tweak it I would only match on the prefix, but I got distracted by other things and hopefully the new package fixes things. I'll test with our terraform stuff we have and we can see if @n3ph finds it fixes things for him as well.
Hey there!
Sorry, since I was on a conference, I have not made it so far.
The Idea of and sed statement as a post-install hook is interestingly simple and effective. Besides there are some sed-specific style questions, I would really like to see this in an upstream release package.
The path-URL-compat fix was released in 1.6.12.
Ah! Didn't had a look at it already - Thx!
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
We're working on a proper API that should eventually solve this issue: #1379
Most helpful comment
Thanks for raising this issue!
Unfortunately I wasn't aware of any integrations using the config file directly. The problem is that when you write a CLI tool the "API" is the command line interface. We try (although not always succeed) to document any breaking changes there.
Of couse you can also use the packages that are used by this CLI as libraries, but we don't guarantee any API stability for those (yet). We documented this fact some time ago: https://github.com/gopasspw/gopass/blob/master/docs/faq.md#api-stability
That being said: I'm very happy that these integrations exist and would like to support them!
But introducing pluggable backend (incl. their configuration) was a major effort for 1.7.
So while I think that this can be changed it will definitely take some time.