RaisFastRaisFast
JavaScript SDK

Admin API

23 admin sub-modules for building admin dashboards — content types, users, plugins, RBAC, tenants, and more.

The client.admin namespace provides full access to admin-only endpoints. Requires admin authentication.

Overview

client.admin.contentTypes   // Content type schema CRUD
client.admin.users          // User management
client.admin.posts          // Post management
client.admin.pages          // Page management
client.admin.comments       // Comment moderation
client.admin.categories     // Category management
client.admin.tags           // Tag management
client.admin.media          // Media management
client.admin.reusableBlocks // Reusable content blocks
client.admin.plugins        // Plugin management
client.admin.tenants        // Multi-tenant management
client.admin.rbac           // Roles & permissions
client.admin.options        // System options
client.admin.webhooks       // Webhook management
client.admin.audit          // Audit log
client.admin.crons          // Cron job management
client.admin.tokens         // API token management
client.admin.workflows      // Workflow engine
client.admin.wallets        // Wallet management
client.admin.currencies     // Currency management
client.admin.orders         // Order management
client.admin.payment        // Payment channel management
client.admin.products       // Product management
client.admin.stats          // Dashboard statistics

Content Types

// List all schemas
const schemas = await client.admin.contentTypes.list();

// Get a schema
const schema = await client.admin.contentTypes.get("portfolio");

// Create schema
const created = await client.admin.contentTypes.create({
  name: "Portfolio",
  singular: "portfolio",
  plural: "portfolios",
  table: "portfolios",
  fields: [...],
  protocols: ["timestampable"],
});

// Update schema
await client.admin.contentTypes.update("portfolio", { fields: [...] });

// Delete schema (preserves database table)
await client.admin.contentTypes.delete("portfolio");

Users

client.admin.users.list(page?, pageSize?)
client.admin.users.get(id)
client.admin.users.update(id, data)
client.admin.users.delete(id)
client.admin.users.batch({ action: "suspend", ids: [...] })

Posts

client.admin.posts.list(query?)
client.admin.posts.get(slug)
client.admin.posts.create(body)
client.admin.posts.update(id, body)
client.admin.posts.delete(id)
client.admin.posts.batch({ action: "publish", ids: [...] })

Pages

client.admin.pages.list(query?)
client.admin.pages.get(id)
client.admin.pages.create(body)
client.admin.pages.update(id, body)
client.admin.pages.updateStatus(id, status)
client.admin.pages.delete(id)
client.admin.pages.reorder([{ id, sort_order }, ...])
client.admin.pages.batch({ action, ids })

Comments

client.admin.comments.list(query?)
client.admin.comments.updateStatus(id, status)
client.admin.comments.delete(id)
client.admin.comments.batch({ action: "approve", ids: [...] })

Categories & Tags

// Categories
client.admin.categories.list(page?, pageSize?)
client.admin.categories.create(body)
client.admin.categories.update(id, body)
client.admin.categories.delete(id)
client.admin.categories.batch({ action, ids })

// Tags
client.admin.tags.list(page?, pageSize?)
client.admin.tags.create(body)
client.admin.tags.update(id, body)
client.admin.tags.delete(id)
client.admin.tags.batch({ action, ids })

Media

client.admin.media.upload(file, options?)
client.admin.media.list(page?, pageSize?)
client.admin.media.delete(id)
client.admin.media.batch({ action: "delete", ids: [...] })

Reusable Blocks

client.admin.reusableBlocks.list()
client.admin.reusableBlocks.get(id)
client.admin.reusableBlocks.create(body)
client.admin.reusableBlocks.update(id, body)
client.admin.reusableBlocks.delete(id)
client.admin.reusableBlocks.batch({ action, ids })

Plugins

// List all plugins (with health & metrics)
const plugins = await client.admin.plugins.list(1, 20);

// Get plugin detail
const plugin = await client.admin.plugins.get("com.example.crm");

// Lifecycle
await client.admin.plugins.enable("com.example.crm");
await client.admin.plugins.disable("com.example.crm");
await client.admin.plugins.reload("com.example.crm");
await client.admin.plugins.unload("com.example.crm");

// Batch operations
await client.admin.plugins.batch({
  action: "enable",
  ids: ["com.example.crm", "com.example.seo"],
});

Tenants

client.admin.tenants.list(page?, pageSize?)
client.admin.tenants.get(id)
client.admin.tenants.create({ name, slug })
client.admin.tenants.update(id, data)
client.admin.tenants.delete(id)
client.admin.tenants.batch({ action, ids })

RBAC

// Roles
client.admin.rbac.listRoles()
client.admin.rbac.createRole({ name, description? })
client.admin.rbac.updateRole(id, data)
client.admin.rbac.deleteRole(id)
client.admin.rbac.batchRoles({ action, ids })

// Permissions
client.admin.rbac.getPermissions(roleId)
client.admin.rbac.setPermissions(roleId, permissions)

Options

client.admin.options.list()
client.admin.options.get(key)
client.admin.options.set(key, value)
client.admin.options.delete(key)
client.admin.options.batchUpdate({ key1: "val1", key2: "val2" })
client.admin.options.getPublic()

Webhooks

client.admin.webhooks.list(page?, pageSize?)
client.admin.webhooks.create({ url, events, description?, enabled? })
client.admin.webhooks.get(id)
client.admin.webhooks.update(id, data)
client.admin.webhooks.delete(id)
client.admin.webhooks.batch({ action, ids })

Audit Log

client.admin.audit.list(page?, pageSize?)
client.admin.audit.get(id)

Cron Jobs

client.admin.crons.list()
client.admin.crons.create({ name, schedule, handler })
client.admin.crons.get(id)
client.admin.crons.update(id, data)
client.admin.crons.delete(id)
client.admin.crons.toggle(id, enabled)
client.admin.crons.listLogs({ schedule_id?, limit? })
client.admin.crons.cleanupLogs()
client.admin.crons.batch({ action, ids })

API Tokens

client.admin.tokens.list()
client.admin.tokens.create({ name, scopes, expires_at? })
// Returns { ...token, token: "raw_token_string" }
client.admin.tokens.delete(id)

Workflows

client.admin.workflows.list()
client.admin.workflows.create({ name, steps })
client.admin.workflows.get(id)
client.admin.workflows.delete(id)
client.admin.workflows.start(id, payload?)
client.admin.workflows.listInstances(page?, pageSize?)
client.admin.workflows.getInstance(id)
client.admin.workflows.executeStep(instanceId, { step, action, data? })
client.admin.workflows.cancelInstance(instanceId)
client.admin.workflows.getStepLogs(instanceId)

Wallets

client.admin.wallets.listWallets(query?)
client.admin.wallets.listTransactions(query?)
client.admin.wallets.credit({ user_id, currency, amount, reference_type?, reference_id? })
client.admin.wallets.debit({ user_id, currency, amount, reference_type?, reference_id? })
client.admin.wallets.userTransactions(userId, query?)
client.admin.wallets.userCurrencyTransactions(userId, currency, query?)
client.admin.wallets.reversal(txDocId, body?)

Currencies

client.admin.currencies.list()
client.admin.currencies.get(code)
client.admin.currencies.create(body)
client.admin.currencies.update(code, body)

Orders

client.admin.orders.list(query?)
client.admin.orders.get(id)
client.admin.orders.pay(id)
client.admin.orders.ship(id, { tracking_number?, carrier? })
client.admin.orders.cancel(id)
client.admin.orders.refund(id)
client.admin.orders.updateRemark(id, { admin_remark })
client.admin.orders.stats()

Payment

client.admin.payment.listChannels(page?, pageSize?)
client.admin.payment.getChannel(id)
client.admin.payment.createChannel(body)
client.admin.payment.updateChannel(id, body)
client.admin.payment.deleteChannel(id)
client.admin.payment.listOrders(query?)
client.admin.payment.getOrder(id)
client.admin.payment.refundOrder(id, body)
client.admin.payment.listTransactions(query?)
client.admin.payment.listRefunds(query?)

Products

client.admin.products.list(page?, pageSize?)
client.admin.products.get(id)
client.admin.products.create(body)
client.admin.products.update(id, body)
client.admin.products.delete(id)

Statistics

// Dashboard overview
const overview = await client.admin.stats.overview();

// Content stats for a table
const contentStats = await client.admin.stats.content("posts");

// Trends over time
const trends = await client.admin.stats.trends("posts", 30);

List All Routes

const routes = await client.admin.listRoutes();
// Returns all registered API routes

On this page