SSX
  • SSX
  • ⚡SSX Quickstart
    • SSX Server Quickstart
  • 🛠️Configuring SSX
    • Configuring SSX Server
    • Configuring SSX with React
    • Configuring SSX for Serverless
  • 📊Accessing the SSX Dashboard
  • 📈Scaling SSX Server
  • Tutorials
    • Moving From SIWE to SSX
    • Using SSX with Auth.js
    • Using SSX with NextAuth
    • Build a Token-Gated Dapp
    • From Email Login to SIWE
  • appendix
    • DAO Login Workflow
    • SSX: How It Works
  • Reference
    • SSX API Reference
      • configoverrides
      • extrafields
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • issxconnected
        • afterconnecthookspromise
        • aftersignin
        • api
        • applyextensions
        • builder
        • config
        • extensions
        • isextensionenabled
        • provider
        • signin
        • signout
        • ssxserverlogin
        • ssxservernonce
      • siweconfig
      • ssx
        • constructor
        • address
        • chainid
        • connection
        • resolveens
        • rpcproviders
        • session
        • signin
        • signout
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxclientconfig
        • enabledaologin
        • providers
        • resolveens
        • siweconfig
      • ssxclientproviders
        • rpc
        • server
        • web3
      • ssxclientsession
      • ssxcloudflareprovider
      • ssxconfig
        • enabledaologin
        • providers
        • resolveens
        • siweconfig
      • ssxconnected
        • constructor
        • afterconnecthookspromise
        • aftersignin
        • api
        • applyextensions
        • builder
        • config
        • extensions
        • isextensionenabled
        • provider
        • signin
        • signout
        • ssxserverlogin
        • ssxservernonce
      • ssxcustomprovider
      • ssxensconfig
        • resolve
        • resolveonserver
      • ssxensdata
        • avatarurl
        • domain
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxextension
        • afterconnect
        • aftersignin
        • defaultactions
        • extrafields
        • namespace
        • targetedactions
      • ssxgenericprovider
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxinit
        • constructor
        • connect
        • extend
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxproviders
        • rpc
        • server
        • web3
      • ssxproviderserver
      • ssxproviderweb3
        • driver
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserverhost
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsession
    • SSX Core API Reference
      • configoverrides
      • extrafields
      • getprovider
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • issxconnected
        • afterconnecthookspromise
        • aftersignin
        • api
        • applyextensions
        • builder
        • config
        • extensions
        • isextensionenabled
        • provider
        • signin
        • signout
        • ssxserverlogin
        • ssxservernonce
      • siweconfig
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxclientconfig
        • enabledaologin
        • providers
        • resolveens
        • siweconfig
      • ssxclientproviders
        • rpc
        • server
        • web3
      • ssxclientsession
      • ssxcloudflareprovider
      • ssxcookieoptions
        • httponly
        • samesite
        • secure
        • signed
      • ssxcustomprovider
      • ssxensconfig
        • resolve
        • resolveonserver
      • ssxensdata
        • avatarurl
        • domain
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxeventlogtypes
      • ssxexpresssessionstoreprovider
      • ssxextension
        • afterconnect
        • aftersignin
        • defaultactions
        • extrafields
        • namespace
        • targetedactions
      • ssxgenericprovider
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxlog
      • ssxlogfields
        • content
        • timestamp
        • type
        • userid
      • ssxmetricsprovider
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxpost
      • ssxproviderserver
      • ssxproviderweb3
        • driver
      • ssxredissessionstoreprovider
      • ssxresolveens
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserverconfig
        • providers
        • signingkey
        • usesecurecookies
      • ssxserverhost
      • ssxserverproviders
        • metrics
        • rpc
        • sessionconfig
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsessionstoreconfig
        • sessionoptions
        • store
    • SSX Server API Reference
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxauthenticated
      • ssxcloudflareprovider
      • ssxcookieoptions
        • httponly
        • samesite
        • secure
        • signed
      • ssxcustomprovider
      • ssxensdata
        • avatarurl
        • domain
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxeventlogtypes
      • ssxexpressmiddleware
      • ssxexpresssessionstoreprovider
      • ssxgenericprovider
      • ssxhttpmiddleware
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxlogfields
        • content
        • timestamp
        • type
        • userid
      • ssxmetricsprovider
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxredissessionstoreprovider
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserver
        • constructor
        • generatenonce
        • getexpresssessionconfig
        • log
        • login
        • logout
        • provider
        • resolveens
        • session
      • ssxserverconfig
        • providers
        • signingkey
        • usesecurecookies
      • ssxserverproviders
        • metrics
        • rpc
        • sessionconfig
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsessionstoreconfig
        • sessionoptions
        • store
    • SSX Serverless API Reference
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxcloudflareprovider
      • ssxcustomprovider
      • ssxensdata
        • ensavatarurl
        • ensname
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxeventlogtypes
      • ssxgenericprovider
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxlogfields
        • content
        • timestamp
        • type
        • userid
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserver
        • constructor
        • generatenonce
        • getnonce
        • log
        • me
        • provider
        • resolveens
        • session
        • signin
        • signout
      • ssxserverconfig
        • daologin
        • providers
      • ssxserverproviders
        • metrics
        • rpc
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsessioncrudconfig
        • create
        • delete
        • retrieve
        • update
      • ssxsessiondata
        • daologin
        • ens
        • signature
        • siwemessage
Powered by GitBook
On this page
  • Installation
  • Usage

Was this helpful?

Edit on GitHub
  1. Configuring SSX

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>
});
PreviousConfiguring SSX with ReactNextAccessing the SSX Dashboard

Last updated 2 years ago

Was this helpful?

Looking for an example to start? Check out the

🛠️
AWS + Node.js + Typescript + DynamoDB example