Links

Configuring SSX for Serverless

SSX Serverless provides an optimized implementation for serverless

Installation

In order to enable ssx in your serverless app, install ssx-serverless with your preferred package manager by running any of the following commands:
npm install @spruceid/ssx-serverless
# or
yarn add @spruceid/ssx-serverless
# or
pnpm install @spruceid/ssx-serverless
@spruceid/ssx-server is not a dependency of @spruceid/ssx-serverless

Usage

ssx-serverless exports the main class SSXServer which is supposed to be used as a Singleton. On your serverless setup, you'll need to create an instance of SSXServer as seen below.
import {
SSXServer,
SSXRPCProviders,
SSXInfuraProviderNetworks,
} from '@spruceid/ssx-serverless';
const _create = async <T>(value: any, opts?: Record<string, any>): Promise<T> => {
return db.put(value) as T;
};
// ...
const ssx = new SSXServer({
providers: {
rpc: {
service: SSXRPCProviders.SSXInfuraProvider,
apiKey: process.env.INFURA_ID,
network: SSXInfuraProviderNetworks.MAINNET,
}
}
}, {
create: _create,
retrieve: _retrieve,
update: _update,
delete: _delete,
});
SSXServer requires two objects to be instantiated.
  • The first object is the main object to configure the providers and enable daoLogin.
  • The second object is the object with the session management functions.
new SSXServer({
providers?: {
rpc?: SSXProvider,
metrics?: {
service: 'ssx',
apiKey: string
}
},
daoLogin?: boolean
}, {
create: <T>(value: any, opts?: Record<string, any>) => Promise<T>,
retrieve: <T>(key: any, opts?: Record<string, any>) => Promise<T>,
update: <T>(key: any, value: any, opts?: Record<string, any>) => Promise<T>,
delete: <T>(key: any, opts?: Record<string, any>) => Promise<T>
});
Looking for an example to start? Check out the AWS + Node.js + Typescript + DynamoDB example