https://github.com/serverless/platform-sdk
Serverless Platform SDK
https://github.com/serverless/platform-sdk
faas serverless serverless-applications
Last synced: about 1 month ago
JSON representation
Serverless Platform SDK
- Host: GitHub
- URL: https://github.com/serverless/platform-sdk
- Owner: serverless
- License: apache-2.0
- Created: 2018-05-31T13:33:37.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-09-17T12:32:32.000Z (over 4 years ago)
- Last Synced: 2024-10-04T15:47:19.579Z (8 months ago)
- Topics: faas, serverless, serverless-applications
- Language: JavaScript
- Size: 549 KB
- Stars: 17
- Watchers: 24
- Forks: 6
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Platform SDK (deprecated)
_*Note*: This package is deprecated in favor of [@serverless/platform-client](https://www.npmjs.com/package/@serverless/platform-client). It accepts only bug fixes_
Functional SDK for the Serverless Platfrom.
## Project Status
[](https://travis-ci.com/serverless/platform-sdk)
[](https://www.npmjs.com/package/@serverless/platform-sdk)
[](https://codecov.io/gh/serverless/platform-sdk)
[](https://snyk.io/test/github/serverless/platform-sdk)## Contents
- [Installation](#installation)
- [Functions](#functions)
- [login](#login)
- [refreshToken](#refreshtoken)
- [createAccessKey](#createaccesskey)
- [archiveService](#archiveservice)
- [getServiceUrl](#getserviceurl)
- [listTenants](#listtenants)
- [createDeployment](#createdeployment)
- [updateDeployment](#updatedeployment)
- [getApp](#getapp)
- [createApp](#createapp)## installation
```
npm i -s @serverless/platform-sdk
```## Functions
### `login`
Opens a browser for the user to login, along with a running server awaiting auth data once the user logs in.
**Parameters**
None
**Returns**
Promise resolving to the following object:
- `username` - `string` - dashboard username
- `accessToken` - `string` - Auth0 access token
- `idToken` - `string` - Auth0 idToken
- `refreshToken` - `string` - Auth0 refreshToken
- `expiresAt` - `string` - epoch time at which the idToken expires**Example**
```js
const { login } = require('@serverless/platform-sdk')const { username, accessToken, idToken, expiresAt } = await login()
```---
### `refreshToken`
Refreshes Auth0 idToken
**Parameters**
refresh token string
**Returns**
Promise resolving to the following object:
- `id_token` - `string` - new Auth0 id token
- `access_token` - `string` - new Auth0 access token
- `expires_in` - `string` - number of seconds until token expiration**Example**
```js
const { refreshToken } = require('@serverless/platform-sdk')const { id_token, access_token, expires_in } = await refreshToken('some-refresh-token')
```---
### `createAccessKey`
Creates a platform access key for the authenticated user.
**Parameters**
Object
- `username` - `string` - dashboard username
- `tenant` - `string` - dashboard tenant
- `idToken` - `string` - Auth0 idToken
- `title` - `string` - title of the access key**Returns**
Promise resolving to an `accessKey` string, that is the access key.
**Example**
```js
const { createAccessKey } = require('@serverless/platform-sdk')const data = {
username: 'eahefnawy',
tenant: 'eahefnawy',
idToken: 'abc',
title: 'Framework'
}const accessKey = await createAccessKey(data)
```---
### `archiveService`
Archives a service in the platform.
**Parameters**
Object
- `tenant` - `string` - dashboard tenant
- `accessKey` - `string` - dashboard access key
- `app` - `string` - service app
- `name` - `string` - service name
- `provider` - `string` - provider name
- `region` - `string` - region name**Returns**
None
**Example**
```js
const { archiveService } = require('@serverless/platform-sdk')const data = {
tenant: 'eahefnawy',
accessKey: 'abc',
app: 'my-app',
name: 'my-service',
provider: 'aws',
region: 'us-east-1'
}await archiveService(data)
```---
### `getServiceUrl`
Constructs a service url based on passed-in data.
**Parameters**
Object
- `tenant` - `string` - dashboard tenant
- `app` - `string` - service app
- `name` - `string` - service name**Returns**
The service url string.
**Example**
```js
const { getServiceUrl } = require('@serverless/platform-sdk')const data = {
tenant: 'eahefnawy',
app: 'my-app',
name: 'my-service'
}const serviceUrl = getServiceUrl(data)
```---
### `listTenants`
Lists the tenants for a given username
**Parameters**
Object
- `username` - `string` - dashboard username
- `idToken` - `string` - auth0 user id token**Returns**
Array of objects, each represents a single tenant data model.
**Example**
```js
const { listTenants } = require('@serverless/platform-sdk')const data = {
username: 'eahefnawy',
idToken: 'abc'
}const tenants = await listTenants(data)
```---
### `createDeploymnet`
Creates a platform deployment
**Parameters**
Object
- `tenant` - `string` - dashboard tenant name
- `app` - `string` - app name
- `serviceName` - `string` - service name
- `accessKey` - `string` - dashboard access key
- `files` - `object` - files which should be stored in the Platforms deployment record**Returns**
Object - Deployment model
**Example**
```js
const { createDeployment } = require('@serverless/platform-sdk')const data = {
tenant: 'eahefnawy',
app: 'my-app',
serviceName: 'my-service',
accessKey: 'abc',
files: {
'serverless-state.json': {
//...snip...
}
}
}const { id } = await createDeployment(data)
```---
### `updateDeployment`
Updates a platform deployment
**Parameters**
Object
- `tenant` - `string` - dashboard tenant name
- `app` - `string` - app name
- `serviceName` - `string` - service name
- `deploymentId` - `string` - id of the previously created deployment
- `status` - `string` - status of the deployment to update
- `accessKey` - `string` - dashboard access key
- `computedData` - `object` - computed data the Platform needs to generate the state items**Returns**
Object - Deployment model
**Example**
```js
const { updateDeployment } = require('@serverless/platform-sdk')const data = {
tenant: 'eahefnawy',
app: 'my-app',
serviceName: 'my-service',
deploymentId: 'abc',
status: 'failed',
accessKey: 'abc',
computedData: {
// ...snip...
}
}const { id } = await updateDeployment(data)
```---
### `getApp`
Gets a platform app
**Parameters**
Object
- `tenant` - `string` - dashboard tenant name
- `app` - `string` - app name
- `token` - `string` - Auth0 id token**Returns**
Object - App model
**Example**
```js
const { getApp } = require('@serverless/platform-sdk')const data = {
tenant: 'eahefnawy',
app: 'my-app',
token: 'abc'
}const app = await getApp(data)
```---
### `createApp`
Creates a platform app
**Parameters**
Object
- `tenant` - `string` - dashboard tenant name
- `app` - `string` - app name
- `token` - `string` - Auth0 id token**Returns**
Object - App model
**Example**
```js
const { createApp } = require('@serverless/platform-sdk')const data = {
tenant: 'eahefnawy',
app: 'my-app',
token: 'abc'
}const app = await createApp(data)
```