Skip to main content

Installation

The SDK is available on the public npm registry. No special configuration required.

Package Managers

npm

npm install @mission_sciences/provider-sdk

Yarn

yarn add @mission_sciences/provider-sdk

pnpm

pnpm add @mission_sciences/provider-sdk

CDN (Development Only)

<script src="https://unpkg.com/@mission_sciences/provider-sdk/dist/index.umd.js"></script>

Serving in Non-Bundled Applications

For simple applications without a bundler, serve the SDK files directly:

Express.js example:

const path = require('path');

// Serve SDK from node_modules
app.use(
'/sdk',
express.static(
path.join(__dirname, 'node_modules/@mission_sciences/provider-sdk/dist')
)
);

HTML usage:

<!-- Load SDK via UMD build -->
<script src="/sdk/marketplace-sdk.umd.js"></script>
<script>
const { MarketplaceSDK } = window.MarketplaceSDK;
// Initialize SDK...
</script>

Prerequisites

  • Node.js: >= 16.x
  • Package Manager: npm, yarn, or pnpm
  • Build Tool: Vite, Webpack, or similar (for bundling)
  • TypeScript (optional but recommended): >= 5.0

Marketplace Requirements

Your application must be registered in the General Wisdom marketplace with:

  • Unique applicationId
  • Redirect URL for session end
  • JWKS public key endpoint (production)

Quick Initialization

Setting environment to 'production', 'demo', or 'dev' auto-resolves all endpoint fields:

import MarketplaceSDK from '@mission_sciences/provider-sdk';

const sdk = new MarketplaceSDK({
applicationId: 'your-app-id',
apiKey: 'gwsk_YOUR_API_KEY_HERE',
environment: 'production', // resolves apiEndpoint, jwksUri, marketplaceUrl
hooks: {
onSessionStart: async (context) => {
console.log('Session started for user:', context.userId);
},
onSessionEnd: async (context) => {
console.log('Session ended:', context.reason);
},
},
});

await sdk.initialize();

You can override any auto-resolved field by setting it explicitly.

Manual Endpoint Configuration

import MarketplaceSDK from '@mission_sciences/provider-sdk';

const sdk = new MarketplaceSDK({
applicationId: 'your-app-id',
apiKey: 'gwsk_YOUR_API_KEY_HERE',
jwksUri: 'https://api.generalwisdom.com/.well-known/jwks.json',
hooks: {
onSessionStart: async (context) => {
console.log('Session started for user:', context.userId);
},
onSessionEnd: async (context) => {
console.log('Session ended:', context.reason);
},
},
});

await sdk.initialize();

How It Works

┌──────────────┐ ┌───────────────┐ ┌─────────────┐
│ Marketplace │ ─JWT──> │ Your App │ ─Hooks─>│ Your Auth │
│ PWA │ │ (SDK Init) │ │ System │
└──────────────┘ └───────────────┘ └─────────────┘
│ │ │
│ Validates JWT Provisions
│ Starts timer User account
│ │ │
└────<Redirect On End>────┴────<Session Data>──────┘

Next Steps

  • Configuration — Environment settings and SDK options
  • Hooks — Lifecycle hooks for session events
  • Default UI — Built-in session controls widget