@vasanthcambium/marketplace-auth
v0.1.3
Published
Frontend auth + NBI client for MarketApps Platform apps. Browser fetch wrapper and React hooks.
Maintainers
Readme
@cmbmwifi/marketplace-auth
Auth library for MarketApps Platform apps. One install gives you the BFF helper, browser fetch wrapper, and React hooks.
npm install @cmbmwifi/marketplace-authThree subpath exports, one package
// In your BFF (Node)
import { createApp, expressMiddleware } from '@cmbmwifi/marketplace-auth/server';
// In your SPA (Browser, no React)
import { createBridge } from '@cmbmwifi/marketplace-auth/browser';
// In your SPA (React)
import { AppProvider, useNBI } from '@cmbmwifi/marketplace-auth/react';The browser bundle never imports server code; the server bundle never imports DOM-only code. Tree-shaking is automatic.
Server (BFF)
import express from 'express';
import { createApp, expressMiddleware } from '@cmbmwifi/marketplace-auth/server';
const cn = createApp({
appId: 'my-app',
region: 'us-east-1',
authServiceUrl: 'https://auth.cloud.cambiumnetworks.com',
appCredentials: {
clientId: process.env.CN_APP_CLIENT_ID!,
clientSecret: process.env.CN_APP_CLIENT_SECRET!,
},
});
const server = express();
server.use(expressMiddleware(cn)); // installs /launch + /api/* + /healthz + /logout
server.listen(5174);Hono adapter: import { honoMiddleware } from '@cmbmwifi/marketplace-auth/server'.
Browser
import { createBridge } from '@cmbmwifi/marketplace-auth/browser';
const cn = createBridge({ baseUrl: '/' });
interface DeviceList { devices: { id: string; name: string }[] }
const data = await cn.fetch<DeviceList>('/api/v2/devices');React
import { AppProvider, useNBI } from '@cmbmwifi/marketplace-auth/react';
function Devices() {
const { data, error, isLoading } = useNBI<DeviceList>('/api/v2/devices');
if (isLoading) return <Spinner />;
if (error) return <ErrorBanner error={error} />;
return <DeviceTable rows={data!.devices} />;
}
export default function App() {
return (
<AppProvider config={{ baseUrl: '/' }}>
<Devices />
</AppProvider>
);
}Full documentation: https://developers.apps.cloud.cambiumnetworks.com/api/docs/reference/sdk
License
Apache-2.0 © Cambium Networks, Ltd.
