This change implements resource protection, as per pulumi/pulumi#689. The overall idea is that a resource can be marked as "protect: true", which will prevent deletion of that resource for any reason whatsoever (straight deletion, replacement, etc). This is expressed in the program. To "unprotect" a resource, one must perform an update setting "protect: false", and then afterwards, they can delete the resource. For example: let res = new MyResource("precious", { .. }, { protect: true }); Afterwards, the resource will display in the CLI with a lock icon, and any attempts to remove it will fail in the usual ways (in planning or, worst case, during an actual update). This was done by adding a new ResourceOptions bag parameter to the base Resource types. This is unfortunately a breaking change, but now is the right time to take this one. We had been adding new settings one by one -- like parent and dependsOn -- and this new approach will set us up to add any number of additional settings down the road, without needing to worry about breaking anything ever again. This is related to protected stacks, as described in pulumi/pulumi-service#399. Most likely this will serve as a foundational building block that enables the coarser grained policy management. |
||
---|---|---|
.. | ||
asset | ||
bin | ||
cmd | ||
dynamic | ||
log | ||
runtime | ||
tests | ||
.gitignore | ||
config.ts | ||
errors.ts | ||
index.ts | ||
Makefile | ||
metadata.ts | ||
package.json | ||
pulumi-langhost-nodejs | ||
pulumi-provider-pulumi-nodejs | ||
README.md | ||
resource.ts | ||
tsconfig.json | ||
tslint.json | ||
version.ts | ||
yarn.lock |
Pulumi Fabric Node.js SDK
The Pulumi Fabric Node.js SDK lets you write cloud programs in JavaScript.
Installing
For now, we only support developers building from source. Eventually we will have a nice installer.
Prerequisites
To build and install the SDK, you will first need a few things.
First, install Node.js 6.10.2. We recommend nvm, since it makes it easier
to switch between versions of Node.js. Afterwards, run nvm install 6.10.2
.
Next, we suggest using Yarn for package management. NPM works too, but Yarn is faster and therefore preferred. Please follow the directions on Yarn's website.
Building and Testing
The first time you build, you must make configure
to install and prepare native plugins for V8:
$ make configure
Make sure to run this after installing the right version of Node.js above, otherwise it may bind to the wrong version.
To build the SDK, simply run make
from the root directory (sdk/nodejs/
). This will build the code, run tests, and
then "install" the package (by yarn link
ing the resulting bin/
directory).
We recommend putting bin/
on your $PATH
, since the pulumi-langhost-nodejs
executable will be loaded dynamically
by the pulumi
tool whenever it encounters a Node.js program.
The tests will verify that everything works, but feel free to try running pulumi preview
and/or pulumi update
from
the examples/minimal/
directory. Remember to run tsc
first, since pulumi
expects JavaScript, not TypeScript.