@appneurox/service-runtime

中文文档
0.1.0发布于 2026/10/27Apache-2.0TypeScriptCommonJS近 30 天下载 2632

共享的NestJS集装箱基线;目录业务能力仍未得到明确执行.

中文使用文档
文档目录5 节
  1. 独立条目
  2. 设置
  3. 终点
  4. 扩展服务
  5. 核查

共享 NestJS 集装箱基线

@appneurox/service-runtime 是目录服务寄存器的常见 HTTP 基础。 它在端口启动一个节点 24 进程 8080;在部署容器中作为非根本用户运行。 主机边缘终止了HTTPS. 本套件不执行目录业务,代理现有后端,提供数据库,或索赔提供者准备状态.

标注部署的公众反应 runtime: "BOILERPLATE", (中文(简体) ), businessImplementation: "not_implemented",以及 businessReady: false。 。 。 . /health/ready 仅计量HTTP靴子和排出状态. /health/business 返回时 501 (简体中文). 能力元数据总是有作用 implementation: "not_implemented",即使所提供的文件要求不同的状态.

独立条目

在远程跑道上构建和测试, 不安装本地多克或依赖性 :

npm ci --ignore-scripts
npm test
SERVICE_NAME=example-service SERVICE_CAPABILITY_LABEL="Example capability" node dist/main.js

npm ci 使用已执行的锁文件。 不在仓库文件、 CI 输出、 图像或能力元数据中发布证书 。 运行时间证书属于平台机密. 软件包是私有的,每个服务库都有销售商 .platform/nestjs/。 。 。 .

远程安装/构建此包后仓库根引用 :

node .platform/nestjs/dist/main.js

设置

设置默认和验证
SERVICE_NAME所需的小写 kebab sult, 例如 example-service
SERVICE_CAPABILITY_LABEL显示标签; 默认服务名称
CATALOG_SLUG带有后缀的服务名称 -service 删除
SERVICE_VERSION0.1.0-boilerplate
BUILD_SHAunknown; 否则为 7-64 十进制字符
NODE_ENVproduction; 还接受 development, (中文(简体) ), test
PORT, (中文(简体) ), HOST8080, (中文(简体) ), 0.0.0.0; 明确的回放/ IPv6 绑定地址也被接受
MAX_BODY_BYTES65536; 范围 1024-1048576; 压缩 JSON 被拒绝
REQUEST_TIMEOUT_MS15000; 范围 1000-60000; 边框头和套接字不活动
SHUTDOWN_TIMEOUT_MS20000; 范围 1000-60000
LOG_LEVELinfo· ; debug, (中文(简体) ), warn, (中文(简体) ), error, (中文(简体) ), silent 也接受了
CORS_ORIGINS空; 否则以逗号分隔的 HTTPS 来源, 没有通配符或证书
EXISTING_BACKEND_URL仅可选 HTTPS 引用, 不使用用户信息、 查询或片段
SERVICE_METADATA_FILE可选的 UTF-8 JSON 文件,最多64 KiB
SERVICE_CAPABILITIES_JSON替代内置元数据 JSON; 与文件相互排斥

元数据文件格式,仅包含公共产品信息:

{
  "capabilities": [
    { "id": "example-operation", "name": "Example operation", "description": "Planned business capability." }
  ]
}

在没有文件或内部JSON的情况下,软件包将一个待发能力从 CATALOG_SLUG 财务报告和审定财务报表 SERVICE_CAPABILITY_LABEL。最大500个容量条目;重复ID和无效名称失败启动。 设置无效报告设置名称, 从未提供值 .

终点

路径含义
/服务身份和明确的锅炉板披露
/version版本/构建身份和待定业务地位
/health/live进程可以回答 HTTP
/health/readyHTTP 运行时间初始化且不耗用, 200/503
/health/business未执行的业务能力,501
/v1/capabilities计划能力和共同基线元数据

所有其他已注册控制器都需要经过核实的认证,除非有明确说明 @Public()。未注册的路径返回一个正常的404。 基准从未将任何共享的令牌,租户头,已解码的JWT或前端会话解释为已核实的身份.

扩展服务

import { bootstrapService, RequireScopes, RequireTenant } from '@appneurox/service-runtime';
import type { AuthVerifier } from '@appneurox/service-runtime';
import { RecordsModule } from './records/records.module';

// Implement this port using the actual identity authority. Verify signature,
// issuer, audience and expiry; resolve membership/scopes. Invalid token -> null.
// Provider/authority outage -> throw. No reference verifier is fabricated here.
declare const verifier: AuthVerifier;

void bootstrapService({ imports: [RecordsModule], authVerifier: verifier });

使用 @RequireTenant() 财务报告和审定财务报表 @RequireScopes('records:read') 在保护路线. X-Tenant-ID 是不可信的选择,直到警卫确认 成为经核实的校长的成员 tenantIds;没有租户头创建权威。 拥有一名租户的校长可以隐含地选择;多个租户要求选择租户需要的路线。 范围完全匹配,没有自动通配符升级. 核查人私下收到原始无记名标志,不得登录. 受保护的路线在无证书的情况下返回401条,在未配置核查者的情况下返回503条,在成员/范围不匹配的情况下返回403条.

CurrentPrincipal, (中文(简体) ), CurrentTenant, (中文(简体) ), requestContext,以及 SERVICE_CONFIG 为业务代码导出。 将每个寄存器查询/写入给经认证的租户;这项HTTP合同不能取代数据库隔离或资源授权。 业务单元必须分别实施其真正的依赖性探测、OpenAPI合同、存储/迁移、交易/能力、供应商集成、授权、遥测和功能测试。 在采用共同代码的同时保留已有的业务后端;这个软件包是一个启动器,而不是自动迁移.

createServiceApplication() 初始化不听或信号处理器进行测试/嵌入. bootstrapService() 听,处理SIGTERM/SIGINT,关闭前排出标记,关闭后强制退出. 它回来了 { app, config, shutdown };方案关闭是一能的。 使用 handleSignals: false 当主机拥有生命周期处理.

严格的DTO验证使用类验证元数据:未知属性和隐性强制被拒绝,验证值被排除在响应之外. 在语法检查后传播请求/关系ID;重复的安全头被拒绝. 日志包括方法,路由模板,持续时间,状态和ID,不包括原始的URL,信头,正文和查询. 安全头,被禁用的代理头信任,JSON限制和通用例外适用于每个控制器. 在边缘和(或)一个真正的共享商店应用认证-意识率限制;这个起动器并不假装内置计数器是全舰队的配额.

核查

npm test 编译 TypeScript 然后运行节点测试跑道. 测试内容包括元数据诚实、配置限制、编辑、公共卫生语义、认证默认拒绝、租户/镜像、请求-本地上下文、DTO拒绝、变形/大小过大/压缩JSON、重复头、安全头、CORS和无秘密例外/日志。 对这支车队的远程CI跑手有意进行依赖性安装和可执行测试.

版本与发布记录

@appneurox/service-runtime 共发布 2 个版本,首次发布于 2026/10/27;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.1.0latest2026/10/2712 天前
0.0.0-stage2026/10/2712 天前

关于 @appneurox/service-runtime 的常见问题

@appneurox/service-runtime 是什么?

共享的NestJS集装箱基线;目录业务能力仍未得到明确执行.

如何安装 @appneurox/service-runtime?

在项目目录运行 npm install @appneurox/service-runtime,或使用 pnpm add / yarn add / bun add。

@appneurox/service-runtime 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@appneurox/service-runtime 支持 ESM 还是 CommonJS?

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

@appneurox/service-runtime 需要什么版本的 Node.js?

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

@appneurox/service-runtime 可以商用吗?

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

@appneurox/service-runtime 的下载量有多少?

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

@appneurox/service-runtime 还在维护吗?

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