Skip to content

docs(onboarding): make provider setup optional - #571

Closed
SantiagoDePolonia wants to merge 1 commit into
mainfrom
chore/no-providers
Closed

docs(onboarding): make provider setup optional#571
SantiagoDePolonia wants to merge 1 commit into
mainfrom
chore/no-providers

Conversation

@SantiagoDePolonia

@SantiagoDePolonia SantiagoDePolonia commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • make the README and Quick Start launch GoModel with zero provider configuration
  • guide users through adding providers from the dashboard, with env vars and config.yaml documented as optional deployment alternatives
  • align installer output, integration guides, metrics examples, provider docs, and Helm onboarding with the dashboard-first flow
  • allow provider-free Helm installs so the documented dashboard setup works

Validation

  • npx --yes mintlify@latest validate (Node 22)
  • go test ./...
  • helm lint ./helm
  • installer shell and PowerShell syntax checks
  • pre-commit hooks

Summary by CodeRabbit

  • Documentation
    • Updated quick-start and deployment guidance to allow starting without provider credentials.
    • Added instructions for configuring providers through the admin dashboard.
    • Clarified that environment variables and YAML remain available for infrastructure-managed deployments.
    • Updated integration guides for Claude Code, Codex, OpenAI Agents SDK, OpenClaw, and other agents.
    • Simplified installer and Helm setup messages with dashboard provider configuration links.
    • Clarified zero-provider behavior and optional provider environment configuration.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The 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.

Changes

Provider onboarding documentation

Layer / File(s) Summary
Configuration and provider documentation
.env.template, README.md, docs/advanced/configuration.mdx, docs/providers/overview.mdx, docs/snippets/provider-credentials-note.mdx
Provider setup now uses the dashboard by default, with environment variables and YAML retained as optional configuration methods.
Quickstart and installer flow
docs/getting-started/quickstart.mdx, docs/install/install.sh, docs/install/install.ps1
Quickstart and installer output start GoModel without provider keys and direct setup to the dashboard providers page.
Agent integration examples
docs/examples/openai-agents-sdk/README.md, docs/guides/*.mdx
Agent setup guides configure GoModel with a master key at startup and add upstream providers through the dashboard.
Metrics examples cleanup
docs/guides/prometheus-metrics.mdx
Metrics examples remove unrelated OpenAI provider credentials from environment and YAML snippets.
Helm onboarding and validation
helm/README.md, helm/templates/NOTES.txt, helm/values.schema.json
Helm guidance points to dashboard onboarding, and the schema no longer requires provider credentials.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Poem

A bunny hops past keys at dawn,
“Start the gateway—credentials gone!”
The dashboard waits with carrots bright,
Add your provider, then take flight.
Optional env vars rest nearby—
Hoppy docs now point the way!

🚥 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 title clearly matches the PR’s main change: making provider setup optional in onboarding docs and install flow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/no-providers

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.template

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'


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.

@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

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coderabbitai coderabbitai Bot left a comment

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.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 2c768fc and fc9c152.

📒 Files selected for processing (18)
  • .env.template
  • README.md
  • docs/advanced/configuration.mdx
  • docs/examples/openai-agents-sdk/README.md
  • docs/getting-started/quickstart.mdx
  • docs/guides/claude-code.mdx
  • docs/guides/codex.mdx
  • docs/guides/openai-agents-sdk.mdx
  • docs/guides/openclaw.mdx
  • docs/guides/opencode-and-other-agents.mdx
  • docs/guides/prometheus-metrics.mdx
  • docs/install/install.ps1
  • docs/install/install.sh
  • docs/providers/overview.mdx
  • docs/snippets/provider-credentials-note.mdx
  • helm/README.md
  • helm/templates/NOTES.txt
  • helm/values.schema.json
💤 Files with no reviewable changes (3)
  • docs/snippets/provider-credentials-note.mdx
  • helm/values.schema.json
  • docs/guides/prometheus-metrics.mdx

Comment thread helm/README.md
Comment on lines +43 to +47
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.

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.

🎯 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

Comment thread helm/templates/NOTES.txt
Comment on lines +47 to +49
No providers configured yet.
Add one at /admin/dashboard/providers-config, or configure provider values
(for example, providers.openai.apiKey).

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.

🎯 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.

@greptile-apps

greptile-apps Bot commented Jul 21, 2026

Copy link
Copy Markdown

Confidence Score: 4/5

The 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

T-Rex T-Rex Logs

What T-Rex did

  • Ran the local-server harness to reproduce an unauthenticated admin API exposure by starting the GoModel server with no master key and a temporary SQLite database, then exercised the provider dashboard and provider-credentials endpoints.
  • Collected a runtime trace showing unauthenticated HTTP responses for the dashboard and provider-credentials endpoints, including before/after mutation states.
  • Executed a focused test to validate credential persistence across original and fresh pod-local SQLite storage, confirming one provider in the original store and zero in fresh storage, with Helm rendering unavailable.
  • Attempted the provider administration authentication check but the shell rejected set -o pipefail, so no HTTP traces were produced and the run was blocked.
  • Documented docs tooling steps and logs, noting the initial missing docs.json diagnostic, the successful final build validation, and the generated-files status.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "docs(onboarding): make provider setup op..." | Re-trigger Greptile

Comment thread README.md
-e LOG_FORMAT=text \
-e OPENAI_API_KEY="your-openai-key" \
enterpilot/gomodel
docker run --rm -p 8080:8080 enterpilot/gomodel

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 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.

Suggested change
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

Repro: executable local-server harness issuing unauthenticated dashboard, list, and provider-mutation requests

  • Contains supporting evidence from the run (text/x-shellscript; charset=utf-8).

Repro: successful runtime trace with methods, URLs, absent authentication, full HTTP statuses and messages, and before/after response bodies

  • Keeps the command output available without making the summary code-heavy.

View artifacts

T-Rex Ran code and verified through T-Rex

Comment thread helm/README.md
Comment on lines 22 to +26
```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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 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)

Comment thread helm/README.md
Comment on lines 22 to +26
```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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 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)

@mintlify

mintlify Bot commented Jul 21, 2026

Copy link
Copy Markdown

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

Project Status Preview Updated (UTC)
gomodel 🟢 Ready View Preview Jul 21, 2026, 12:13 PM

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

@mintlify

mintlify Bot commented Jul 21, 2026

Copy link
Copy Markdown

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

Project Status Preview Updated (UTC)
gomodel 🟡 Building Jul 21, 2026, 12:12 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