Skip to Content
文档概述

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-honoHono 框架适配器
@mtpc/adapter-drizzleDrizzle ORM 适配器

官方扩展

包名描述
@mtpc/policy-cache策略缓存扩展,优化权限检查性能
@mtpc/explain权限决策解释扩展,用于调试和审计
@mtpc/audit审计日志扩展,记录权限操作
@mtpc/data-scope数据范围控制扩展,实现行级权限
@mtpc/soft-delete软删除扩展,支持数据恢复

示例项目

下一步

  • 阅读快速开始指南
  • 了解架构概览
  • 查看示例教程

贡献

欢迎贡献!请查看贡献指南了解如何参与 MTPC 的开发。

Last updated on