Add multi-region support for Robusta platform endpoints - #2094
Conversation
Mirror the region-picker pattern from robusta-dev/robusta@1f927f1 by documenting the regional URL variants wherever the HolmesGPT docs reference platform.robusta.dev or api.robusta.dev. MkDocs has no equivalent of Robusta's Sphinx region picker, so each affected page now carries an inline US/EU/AP table — matching the existing pattern in docs/data-sources/oauth-mcp-servers.md. Updated pages: - ai-providers/robusta-ai.md: new "Selecting a Region" section, templated ${ROBUSTA_API_ENDPOINT} in How It Works, region-aware Troubleshooting and ROBUSTA_API_ENDPOINT env var description - installation/ui-installation.md: regional sign-up URLs - reference/environment-variables.md: regional LITELLM_MODEL_COST_MAP_URL mirrors - data-sources/builtin-toolsets/coralogix-logs.md: regional platform URLs for AI Customization - data-sources/builtin-toolsets/kubernetes-mcp.md: regional Entra ID OAuth redirect URIs Signed-off-by: Claude <noreply@anthropic.com>
Use MkDocs Material content tabs (=== "US" / "EU" / "AP") instead of static markdown tables for region selection. With content.tabs.link already enabled in mkdocs.yml, Material renders these as a horizontal segmented control and persists the choice across pages via localStorage — the MkDocs-native equivalent of the JS region picker from robusta-dev/robusta@1f927f1. Affects the same five pages as the previous commit: robusta-ai.md, ui-installation.md, environment-variables.md, coralogix-logs.md, kubernetes-mcp.md. Signed-off-by: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughAdds a MkDocs custom fence ( ChangesRegion-specific Robusta configuration documentation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ Deploy Preview for holmes-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Replace the duplicated `=== "US" / "EU" / "AP"` tab blocks across 5 docs
with a single custom Markdown fence. The fence takes a US URL as input,
auto-rewrites `api.robusta.dev` and `platform.robusta.dev` to the
regional subdomain per tab, and renders one of three shapes:
- Plain code (default): URLs, redirect URIs, mirror addresses
- Markdown link via `[text](url)`: clickable platform links
- YAML config via `{lang=yaml}`: helm values blocks
Authoring goes from 15-25 lines of tab boilerplate per usage to 3-5
lines. Adding AP-equivalent or future regions only touches the fence's
`ROBUSTA_REGIONS` tuple, not every doc.
Mirrors the spirit of robusta-dev/robusta@1f927f1 — single source of
truth for the region URL pattern, rendered with the existing MkDocs
Material content-tabs primitive and Material's content.tabs.link
persistence.
Signed-off-by: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/custom_fences.py (1)
139-217: ⚡ Quick winAdd type hints to function signature.
Type hints are required per coding guidelines. The function signature should include parameter types and return type annotation.
📝 Proposed fix
-def robusta_region_fence_format(source, language, css_class, options, md, **kwargs): +def robusta_region_fence_format( + source: str, + language: str, + css_class: str, + options: dict | None, + md, + **kwargs +) -> str:Note: The
mdparameter type depends on the MkDocs API (likely a Markdown instance); you may need to import the appropriate type or useAnyif the exact type isn't readily available.As per coding guidelines: Type hints are required in Python files; mypy configuration is in pyproject.toml
🤖 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 `@docs/custom_fences.py` around lines 139 - 217, The function robusta_region_fence_format is missing type hints; update its signature to include parameter and return types (e.g., source: str, language: str, css_class: str, options: Optional[Mapping[str, Any]] = None, md: Any, **kwargs: Any) and annotate the return as -> str; add the necessary typing imports (Any, Optional, Mapping) at the top of the file or use Any for uncertain types like md and kwargs so mypy passes while preserving the existing behavior.
🤖 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.
Nitpick comments:
In `@docs/custom_fences.py`:
- Around line 139-217: The function robusta_region_fence_format is missing type
hints; update its signature to include parameter and return types (e.g., source:
str, language: str, css_class: str, options: Optional[Mapping[str, Any]] = None,
md: Any, **kwargs: Any) and annotate the return as -> str; add the necessary
typing imports (Any, Optional, Mapping) at the top of the file or use Any for
uncertain types like md and kwargs so mypy passes while preserving the existing
behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0d77ebc3-28b8-4fa4-b2d3-f31c5d3d6a7a
📒 Files selected for processing (7)
docs/ai-providers/robusta-ai.mddocs/custom_fences.pydocs/data-sources/builtin-toolsets/coralogix-logs.mddocs/data-sources/builtin-toolsets/kubernetes-mcp.mddocs/installation/ui-installation.mddocs/reference/environment-variables.mdmkdocs.yml
✅ Files skipped from review due to trivial changes (2)
- docs/reference/environment-variables.md
- docs/ai-providers/robusta-ai.md
Add a section to CLAUDE.md telling future contributors / AI to use the robusta-region custom fence whenever they reference api.robusta.dev or platform.robusta.dev in a docs page, instead of hardcoding a US URL. Documents the three input shapes (plain code, markdown link, YAML with lang attr) and points at the existing usages as greppable examples. Signed-off-by: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@CLAUDE.md`:
- Around line 678-685: The outer fence around the YAML example uses five
backticks while the inner fenced block uses three (```robusta-region
{lang=yaml}), causing inconsistent nesting; replace the five-backtick outer
fence with four backticks so the outer fence is N+1 (4) for the inner 3-backtick
block—i.e., locate the block starting with the ```robusta-region {lang=yaml}
fence and change the surrounding outer backtick markers from ````` to ````.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
The third robusta-region example was using a 5-backtick outer fence while the two earlier examples on the same page used 4-backtick outer fences around a 3-backtick inner block. 5 backticks still rendered correctly (CommonMark only requires outer > inner) but the inconsistency was confusing. Drop to 4 backticks to match the surrounding examples. Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
Summary
This PR adds comprehensive multi-region support for the Robusta platform, allowing users to configure HolmesGPT for US, EU, and AP regions. The changes include new configuration guidance, updated environment variable documentation, and region-specific endpoint URLs across all relevant documentation.
Key Changes
ROBUSTA_API_ENDPOINTvariableROBUSTA_API_ENDPOINTto the user's account regionROBUSTA_API_ENDPOINTand region-specific valuesLITELLM_MODEL_COST_MAP_URL) with tabbed examples for each regionImplementation Details
https://api[.region].robusta.devfor API endpoints andhttps://platform[.region].robusta.devfor UI=== "Region") for clean, organized presentation of region optionshttps://claude.ai/code/session_01RueKk3pFhbXqTqyM8EKKjZ
Summary by CodeRabbit