cognis-digital/portalcat

GitHub: cognis-digital/portalcat

一款纯 Python 实现的软件目录与脚手架工具,无需数据库即可索引实体、追踪归属与依赖关系、校验引用完整性并回答影响范围查询。

Stars: 0 | Forks: 0

# portalcat **一个可以在任何地方运行的软件目录与脚手架工具。** 为你的 `catalog-info.yaml` 实体建立索引,构建归属与依赖关系图,验证 引用,回答“谁拥有此项目 / 哪些依赖于它”,并从模板中 构建新组件的基础架构 —— 纯 Python 标准库实现。 **Cognis Neural Suite** 的一部分。 ## 为什么需要 内部开发者门户通常会回答几个关键问题:谁拥有某个服务, 它依赖什么,如果它发生变更会破坏什么,以及是否有任何内容指向了 已经不存在的事物。portalcat 可以直接从实体文件目录中回答所有这些问题 —— 无需托管门户服务器,无需数据库,无外部依赖。 ## 命令 ``` # 总结 catalog(种类、所有者、悬空引用)。 python -m portalcat summary ./repo # 验证实体 + 引用。 python -m portalcat validate ./repo # 所有者和 blast-radius 查询。 python -m portalcat owner ./repo Component:orders-api python -m portalcat impact ./repo Resource:orders-db # 从 template tree 脚手架生成新组件({{ name }} 占位符)。 python -m portalcat scaffold ./template ./new-service \ --set name=billing-api --set owner=team-fin # 作为本地 MCP server 运行(stdio JSON-RPC)。 python -m portalcat mcp ``` ## 实体模型 ``` kind: Component # Component | API | System | Resource | Group | User | Domain metadata: name: orders-api tags: [go, payments] spec: owner: team-payments system: commerce dependsOn: [Component:inventory-api, Resource:orders-db] ``` ## portalcat 的独特之处 - **单命令查看影响范围。** `impact` 会遍历传递依赖项,让你 在进行变更之前就知道它会影响什么。 - **引用完整性。** 悬空的 `owner`/`dependsOn` 边缘会被标记为 错误 —— 你的目录不会悄无声息地腐坏。 - **内置脚手架。** 使用 `{{ placeholder }}` 替换路径和内容, 从模板树中批量生成新的、已在目录中注册的组件。 - **原生 MCP**(`summary` / `validate` / `impact`)以及一个可选的本地集群 AI hook(默认关闭),可为无主实体建议归属者。 ## 测试 ``` python -m pytest -q # or: python -m unittest discover -s tests ``` ## 互操作性 `portalcat` 可与拥有 300 多个工具的 Cognis 套件组合使用 —— JSON 输入/输出以及共享的 OpenAI 兼容的 `/v1` 主干网络。请参阅 **[INTEROP.md](INTEROP.md)** 了解 套件图谱、组合模式以及参考技术栈。 ## 集成 通过 [`cognis-connect`](https://github.com/cognis-digital/cognis-connect) 将 `portalcat` 的发现结果转发至 STIX/MISP/Sigma/Splunk/Elastic/Slack/webhook。请参阅 **[INTEGRATIONS.md](INTEGRATIONS.md)**。 ## 许可证 Cognis Open Collaboration License (COCL) 1.0 —— 详见 [`LICENSE`](LICENSE)。 © 2026 Cognis Digital LLC. 原创的 Cognis 作品;不包含任何第三方代码、名称或 品牌标识。 ## 领域 **主要领域:** 网络 & 安全 · **JTF MERIDIAN 部门:** NULLBYTE · SPECTER **主题:** `cognis` `security` `infosec` `cybersecurity` `blue-team` **Cognis Neural Suite** 的一部分 —— 包含 300 多个源码可用工具,按照 JTF MERIDIAN 指挥结构划分为 12 个领域。请参阅 [GitHub 上的套件](https://github.com/cognis-digital) 和 [jtf-meridian](https://github.com/cognis-digital/jtf-meridian) 了解各部分如何协同工作。 ## 使用说明 —— 分步指南 `portalcat` 会将 `catalog-info.yaml` 实体索引到一个归属与依赖关系图中,你可以对其进行验证、查询、绘制图表以及基于此进行脚手架构建。 1. **安装**(纯标准库,Python 3.10+): pip install "git+https://github.com/cognis-digital/portalcat.git" 2. **总结并验证**某个目录(如果出现错误,validate 会以非零状态退出,因此它也可以兼作检查关卡): portalcat summary ./repo portalcat validate ./repo 3. **回答关于实体的归属 / 影响范围问题**: portalcat owner ./repo Component:orders-api portalcat impact ./repo Resource:orders-db # 哪些内容传递依赖于它 portalcat deps ./repo Component:orders-api # 它依赖于哪些内容 4. **使用输出结果** —— 查找孤立项(`--format json`)或将依赖图导出为 Mermaid: portalcat orphans ./repo --format json portalcat graph ./repo --out deps.mmd 5. **从模板树构建新组件**(包含 `{{ name }}` 占位符),或将其作为本地 MCP server 运行: portalcat scaffold ./template ./new-service --set name=billing-api --set owner=team-fin portalcat mcp
标签:Python, SOC Prime, 依赖图谱, 内部开发者门户, 开发工具, 无后门, 脚手架, 软件目录, 逆向工具