Adopt AIP-163: Change validation
https://google.aip.dev/163
Discussion in AEP meeting 2/7/25
Name of the option should probably be dry-run
How should this be implemented in http? Probably a header.
Is there an HTTP RFC for this?
What aspects are validated?
- authorization ?
- rate limit ?
- resource quotas ?
What should the response look like? A fully mocked out response?
There is apparently no HTTP RFC for this.
Adding a couple extra notes here: before we adopt this AEP, it's a good idea to try to push a bit more with HTTP RFC folks and make sure there is no precedence incoming, or even write a new HTTP RFC to consider this case.
The options:
- query param
- header
- path (custom method)
- body
At the moment I lean towards it being in the body, as dry_run: true in both the request and response, mostly because changes to the body are not something that need any changes to how things are done.
Query param is probably the most prevalent out in the wild. Some are using ?dryRun=true. But ideally the response would also need to change to identify it as a dry run.
Azure Deployments use deployment/whatIf which could be a custom method in AEP land.
Headers are an option, but it should either be X- prefixed or reserved with an RFC. If this route is chosen it should probably have Dry-Run-Applied: true in the response, similar to the preferred header.