docs(onboarding): make provider setup optional - #571
Conversation
📝 WalkthroughWalkthroughThe PR updates GoModel documentation, installer messages, examples, and Helm guidance to start without provider credentials and configure providers through the admin dashboard. Environment variables and YAML remain documented as optional declarative configuration paths. ChangesProvider onboarding documentation
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 Checkov (3.3.8).env.templateTraceback (most recent call last): 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 |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
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 `@helm/README.md`:
- Around line 43-47: Update the basic-install instructions near the dashboard
provider path to account for configurable server.basePath: document the URL as
<basePath>/admin/dashboard/providers-config, or explicitly state that the shown
path assumes server.basePath is "/". Explain that users must prepend their
configured base path for non-root deployments.
In `@helm/templates/NOTES.txt`:
- Around line 47-49: Update the NOTES.txt message controlled by enabledProviders
to say “No declarative providers configured in Helm values” instead of implying
no providers exist, and explicitly mention that dashboard-managed providers may
already be configured. Preserve the existing instructions for adding a provider
or configuring Helm values.
🪄 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: 23bdb4fe-f59f-40af-a43d-99ae23e4a266
📒 Files selected for processing (18)
.env.templateREADME.mddocs/advanced/configuration.mdxdocs/examples/openai-agents-sdk/README.mddocs/getting-started/quickstart.mdxdocs/guides/claude-code.mdxdocs/guides/codex.mdxdocs/guides/openai-agents-sdk.mdxdocs/guides/openclaw.mdxdocs/guides/opencode-and-other-agents.mdxdocs/guides/prometheus-metrics.mdxdocs/install/install.ps1docs/install/install.shdocs/providers/overview.mdxdocs/snippets/provider-credentials-note.mdxhelm/README.mdhelm/templates/NOTES.txthelm/values.schema.json
💤 Files with no reviewable changes (3)
- docs/snippets/provider-credentials-note.mdx
- helm/values.schema.json
- docs/guides/prometheus-metrics.mdx
| For the basic install, open `/admin/dashboard/providers-config` on the GoModel | ||
| service and select **Add Provider**. Provider values and existing secrets remain | ||
| available for infrastructure-managed deployments. The single replica keeps the | ||
| dashboard-managed provider and request routing on the same GoModel instance. | ||
|
|
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Make the dashboard URL base-path aware.
This hard-codes /admin/dashboard/providers-config, but server.basePath is configurable. For non-root deployments, document <basePath>/admin/dashboard/providers-config or explicitly state that the path assumes server.basePath: "/". As per coding guidelines, explain when documented paths need to change.
🤖 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 `@helm/README.md` around lines 43 - 47, Update the basic-install instructions
near the dashboard provider path to account for configurable server.basePath:
document the URL as <basePath>/admin/dashboard/providers-config, or explicitly
state that the shown path assumes server.basePath is "/". Explain that users
must prepend their configured base path for non-root deployments.
Source: Coding guidelines
| No providers configured yet. | ||
| Add one at /admin/dashboard/providers-config, or configure provider values | ||
| (for example, providers.openai.apiKey). |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Do not infer runtime provider state from Helm values alone.
$enabledProviders only reflects declarative chart values; it cannot see dashboard-managed credentials. After dashboard setup, Helm can still print “No providers configured yet.” Reword this as “No declarative providers configured in Helm values” and mention that dashboard-managed providers may already exist.
🤖 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 `@helm/templates/NOTES.txt` around lines 47 - 49, Update the NOTES.txt message
controlled by enabledProviders to say “No declarative providers configured in
Helm values” instead of implying no providers exist, and explicitly mention that
dashboard-managed providers may already be configured. Preserve the existing
instructions for adding a provider or configuring Helm values.
Confidence Score: 4/5The exposed administration paths and ephemeral Helm credentials need fixes before merging. The Docker quick start exposes unauthenticated provider administration on every host interface. The Helm quick start leaves provider administration open inside the cluster. Dashboard-managed Helm credentials do not survive pod replacement. README.md and helm/README.md
What T-Rex did
Reviews (1): Last reviewed commit: "docs(onboarding): make provider setup op..." | Re-trigger Greptile |
| -e LOG_FORMAT=text \ | ||
| -e OPENAI_API_KEY="your-openai-key" \ | ||
| enterpilot/gomodel | ||
| docker run --rm -p 8080:8080 enterpilot/gomodel |
There was a problem hiding this comment.
Unauthenticated Admin API Exposed
This command publishes port 8080 on every host interface while leaving GOMODEL_MASTER_KEY unset. Any network client that can reach the host can modify dashboard-managed providers or send billable requests through them; bind the evaluation setup to loopback or configure authentication before publishing the port.
| docker run --rm -p 8080:8080 enterpilot/gomodel | |
| docker run --rm -p 127.0.0.1:8080:8080 enterpilot/gomodel |
Context Used: CLAUDE.md (source)
Artifacts
- Contains supporting evidence from the run (text/x-shellscript; charset=utf-8).
- Keeps the command output available without making the summary code-heavy.
| ```bash | ||
| # Basic install with OpenAI (provider auto-enables when apiKey is set) | ||
| # Basic install (add a provider from the dashboard after startup) | ||
| helm install gomodel ./helm \ | ||
| -n gomodel --create-namespace \ | ||
| --set providers.openai.apiKey="sk-..." | ||
| --set replicaCount=1 |
There was a problem hiding this comment.
Dashboard Credentials Are Ephemeral
This provider-free flow relies on credentials saved through the dashboard, but the installation configures neither persistent application storage nor an external database. When the pod is restarted or rescheduled, its pod-local SQLite data is lost and the gateway returns with an empty provider catalog.
Context Used: CLAUDE.md (source)
| ```bash | ||
| # Basic install with OpenAI (provider auto-enables when apiKey is set) | ||
| # Basic install (add a provider from the dashboard after startup) | ||
| helm install gomodel ./helm \ | ||
| -n gomodel --create-namespace \ | ||
| --set providers.openai.apiKey="sk-..." | ||
| --set replicaCount=1 |
There was a problem hiding this comment.
Provider Administration Has No Authentication
The basic install leaves both auth.masterKey and auth.existingSecret empty, so provider credential administration is unauthenticated. Any workload or user that can reach the ClusterIP service can add or remove providers and consume configured upstream credentials.
Context Used: CLAUDE.md (source)
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Summary
config.yamldocumented as optional deployment alternativesValidation
npx --yes mintlify@latest validate(Node 22)go test ./...helm lint ./helmSummary by CodeRabbit