mcpField
N
netbox-integration-best-practices

netbox-integration-best-practices

github.com/netboxlabs开发31171 次安装38 周前更新
代码仓库

关于 netbox-integration-best-practices

NetBox Integration Best Practices Skill 为使用 NetBox REST 和 GraphQL API 的开发者提供集成与自动化指导。内容涵盖认证、分页、性能、数据写入和分支插件工作流,但不涉及插件开发或 NetBox 管理。

主要功能

  1. 01提供 REST API 集成实践
  2. 02指导 GraphQL 查询与分页
  3. 03涵盖令牌认证和安全建议
  4. 04说明性能优化与筛选方式
  5. 05介绍 Diode 数据写入模式
  6. 06讲解分支插件生命周期

适用场景

  1. 01规划 NetBox API 自动化
  2. 02审查现有集成代码
  3. 03排查 API 性能问题
  4. 04设计 NetBox 数据导入流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/netboxlabs/netbox-best-practices --skill netbox-integration-best-practices

安装后在 Claude Code 中输入/netbox-integration-best-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
netbox-integration-guidelines.md
references/rules/
_sections.md
_template.md
auth-provisioning-endpoint.md
auth-use-v2-tokens.md
data-custom-fields.md
data-dependency-order.md
data-ipam-hierarchy.md
data-natural-keys.md
data-site-hierarchy.md
data-tags-usage.md
data-tenant-isolation.md
graphql-always-paginate.md
graphql-avoid-nested-filters.md
graphql-calibrate-optimizer.md
graphql-complexity-budgets.md
graphql-filter-by-id.md
graphql-max-depth.md
graphql-pagination-at-each-level.md
graphql-prefer-filters.md
graphql-select-only-needed.md
graphql-use-query-optimizer.md
graphql-vs-rest-decision.md
integ-branch-api-workflow.md
integ-branch-async-operations.md
integ-branch-context-header.md
integ-change-tracking.md
integ-diode-ingestion.md
integ-pynetbox-client.md
integ-webhook-configuration.md

详细介绍

NetBox 集成最佳实践技能

此技能为使用 NetBox REST 和 GraphQL API 构建集成与自动化提供最佳实践指南。

目标受众

  • 基于 NetBox API 构建集成的工程师
  • 计划使用 Claude 开展新自动化工作的团队
  • 学习 NetBox API 最佳实践的开发者

范围: 此技能涵盖 API 集成模式。不涵盖插件开发、自定义脚本或 NetBox 管理。

NetBox 版本要求

功能所需版本
REST API所有版本
GraphQL API2.9+
v2 Tokens4.5+(请使用这些!)
v1 Token 弃用4.7+(请在此之前迁移)

主要目标: NetBox 4.4+;如需使用 v2 token 功能,则需 4.5+。

何时应用此技能

在以下情况下应用这些实践:

  • 构建新的 NetBox API 集成
  • 审查现有集成代码
  • 排查性能问题
  • 规划自动化架构
  • 编写与 NetBox 交互的脚本

优先级

级别说明操作
CRITICAL安全漏洞、数据丢失、严重性能问题必须立即修复
HIGH对性能或可靠性有显著影响应尽快修复
MEDIUM值得关注的改进、最佳实践计划处理
LOW细微改进、可选项方便时考虑

快速参考

身份验证
  • 在 NetBox 4.5+ 上使用 v2 tokens:Bearer nbt_<key>.<token>
  • 在 NetBox 4.7 弃用 v1 之前迁移(计划弃用)
REST API
  • 始终进行分页:?limit=100(最大值为 1000)
  • 部分更新使用 PATCH,而不是 PUT
  • 列表操作使用 ?brief=True
  • 排除 config_context:?exclude=config_context(对性能影响很大)
  • 大规模操作时避免使用 ?q= 搜索过滤器;改用具体过滤器
  • 批量操作使用带 JSON 数组的列表端点(而非单独的端点)
GraphQL
  • 使用查询优化器:netbox-graphql-query-optimizer
  • 始终为每个列表查询分页
  • 在每一层嵌套中进行分页
  • 注意大规模场景下的偏移量分页:深层偏移速度很慢;在 4.5.x 中使用 ID 范围过滤,在 4.6.0+ 中使用基于游标的分页(#21110)
  • 仅请求所需字段
  • 深度保持在 ≤3,绝不超过 5
性能
  • 从设备列表中排除 config_context
  • 对大型列表使用简要模式
  • 并行执行互不依赖的请求
数据摄取(Diode)
  • 对于大批量数据摄取,请使用 Diode,而不是直接调用 API
  • 按名称指定依赖项,而非 ID——Diode 会解析或创建依赖项
  • 无需按依赖顺序排列——Diode 会处理对象创建顺序
  • Python 使用 pip install netboxlabs-diode-sdk
  • 使用 REST/GraphQL API 读取;使用 Diode 写入或填充数据
分支(插件)

需要 netbox-branching 插件。

  • 生命周期:创建 → 等待(PROVISIONING→READY)→ 操作 → 同步 → 合并
  • 上下文标头:X-NetBox-Branch: {schema_id}(8 字符 ID,而非名称)
  • 异步操作:sync/merge/revert 会返回 Job 对象——轮询以等待完成
  • 试运行:所有异步操作都接受 {"commit": false} 以进行验证

按类别划分的规则

身份验证规则
规则影响说明
auth-use-v2-tokensCRITICAL在 NetBox 4.5+ 上使用 v2 tokens
auth-provisioning-endpointMEDIUM使用配置端点自动创建 token
REST API 规则
规则影响描述
rest-list-endpoint-bulk-opsCRITICAL使用列表端点执行批量操作
rest-pagination-requiredHIGH始终为列表请求分页
rest-patch-vs-putHIGH使用 PATCH 进行部分更新
rest-brief-modeHIGH列表使用 ?brief=True
rest-field-selectionHIGH使用 ?fields= 选择字段
rest-exclude-config-contextHIGH从设备列表中排除 config_context
rest-avoid-search-filter-at-scaleHIGH大型数据集中避免使用 q=
rest-filtering-expressionsMEDIUM使用查找表达式
rest-custom-field-filtersMEDIUM按自定义字段筛选
rest-nested-serializersLOW了解嵌套序列化器
rest-ordering-resultsLOW使用排序参数
rest-options-discoveryLOW使用 OPTIONS 进行发现
GraphQL 规则
规则影响描述
graphql-use-query-optimizerCRITICAL使用查询优化器
graphql-always-paginateCRITICAL为每个列表查询分页
graphql-pagination-at-each-levelHIGH为嵌套列表分页
graphql-select-only-neededHIGH仅请求所需字段
graphql-calibrate-optimizerHIGH根据生产环境进行校准
graphql-max-depthHIGH将深度保持在 ≤3
graphql-prefer-filtersMEDIUM在服务端筛选
graphql-vs-rest-decisionMEDIUM选择合适的 API
graphql-complexity-budgetsLOW制定复杂度预算
性能规则
规则影响描述
perf-exclude-config-contextHIGH排除 config_context
perf-brief-mode-listsHIGH列表使用简要模式
数据建模规则
规则影响描述
data-dependency-orderCRITICAL按依赖顺序创建对象
data-site-hierarchyMEDIUM了解站点层级结构
data-ipam-hierarchyMEDIUM了解 IPAM 层级结构
data-custom-fieldsMEDIUM正确使用自定义字段
data-tags-usageMEDIUM使用标签进行分类
data-tenant-isolationMEDIUM使用租户进行隔离
data-natural-keysMEDIUM使用自然键
集成规则
规则影响描述
integ-diode-ingestionHIGH使用 Diode 进行高容量数据摄取
integ-pynetbox-clientHIGHPython 使用 pynetbox
integ-branch-api-workflowHIGH完成分支生命周期(插件)
integ-branch-context-headerHIGH使用 X-NetBox-Branch 标头传递分支上下文(插件)
integ-branch-async-operationsMEDIUM为同步/合并/还原轮询作业(插件)
integ-webhook-configurationMEDIUM配置 Webhook
integ-change-trackingLOW查询对象变更

外部参考资料

官方文档
必备工具
社区

参考文档

文档用途
HUMAN.md面向工程师的易读指南
netbox-integration-guidelines.md全面的技术参考资料

评论

支持 Markdown