Skip to content

docs(providers): restructure into providers/ tree with cloud platforms group#323

Merged
SantiagoDePolonia merged 3 commits into
mainfrom
docs/providers-restructure
May 12, 2026
Merged

docs(providers): restructure into providers/ tree with cloud platforms group#323
SantiagoDePolonia merged 3 commits into
mainfrom
docs/providers-restructure

Conversation

@SantiagoDePolonia
Copy link
Copy Markdown
Contributor

@SantiagoDePolonia SantiagoDePolonia commented May 12, 2026

Summary

  • Move provider-specific guides from docs/guides/ to a new docs/providers/ tree (DeepSeek, Google Gemini, Ollama, Oracle GenAI, vLLM)
  • Split the old Gemini page into Google Gemini (AI Studio) and Google Vertex AI
  • Add new pages: Amazon Bedrock, Azure OpenAI, Providers Overview
  • Restructure the Providers tab with a Cloud Platforms subsection containing Google Vertex AI, Amazon Bedrock, Azure OpenAI, and Oracle GenAI — each with a service-specific brand SVG in docs/brand/
  • Update cross-references in docs/advanced/configuration.mdx, docs/guides/codex.mdx, and the path comment in internal/providers/deepseek/deepseek.go

The overview page explains that dedicated guides exist only for providers with non-obvious setup (cloud-credential chains, deployment URLs, region/project requirements, native-vs-OpenAI-compatible API surfaces). Direct-API providers (OpenAI, Anthropic, Groq, OpenRouter, Z.ai, xAI, MiniMax) follow the standard "set the API key" pattern and intentionally do not have dedicated pages.

Test plan

  • mint validate passes locally (already verified by pre-commit hook)
  • Render docs locally and confirm the Providers tab shows overview at top, then DeepSeek/Gemini/vLLM/Ollama, then a Cloud Platforms group with Vertex AI / Bedrock / Azure / Oracle GenAI
  • Confirm brand SVG icons render correctly on each cloud-platform page tab
  • On the prod deployment under /docs, confirm /docs/brand/*.svg resolves (network tab should show 200, not 404)
  • Click through cross-references: codex.mdx → DeepSeek, configuration.mdx → Oracle GenAI, gemini.mdx → Google Vertex AI

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added admin, metrics, logging, usage, storage, server, models, resilience, workflows, and HTTP configuration options for finer runtime control.
  • Documentation
    • Added provider overview and new guides for Azure, Bedrock, Gemini, Vertex; clarified provider names/terminology (Oracle GenAI, Google Vertex AI) and navigation.
  • Chores
    • Modularized configuration layout for improved maintainability and loading behavior.

SantiagoDePolonia and others added 2 commits May 12, 2026 11:48
Extract the sub-domain types and helpers that had accumulated in
config/config.go (~750 lines) into one-file-per-domain siblings,
mirroring the existing cache.go / budget.go / fallback.go convention.

Each new file holds its domain's types and any helpers co-located:
  server.go     — ServerConfig, NormalizeBasePath, JoinBasePath,
                  body-size constants and parsing
  models.go     — ModelsConfig, ConfiguredProviderModelsMode helpers
  storage.go    — StorageConfig family, BackendConfig
  guardrails.go — GuardrailsConfig, rules, prompt/altering settings
  resilience.go — Retry/CircuitBreaker/ResilienceConfig + Raw* overlays
  providers.go  — RawProviderConfig
  logging.go    — LogConfig
  usage.go      — UsageConfig
  admin.go      — AdminConfig
  http.go       — HTTPConfig
  workflows.go  — WorkflowsConfig
  metrics.go    — MetricsConfig

config.go now holds only the top-level Config struct, LoadResult,
buildDefaultConfig, Load, and applyYAML.

Move-only refactor: no symbol renames, no behavior changes. All callers
across the 15+ packages that import gomodel/config keep their existing
imports unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…s group

Move provider-specific guides from docs/guides/ to a dedicated docs/providers/
tree, split Google Gemini into AI Studio and Vertex AI pages, and add new
pages for Amazon Bedrock, Azure OpenAI, and a providers overview. The
Providers tab now groups the four cloud-hosted providers (Google Vertex AI,
Amazon Bedrock, Azure OpenAI, Oracle GenAI) under a Cloud Platforms subsection
with service-specific brand SVGs in docs/brand/.

The overview page explains that dedicated guides exist only for providers
whose setup involves non-obvious quirks (cloud-credential chains, deployment
URLs, region/project requirements, native-vs-OpenAI-compatible API surfaces);
the rest follow the standard "set the API key" pattern.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f8371a80-d13e-4872-af70-55ec9892809b

📥 Commits

Reviewing files that changed from the base of the PR and between 3922c24 and 5c4b0ef.

📒 Files selected for processing (1)
  • docs/providers/azure.mdx

📝 Walkthrough

Walkthrough

This PR splits a large monolithic config file into many focused config/*.go files (admin, guardrails, models, providers, resilience, server, storage, http, logging, metrics, usage, workflows), adds validation/helpers (base-path, body-size parsing, storage defaults, resilience defaults), and adds/updates extensive provider documentation and docs navigation.

Changes

Config package reorganization

Layer / File(s) Summary
Top-level loader kept
config/config.go
Retains top-level Config/LoadResult and YAML overlay pipeline; import list trimmed after moving many types out.
Admin toggles
config/admin.go
Adds AdminConfig with EndpointsEnabled and UIEnabled fields wired to YAML/env.
Guardrails pipeline schema
config/guardrails.go
Adds GuardrailsConfig, GuardrailRuleConfig, SystemPromptSettings, LLMBasedAlteringSettings with YAML/env tags and rule ordering/scoping.
HTTP client timeouts
config/http.go
Adds HTTPConfig (Timeout, ResponseHeaderTimeout) with YAML/env tags.
Logging configuration
config/logging.go
Adds LogConfig (enablement, body/header logging, buffer/flush/retention, OnlyModelInteractions) with YAML/env tags and comments.
Metrics configuration
config/metrics.go
Adds MetricsConfig (Enabled, Endpoint) with YAML/env tags.
Models feature flags and mode
config/models.go
Adds ModelsConfig, ConfiguredProviderModelsMode type, constants (fallback,allowlist), Valid(), NormalizeConfiguredProviderModelsMode, and ResolveConfiguredProviderModelsMode.
Raw provider schema
config/providers.go
Adds RawProviderConfig representing YAML-provided provider settings (API/auth, GCP/Vertex fields, Models []RawProviderModel, Resilience *RawResilienceConfig).
Resilience defaults and raw overrides
config/resilience.go
Adds RetryConfig, CircuitBreakerConfig, ResilienceConfig, DefaultRetryConfig(), DefaultCircuitBreakerConfig(), and pointer-based Raw* override structs.
Server settings and body-size parsing
config/server.go
Adds ServerConfig, NormalizeBasePath, JoinBasePath, body-size constants, ValidateBodySizeLimit, and ParseBodySizeLimitBytes with K/M/G parsing and bounds checks.
Storage backends and translation
config/storage.go
Adds StorageConfig and backend-specific structs for SQLite/PostgreSQL/MongoDB plus StorageConfig.BackendConfig() applying sensible defaults and returning internal/storage.Config.
Usage and workflows
config/usage.go, config/workflows.go
Adds UsageConfig (usage tracking flags, buffer/flush/retention) and WorkflowsConfig (RefreshInterval).

Provider docs, navigation, and minor internal comment update

Layer / File(s) Summary
Providers overview + dedicated guides
docs/providers/overview.mdx, docs/providers/azure.mdx, docs/providers/bedrock.mdx, docs/providers/vertex.mdx, docs/providers/gemini.mdx
Adds a providers overview and new/rewritten provider guides (Azure OpenAI, Amazon Bedrock, Google Vertex AI, Gemini via AI Studio) with configuration, routing modes, auth, and troubleshooting.
Docs phrasing and nav updates
docs/advanced/configuration.mdx, docs/advanced/config-yaml.mdx, docs/getting-started/quickstart.mdx, docs/docs.json, docs/providers/oracle.mdx, docs/guides/codex.mdx
Terminology updates (Oracle → Oracle GenAI, Google Vertex AI), quickstart/provider mentions, updated provider routes in docs nav, and a link fix for DeepSeek doc reference.
Removed/updated guide
docs/guides/gemini.mdx, internal/providers/deepseek/deepseek.go
Replaced the old Gemini guide with a new providers/gemini page; updated an internal DeepSeek comment reference to the new doc path.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • ENTERPILOT/GoModel#302: Overlaps provider configuration expansion (Vertex-specific fields) and RawProviderConfig evolution.
  • ENTERPILOT/GoModel#161: Related changes to provider configuration surface and APIVersion/env discovery behavior.
  • ENTERPILOT/GoModel#268: Implements ConfiguredProviderModelsMode behavior and provider model-list handling that use the new mode types.

Poem

🐰
From scattered fields I hop with cheer,
Each config found a burrow near,
Docs lit like lanterns on the trail,
Neat types and defaults tell the tale,
A tidy hop — now onward, dear!

🚥 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 PR title accurately summarizes the main change: a documentation restructure moving provider guides into a new providers/ directory tree with a cloud platforms group.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/providers-restructure

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

❤️ Share

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

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 12, 2026

Greptile Summary

This PR reorganizes provider documentation into a dedicated docs/providers/ tree, splits the old Gemini guide into separate Google Gemini (AI Studio) and Google Vertex AI pages, and adds new pages for Amazon Bedrock and Azure OpenAI. It also splits the large config/config.go into per-concern files (server.go, storage.go, resilience.go, etc.) as a mechanical refactor.

  • Docs moved from docs/guides/ to docs/providers/; navigation in docs.json updated and verified to have no remaining stale guides/ cross-references.
  • config/config.go (512 lines) split into 13 focused files with no behavioral changes — types, constants, and functions are identical after the split.
  • New provider pages (Bedrock, Azure) and an Overview page added; cross-references in codex.mdx, configuration.mdx, config-yaml.mdx, quickstart.mdx, and deepseek.go all updated.

Confidence Score: 5/5

Safe to merge — changes are documentation restructuring and a mechanical config-file split with no behavioral impact.

The config split is a pure file-organization refactor: all types, constants, and functions are moved verbatim between files in the same package. The docs changes are additive (new Bedrock, Azure, Vertex, Overview pages) plus clean relocations with all cross-references verified updated. No logic, API behavior, or runtime configuration defaults are altered.

docs/providers/oracle.mdx has a "Current status" section placed mid-flow between numbered setup steps; worth tidying before merge but not blocking.

Important Files Changed

Filename Overview
config/config.go Large file trimmed to only LoadResult, buildDefaultConfig, Load, and applyYAML — all domain types extracted to dedicated files with no behavioral changes.
config/server.go ServerConfig, body-size constants, regex, and ValidateBodySizeLimit/ParseBodySizeLimitBytes helpers extracted from config.go; logic identical to pre-split.
config/storage.go StorageConfig types and BackendConfig() moved from config.go; duplicate default guards in BackendConfig() are pre-existing and harmless given buildDefaultConfig() always sets non-empty values.
docs/docs.json Providers tab updated from guides/* entries to providers/* with a new Cloud Platforms sub-group; Guides tab unchanged; no orphaned navigation entries remain.
docs/providers/oracle.mdx Content ported from guides/oracle.mdx; "Current status" section inserted between step 3 and step 4, breaking the numbered setup sequence.
docs/providers/bedrock.mdx New page documenting AWS Bedrock setup via credential chain, region/endpoint configuration, and model discovery; structure mirrors other cloud-platform guides cleanly.
docs/providers/azure.mdx New page documenting Azure OpenAI deployment-URL setup, api-version defaults, and multi-deployment suffixed env vars; troubleshooting section is thorough.
docs/providers/vertex.mdx New standalone page for Vertex AI split out from the old gemini.mdx; covers ADC/service-account auth, multi-region suffixes, native vs OpenAI-compatible mode, and image URL behavior.
docs/providers/overview.mdx New overview page with supported-providers table, rationale for which providers have dedicated guides, and links; all hrefs match entries in docs.json.
internal/providers/deepseek/deepseek.go Single-line comment updated from docs/guides/deepseek.mdx to docs/providers/deepseek.mdx to match the new file path; no logic changes.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[docs/guides/ - OLD] --> B[guides/gemini.mdx DELETED]
    A --> C[guides/oracle.mdx MOVED]
    A --> D[guides/deepseek.mdx MOVED]
    A --> E[guides/vllm.mdx MOVED]
    A --> F[guides/multiple-ollama.mdx MOVED]

    B --> G[providers/gemini.mdx - AI Studio]
    B --> H[providers/vertex.mdx - Vertex AI NEW]
    C --> I[providers/oracle.mdx]
    D --> J[providers/deepseek.mdx]
    E --> K[providers/vllm.mdx]
    F --> L[providers/multiple-ollama.mdx]

    M[NEW pages] --> N[providers/overview.mdx]
    M --> O[providers/bedrock.mdx]
    M --> P[providers/azure.mdx]

    subgraph Providers Tab in docs.json
        N
        G
        J
        K
        L
        subgraph Cloud Platforms
            H
            O
            P
            I
        end
    end
Loading

Comments Outside Diff (1)

  1. docs/providers/oracle.mdx, line 95-117 (link)

    P2 "Current status" section breaks the numbered setup flow

    The "Current status" section appears between step 3 and step 4, interrupting the sequential numbered steps (1–3 configure, then 4–7 start/verify). A reader following the guide top-to-bottom will hit this section mid-setup and may miss or delay the actual start/verify steps. Moving it after step 7 (or into a dedicated "Limitations" section near the bottom, alongside Troubleshooting) would keep the step sequence uninterrupted — the same pattern used in bedrock.mdx and azure.mdx, where "Current status" appears at the end.

Reviews (1): Last reviewed commit: "docs(providers): restructure into provid..." | Re-trigger Greptile

@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 68.81720% with 29 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
config/storage.go 0.00% 21 Missing ⚠️
config/server.go 87.23% 3 Missing and 3 partials ⚠️
config/models.go 84.61% 1 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 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 `@config/storage.go`:
- Around line 49-51: The BackendConfig construction for PostgreSQL currently
copies c.PostgreSQL.MaxConns directly which leaves it 0 when unset; update
BackendConfig so when building storage.PostgreSQLConfig it applies the
documented default (10) if c.PostgreSQL.MaxConns is 0—e.g., compute a local
value (defaulting to 10) and assign that to MaxConns in storage.PostgreSQLConfig
within the BackendConfig function to ensure the documented default is used.

In `@docs/providers/azure.mdx`:
- Line 59: Update the provider names in the example to use the hyphenated
convention: replace any occurrences of "azure_gpt5" with "azure-gpt5" and
"azure_embed" with "azure-embed" in the register providers example (the line
that currently reads These register providers `azure_gpt5` and `azure_embed`);
ensure any related example usages or references in the same snippet also use the
hyphenated names so the documented suffix naming convention is consistent.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: ea3716a2-88d1-4d57-9e91-7040a3da78d1

📥 Commits

Reviewing files that changed from the base of the PR and between ffd9efc and 3922c24.

⛔ Files ignored due to path filters (4)
  • docs/brand/azure.svg is excluded by !**/*.svg
  • docs/brand/bedrock.svg is excluded by !**/*.svg
  • docs/brand/oracle.svg is excluded by !**/*.svg
  • docs/brand/vertex.svg is excluded by !**/*.svg
📒 Files selected for processing (29)
  • config/admin.go
  • config/config.go
  • config/guardrails.go
  • config/http.go
  • config/logging.go
  • config/metrics.go
  • config/models.go
  • config/providers.go
  • config/resilience.go
  • config/server.go
  • config/storage.go
  • config/usage.go
  • config/workflows.go
  • docs/advanced/config-yaml.mdx
  • docs/advanced/configuration.mdx
  • docs/docs.json
  • docs/getting-started/quickstart.mdx
  • docs/guides/codex.mdx
  • docs/guides/gemini.mdx
  • docs/providers/azure.mdx
  • docs/providers/bedrock.mdx
  • docs/providers/deepseek.mdx
  • docs/providers/gemini.mdx
  • docs/providers/multiple-ollama.mdx
  • docs/providers/oracle.mdx
  • docs/providers/overview.mdx
  • docs/providers/vertex.mdx
  • docs/providers/vllm.mdx
  • internal/providers/deepseek/deepseek.go
💤 Files with no reviewable changes (2)
  • docs/guides/gemini.mdx
  • config/config.go

Comment thread config/storage.go
Comment on lines +49 to +51
PostgreSQL: storage.PostgreSQLConfig{
URL: c.PostgreSQL.URL,
MaxConns: c.PostgreSQL.MaxConns,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Apply the documented default for PostgreSQL MaxConns.

The comment on line 31 states that MaxConns has a "default: 10", but the BackendConfig method does not apply this default. If MaxConns is unset, it will remain 0, which is inconsistent with the documented behavior and may lead to unexpected connection pool sizing.

🔧 Proposed fix to apply the MaxConns default
 	if cfg.MongoDB.Database == "" {
 		cfg.MongoDB.Database = "gomodel"
 	}
+	if cfg.PostgreSQL.MaxConns == 0 {
+		cfg.PostgreSQL.MaxConns = 10
+	}
 	return cfg
 }
🤖 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 `@config/storage.go` around lines 49 - 51, The BackendConfig construction for
PostgreSQL currently copies c.PostgreSQL.MaxConns directly which leaves it 0
when unset; update BackendConfig so when building storage.PostgreSQLConfig it
applies the documented default (10) if c.PostgreSQL.MaxConns is 0—e.g., compute
a local value (defaulting to 10) and assign that to MaxConns in
storage.PostgreSQLConfig within the BackendConfig function to ensure the
documented default is used.

Comment thread docs/providers/azure.mdx Outdated
Azure's DiscoveryConfig does not override NameSeparator, so suffixed env
vars produce hyphen-separated provider names (azure-gpt5, azure-embed),
not underscore-separated. Vertex and Bedrock explicitly set "_" and keep
their underscore convention.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@SantiagoDePolonia SantiagoDePolonia merged commit 6854023 into main May 12, 2026
16 of 17 checks passed
@mintlify
Copy link
Copy Markdown

mintlify Bot commented May 12, 2026

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

Project Status Preview Updated (UTC)
gomodel 🟢 Ready View Preview May 12, 2026, 12:51 PM

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

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