pulumi/sdk/nodejs
Fraser Waters a92101cd49 Add GetState to resource monitor
This new method is used to return the state of the resource monitor for
a deployment directly to a client.

This helps with three major areas:
1) `Construct` and `Call` no longer need to be kept up to date with any new
   features added to `Run`. All they need is the resource monitor target
   and can use `GetState` to fetch all other information.
2) We no longer need to find a way to pass all the information from
   `Run` from the runtime host to the runtime SDKs. Instead all we need
   to pass is the (again) the resource monitor target, and on startup
   the SDK can fetch the rest of the information over gRPC. In fact we
   don't even need to add new information to `Run`, as the language
   runtime host can also just use `GetState` to fetch the latest
   information.
3) Features are now a safe enumeration lookup rather than a set of strings that
   could be typo'd. Further you don't need to make multiple roundtrips to see all
   features supported, the entire set is returned at once.

A few things need pointing out about this change.

Firstly SDKs that use this _also_ need to have a fallback to using the
old envvar based approch because they might be running against an old
engine version.

Secondly this PR doesn't update any of the SDKs to use this. The most
obvious candidate to update first is YAML as that doesn't actually have
an SDK, just the host and the host _doesn't_ need to be backward
compatible because we always tie host and engine versions together in a
single release.
2024-01-02 12:51:45 +00:00
..
asset Apply autoformat 2023-04-28 18:27:10 -04:00
automation Automation API support for listing environments (#14995) 2023-12-22 05:18:14 +00:00
cmd Add GetState to resource monitor 2024-01-02 12:51:45 +00:00
dist Fix typo in PP script 2019-08-06 17:35:52 -07:00
dynamic Allow dynamic providers to capture secrets 2023-06-29 15:28:31 -07:00
iterable Apply autoformat 2023-04-28 18:27:10 -04:00
log Move nodejs feature checks to startup (#14856) 2023-12-19 14:35:23 +00:00
npm Clean up uses of .Error() (#14965) 2023-12-20 15:54:06 +00:00
proto Add GetState to resource monitor 2024-01-02 12:51:45 +00:00
provider Move nodejs feature checks to startup (#14856) 2023-12-19 14:35:23 +00:00
queryable This commit safely replaces empty interfaces with type aliases. 2023-05-11 23:10:00 -04:00
runtime Add GetState to resource monitor 2024-01-02 12:51:45 +00:00
tests Automation API support for listing environments (#14995) 2023-12-22 05:18:14 +00:00
tests_with_mocks Add testing for async TS mocks 2023-06-01 14:13:04 +02:00
.eslintrc.js Update node sdk to use typescript definitions for grpc and protobufs. (#14415) 2023-12-04 15:22:44 +00:00
.gitignore ci: Pin yarn lockfile for security & dependency scanning 2022-09-21 15:35:43 -07:00
Makefile increase the timeout for automation API tests (#14844) 2023-12-13 10:40:27 +00:00
README.md fix some links 2023-05-19 19:39:26 -07:00
config.ts Add --secret to config set hints when needed 2023-06-22 17:25:30 +01:00
errors.ts Remove Useless Constructors. 2023-05-15 19:48:47 -04:00
index.ts Removing x namespace from go/python/nodejs automation packages (#6518) 2021-04-14 19:32:18 +01:00
invoke.ts [sdk/nodejs] Add pluginServerURL (#8698) 2022-01-10 15:54:41 -08:00
metadata.ts Make getOrganization total, default to 'organization' 2022-09-22 11:06:51 -07:00
output.ts Add option to throw on output toString and toJSON calls (#14811) 2023-12-20 11:43:07 +00:00
package.json use uuid instead of random number for test suffix (#14827) 2023-12-12 13:09:27 +00:00
resource.ts [sdk/nodejs] Fix provider for resource methods (#13796) 2023-08-30 14:49:53 +00:00
rome.json Add matrix testing (#13705) 2023-09-13 15:17:46 +00:00
stackReference.ts Apply autoformat 2023-04-28 18:27:10 -04:00
tsconfig.json sdk/node/StackReference: Add getOutputDetails 2023-02-03 16:47:27 -08:00
tsutils.ts [sdk/nodejs] Mark internal APIs `@internal` to filter from SDK docs 2022-09-20 11:54:06 -07:00
utils.ts Add option to throw on output toString and toJSON calls (#14811) 2023-12-20 11:43:07 +00:00
version.ts Add license headers 2018-05-22 15:02:47 -07:00
yarn.lock use uuid instead of random number for test suffix (#14827) 2023-12-12 13:09:27 +00:00

README.md

Pulumi Node.js SDK

The Pulumi Node.js SDK lets you write cloud programs in JavaScript.

Installation

Using npm:

$ npm install --save @pulumi/pulumi

Using yarn:

$ yarn add @pulumi/pulumi

This SDK is meant for use with the Pulumi CLI. Visit Pulumi's Download & Install to install the CLI.

Building and Testing

For anybody who wants to build from source, here is how you do it.

Prerequisites

This SDK uses Node.js and we support any of the Current, Active and Maintenance LTS versions. We support both NPM and Yarn for package management.

At the moment, we only support building on macOS and Linux, where standard GNU tools like make are available.

Make Targets

To build the SDK, simply run make from the root directory (where this README lives, at sdk/nodejs/ from the repo's root). This will build the code, run tests, and install the package and its supporting artifacts.

At the moment, for local development, we install everything into $HOME/.dev-pulumi. You will want this on your $PATH.

The tests will verify that everything works, but feel free to try running pulumi preview and/or pulumi up from the examples/minimal/ directory. Remember to run tsc first, since pulumi expects JavaScript, not TypeScript.