产品铁律与非目标
Portico 在设计之初即确立了不可触碰的产品红线。任何新功能的引入、Bug 修复或架构演进,均不得以“便利”为由突破以下铁律。
产品铁律 (Iron Rules)
1. 不运行、编排、托管 Agent
- Portico 绝不包含 Agent 推理循环、Prompt 模板执行器或工作流编排引擎。
- Portico 绝不代发模型推理请求(如 OpenAI / Anthropic / Gemini API)。
- Portico 网关只负责鉴权与路由发现,绝不替调用方执行任何 MCP 工具。
2. 内部与公开是绝对的信任边界
- 未经审批的草稿、内部服务与公开候选,在任何匿名渠道上均绝对不可达、不可见。
- 任何入口(Portal、CLI、MCP)均不得提供绕过审批直接公开后门的选项。
- 登记操作不能“顺便”完成公开发布。
3. Agent 维护权绝不等于安全审计权
- 自动化维护者 Agent 严禁被授予
auditor角色。 - 提交同一条公开申请的身份绝对不能自批(
SELF_APPROVAL拦截)。 - 维护者身份不能关闭、删除或改写系统审计日志。
4. 三大入口呈现严格一致的治理状态
- Portal、CLI、MCP 必须读取同一套目录内核与权限状态。
- 严禁出现“CLI 能看到公开,但 Portal 页面显示 404”或“MCP 显示内部,Portal 却已向外暴露”的状态分裂。
5. 密钥只引用,绝不落明文
- 登记的元数据、URL、包坐标、日志与审计记录中,严禁写入任何明文 API Key、Token、密码或非公开私钥。
- 端点 URL 严禁包含凭证信息(如
http://user:pass@host)或伪协议(如javascript:)。
6. 单一 Deno L0 运行时
- 纯 Deno + TypeScript 体系。
- 严禁把 Node.js 或 Bun 加入产品依赖、CI 流程或可分发产物。
- 权限默认全拒,禁止使用
--allow-all或等价的无节制通配授权。 - CLI 分发产物必须为纯自包含二进制,运行绝不依赖机器上的
node或bun命令。
明确的非目标 (Non-Goals)
为了保持系统的专注与精悍,以下功能被永久排除在 Portico 之外:
| 非目标领域 | 排除理由 | 替代解法 |
|---|---|---|
| 通用 CMS / 动态建站器 | 复杂的页面自定义与插件生态极易引入 XSS 与代码执行漏洞,破坏审计可读性。 | 提供固定组件盒(catalog_card 等)与严格的语义 Token。 |
| 应用计费与商业市场 | 计费、订单与订阅属于商业中台范畴,与准入治理职责正交。 | 由外部商业系统通过鉴权网关的访问日志进行下游对账。 |
| 分布式工作流调度器 | 编排工具(如 Temporal、LangGraph、Airflow)已有成熟实现,Portico 只做入口发现。 | Agent 自行在外部宿主中执行状态转移。 |
| 集中式流量反向代理 | 代理海量高带宽 Payload 会让网关成为性能与安全单点,且容易偷窥明文数据。 | Gateway 仅提供一次性鉴权路由信息(connect.mode = direct),客户端直连后端。 |