@serverless/platform-sdk

Serverless Platform SDK

Usage no npm install needed!

<script type="module">
  import serverlessPlatformSdk from 'https://cdn.skypack.dev/@serverless/platform-sdk';
</script>

README

Platform SDK (deprecated)

Note: This package is deprecated in favor of @serverless/platform-client. It accepts only bug fixes

Functional SDK for the Serverless Platfrom.

Project Status

Build Status license coverage Known Vulnerabilities

Contents

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

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

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

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

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

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

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

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

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

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

const { createApp } = require('@serverless/platform-sdk')

const data = {
  tenant: 'eahefnawy',
  app: 'my-app',
  token: 'abc'
}

const app = await createApp(data)