Skip to content

chore(security): allowlist Hermes documentation key - #11740

Merged
ericksoa merged 1 commit into
mainfrom
codex/chore-nspect-hermes-allowlist
Sep 14, 2026
Merged

ericksoa merged 1 commit into
mainfrom
codex/chore-nspect-hermes-allowlist

Conversation

@prekshivyas

@prekshivyas prekshivyas commented Sep 14, 2026 •

Copy link
Copy Markdown
Collaborator

Outcome

Add a root nSpect allowlist entry for the read-only Algolia key in the checksum-pinned Hermes source. The rule matches only the reported image path, detector, and redacted value.

Reason

Hermes intentionally publishes this key in its documentation site configuration. nSpect support directed NemoClaw to use the secret-scan allowlist for this finding. An Algolia permission read returned only search, browse, listIndexes, and settings; none permit mutation.

Changes

  • Add .nspect-allowlist.toml with one pulse-trufflehog entry for /opt/hermes/website/docusaurus.config.ts.

Verification

  • nSpect allowlist validator — passed, as confirmed by the requester.
  • Python tomllib parse and exact-scope assertions — passed.
  • Normal commit hooks — passed, including TOML validation, gitleaks, repository checks, and commitlint.
  • Hermes v2026.8.27 archive checksum — matched the pinned SHA-256 value.
  • Algolia key permission read — returned read-only ACLs and no mutation ACLs.
  • Diff inspection — contains only the redacted nSpect value; no secret, API key, or credential is present.
  • Public documentation — not required because this scan configuration does not change user behavior.

Review notes

nSpect support directed the NemoClaw team to allowlist this false positive. The literal AlgoliaAdminKey value is the nSpect detector identifier; it does not describe the key's effective ACLs.


Signed-off-by: Prekshi Vyas prekshiv@nvidia.com

Summary by CodeRabbit

  • Chores
    • Added configuration to allowlist the Algolia admin key pattern in the Docusaurus configuration.

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas prekshivyas self-assigned this Sep 14, 2026
@coderabbitai

coderabbitai Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b4ecce8c-6569-45e1-bbab-e0d7c276f3bf

📥 Commits

Reviewing files that changed from the base of the PR and between 3d7bcbf and 5df0d6e.

📒 Files selected for processing (1)
  • .nspect-allowlist.toml

Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review.


📝 Walkthrough

Walkthrough

The PR adds .nspect-allowlist.toml with SPDX metadata, version 1.0.0, a Docusaurus configuration target, and an AlgoliaAdminKey allowlist entry.

Changes

Allowlist configuration

Layer / File(s) Summary
Algolia admin key allowlist
.nspect-allowlist.toml
Adds SPDX metadata, version 1.0.0, the /opt/hermes/website/docusaurus.config.ts target, and an AlgoliaAdminKey allowlist value.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Suggested reviewers: apurvvkumaria

Merge Risk: ⚪ Minimal · up to 5df0d

This configuration-only change adds a targeted exception with no established merge-blocking risk.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the security allowlist change for the Hermes documentation key. It matches the main change in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/chore-nspect-hermes-allowlist

Comment @coderabbitai help to get the list of available commands.

@github-code-quality

github-code-quality Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall line coverage in commit 5df0d6e in the codex/chore-nspect-h... branch remains at 96%, unchanged from commit 3d7bcbf in the main branch.

TypeScript / code-coverage/cli

The overall line coverage in commit 5df0d6e in the codex/chore-nspect-h... branch remains at 83%, unchanged from commit 3d7bcbf in the main branch.

Show a line coverage summary of the most impacted files.
File main 3d7bcbf codex/chore-nspect-h... 5df0d6e +/-
src/lib/onboard...uter-command.ts 65% 52% -13%
src/lib/onboard...outer-python.ts 96% 84% -12%
src/lib/sandbox...rce-identity.ts 82% 82% 0%
src/lib/onboard...uild-context.ts 74% 75% +1%

Updated September 14, 2026 17:43 UTC

@github-actions

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit 5df0d6e. Include the Advisor findings in the complete PR feedback collection. Verify and group valid findings before repair.

All previous runs

ericksoa
ericksoa approved these changes Sep 14, 2026 •
@ericksoa
ericksoa merged commit 61af43a into main Sep 14, 2026
69 checks passed
@ericksoa
ericksoa deleted the codex/chore-nspect-hermes-allowlist branch September 14, 2026 18:34
cjagwani added a commit that referenced this pull request Sep 15, 2026
## Release target

This pre-tag documentation PR prepares `v0.0.125` from merged changes
after `v0.0.124` through `a05d1f238f84e59e6d4fbdc30e547ec7281772c4`.

It adds the canonical dated release entry in
`docs/changelog/2026-09-14.mdx` with the exact `## v0.0.125` heading. It
also retains the independently authored cumulative updates to the
Ollama, sandbox recovery, command reference, and troubleshooting pages.

## Source summary

- [#11759](#11759) ->
`docs/inference/set-up-ollama.mdx`,
`docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`,
`docs/reference/commands.mdx`, and `docs/changelog/2026-09-14.mdx`:
Documents recovery of the exact stopped managed Ollama runtime during
interactive Hermes connect and launch.
- [#11735](#11735) ->
`docs/reference/commands.mdx` and `docs/changelog/2026-09-14.mdx`:
Documents the bounded Hermes forward authority and transaction budgets.
- [#11691](#11691) ->
`docs/reference/commands.mdx`,
`docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`, and
`docs/changelog/2026-09-14.mdx`: Documents authorized recovery of the
selected unreachable Hermes ACP gateway.
- [#11681](#11681) ->
`docs/reference/commands.mdx`,
`docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`, and
`docs/changelog/2026-09-14.mdx`: Documents the fail-closed conflicting
or ambiguous gateway identity boundary.
- [#11760](#11760) ->
`docs/reference/commands.mdx` and `docs/changelog/2026-09-14.mdx`:
Documents incomplete, resumable onboarding after process-inspection or
secret-boundary refusal.
- [#11745](#11745) ->
`docs/changelog/2026-09-14.mdx`: Records experimental version 2
activation-evidence ID alignment.
- [#11612](#11612) ->
`docs/reference/commands.mdx`,
`docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`, and
`docs/changelog/2026-09-14.mdx`: Documents legacy upgrade identity and
digest-verified prepared policy reuse.
- [#11585](#11585) ->
`docs/changelog/2026-09-14.mdx`: Records awaited Hermes Portable
lifecycle policy observation and authority revalidation.
- [#11496](#11496) ->
`docs/reference/commands.mdx` and `docs/changelog/2026-09-14.mdx`:
Documents recorded-gateway upload and download completion semantics.
- [#11695](#11695) ->
`docs/changelog/2026-09-14.mdx`: Records managed OpenClaw native
loopback and removal of private-interface dialback layers.
- [#11730](#11730) ->
`docs/reference/troubleshooting.mdx` and
`docs/changelog/2026-09-14.mdx`: Documents safe admission of Podman's
standard rootless socket layout.
- [#11713](#11713) ->
`docs/changelog/2026-09-14.mdx`: Records restored protected
managed-image qualification, bounded diagnostics, and rollback ordering.
- [#11663](#11663) ->
`docs/changelog/2026-09-14.mdx`: Records lifecycle-trigger coverage for
activation and publication.
- [#11607](#11607) ->
`docs/changelog/2026-09-14.mdx`: Records retained platform compatibility
evidence per tested main commit.
- [#11769](#11769) ->
`docs/changelog/2026-09-14.mdx`: Records explicit gateway initialization
before isolated qualification cleanup.
- [#11742](#11742) ->
`docs/changelog/2026-09-14.mdx`: Records bounded transient tool-download
retries and repository-local lint tooling.
- [#11743](#11743) ->
`docs/changelog/2026-09-14.mdx`: Records removal of the unused full-E2E
container wrapper.
- [#11588](#11588) ->
`docs/changelog/2026-09-14.mdx`: Records the narrower EXDEV live-test
boundary.
- [#11708](#11708) ->
`docs/changelog/2026-09-14.mdx`: Records bounded parallel onboarding
probes with unchanged assertions.
- [#11704](#11704) ->
`docs/changelog/2026-09-14.mdx`: Records bounded parallel agent-alias
cases with unchanged behavior coverage.
- [#11773](#11773) ->
`docs/changelog/2026-09-14.mdx`: Records valid unresolved required-E2E
evidence when no supported selector exists.
- [#11762](#11762) ->
`docs/changelog/2026-09-14.mdx`: Records Advisor's nonempty
required-evidence read contract.
- [#11728](#11728) ->
`docs/changelog/2026-09-14.mdx`: Records bounded, redacted Advisor
tool-flow failure metadata.
- [#11705](#11705) ->
`docs/changelog/2026-09-14.mdx`: Records removal of unused messaging
internals without runtime behavior changes.
- [#11740](#11740) ->
`docs/changelog/2026-09-14.mdx`: Records the exact read-only Hermes
documentation-key scan allowlist.

## Verification

- Independent documentation-writer review approved the exact changelog
patch; binary diff SHA-256
`ebc4d3cd837e7bc85aeb92f2f7379933a92076abc4afd0bd83c530d6b95878a5`.
- `npx vitest run --project integration
test/automation/releases/release-candidate-evidence.test.ts` passed 8
tests.
- `npm run docs` passed with zero errors and validated native changelog
links and guarded routes.
- Normal pre-commit and pre-push hooks passed, including publication
validation, repository checks, secret scanning, builds, and commitlint.
- The documented `test/changelog-docs.test.ts` path does not exist on
this commit; it was not counted as passing evidence.

Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>

---------

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Charan Jagwani <cjagwani@nvidia.com>
@wscurran wscurran added area: security Security controls, permissions, secrets, or hardening chore Build, CI, dependency, or tooling maintenance integration: hermes Hermes integration behavior labels Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: security Security controls, permissions, secrets, or hardening chore Build, CI, dependency, or tooling maintenance integration: hermes Hermes integration behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants