跳到主要内容

指南

合规发现

要求目录把一项指令变成可检查的条目。Oloproof 为加拿大国库委员会的《自动化决策指令》提供了一份目录,另外还有司法辖区页面列出的其他目录。oloproof init --example governance 会把它们复制到项目的 catalogues/ 目录中,旁边放一个读取它们的 governance.yaml,因此 oloproof governance check 可以立即在那里运行。oloproof governance check 将其与您的系统对照读取,并对每项要求说明它是已满足、部分满足、未满足、不适用还是无法确定。每项发现都说明其依据:您的 gate 的决策、具名人员的声明,或经过审阅的草稿。

发现是写给读者的摘要。它从不改变决策,也从不构成运行授权。它不是法律意见。

治理文件

governance.yaml 位于 oloproof.yaml 旁边:

catalogue: catalogues/dadm_catalogue_2025-06-24.yaml   # as `init --example governance` copies it
systems:
  - id: triage
    name: Benefits triage
    system: triage            # the oloproof system name its runs are recorded under
    in_scope: true
    scope_reason: assesses eligibility for a federal benefit
    environment: production
    production_since: 2026-06-01
    aia_level: II
    review_period_days: 365
    bindings:
      DADM-6.3.1: [accuracy-floor]      # the gate rules that decide a measured requirement
      DADM-6.3.3#1: [every-region]      # or one part of a composite
statements:
  - id: s1
    system: triage
    target: DADM-6.1.1
    says: met                 # met, not_met or not_applicable
    by: A. Officer
    role: CIO office
    on: 2026-10-01
    link: https://example.org/aia

发现如何得出

  • 测量类要求读取绑定到它们的 gate 规则,取系统当前版本每个套件在其审查期内的最新运行。只有每条绑定规则都为 PASS 时才算已满足;任一为 FAIL 时为未满足;否则为无法确定。从不为部分满足。
  • 声明类要求读取最新的有效声明。声明在审查期过后,或系统版本超出其所指明的版本时过期。
  • 辅助类要求从模型的草稿开始,oloproof governance draft --system triage --target DADM-6.2.1 --document notice.txt --model <model>,在审阅者对其采取行动之前它从不是发现:oloproof governance review --action validate|reject|modify|annotate。
  • 复合要求组合其各部分:任一无法确定的部分都会阻止已满足。

这些规则在 docs/engine/FINDING_RULES.md 中,已于 2026 年 11 月 2 日通过审计获准。

各群体间的公平

DADM 6.3.3 和 6.3.8 询问结果是否对每个群体都成立。将它们绑定到 worst_group 指标上的 min 规则(配置参考),该规则同时让每个具名群体达到门槛。

封存、签名与重新评估

oloproof governance check --seal 写入一份发现记录,带编号并与上一份链接,其中包含审阅日志的头部。添加 --sign office.key --signer "CIO office" 即可用 oloproof runner keygen 生成的密钥对其签名;任何人都可以用 oloproof governance verify RECORD --public-key KEY 检查。签名说明是谁封存的,而不是说明发现为真。当系统从未被评估、审查期已过、版本已更改或目录已更改时,系统会被标记为需要重新评估。

纠正措施通过 oloproof governance ticket 跟踪。 oloproof governance export-tickets --to jira --project GOV 为每个尚未导出的未关闭工单打印将要创建的 Jira 问题(REST v3 /rest/api/3/issue,描述采用 Atlassian Document Format);--to servicenow 打印 incident 的 Table API 记录,加 --table problem 则为 problem。加上 --send --by "A. Officer" 即创建,需设置 OLOPROOF_JIRA_URL, OLOPROOF_JIRA_EMAIL, OLOPROOF_JIRA_TOKEN 或 OLOPROOF_SERVICENOW_URL, OLOPROOF_SERVICENOW_USER, OLOPROOF_SERVICENOW_PASSWORD(从不存储或打印)。各服务返回的键作为对工单要求的注释写入日志:结论会显示它,同一工单绝不会发送两次。仅以录制的响应测试,未连接真实的 Jira 或 ServiceNow 实例。

发送工单前,日志会把导出记为待定;崩溃后重新运行时,会先在服务中查找该工单(Jira 按标签,ServiceNow 按 correlation_id),找到则记录已有的键,而不再创建第二个。这些注释以 oloproof-export: 开头,审阅者自己的备注不得使用这个前缀。离开贵组织的内容:工单的备注、其要求和系统、日志中所写的开单人姓名、日期和摘要;不含任何案例内容。

oloproof governance mlflow 读取 MLflow 模型注册表:设置 MLFLOW_TRACKING_URI,若服务器需要再设置 MLFLOW_TRACKING_TOKEN(两者都不会被存储或打印)。每个注册模型对应 system 或 id 等于模型名的系统;没有系统对应的模型会作为待加入 governance.yaml 的系统打印出来,在有人决定之前不在范围内。每个版本的编号、运行 id 和来源保存在 .oloproof/governance/mlflow/ 下。使用 --tag 时,最近一次封存记录的结论会以 oloproof.findings, oloproof.findings_digest, oloproof.assessed_on, oloproof.catalogue 标签写到每个对应模型的最新版本上。它以录制的响应测试过,并于 2026 年 11 月 4 日针对本地运行的真实 MLflow 3.18.0 服务器测试,标签已回读确认。

oloproof governance azureml, oloproof governance sagemaker 对 Azure Machine Learning 工作区和 Amazon SageMaker Model Registry 做同样的事。Azure ML 通过管理 API 读取由 AZURE_SUBSCRIPTION_ID, AZURE_RESOURCE_GROUP, AZURE_ML_WORKSPACE 指定的工作区,令牌取自 AZURE_ACCESS_TOKEN (az account get-access-token);--tag 把四个标签加到最新版本的标签上。SageMaker 把模型包组读作模型,把其包版本读作版本,并用标准的 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION 为每个请求签名;--tag 把四个值设为最新包的客户元数据。任何凭据都不会被存储或打印;导入结果保存在 .oloproof/governance/azureml/, .oloproof/governance/sagemaker/ 下。两者都以按各服务文档格式录制的响应测试,未使用真实的 Azure 或 AWS 账户。

保留、访问与数据驻留

在托管工作区中,Owner 在设置中决定运行的用例内容、追踪和读取日志保留多少天;worker 删除更早的数据,并写入 Owner 和 Admin 可以下载的回执。决定、批准、封存和治理记录始终保留。每次打开运行、调查结果或封存,都会按账户和时间记入审计日志。数据留在部署的唯一区域(oloproof.com:多伦多,备份在多伦多,另有一份加密副本在芝加哥);数据驻留意味着每个区域一个部署。

多个目录、在工作区中审阅以及 API

项目可以用 catalogues: [dadm.yaml, ethics.yaml] 指定多个目录。每个系统按其列出的目录(系统上的 catalogues:)、列出它的分组的目录(groups: {public: {catalogues: [ethics.yaml], systems: [chatbot]}})来评估,若都没有则按所有已声明的目录评估,每条结论都注明其目录。目录的新版本不删除某项要求,而是用 retired: "2027-01-01" 和 replaced_by: <id> 标记它:此日之后它不再产生结论,记录中会注明它。

在托管工作区中,Owner 或 Admin 在 Governance 页面上确认、驳回、修改或批注一条结论。每个操作都以其账户记入工作区自己的哈希链式审阅日志,在推送的日志之后读取,封存会同时导出两份日志。

具有读取范围的令牌可读取其所属项目的相同对象:GET /api/governance/findings, /seal, /statements, /reviews, /approvals,其 OpenAPI 3.1 描述位于 /api/openapi.json。均不包含用例内容。

它无法告诉您什么

声明是人的说法;Oloproof 记录谁在何时说了什么,并不核实。发现的强度取决于绑定到它的规则。在托管的工作区中,同样的发现会显示在项目的治理页面上。