JavaScript SDK
管理 API
23 个管理子模块,用于构建管理后台 — 内容类型、用户、插件、RBAC、租户等。
client.admin 命名空间提供完整的管理端点访问。需要管理员认证。
概览
client.admin.contentTypes // 内容类型 Schema CRUD
client.admin.users // 用户管理
client.admin.posts // 文章管理
client.admin.pages // 页面管理
client.admin.comments // 评论审核
client.admin.categories // 分类管理
client.admin.tags // 标签管理
client.admin.media // 媒体管理
client.admin.reusableBlocks // 可复用内容块
client.admin.plugins // 插件管理
client.admin.tenants // 多租户管理
client.admin.rbac // 角色与权限
client.admin.options // 系统选项
client.admin.webhooks // Webhook 管理
client.admin.audit // 审计日志
client.admin.crons // 定时任务管理
client.admin.tokens // API Token 管理
client.admin.workflows // 工作流引擎
client.admin.wallets // 钱包管理
client.admin.currencies // 货币管理
client.admin.orders // 订单管理
client.admin.payment // 支付渠道管理
client.admin.products // 商品管理
client.admin.stats // 仪表盘统计内容类型
// 列出所有 Schema
const schemas = await client.admin.contentTypes.list();
// 获取 Schema
const schema = await client.admin.contentTypes.get("portfolio");
// 创建 Schema
const created = await client.admin.contentTypes.create({
name: "Portfolio",
singular: "portfolio",
plural: "portfolios",
table: "portfolios",
fields: [...],
protocols: ["timestampable"],
});
// 更新 Schema
await client.admin.contentTypes.update("portfolio", { fields: [...] });
// 删除 Schema(保留数据库表)
await client.admin.contentTypes.delete("portfolio");用户
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: [...] })文章
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: [...] })页面
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 })评论
client.admin.comments.list(query?)
client.admin.comments.updateStatus(id, status)
client.admin.comments.delete(id)
client.admin.comments.batch({ action: "approve", ids: [...] })分类与标签
// 分类
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 })
// 标签
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 })媒体
client.admin.media.upload(file, options?)
client.admin.media.list(page?, pageSize?)
client.admin.media.delete(id)
client.admin.media.batch({ action: "delete", ids: [...] })可复用内容块
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 })插件
// 列出所有插件(含健康状态和指标)
const plugins = await client.admin.plugins.list(1, 20);
// 插件详情
const plugin = await client.admin.plugins.get("com.example.crm");
// 生命周期
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");
// 批量操作
await client.admin.plugins.batch({
action: "enable",
ids: ["com.example.crm", "com.example.seo"],
});租户
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
// 角色
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 })
// 权限
client.admin.rbac.getPermissions(roleId)
client.admin.rbac.setPermissions(roleId, permissions)系统选项
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()Webhook
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 })审计日志
client.admin.audit.list(page?, pageSize?)
client.admin.audit.get(id)定时任务
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 Token
client.admin.tokens.list()
client.admin.tokens.create({ name, scopes, expires_at? })
// 返回 { ...token, token: "raw_token_string" }
client.admin.tokens.delete(id)工作流
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)钱包
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?)货币
client.admin.currencies.list()
client.admin.currencies.get(code)
client.admin.currencies.create(body)
client.admin.currencies.update(code, body)订单
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()支付
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?)商品
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)统计
// 仪表盘概览
const overview = await client.admin.stats.overview();
// 某表的内容统计
const contentStats = await client.admin.stats.content("posts");
// 趋势数据
const trends = await client.admin.stats.trends("posts", 30);列出所有路由
const routes = await client.admin.listRoutes();
// 返回所有已注册的 API 路由