Skip to content

Add Tech Notes section under Enterprise with LLM key protection article#484

Draft
jpshackelford wants to merge 6 commits intomainfrom
tech-notes-llm-key-protection
Draft

Add Tech Notes section under Enterprise with LLM key protection article#484
jpshackelford wants to merge 6 commits intomainfrom
tech-notes-llm-key-protection

Conversation

@jpshackelford
Copy link
Copy Markdown
Contributor

Summary

This PR adds a new "Tech Notes" subsection under the Enterprise tab, providing in-depth technical articles for security teams, platform engineers, and developers who want to understand how OpenHands works under the hood.

Changes

New Section: Tech Notes

  • Added enterprise/tech-notes/ directory
  • Created index page explaining the purpose and audience for Tech Notes
  • Added Tech Notes group to Enterprise tab in docs.json (appears last in sidebar)

First Tech Note: LLM API Key Protection

A comprehensive technical article explaining how OpenHands protects LLM API keys from agent access and exfiltration. Covers:

  • Architecture Overview: Split architecture diagram showing agent server vs sandbox isolation
  • Protection Mechanisms:
    • LLM API key isolation (never exposed to sandbox environment)
    • SESSION_API_KEY stripping via sanitized_env()
    • On-demand secret injection with output masking
    • LookupSecret for dynamic token fetching
  • Security Testing: References to existing security tests in the codebase
  • BYOK Implications: Table showing what's protected vs. controlled access
  • Attack Vectors & Mitigations: Addresses common security concerns
  • Code Examples: Actual implementation snippets from the SDK

Files Changed

File Description
docs.json Added Tech Notes group to Enterprise tab
enterprise/tech-notes/index.mdx Landing page for Tech Notes section
enterprise/tech-notes/llm-key-protection.mdx First tech note on LLM key protection

Preview

The Tech Notes section will appear at the bottom of the Enterprise sidebar:

  • Enterprise
    • ...existing pages...
    • K8s Install
    • Tech Notes ← new
      • Tech Notes (index)
      • LLM API Key Protection

This PR was created by an AI agent (OpenHands) on behalf of the user.

@jpshackelford can click here to continue refining the PR

- Create new Tech Notes subsection under Enterprise tab
- Add index page explaining the purpose of Tech Notes
- Add first tech note: LLM API Key Protection
  - Explains how LLM keys are protected from agent access
  - Covers SESSION_API_KEY stripping, secret masking, and container isolation
  - Includes code examples and security test references
@mintlify
Copy link
Copy Markdown

mintlify Bot commented Apr 29, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
all-hands-ai 🟢 Ready View Preview Apr 29, 2026, 11:51 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

- Add D2 source file for architecture diagram
- Generate clean SVG using D2 diagramming tool
- Update markdown to use Frame component with SVG image
- Add 'Understanding Controlled: LLM vs Agent Access' subsection
- Update BYOK table to show both LLM and Agent exposure
- Make explicit that registered secrets are fully accessible to agent by design
- Clarify that output masking protects conversation history, not agent access

Co-authored-by: openhands <openhands@all-hands.dev>
- Explain how master API keys are configured (SaaS vs Enterprise)
- Describe virtual key generation per Organization/Personal Workspace
- Clarify BYOK scenarios and when LiteLLM proxy is involved
- Show that virtual keys cannot be used directly with provider APIs

Co-authored-by: openhands <openhands@all-hands.dev>
- Explain that users can instruct agent to write secrets to files
- Note that once on disk, values could be read and transmitted
- Emphasize security protects secrets from LLM, not from the user who stored them

Co-authored-by: openhands <openhands@all-hands.dev>
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.

2 participants