# @cap-js/ord 中文文档

规范地址：https://npmcn.com/package/%40cap-js/ord/

版本：1\.10\.2
npm 元数据更新时间：2026-10-21T15:03:29.824Z
中文译文更新时间：2026-11-09T06:43:26.404Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cap-js/ord
原文对照：https://npmcn.com/package/%40cap-js/ord/?lang=original
项目主页：https://cap.cloud.sap/
源码仓库：https://github.com/cap-js/ord

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：189 kB，37 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=20 \<25
- 运行依赖：6 个
- peer 依赖：@sap/cds \>=8\.9\.4
- 首次发布：2024-07-12T09:36:56.908Z
- 最新版本发布：2026-10-21T15:03:29.452Z
- 近 30 天下载量：4602（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：38（近 12 个月 19 个）

## 中文简介

生成 ORD 文档的 CAP 插件 .

## 安装

```sh
npm install @cap-js/ord
```

也可以使用：`pnpm add @cap-js/ord`、`yarn add @cap-js/ord`、`bun add @cap-js/ord`

## README

[![REUSE status](https://api.reuse.software/badge/github.com/cap-js/ord)](https://api.reuse.software/info/github.com/cap-js/ord)

# ORD 的 CDS 插件

## 关于这个项目

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

欲了解更多情况,请查看 [打开资源发现](https://open-resource-discovery.github.io/specification/) 页 次.

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

### AI 编码代理技能

这个项目两艘 [克劳德密码技能](https://docs.anthropic.com/en/docs/claude-code/skills-tutorial) 下级 `.skills/` aI编码代理可以用来协助完成共同的任务:

| 技能 | 说明 |
| --- | --- |
| [`integrate-ord-plugin`](https://npmcn.com/package/%40cap-js/ord/.skills/integrate-ord-plugin/SKILL.md) | 整合分步指导 `@cap-js/ord` 进入CAP节点js项目——安装, `.cdsrc.json` 配置、认证和核查. |
| [`custom-ord-annotations`](https://npmcn.com/package/%40cap-js/ord/.skills/custom-ord-annotations/SKILL.md) | 人人参考 `@ORD.Extensions.*` CDS说明——标题,描述,版本,能见度,消费捆等. |

## 要求和设置

### 安装

```sh
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:环境变量**

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

**选项2:配置文件**

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

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

要生成 bcrypt 散列,请使用 [密码](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) 工具栏 :

```bash
htpasswd -Bnb <user> <password>
```

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

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

在你的环境下使用htpasswd

-   **独立平台**数字 :
    
    > 先决条件是 [节点JS](https://nodejs.org/en) 安装在机器上.
    
    ```bash
    npm install -g htpasswd
    ```
    
    在全球安装软件包后, 命令 `htpasswd` 应在终端中提供.
    
-   **马科斯**数字 :
    
    不需要安装任何额外的软件包。 工具 `htpasswd` 默认情况下可在终端中获取.
    
-   **链接**数字 :
    
    安装 apache2- utils 软件包 :
    
    ```bash
    # 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 端点 :

```json
{
    "ord": {
        "authentication": {
            "cfMtls": true
        }
    }
}
```

```bash
# 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 的自定义证书 :

```bash
# 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`数字 :

```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配置选项,请参见: [文档](https://npmcn.com/package/%40cap-js/ord/docs/ord.md#cf-mtls-authentication)。 。 。 .

#### DwC mTLS 认证

当网关转发已验证客户端证书时配置 DwC mTLS `DwC-Forwarded-Client-Cert` 头曰. 它的配置是一样的 `certs`, (中文(简体) ), `rootCaDn`, (中文(简体) ), `configEndpoints`选择 `accessStrategies` 字段为 CF mTLS; 使用情况 `dwcMtls` 财务报告和审定财务报表 `DWC_MTLS_TRUSTED_CERTS` 换句话说 见 [DwC mTLS 文档](https://npmcn.com/package/%40cap-js/ord/docs/ord.md#dwc-mtls-authentication) 举个例子.

#### 多重认证策略

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

**配置在 `.cdsrc.json`数字 :**

```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

```js
const cds = require("@sap/cds");
require("@cap-js/ord");
```

```js
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`(中文(简体) )

```sh
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 文档 :

```sh
cds compile <path to srv folder> --to ord [-o] [destinationFilePath]
```

![Sample Application Demo](https://npmcn.com/package/%40cap-js/ord/asset/etc/ordCLI.png)

#### ORD 终点

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

![Sample Application Demo](https://npmcn.com/package/%40cap-js/ord/asset/etc/ordEndpoint.gif)

### 自定义 ORD 文档

您可以在此找到更多信息, 如如何自定义 ORD 文件 [文档](https://npmcn.com/package/%40cap-js/ord/docs/ord.md)。 。 。 .

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

1.  **安装依赖性**
    
    ```sh
    npm i
    ```
    
2.  **运行 xmpl 应用程序**
    
    ```sh
    cd xmpl/
    
    # watch xmpl application
    cds watch
    
    # build resources files
    cds build --for ord
    ```
    

## 支持、反馈、贡献

此项目可通过下列方式对特性请求/建议、错误报告等开放: [GitHub 问题](https://github.com/cap-js/ord/issues)鼓励并始终欢迎各方作出贡献和反馈。 关于如何作出贡献的更多信息,项目结构以及额外贡献信息见我们 [贡献准则](https://npmcn.com/package/%40cap-js/ord/CONTRIBUTING.md)。 。 。 .

## 安全/披露

如果您发现任何可能存在安全问题的漏洞,请遵照我们的指示 [我们的安全政策](https://github.com/cap-js/ord/issues/security/policy) 如何报告。 请不要为与安全有关的疑问或问题创建 GitHub 问题 .

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

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

## 行为守则

作为成员、贡献者和领导人,我们保证使参加我们的社区成为每个人不受骚扰的经历。 通过参与这个项目,你同意遵守 [行为守则](https://github.com/cap-js/.github/blob/main/CODE_OF_CONDUCT.md) 在任何时间.

## 许可证发放

版权2024 SAP SE或SAP下属公司和CDs-plugin for-ord 撰稿人. 请看我们的 [自由主义](https://npmcn.com/package/%40cap-js/ord/LICENSE) 版权和许可证信息。 详细信息,包括第三方组成部分及其许可证/版权信息 [通过REUSE工具](https://api.reuse.software/info/github.com/cap-js/%3Cyour-project%3E)。 。 。 .

## 常见问题

### @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 和提交记录判断。

