mirror of https://github.com/pulumi/pulumi.git
841c99a9dd
Fixes https://github.com/pulumi/pulumi/issues/5973 This adds two new properties to the RPC interfaces with providers. Firstly we pass a new bool flag to Configure to tell the provider if it will get sent old inputs as part of Diff. Secondly we now pass the old inputs and the old outputs to Diff and Update as opposed to just the old outputs. The flag passed to Configure isn't strictly needed. Providers should be able to tell that the old inputs aren't being sent to Diff and Updae by virtue of them being `null/nil/None` rather than an empty map. For DiffConfig this is the only way to detect this case because it's called before Configure. But its still useful to send this explictly to Configure to allow providers to return a configure error that they need to be ran against a newer engine version. There is one fairly major failure case that can happen with this feature and providers who update to make use of this feature should ensure they call this out in their changelog. That is if a provider has been saving old inputs in outputs as a way to get access to them in diff, and then updates to use these new protocol properties instead and stops saving the inputs in outputs _and then_ the user downgrades back to an old provider version things will probably get _very_ confused. |
||
---|---|---|
.. | ||
codegen | ||
alias_grpc_pb.js | ||
alias_pb.js | ||
analyzer_grpc_pb.js | ||
analyzer_pb.js | ||
converter_grpc_pb.js | ||
converter_pb.js | ||
engine_grpc_pb.js | ||
engine_pb.js | ||
errors_grpc_pb.js | ||
errors_pb.js | ||
language_grpc_pb.js | ||
language_pb.js | ||
plugin_grpc_pb.js | ||
plugin_pb.js | ||
provider_grpc_pb.js | ||
provider_pb.js | ||
resource_grpc_pb.js | ||
resource_pb.js | ||
status_grpc_pb.js | ||
status_pb.js |