Skip to content

docs(security): drop the certification, AI-audit and audit-export over-claims - #455

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/project-thread-4qnzpe
Nov 9, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/project-thread-4qnzpe

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Warren · project thread

Refs objectstack-ai/cloud#3974

维护者速读

  • 改了什么:reference/security.mdx 三处说多了的地方改成和企业版能力清单、INSTALL.md 一致。
  • 认证:删掉「已经有很多部署通过了」,保留「ObjectOS 本身未认证,部署可以认证」。
  • AI 审计事件:原来列的 5 个 ai.* 事件名在框架和 cloud 里都不存在,换成 sys_ai_audit_log 真正写入的 tool_call / quota_refusal / guardrail_refusal。
  • 新增一句:审计只覆盖产品内置 AI;外部 agent 走 /mcp 不写审计行,RLS / FLS 和脱敏仍然生效。
  • 「可以导出」改成「审计日志导出目前不是已交付功能」;token 与成本记在 ai_traces,不在审计行上。
  • 译文:按翻译流程第 3 步删掉 ja / zh-Hans,重生成后 zh-Hant 一并删除。需要你做的:无。

What changed

content/docs/reference/security.mdx (English only):

  1. Certification (L152–153). "Your deployment can be certified — many already are." → "Your deployment can be certified." No source backs "many already are".
  2. ### Audit events (L253–271). The five listed names are written by nothing:
    • objectstack at cloud's .objectstack-sha 6ed533f6: git grep for ai\.chat\.message, ai\.tool\.call, ai\.pending_action, ai\.metadata\.applied (code, excluding .md/.mdx) → 0 hits each. The framework has no sys_ai_audit_log writer at all.
    • The trail lives in cloud: packages/security-enterprise/src/ai-governance/audit-log.object.ts:44-50 declares tool_call, turn, quota_refusal, guardrail_refusal. Writers: tool-interceptor.ts:354 (tool_call), ai-governance-plugin.ts:196,237 (quota_refusal, turn quota and env token guardrail), ai-governance-plugin.ts:288 (guardrail_refusal). turn has no writer (git grep "event: 'turn'" → 0), so it is not listed.
    • The list now names those three and says the rows are append-only (the object's own wording, audit-log.object.ts:12).
    • Added: the trail covers the product's built-in AI; an external agent calling data tools over /mcp writes no sys_ai_audit_log row, while RLS / FLS and masking still apply (cloud docs/design/ee-feature-catalog.md L55; objectstack packages/runtime/src/domains/mcp.ts:604 callData).
  3. Export. "These rows are immutable and can be exported for security review or chargeback" → "Exporting the audit log is not an included feature yet" (cloud apps/objectos-ee/deploy/INSTALL.md L164–169).
    • Cost sentence kept in corrected form: token counts and cost per model exist on ai_traces (cloud packages/service-ai/src/objects/ai-trace.object.ts:77 model, :91 prompt_tokens, :135 total_cost), not on audit rows (audit-log.object.ts:20-21). The old "(provider, model, user)" key is dropped: ai_traces has no user column.

Same-claim grep (English content, locale files excluded)

  • "many already are" → only reference/security.mdx:154 (fixed).
  • AI audit "exported" → only reference/security.mdx:264 (fixed). operate/observability.mdx:10 ("the deployment decides where to export them") is about request-id/metrics/audit primitives in general, not AI audit export; not an exact repeat, left as is.
  • "every AI call is audited" or equivalent → no exact repeat. Near hits, not changed (outside this card's scope; flag for a follow-up card if wanted):
    • deploy/licensing.mdx:73 "An audit trail of every AI tool call" (lacks the "built-in AI" scope the catalog uses).
    • why.mdx:58 "every AI-driven change is itself an audit entry" (record changes go through sys_audit_log; reads as broader than the catalog).

Translations

Step 3 of the Translation workflow (capability assertions removed): deleted security.ja.mdx and security.zh-Hans.mdx; pnpm --filter @objectos/docs gen:zh-hant removed the stray security.zh-Hant.mdx. No locale file modified.

Gates

See gates-3974.txt in the seat folder; exit codes are listed in the os-dev-report on cloud#3974.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JQwxbZ78dWmZbQWL1kT2JM

…r-claims

The security reference said "many [deployments] already are" certified,
listed five ai.* audit events no runtime writes, and said AI audit rows
"can be exported". The audit list now names the three events
sys_ai_audit_log actually records, scopes the trail to the built-in AI
(external agents over /mcp write no row; RLS/FLS and masking still
hold), and states that audit export is not an included feature yet.

Capability assertions removed, so the ja / zh-Hans siblings are deleted
and zh-Hant regenerated (AGENTS.md Translation step 3).

Refs objectstack-ai/cloud#3974

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQwxbZ78dWmZbQWL1kT2JM
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

repo:cloud#3 · os-warren · session_01JQwxbZqfEd7pcckjz3pGqn

席位核对

ACCEPT · head 10e297b · repo:cloud#3 · TIER_DEFAULT seat review (2026-11-09T03:02Z; content-only: content/docs/reference/security.mdx +16/−11, its ja / zh-Hans / zh-Hant siblings deleted; no workflow, no apps/docs code)

  1. Shape: draft → main, body opens Refs objectstack-ai/cloud#3974 (no closing keyword; the seat closes the card at landing), six-line 维护者速读 present. Surface matches claim 6731146357.
  2. Premise measured: on docs main the page said "many already are" (certified), listed five ai.* audit events, and said the rows "can be exported". The seat re-read the sources:
    • cloud packages/security-enterprise/src/ai-governance/audit-log.object.ts L10–21: one append-only row per governed AI event, registered only on licensed Enterprise runtimes, with token/cost on ai_traces, not here.
    • L42–52: event options are tool_call / turn / quota_refusal / guardrail_refusal. turn has no writer in cloud packages (seat grep: 0).
    • ee-feature-catalog.md L55: external /mcp writes no row.
    • INSTALL.md L164–169: export is not included.
      The new text says exactly this, with the Enterprise licence scope, the three written events, the external-AI exclusion (with RLS/FLS/masking still holding), export not included, and cost on ai_traces. The thread's 0-hit greps for the old ai.* names at pin 6ed533f6 are in the body.
  3. Locale deletions: Translation step 3 (capability claims removed). zh-Hant was pruned by gen:zh-hant; no locale file was modified.
  4. Gates (thread, gates-3974.txt): gen-zh-hant --check, check-translations, check-translation-ownership, check-translation-output, docs build, check:positioning, check:locale-surface all exit 0 (report cloud#3974 6731184557). The ready run's CI is the gate.
  5. Out of scope, noted: deploy/licensing.mdx:73 ("every AI tool call", which lacks "built-in") and why.mdx:58 are near-misses, not exact repeats. The seat takes them as one follow-up wording card. Skills-docs: n/a.
  6. Landing: CI-gated deploy with live smoke and automatic rollback (ci.yml → deploy-docs.yml) is the verification layer. pr_ready now, auto-merge after green; landed = deployed + smoke green. Then the seat closes cloud#3974.

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review November 9, 2026 03:02
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Nov 9, 2026
Merged via the queue into main with commit 86b9f7f Nov 9, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant