@mentingo/content-marketplace-sdk
v0.1.0
Published
Tenant-scoped client and event types for the Mentingo content marketplace plugin.
Keywords
Readme
@mentingo/content-marketplace-sdk
Server-side SDK for the Mentingo content marketplace plugin. Requires Node.js 22.15 or newer. The package contains the HTTP client and the API and analytics event types. The hosted marketplace and Mission Control UI are deployed separately.
Usage
import { createContentMarketplaceClient } from "@mentingo/content-marketplace-sdk";
const client = createContentMarketplaceClient({
baseURL: process.env.CONTENT_MARKETPLACE_BASE_URL!,
apiKey: process.env.CONTENT_MARKETPLACE_API_KEY!,
tenantId: tenant.id,
});
const { capabilities } = await client.configuration.get();
const { data: listings } = await client.catalog.list({ keyword: "safety" });
const { acquisitionId } = await client.acquisitions.create(listings[0].id);
const archive = await client.acquisitions.archive(acquisitionId);Keep credentials on the server. Bind each client to its tenant and corresponding
plugin API key. Requests include the bearer key and x-tenant-id header and
reject redirects. JSON requests time out after 15 seconds; archive downloads
after archiveTimeoutMs (30 minutes by default). Non-success HTTP responses
throw ContentMarketplaceApiError, containing the HTTP status without the
response body. A custom fetch can be supplied for testing.
acquisitions.archive and listings.thumbnail return the response body as a
stream with its content type and length; pipe it to storage instead of buffering it.
events.send reports course_copied and course_duplicated analytics events.
Delivery is idempotent by event id, so retries are safe.
Release preparation
From this package directory:
pnpm pack --pack-destination /tmp/mentingo-sdk-releaseThe prepack hook builds, checks types and runs the SDK tests before packing or
publishing. Publishing targets npmjs.com with public access:
pnpm publish --access publicLicense
MIT. See LICENSE.
