fix(onboard): bake corporate CA into DCode cold builds - #8150
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughDeep Agents Docker builds now accept a corporate CA bundle, validate and install it in base and final images, and include build arguments in cache resolution. Tests and documentation cover the new flow. ChangesCorporate CA trust
Estimated code review effort: 3 (Moderate) | ~25 minutes Suggested labels: Sequence Diagram(s)sequenceDiagram
participant HostEnvironment
participant BaseImageResolution
participant DockerBuild
participant DeepAgentsBaseImage
participant DeepAgentsFinalImage
participant SystemTrustStore
HostEnvironment->>BaseImageResolution: Provide corporate CA bundle
BaseImageResolution->>DockerBuild: Pass NEMOCLAW_CORPORATE_CA_B64
DockerBuild->>DeepAgentsBaseImage: Build base image
DeepAgentsBaseImage->>SystemTrustStore: Decode, validate, and install CA
DockerBuild->>DeepAgentsFinalImage: Build final image
DeepAgentsFinalImage->>SystemTrustStore: Decode, validate, and install CA
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 89d1cda in the TypeScript / code-coverage/cliThe overall coverage in commit 89d1cda in the Show a code coverage summary of the most impacted files.
Updated |
|
🌿 Preview your docs: https://nvidia-preview-pr-8150.docs.buildwithfern.com/nemoclaw |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate. 2 semantic terminology decisionsTerminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.
E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: 1 optional E2E recommendation
This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
agents/langchain-deepagents-code/Dockerfile (1)
32-44: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winPin
/usr/local/share/nemoclawdirectory permissions explicitly.
mkdir -p /usr/local/share/nemoclawat line 34 relies on the active umask for the directory mode.Dockerfile.baseusesinstall -d -m 0755 -o root -g rootfor the same purpose at line 85. Use the same explicit form here for consistent, deterministic permissions on a directory that holds trust material.🔒️ Proposed fix for explicit directory permissions
- mkdir -p /usr/local/share/nemoclaw \ + install -d -o root -g root -m 0755 /usr/local/share/nemoclaw \🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@agents/langchain-deepagents-code/Dockerfile` around lines 32 - 44, Update the directory creation in the corporate CA setup block to use an explicit root-owned 0755 directory creation, matching the established Dockerfile.base convention, instead of relying on the active umask. Keep the existing CA decoding, validation, ownership, and file-permission steps unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/security/configure-corporate-ca-trust.mdx`:
- Line 11: Update the documentation around the agent-variant configuration to
ensure the troubleshooting link is only rendered for supported variants,
`openclaw` and `hermes`; either wrap it in an `openclaw,hermes` block or provide
a corresponding Deep Agents troubleshooting section with a valid anchor.
In `@src/lib/agent/base-image.test.ts`:
- Around line 375-402: Update the test around ensureAgentBaseImage so it forces
the local base-image rebuild path instead of allowing the compatible resolved
image to be reused. Then assert the observable dockerBuild boundary via
dockerBuildMock, verifying its fourth argument contains
NEMOCLAW_CORPORATE_CA_B64 with the resolved certificate value, while retaining
the existing certificate encoding validation as appropriate.
---
Nitpick comments:
In `@agents/langchain-deepagents-code/Dockerfile`:
- Around line 32-44: Update the directory creation in the corporate CA setup
block to use an explicit root-owned 0755 directory creation, matching the
established Dockerfile.base convention, instead of relying on the active umask.
Keep the existing CA decoding, validation, ownership, and file-permission steps
unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 82943362-a46e-4374-bd67-fbcc1f173e41
📒 Files selected for processing (15)
agents/langchain-deepagents-code/Dockerfileagents/langchain-deepagents-code/Dockerfile.baseci/source-shape-test-budget.jsondocs/index.ymldocs/security/configure-corporate-ca-trust.mdxsrc/lib/adapters/docker/image.tssrc/lib/adapters/docker/index.test.tssrc/lib/agent/base-image.test.tssrc/lib/agent/base-image.tssrc/lib/sandbox-base-image.tssrc/lib/sandbox-base-image/resolution-key.test.tssrc/lib/sandbox-base-image/resolution-key.tssrc/lib/sandbox-base-image/types.tstest/corporate-ca-build-tls-anchor.test.tstest/corporate-ca-dockerfile-decode.test.ts
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
apurvvkumaria
left a comment
There was a problem hiding this comment.
Security review for the current revision: PASS with no blocking findings.
| Category | Verdict | Evidence |
|---|---|---|
| Secrets and credentials | PASS | The CA bundle is a public certificate; no credential paths or secret values are added. |
| Input validation and sanitization | PASS | Base64 and every X.509 block are validated before trust installation; malformed input fails closed. |
| Authentication and authorization | PASS | No authentication or authorization behavior changes. |
| Dependencies and third-party libraries | PASS | No dependency versions or registries change. |
| Error handling and logging | PASS | Failures are explicit and do not print CA contents or host paths. |
| Cryptography and data protection | PASS | Node X.509 parsing validates certificate structure; SHA-256 fingerprints bind build arguments without exposing values. |
| Configuration and secure defaults | PASS | Trust files remain root-owned and read-only; empty CA input is a no-op. |
| Security testing | PASS | Negative-path decode coverage and ordering checks cover native-security, Perl, Debian snapshot, discovery npm, and final-image trust paths. |
| Holistic posture | PASS | Builder stages now receive trust before HTTPS operations, closing the cold-build gap without weakening image provenance or sandbox boundaries. |
Focused validation passed: plugin build, 56 targeted tests, configured hooks, Dockerfile lint, source-shape budget, test-title policy, and CLI typecheck. The independent documentation writer re-review reports docs-updated with no further changes required.
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
apurvvkumaria
left a comment
There was a problem hiding this comment.
Security review refresh for commit 98dbc12: PASS.
The only change since the full nine-category review is an unset-safe default in two corporate-CA conditionals. It preserves fail-closed validation when a CA is supplied and makes an omitted build argument follow the intended no-CA path under strict shell execution.
Input validation, secrets, authentication and authorization, cryptography, dependency security, sensitive-data handling, privilege boundaries, security testing, and system security remain PASS. The previously failing sandbox-base security-package test now passes, the CA ordering test passes, and the Dockerfile hooks including hadolint pass. The documentation writer confirmed that the existing documentation remains accurate.
Prior full review: #8150 (review)
apurvvkumaria
left a comment
There was a problem hiding this comment.
Security and correctness review: PASS for revision 98dbc12.
The corporate CA value remains optional and unset-safe in strict shell execution. When provided, the build decodes into a temporary file, validates a single certificate, installs only after validation, refreshes the trust store, and removes the temporary input. Invalid or multi-certificate payloads fail the build without persisting untrusted material. The cold-build ordering remains correct, and the follow-up does not weaken trust boundaries or expose certificate contents.
Focused Dockerfile security-package and CA-ordering tests pass, Dockerfile hooks pass, the DCode certificate cases pass, and the documentation writer confirmed the existing corporate CA guidance already covers the behavior. The current repository-wide dependency audit remains an external merge blocker and is not waived by this approval.
apurvvkumaria
left a comment
There was a problem hiding this comment.
Approved after reviewing revision 88c269e90.
The follow-up commit strengthens the DCode corporate-CA build-argument proof by asserting the actual Docker build invocation and correctly scopes the external-channel troubleshooting link to OpenClaw and Hermes. The merge from current main does not change this PR's feature behavior.
The sensitive-path review remains PASS across secrets, input handling, authorization, dependencies, error handling, cryptography, configuration, security testing, and system boundaries: the CA bytes remain encoded only for the build argument, are represented by provenance rather than value, and are not persisted into logs or registry state. Focused tests pass 25/25, CLI type-check passes, and the documentation writer confirmed all three guide variants with a successful docs build.
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Require local fallback reuse to match the provenance key for the current build inputs. Changing, removing, or disabling a corporate CA now rebuilds or fails closed. This prevents reuse of an image that still trusts a previous corporate CA. Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Prepares the canonical v0.0.102 release documentation from the current release-labeled scope. The change adds a dated changelog for all 38 user-facing shipping PRs and corrects the OpenClaw agent command reference for the behavior delivered by #8191. ## Changes - Add `docs/changelog/2026-08-04.mdx` with the v0.0.102 release summary, detailed behavior changes, support boundaries, security evidence links, and links to durable documentation. - Update `docs/reference/commands.mdx` to describe non-JSON OpenClaw output capture, its combined limit, marker handling, stream suppression, recovery guidance, and exit behavior. - [#8167](#8167) -> `docs/changelog/2026-08-04.mdx`: Records authenticated attachment of operator-managed llama.cpp servers. - [#8129](#8129) -> `docs/changelog/2026-08-04.mdx`: Records the Experimental managed vLLM profile for two DGX Spark systems. - [#7983](#7983) -> `docs/changelog/2026-08-04.mdx`: Records qualification of the May 2026 GB300WS factory image. - [#8207](#8207) -> `docs/changelog/2026-08-04.mdx`: Records the qualified DGX Station driver transaction. - [#8208](#8208) -> `docs/changelog/2026-08-04.mdx`: Records mode-bound Express resume state. - [#8158](#8158) -> `docs/changelog/2026-08-04.mdx`: Records recovery of host-global dual-Station runtime ownership. - [#8145](#8145) -> `docs/changelog/2026-08-04.mdx`: Records Windows-host Ollama validation from Docker Desktop's network context. - [#8190](#8190) -> `docs/changelog/2026-08-04.mdx`: Records HTTP model pulls when WSL has no local Ollama executable. - [#8195](#8195) -> `docs/changelog/2026-08-04.mdx`: Records reuse of a healthy installer-managed CLI. - [#8053](#8053) -> `docs/changelog/2026-08-04.mdx`: Records early rejection of incompatible OpenShell gateway versions. - [#8098](#8098) -> `docs/changelog/2026-08-04.mdx`: Records the bounded package-service-to-standalone gateway recovery transition. - [#8216](#8216) -> `docs/changelog/2026-08-04.mdx`: Records the final dashboard port selected during multi-sandbox onboarding. - [#8146](#8146) -> `docs/changelog/2026-08-04.mdx`: Records managed startup-state restoration for stopped sandboxes. - [#8092](#8092) -> `docs/changelog/2026-08-04.mdx`: Records gateway watchdog recovery for classified not-serving states. - [#8182](#8182) -> `docs/changelog/2026-08-04.mdx`: Records consistent managed-recovery wait configuration. - [#8040](#8040) -> `docs/changelog/2026-08-04.mdx`: Records Docker sandbox rollback authority through late validation. - [#8130](#8130) -> `docs/changelog/2026-08-04.mdx`: Records bounded Shields deadline recovery and durable containment. - [#8086](#8086) -> `docs/changelog/2026-08-04.mdx`: Records repair of narrowly validated permission-only configuration drift. - [#8122](#8122) -> `docs/changelog/2026-08-04.mdx`: Records prompt failure and guidance for corrupt transition locks. - [#8124](#8124) -> `docs/changelog/2026-08-04.mdx`: Records policy restoration flags, previews, and target revalidation. - [#7886](#7886) -> `docs/changelog/2026-08-04.mdx`: Records explicit destruction after pre-delete Shields hardening failures while preserving recovery authority. - [#7901](#7901) -> `docs/changelog/2026-08-04.mdx`: Records multi-port uninstall behavior and shared-resource preservation. - [#7984](#7984) -> `docs/changelog/2026-08-04.mdx`: Records one classified transient remote MCP startup retry. - [#7954](#7954) -> `docs/changelog/2026-08-04.mdx`: Records bounded hosted-inference probe replies. - [#7574](#7574) -> `docs/changelog/2026-08-04.mdx`: Records preservation of validated reasoning capabilities through onboarding. - [#8089](#8089) -> `docs/changelog/2026-08-04.mdx`: Records proxy routing for Hermes WhatsApp pairing and media traffic. - [#7682](#7682) -> `docs/changelog/2026-08-04.mdx`: Records native Hermes session deletion and identifier validation. - [#8150](#8150) -> `docs/changelog/2026-08-04.mdx`: Records corporate CA trust for LangChain Deep Agents Code image builds. - [#8156](#8156) -> `docs/changelog/2026-08-04.mdx`: Records reviewed managed runtime dependency remediation. - [#8180](#8180) -> `docs/changelog/2026-08-04.mdx`: Records reviewed MCP discovery runtime dependency updates. - [#8196](#8196) -> `docs/changelog/2026-08-04.mdx`: Records private npm dependency remediation across managed images. - [#8203](#8203) -> `docs/changelog/2026-08-04.mdx`: Records reviewed Hermes and LangChain Deep Agents Code Python dependency updates. - [#8125](#8125) -> `docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for invalid enumerated CLI values. - [#8193](#8193) -> `docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for unresolved sandbox base images. - [#8118](#8118) -> `docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for changed gateway authority. - [#8191](#8191) -> `docs/changelog/2026-08-04.mdx`, `docs/reference/commands.mdx`: Records output capture, marker handling, recovery guidance, and exit behavior for non-JSON OpenClaw agent commands. - [#8187](#8187) -> `docs/changelog/2026-08-04.mdx`: Records the aligned interactive-installation start across supported agents. - [#8153](#8153) -> `docs/changelog/2026-08-04.mdx`: Records current product capabilities and support boundaries. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [x] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [ ] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [x] Tests not applicable — justification: This documentation-only release preparation does not change executable behavior. Existing changelog and published-route tests pass. - [x] Docs updated for user-facing behavior changes - [ ] Docs not applicable — justification: - [ ] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: Independently reviewed `docs/changelog/2026-08-04.mdx` and `docs/reference/commands.mdx` at commit `b89913780`. All 38 user-facing v0.0.102 PRs are represented, #8191 behavior matches the implementation, and the writing rules, documentation style, controlled terminology, route structure, and skip policy pass review. Targeted tests pass 36/36 and the documentation build completes with 0 errors. - Agent: Codex Desktop independent documentation writer <!-- docs-review-head-sha: b899137 --> <!-- docs-review-agents-blob-sha: 3dd7c24 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable - Station profile/scenario: Not applicable - Result: Not applicable - Supporting evidence: Not applicable ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — `npx vitest run --project integration test/changelog-docs.test.ts test/check-docs-published-routes.test.ts` passed 36/36. - [x] Applicable broad gate passed — not applicable to documentation-only changes; `npm run docs` completed successfully with 0 errors. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) — completed with 0 errors and 2 existing Fern warnings. - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [x] New doc pages include SPDX header and frontmatter (new pages only) — the native dated changelog uses the required parser-safe MDX SPDX comment and intentionally has no frontmatter. --- Signed-off-by: Apurv Kumaria <akumaria@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Added release notes for v0.0.102, covering authentication, hardware setup, WSL, installer recovery, sandbox resilience, policy management, inference reliability, CLI improvements, and unified quickstarts. - Updated command documentation to explain how non-JSON agent output is collected, replayed, and reported. - **Bug Fixes** - Improved command-output recovery guidance when output exceeds limits or contains unsupported fallback markers. - Preserved accurate command exit-status reporting after output processing. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
…ge (#9417) ## Summary `agents/pi/Dockerfile.base` declares `ARG NEMOCLAW_CORPORATE_CA_B64` and anchors the decoded certificates before its HTTPS package fetches, but NemoClaw supplied that build argument only for Deep Agents Code. A local Pi base image build therefore received the empty default and produced a base image without the configured corporate CA. NemoClaw now supplies the argument for Pi as well. ## Related Issue Fixes #9416 ## Changes - Return the resolved corporate CA build argument for the Pi base image build in `agentBaseImageBuildArgs`. Pi and Deep Agents Code are the only agents whose `Dockerfile.base` declares `ARG NEMOCLAW_CORPORATE_CA_B64`. - Extend the existing owning test in `src/lib/agent/base-image.test.ts` to a table test whose agent list is read from the checked-in `agents/*/Dockerfile.base` files. An agent base image that starts declaring the argument without a matching build argument now fails this test. No new test file and no new production abstraction were added. ## Type of Change - [x] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: requested from maintainers; this change adds no new trust decision and reuses the existing `corporateCaBuildArgs` path introduced by #8150. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub — the single commit is SSH-signed; confirm GitHub reports it as `Verified` after pushing the branch, before opening this PR. - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable — `prek` `pre-commit` and `pre-push` stages ran over `upstream/main..HEAD` and passed, including `Codebase growth guardrails` and `Source-shape test budget`; `npx commitlint --from HEAD~1 --to HEAD` exited 0. - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: `npx vitest run --project cli src/lib/agent/base-image.test.ts` — `31 passed (31)`. The Pi case fails on the parent commit with `expected undefined to be type of 'string'`. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: not run; this change touches one function and its owning test. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) Pi is a release candidate. `CANDIDATE_MANAGED_IMAGE_AGENTS` lists `pi`, and selection requires `NEMOCLAW_CANDIDATE_AGENTS=1` plus a published qualification receipt, so I could not run a Pi onboard or rebuild to observe the built image. The evidence is the checked-in Dockerfile, the build call sites, and the regression test. --- Signed-off-by: Udaya Tejas <udayatejas2004@gmail.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Corporate certificate support is now enabled for additional agent base images, including Pi. * Agent base image validation now automatically covers all discovered agents that declare corporate certificate support. * **Bug Fixes** * Improved verification that corporate certificates are correctly passed to and decoded by supported agent images. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Udaya Tejas <udayatejas2004@gmail.com>
Summary
Before this change, a first Deep Agents Code build could fail behind corporate TLS inspection because its base-image stages did not receive the configured corporate CA.
NemoClaw now validates and installs that CA before the affected HTTPS fetches and installs it again in the final sandbox image.
A locally built base image is reused only when its recorded build inputs match the current corporate CA configuration.
Related Issue
Fixes #8119
Changes
src/lib/adapters/docker/index.test.ts.basicConstraints CA:TRUEbefore adding it to build or runtime trust.0444, and keep their directories at mode0755.main.Type of Change
Quality Gates
89d1cdafb1a6440c507931b4fde03798a01df148with no findings.Documentation Writer Review
docs-updated89d1cdafb1a6440c507931b4fde03798a01df148against1ee723a3c0fd61fa6c8217b81035208ef5a68e09.docs/security/configure-corporate-ca-trust.mdxanddocs/index.ymlpublish the Deep Agents Code corporate CA procedure. The documented cold-build and final-image trust behavior matches the Dockerfiles, host-side validation, provenance checks, and regression coverage. The terminology, variant markup, structure, and commands follow the repository writing and documentation guides. GitHub CI provides documentation validation for this commit.DGX Station Hardware Evidence
scripts/prepare-dgx-station-host.sh.Verification
Signed-off-by:line and every commit appears asVerifiedin GitHub — verification is pending after local commit89d1cdafb1a6440c507931b4fde03798a01df148is pushed.pre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailable — commit hooks passed; pre-push is pending.npm run docsbuilds without warnings (doc changes only) — GitHub documentation checks are pending.GitHub CI is authoritative.
No duplicate local test, documentation, build, or typecheck suite ran after the merge refresh.
Security Review
PASS89d1cdafb1a6440c507931b4fde03798a01df1481ee723a3c0fd61fa6c8217b81035208ef5a68e09PASS; input validation and data sanitizationPASS; authentication and authorizationPASS; dependencies and third-party librariesPASS; error handling and loggingPASS; cryptography and data protectionPASS; configuration and security controlsPASS; security testingPASS; system securityPASS.basicConstraints CA:TRUE. File ownership and modes remain explicit. SHA-256 build-argument fingerprints bind local image reuse to the selected CA without recording its value. Incompatible local bases rebuild or fail closed. Negative coverage includes invalid base64, malformed PEM, corrupt bundles, certificate requests, and non-CA leaf certificates. GitHub CI provides execution validation for this commit.Signed-off-by: Carlos Villela cvillela@nvidia.com
Signed-off-by: Apurv Kumaria akumaria@nvidia.com
Summary by CodeRabbit
New Features
Documentation
Bug Fixes