核心不包含具体业务模型,仅提供抽象与派生能力,适用于各种业务场景
Resource Definition 是唯一权威来源,其它一切均由其派生
能在编译期生成的内容绝不推迟到运行期,确保类型安全与一致性
以内嵌库方式运行,不是独立微服务,易于集成到现有项目
所有企业级能力通过插件、钩子与策略扩展,而非硬编码
权限校验失败即拒绝访问,不存在'隐式放行',确保安全性
从安装到第一个权限检查,只需几个简单步骤
import { createMTPC, defineResource } from '@mtpc/core'
import { z } from 'zod'
// 创建 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()
// 检查权限
const result = await mtpc.checkPermission({
tenant: { id: 'tenant-001' },
subject: { id: 'user-123', type: 'user' },
resource: 'user',
action: 'create'
})
console.log(result.allowed) // true/false丰富的扩展包和适配器,满足各种业务需求
提供基础的权限控制能力
支持多种 Web 框架和数据库
企业级功能扩展