@omnixdp/management
v0.3.1
Published
TypeScript client for the Omni xDP CMS Management API.
Readme
@omnixdp/management
TypeScript SDK for the Omni xDP CMS Management API.
The package wraps /v1/management with OAuth client_credentials helpers, request builders, response parsing, and a small fetch client that works in browsers, Next.js Client Components, and React Server Components.
Install
npm install @omnixdp/managementCreate a client
import { createManagementClient } from "@omnixdp/management";
const management = createManagementClient({
baseUrl: "https://api.example.com/v1",
clientCredentials: {
clientId: process.env.OMNIXDP_MANAGEMENT_CLIENT_ID!,
clientSecret: process.env.OMNIXDP_MANAGEMENT_CLIENT_SECRET!
}
});baseUrl can be either the API host root or the /v1 root. The SDK normalizes both forms.
Next.js usage
Prefer using management clients from React Server Components, Server Actions, or route handlers so client credentials stay on the server.
import { createManagementClient } from "@omnixdp/management";
const management = createManagementClient({
baseUrl: process.env.OMNIXDP_API_URL!,
clientCredentials: {
clientId: process.env.OMNIXDP_MANAGEMENT_CLIENT_ID!,
clientSecret: process.env.OMNIXDP_MANAGEMENT_CLIENT_SECRET!
}
});
export default async function SpacesPage() {
const spaces = await management.listSpaces({ limit: 20 });
return <pre>{JSON.stringify(spaces, null, 2)}</pre>;
}Browser warning
This API uses OAuth client_credentials. If you configure clientCredentials in a browser context, the SDK logs a warning because the secret may be exposed in the JavaScript bundle. Use a server-side proxy or route handler when possible.
Generated entry types
Use @omnixdp/typegen to regenerate CMS entry data types after content types, taxonomy types, or global fields change in the admin.
npx omnixdp-typegen \
--api-url https://api.example.com \
--management-token "$OMNIXDP_MANAGEMENT_TOKEN" \
--cms-space marketing \
--out src/omnixdp.generated.tsimport { createManagementClient, createTypedManagementClient } from "@omnixdp/management";
import type { CmsManagementClient } from "./omnixdp.generated";
const management: CmsManagementClient = createTypedManagementClient(
createManagementClient({
baseUrl: process.env.OMNIXDP_API_URL!,
accessToken: process.env.OMNIXDP_MANAGEMENT_TOKEN!
})
);
const entries = await management.listEntries({
contentTypeId: "ct_1",
contentTypeApiIdentifier: "article"
});
entries[0]?.data.title;Methods
getAccessToken(options)request(method, pathSegments, options)rawRequest(method, pathSegments, options)listSpaces,createSpace,updateSpace,deleteSpacelistContentTypes,getContentType,createContentType,updateContentType,deleteContentTypelistEntries,getEntry,createEntry,updateEntry,publishEntry,unpublishEntry,archiveEntry,unarchiveEntry,deleteEntrylistAssets,listTaxonomyTypes,listTaxonomies,listGlobalFields,listLanguages,listEnvironments,listDeliveryTokens
Failed Management API responses throw ManagementApiError with status, code, details, and the parsed response body when available.
