Skip to content

upsun/upsun-sdk-node

Repository files navigation

Upsun SDK Node

The official Upsun SDK for Node.js on TypeScript. This SDK provides a Node.js interface that maps to the Upsun CLI commands.

For more information, read the documentation.

CAUTION: This project is currently in Beta, meaning features and APIs may evolve over time.

Please report bugs or request new features by creating a GitHub issue.

Installation

Install the SDK via npm:

npm install upsun-sdk-node

Authentication

You will need an Upsun API token to use this SDK.
Store it securely, preferably in an environment variable.

import { UpsunClient, UpsunConfig } from 'upsun-sdk-node';

const config: UpsunConfig = {
  apiKey: process.env.UPSUN_CLI_TOKEN || '',
};

const upsunClient = new UpsunClient(config);

Usage

Example: List organizations

const organizations = await upsunClient.organizations.list();

Example: List projects

const projects = await upsunClient.projects.list('<organizationId>');

Example: Redeploy an environment

const result = await upsunClient.environments.redeploy('<projectId>', '<environmentId>');

Development

Clone the repository and install dependencies:

git clone git@github.com:upsun/upsun-sdk-node.git
npm install

Architecture of this SDK

The SDK is built as follows:

Regenerating API client code

API classes are generated from the Upsun OpenAPI spec.

npm run spec:generate:install
npm run spec:full

Publishing

To generate a new version of the Upsun SDK Node and automatically publish it on https://npmjs.org

  1. update your local
git fetch
git checkout main
git pull
  1. check existing tags on https://github.com/upsun/upsun-sdk-node/tags
  2. Update package.json version to the new release version (highest version + 1)
  3. update package-lock.json using:
npm install
git add package.json package-lock.json
git commit -m "bump release version to v<x.y.z>"
git push
  1. create a new tag from your local
git tag v<x.y.z>
git push --tag
  1. Go on release page: https://github.com/upsun/upsun-sdk-node/releases
  2. create a new release based on the previously created tag (Do not forget to autogenerate description in the form)
  3. check publishing action status: https://github.com/upsun/upsun-sdk-node/actions
  4. check new release version on https://www.npmjs.com/package/upsun-sdk-node

Contributing

Contributions are welcome!
Please open a pull request or an issue for any improvements, bug fixes, or new features.

Tests

To run the tests, use:

npm run test

License

This project is licensed under the Apache License 2.0. See the LICENSE and NOTICE files for details.

Releases

Packages

Contributors

Languages