MTPC 文档
欢迎使用 MTPC (Multi-Tenant Permission Core) 文档。MTPC 是一个业务无关、可嵌入、可组合的多租户权限内核。
什么是 MTPC?
MTPC 不是一个可直接部署的系统,也不包含任何具体业务、UI 或运行态应用;而是一个 权限基础设施内核,用于被真实业务系统(SaaS、内部后台、B 端系统等)作为依赖引入。
核心特性
- 业务无关:核心不包含 Department / User / Role / Menu 等具体业务模型
- 单一事实源:Resource Definition 是唯一权威来源,其它一切均由其派生
- 编译期优先:能在编译期生成的内容绝不推迟到运行期
- 库而非服务:MTPC 以内嵌库方式运行,不是独立微服务
- 可扩展优先:所有企业级能力通过插件、钩子与策略扩展
- 默认拒绝:权限校验失败即拒绝访问,不存在”隐式放行”
快速开始
安装
npm install @mtpc/core基础用法
import { createMTPC, defineResource } from '@mtpc/core'
// 创建 MTPC 实例
const mtpc = createMTPC()
// 定义资源
const userResource = defineResource({
name: 'user',
schema: z.object({
id: z.string(),
name: z.string(),
email: z.string().email()
}),
features: {
creatable: true,
readable: true,
updatable: true,
deletable: true
}
})
// 注册资源
mtpc.registerResource(userResource)
// 初始化
await mtpc.init()文档导航
核心包
| 包名 | 描述 |
|---|---|
@mtpc/core | 多租户权限核心,提供 Resource、Permission、Policy 等基础能力 |
@mtpc/rbac | 基于角色的访问控制扩展 |
@mtpc/adapter-hono | Hono 框架适配器 |
@mtpc/adapter-drizzle | Drizzle ORM 适配器 |
官方扩展
| 包名 | 描述 |
|---|---|
@mtpc/policy-cache | 策略缓存扩展,优化权限检查性能 |
@mtpc/explain | 权限决策解释扩展,用于调试和审计 |
@mtpc/audit | 审计日志扩展,记录权限操作 |
@mtpc/data-scope | 数据范围控制扩展,实现行级权限 |
@mtpc/soft-delete | 软删除扩展,支持数据恢复 |
示例项目
- example-api - 完整的 API 示例
- example-web - 前端集成示例
下一步
- 阅读快速开始指南
- 了解架构概览
- 查看示例教程
贡献
欢迎贡献!请查看贡献指南了解如何参与 MTPC 的开发。
Last updated on