9374c374c3
Adds the ability to provide `transformations` to modify the properties and resource options that will be used for any child resource of a component or stack. This offers an "escape hatch" to modify the behaviour of a component by peeking behind it's abstraction. For example, it can be used to add a resource option (`additionalSecretOutputs`, `aliases`, `protect`, etc.) to a specific known child of a component, or to modify some input property to a child resource if the component does not (yet) expose the ability to control that input directly. It could also be used for more interesting scenarios - such as: 1. Automatically applying tags to all resources that support them in a stack (or component) 2. Injecting real dependencies between stringly-referenced resources in a Helm Chart 3. Injecting explicit names using a preferred naming convention across all resources in a stack 4. Injecting `import` onto all resources by doing a lookup into a name=>id mapping Because this feature makes it possible to peek behind a component abstraction, it must be used with care in cases where the component is versioned independently of the use of transformations. Also, this can result in "spooky action at a distance", so should be used judiciously. That said - this can be used as an escape hatch to unblock a wide variety of common use cases without waiting on changes to be made in a component implementation. Each transformation is passed the `resource`, `name`, `type`, `props` and `opts` that are passed into the `Resource` constructor for any resource descended from the resource that has the transformation applied. The transformation callback can optionally return alternate versions of the `props` and `opts` to be used in place of the original values provided to the resource constructor. Fixes #2068.
13 lines
247 B
JSON
13 lines
247 B
JSON
{
|
|
"name": "aliases",
|
|
"license": "Apache-2.0",
|
|
"main": "bin/index.js",
|
|
"typings": "bin/index.d.ts",
|
|
"devDependencies": {
|
|
"typescript": "^2.5.3"
|
|
},
|
|
"peerDependencies": {
|
|
"@pulumi/pulumi": "latest"
|
|
}
|
|
}
|