@cap-js/ord

中文文档
1.10.2发布于 2026/10/21Apache-2.0CommonJS构建来源已验证近 30 天下载 4602

生成 ORD 文档的 CAP 插件 .

中文使用文档
文档目录12 节
  1. 关于这个项目
  2. AI 编码代理技能
  3. 要求和设置
  4. 安装
  5. 认证
  6. 使用量
  7. 自定义 ORD 文档
  8. 如何在本地设置 dev 环境和运行 xmpl
  9. 支持、反馈、贡献
  10. 安全/披露
  11. 行为守则
  12. 许可证发放

REUSE status

ORD 的 CDS 插件

关于这个项目

此插件添加支持 打开资源发现 基于 CAP 应用程序的(ORD)协议. 当您添加了 ORD 插件时, 您的应用程序会获得一个单一的切入点, 从而可以发现并收集该应用程序的机器可读信息或元数据 . 您可以使用这些信息构建一个静态元数据目录, 或者对您的系统实例/ 系统地貌进行详细的运行时间检查 .

欲了解更多情况,请查看 打开资源发现 页 次.

QQ 通过安装此插件, 描述您 CAP 应用程序的元数据将会被公开访问 。 如果您想要保护您的 CAP 应用程序的元数据, 请配置 basic 通过设置环境变量或更新 .cdsrc.json 文档。 插件优先排序环境变量,然后检查 .cdsrc.json如果两者都没有配置,则元数据仍可公开查阅.

AI 编码代理技能

这个项目两艘 克劳德密码技能 下级 .skills/ aI编码代理可以用来协助完成共同的任务:

技能说明
integrate-ord-plugin整合分步指导 @cap-js/ord 进入CAP节点js项目——安装, .cdsrc.json 配置、认证和核查.
custom-ord-annotations人人参考 @ORD.Extensions.* CDS说明——标题,描述,版本,能见度,消费捆等.

要求和设置

安装

npm install @cap-js/ord

说明: @cap-js/openapi 财务报告和审定财务报表 @cap-js/asyncapi 软件包已经从端点依赖移入 package.json因此,使用全球安装的软件包可能导致冲突。 如果有冲突 npm uninstall -g @cap-js/openapi @cap-js/asyncapi 接下来 npm install 在您的工程目录中.

认证

ORD 插件支持多种认证策略,这些策略可以通过环境变量配置,或者 .cdsrc.json。认证类型根据其配置的存在而自动检测到 - 没有明确 types 需要数组.

支持认证方法 :

  • 打开: 没有认证( 当没有配置其他认证时默认)
  • 基础: HTTP 有 bcrypt- hashed 密码的基本认证
  • CF mTLS 数字: Cloud Foundry 互用 TLS 认证
  • DwC mTLS 维基百科: 数据仓库云互通 TLS 认证

多重认证策略: 您可以同时配置多种认证方法( 例如, 两者兼有) basic 财务报告和审定财务报表 cf-mtls) (中文(简体) ). 插件执行类似Express的中间软件模式,按顺序尝试每个已配置策略,直到一个策略成功.

注意:在配置任何安全认证方法时,会自动禁用开放式认证以确保安全. ORD文件将反映所有积极的认证策略.

打开

这个 open 认证类型是默认并绕过认证检查. 没有配置其他认证时会自动使用.

基本认证

使用环境变量配置基本验证或 .cdsrc.json数字 :

备选案文1:环境变量

BASIC_AUTH='{"admin":"$2y$05$..."}'

选项2:配置文件

添加到您的 .cdsrc.json数字 :

{
    "cds": {
        "ord": {
            "authentication": {
                "basic": {
                    "credentials": {
                        "admin": "$2y$05$..."
                    }
                }
            }
        }
    }
}

要生成 bcrypt 散列,请使用 密码 工具栏 :

htpasswd -Bnb <user> <password>

这将输出类似的东西 admin:$2y$05$... - 只使用散列部分(从 $2y$在你身边 BASIC_AUTH 贾森.

[大 确保使用强口令,安全地处理BASIC AUTH环境变量. 永远不要将真实的证书或.env文件输入版本控制.

在你的环境下使用htpasswd
  • 独立平台数字 :

    先决条件是 节点JS 安装在机器上.

    npm install -g htpasswd
    

    在全球安装软件包后, 命令 htpasswd 应在终端中提供.

  • 马科斯数字 :

    不需要安装任何额外的软件包。 工具 htpasswd 默认情况下可在终端中获取.

  • 链接数字 :

    安装 apache2- utils 软件包 :

    # Debian/Ubuntu
    sudo apt-get install apache2-utils
    
    # RHEL/CentOS
    sudo yum install httpd-tools
    

CF mTLS 认证

为 SAP BTP Cloud 创建环境配置 Cloud Foundry 相互 TLS 认证. 可能的值包括"sap:cmp-mtls:v1"和"sap.businesshub:mtls:v1".

使用 UCL 生产配置( 建议)

对于SAP UCL(统一客户景观)集成,启用mTLS in .cdsrc.json 通过环境变量配置 UCL 端点 :

{
    "ord": {
        "authentication": {
            "cfMtls": true
        }
    }
}
# Example configuration of the CF_MTLS_TRUSTED_CERTS environment variable
export CF_MTLS_TRUSTED_CERTS='{
  "configEndpoints": ["https://your-ucl-endpoint/v1/info"],
  "rootCaDn": ["CN=SAP Cloud Root CA,O=SAP SE,L=Walldorf,C=DE"],
  "accessStrategies": ["sap:cmp-mtls:v1", "sap.businesshub:mtls:v1"]
}'

带有自定义证书的生产配置

对于没有 UCL 的自定义证书 :

# Example configuration of the CF_MTLS_TRUSTED_CERTS environment variable
export CF_MTLS_TRUSTED_CERTS='{
  "certs": [{"issuer": "CN=My CA,O=MyOrg", "subject": "CN=my-service,O=MyOrg"}],
  "rootCaDn": ["CN=My Root CA,O=MyOrg"],
  "accessStrategies": ["sap:cmp-mtls:v1", "sap.businesshub:mtls:v1"]
}'

开发配置

对于本地开发,请直接在其中配置完整的mTLS设置 .cdsrc.json数字 :

{
    "ord": {
        "authentication": {
            "cfMtls": {
                "rootCaDn": ["CN=Test Root CA,O=MyOrg,C=DE"],
                "accessStrategies": ["sap:cmp-mtls:v1","sap.businesshub:mtls:v1"],
                "certs": [
                    {
                        "issuer": "CN=Test CA,O=MyOrg,C=DE",
                        "subject": "CN=test-client,O=MyOrg,C=DE"
                    }
                ]
            }
        }
    }
}

说明: 关于详细的CF mTLS配置选项,请参见: 文档。 。 。 .

DwC mTLS 认证

当网关转发已验证客户端证书时配置 DwC mTLS DwC-Forwarded-Client-Cert 头曰. 它的配置是一样的 certs, (中文(简体) ), rootCaDn, (中文(简体) ), configEndpoints选择 accessStrategies 字段为 CF mTLS; 使用情况 dwcMtls 财务报告和审定财务报表 DWC_MTLS_TRUSTED_CERTS 换句话说 见 DwC mTLS 文档 举个例子.

多重认证策略

可以同时配置多种认证方法,支持不同的客户类型. 根据配置存在自动检测到认证类型 :

配置在 .cdsrc.json数字 :

{
  "cds": {
    "ord": {
      "authentication": {
        "basic": {
          "credentials": {
            "admin": "$2y$05$..."
          }
        },
        "cfMtls": {
          "certs": [...],
          "rootCaDn": [...]
        }
      }
    }
  }
}

如何运作:

  • 认证类型是根据您配置的( 无) types 所需阵列)
  • 插件按顺序尝试每个配置的认证策略
  • 使用第一个成功认证请求的策略
  • 如果请求包含 Basic 认证信头, 将尝试 Basic 认证
  • 如果请求包括 mTLS 证书头, 则尝试 CF mTLS 认证
  • ORD 文档在其中自动包含所有已配置的认证方法 accessStrategies

实例情景:

  • 基本 + CF mTLS: 既支持使用 Basic 认证的 API 客户端,也支持使用 mTLS 证书的服务
  • 仅基本: 只有拥有有效 Basic 认证证书的客户端才能访问
  • 仅限 CF mTLS: 只有拥有可信证书的客户端才能访问

使用量

程序化 API

const cds = require("@sap/cds");
require("@cap-js/ord");
const csn = cds.context?.model || cds.model;
const ord = cds.compile.to.ord(csn);

命令行

构建包括 ordDocument 和服务资源文件在内的所有 ord 相关文档 :

支持的选项
  1. 劳动者数字 :
    • 说明: 执行期间使用的工人最多
    • 支持的数值数字 :
      • 工人=无 - N(int)工人人数最多(例如2名工人) 工人=2岁(中文(简体) )
      • 工人=全国 - 每个CPU核心的最大N(int/float)工人(例如,2个核心机上的最大5个工人,4个核心机上的最大10个工人) 工人=2.5C(中文(简体) )
    • 默认值: 最大每2个CPU芯1名工人 工人=0.5C
    • 用法实例数字 :
      • cds build --for ord --opts 'workers=2'
      • cds build --for ord --opts 'workers=2.5C'
      • cds build --for ord --opts 'workers=0.5C' (相当于 cds build --for ord(中文(简体) )
cds build --for ord

# By default, it will be generated in /gen/ord dir, e.g.:
# done > wrote output to:
#    gen/ord/ord-document.json
#    gen/ord/sap.sample:apiResource:AdminService:v1/AdminService.edmx
#    gen/ord/sap.sample:apiResource:AdminService:v1/AdminService.oas3.json

只编译 ord 文档 :

cds compile <path to srv folder> --to ord [-o] [destinationFilePath]
Sample Application Demo

ORD 终点

  1. 运行 cds watch 在应用程序的根.
  2. 请检查 ORD 信息的下列相对路径 - /.well-known/open-resource-discovery , (中文(简体) ), /ord/v1/documents/ord-document。 。 。 .
Sample Application Demo

自定义 ORD 文档

您可以在此找到更多信息, 如如何自定义 ORD 文件 文档。 。 。 .

如何在本地设置 dev 环境和运行 xmpl

  1. 安装依赖性

    npm i
    
  2. 运行 xmpl 应用程序

    cd xmpl/
    
    # watch xmpl application
    cds watch
    
    # build resources files
    cds build --for ord
    

支持、反馈、贡献

此项目可通过下列方式对特性请求/建议、错误报告等开放: GitHub 问题鼓励并始终欢迎各方作出贡献和反馈。 关于如何作出贡献的更多信息,项目结构以及额外贡献信息见我们 贡献准则。 。 。 .

安全/披露

如果您发现任何可能存在安全问题的漏洞,请遵照我们的指示 我们的安全政策 如何报告。 请不要为与安全有关的疑问或问题创建 GitHub 问题 .

在目前状态下,插件将曝光有开放访问的静态元数据. 这意味着联合呼吁程序的资源被公开描述和记录,但这并不意味着资源本身可以获取.

如果您需要保护您的元数据, 请在支持元数据保护之前不要安装此插件 .

行为守则

作为成员、贡献者和领导人,我们保证使参加我们的社区成为每个人不受骚扰的经历。 通过参与这个项目,你同意遵守 行为守则 在任何时间.

许可证发放

版权2024 SAP SE或SAP下属公司和CDs-plugin for-ord 撰稿人. 请看我们的 自由主义 版权和许可证信息。 详细信息,包括第三方组成部分及其许可证/版权信息 通过REUSE工具。 。 。 .

版本与发布记录

@cap-js/ord 共发布 38 个版本,首次发布于 2024/07/12;过去 12 个月发布了 19 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.10.2latest2026/10/2118 天前
1.10.12026/10/1326 天前
1.10.02026/09/301 个月前
1.9.32026/08/312 个月前
1.9.22026/07/163 个月前
1.9.12026/06/264 个月前

关于 @cap-js/ord 的常见问题

@cap-js/ord 是什么?

生成 ORD 文档的 CAP 插件 .

如何安装 @cap-js/ord?

在项目目录运行 npm install @cap-js/ord,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@sap/cds(>=8.9.4)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cap-js/ord 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cap-js__ord 是否存在。

@cap-js/ord 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cap-js/ord 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20 <25。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cap-js/ord 可以商用吗?

@cap-js/ord 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cap-js/ord 的下载量有多少?

根据 npm 官方下载统计,@cap-js/ord 在 2026/10/09 – 2026/11/07 这 30 天内被下载 4,602 次,日均约 153 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cap-js/ord 还在维护吗?

最新版本 1.10.2 发布于 2026/10/21(18 天前);至今共发布 38 个版本,其中过去 12 个月发布了 19 个;首次发布于 2024/07/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。