@defra/fcp-audit-publisher

中文文档
1.0.14发布于 2026/11/02OGL-UK-3.0ESM + CJS构建来源已验证近 30 天下载 1.1万

一个图书馆,用于验证和/或向财务和方案预算审计处公布财务和方案预算审计活动.

中文使用文档
文档目录14 节
  1. 安装
  2. 使用量
  3. 无害环境管理
  4. 常见JS
  5. validateAuditEvent(event)
  6. 返回值
  7. publishAuditEvent(event, config)
  8. 配置引用
  9. 默认优先
  10. eventSchema
  11. 事件计划
  12. audit 对象
  13. security 对象
  14. 许可证

Quality Gate Status Bugs Code Smells Duplicated Lines (%) Coverage Dependabot

FCP 审计出版商

一个图书馆,用于验证和/或向财务和方案预算审计处公布财务和方案预算审计活动.

安装

npm install fcp-audit-publisher

使用量

无害环境管理

import { validateAuditEvent, publishAuditEvent } from '@defra/fcp-audit-publisher'

常见JS

const { validateAuditEvent, publishAuditEvent } = require('@defra/fcp-audit-publisher')

validateAuditEvent(event)

对照 FCP 审计事件计划验证 JSON 对象.

const result = validateAuditEvent({
  correlationid: 'abc-123',
  datetime: '2025-12-01T12:51:41.381Z',
  environment: 'prod',
  version: '1.0.0',
  application: 'FCP001',
  component: 'my-service',
  ip: '192.168.1.100',
  audit: {
    entities: [{ entity: 'application', action: 'created', entityid: 'APP-001' }]
  },
  security: null
})

返回值

关于成功:

{ valid: true, value: { /* normalised event */ } }

失败时 :

{
  valid: false,
  errors: [
    '"datetime" is required',
    '"application" is required'
  ]
}

publishAuditEvent(event, config)

应用默认,验证事件,再将其发布到AWS SNS话题.

呼叫者负责建造和重用 SNSClient。 。 。 .

import { SNSClient } from '@aws-sdk/client-sns'
import { publishAuditEvent } from '@defra/fcp-audit-publisher'

const snsClient = new SNSClient({ region: 'eu-west-2' })

const result = await publishAuditEvent(
  {
    audit: {
      entities: [{ entity: 'application', action: 'created', entityid: 'APP-001' }]
    },
    security: null
  },
  {
    snsClient,
    sns: { topicArn: 'arn:aws:sns:eu-west-2:123456789012:your-sns' },
    application: 'FCP001',
    component: 'my-service',
    environment: 'prod',
    ip: '192.168.1.100',
    generateCorrelationId: true
  }
)

console.log(result.messageId)

丢出一个 Error 如果配置无效,或默认后事件无效.

配置引用

选项类型需求说明
snsClientSNSClient对预构 AWS SDK SNSClient 举个例子 打电话的人有自己的生命周期
sns.topicArn字符串对SNS主题的 ARN 发布到
version字符串没有默认事件计划版本 。 被事件本身所压倒 version 字段
application字符串没有默认应用程序名称 。 被事件本身所压倒 application 字段
component字符串没有默认组件名称 。 被事件本身所压倒 component 字段
environment字符串没有默认环境. 被事件本身所压倒 environment 字段
ip字符串没有默认IP地址 。 被事件本身所压倒 ip 字段
generateCorrelationId布尔没有何时 true,生成 UUID v4 为 correlationid 如果事件没有

默认优先

对于可以默认的字段,从最低到最高的顺序是:

库默认 ~ 配置值 ~ 事件值

外地库默认配置覆盖页:1
version'1.0.0'config.version
datetimenew Date().toISOString()—— 说仅在缺席时才适用
correlationid—— 说generateCorrelationId: true 生成一个 UUID仅在缺席时才适用
application—— 说config.application
component—— 说config.component
environment—— 说config.environment
ip—— 说config.ip只能用于报告自己IP地址的服务,ie Cron工作或背景服务. 处理用户或其他服务的请求时不会.

eventSchema

内部使用的原乔伊计划 validateAuditEvent导出于 fcp-audit 仅服务.

import { eventSchema } from '@defra/fcp-audit-publisher'

其他消费者不应直接进口或依赖这种产品——使用 validateAuditEvent编号 :publishAuditEvent 换句话说.


事件计划

所有事件必须满足以下计划(通过Joi认证): :

外地类型需求制约因素
correlationid字符串对最大 50 个字符
datetimeISO 日期字符串对
environment字符串对小写, 最大 20 个字符
version字符串对最大 10 个字符
application字符串对最大 30 个字符
component字符串对最大 30 个字符
ip字符串对最大 20 个字符
user字符串没有最大 50 个字符
sessionid字符串没有最大 50 个字符
audit对象或无效无*见下文审计计划
security对象或无效无*见下文安全计划

* 至少其中一个 audit 或者说 security 必须是在场的,而不是无名的.

audit 对象

外地类型需求制约因素
entities数组对分钟 1项
entities[].entity字符串对小写,最大120个字符
entities[].action字符串对小写,最大120个字符
entities[].entityid字符串没有最大 120 个字符
accounts对象没有键 : sbi, (中文(简体) ), frn, (中文(简体) ), vendor, (中文(简体) ), trader, (中文(简体) ), organisationId, (中文(简体) ), crn, (中文(简体) ), personId
status字符串没有最大 120 个字符
details对象没有自由窗体

security 对象

外地类型需求制约因素
pmccode字符串对最大 4 个字符( 断开连字符)
priority整数没有默认为 0
details.transactioncode字符串没有最大 4 个字符
details.message字符串没有最大 120 个字符
details.additionalinfo字符串没有最大 120 个字符

许可证

本资料系根据下列公开政府规定公布: http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3 互联网档案馆的存檔,存档日期2013-12-21

版本与发布记录

@defra/fcp-audit-publisher 共发布 19 个版本,首次发布于 2026/05/05;过去 12 个月发布了 19 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.0.14latest2026/11/029 天前
1.0.132026/10/2716 天前
1.0.122026/10/1626 天前
1.0.112026/09/301 个月前
1.0.102026/09/261 个月前
1.0.92026/09/112 个月前

关于 @defra/fcp-audit-publisher 的常见问题

@defra/fcp-audit-publisher 是什么?

一个图书馆,用于验证和/或向财务和方案预算审计处公布财务和方案预算审计活动.

如何安装 @defra/fcp-audit-publisher?

在项目目录运行 npm install @defra/fcp-audit-publisher,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@aws-sdk/client-sns(>=3)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@defra/fcp-audit-publisher 支持 TypeScript 吗?

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

@defra/fcp-audit-publisher 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@defra/fcp-audit-publisher 可以商用吗?

@defra/fcp-audit-publisher 使用 OGL-UK-3.0 许可。声明的许可为 OGL-UK-3.0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@defra/fcp-audit-publisher 的下载量有多少?

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

@defra/fcp-audit-publisher 还在维护吗?

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