volvo-cars / terraform-vault-backend

Use Hashi Vault as a terraform HTTP backend
Apache License 2.0
3 stars 0 forks source link

[Feature Request] Implement LOCK/UNLOCK support #8

Open zbleness opened 3 months ago

zbleness commented 3 months ago

What is the underlying problem you would like to see solved?

Improve compatibility with terraform

Describe the ideal solution

TVB support the HTTP LOCK and UNLOCK methods directly: https://developer.hashicorp.com/terraform/language/settings/backends/http#lock_method

Describe a sufficient solution

This is just a developer experience improvement.

aekblad commented 1 month ago

Is this a good idea? At the very least, it doesn't seem like it's worth the effort to implement WebDAV on top of FastAPI:

Any resource that supports the LOCK method MUST, at minimum, support the XML request and response formats defined herein.

Source: WebDAV spec, LOCK verb

zbleness commented 1 month ago

Is this a good idea? At the very least, it doesn't seem like it's worth the effort to implement WebDAV on top of FastAPI:

Any resource that supports the LOCK method MUST, at minimum, support the XML request and response formats defined herein.

Source: WebDAV spec, LOCK verb

The goal is to play well with most recent terraform releases and maybe opentao if there is community interest. Full, RFC compliance is in scope here.

aekblad commented 1 month ago

Is this a good idea? At the very least, it doesn't seem like it's worth the effort to implement WebDAV on top of FastAPI:

Any resource that supports the LOCK method MUST, at minimum, support the XML request and response formats defined herein.

Source: WebDAV spec, LOCK verb

The goal is to play well with most recent terraform releases and maybe opentao if there is community interest. Full, RFC compliance is in scope here.

Right, I was worried about what's required for interoperability changing from under us without notice. After all, considering the specs involved, it wouldn't be a breaking change for clients to suddenly start using an XML request body to pass parameters.

However, I realize now that this only affects parameters. If we just make sure to keep our endpoints free of query parameters we won't have this problem.