I've always been a fan of Terraform's provider architecture--all the vendor-specific bits are implemented as third-party plugins that implement a standard API and communicate with Terraform itself in a client-server model.
I've always been a fan of Terraform's provider architecture--all the vendor-specific bits are implemented as third-party plugins that implement a standard API and communicate with Terraform itself in a client-server model.
You can implement quite easily in any language without touching any Amazon tooling or infrastructure.
I don't see why open source tools should be intentionally crippled in the name of some sort of "purity". Implementing this feature costs nothing (it is an open standard, unencumbered by licenses or patents), and you can continue to use the tool as if the vendor-specific option doesn't exist.
And beyond that, there a bunch of clones of various AWS APIs, both in other proprietary products, and in open source alternatives. I bet this functionality works with those, too.
It's well worth a thousand lines of code.
https://github.com/curl/curl/blob/b9fea261e632b9493ea6038bfb...
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_a...
It's not proprietary nor vendor specific. I'm not sure what makes cURL "our" tool?
> by nature, supposed to operate in a vendor-agnostic manner?
Does the inclusion of this feature mean a different feature cannot coexist with it? Was it so absurdly complicated to develop that it took time away from other integrations?
> This flag makes zero sense for anyone who isn't an AWS customer.
Do you also dislike QUIC or RTMP? How about NTLM?
> that "being an AWS customer" is not free
Yea but "using AWS protocols outside of AWS" _is_ free.
> It really surprises me that this made it into curl.
They should turn down useful but impure contributions? The lead developer of cURL still has a day job.
The AWS v4 signing method is a spec for how to do HMAC request signing. It is not limited to use only with AWS services.
You can use it to sign requests on any service, and there are many implementations. Here is an example of one I’ve used in the past: https://github.com/auroratechnologies/vangoh
Or as mentioned above: https://github.com/minio/minio/blob/master/cmd/signature-v4....