Skip to content

docs: Add docs for passwords available through env variables #297

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jun 23, 2025

Conversation

exaby73
Copy link
Collaborator

@exaby73 exaby73 commented Jun 16, 2025

Related to serverpod/serverpod#3656

This PR adds documentation for the new ability for passwords to be defined via environment variabled prefixed with SERVERPOD_PASSWORD_

Screenshot

Image

image

Summary by CodeRabbit

Summary by CodeRabbit

  • Documentation
    • Enhanced the secrets configuration guide with a detailed "Custom Secrets" section.
    • Clarified the distinction between built-in and custom secrets and their configuration methods.
    • Added examples demonstrating password file setup and environment variable usage.
    • Included code snippets showing how to access custom secrets in endpoint code.

Copy link

coderabbitai bot commented Jun 16, 2025

📝 Walkthrough

Walkthrough

The documentation for Serverpod's configuration has been updated to describe support for custom passwords set via environment variables prefixed with SERVERPOD_PASSWORD_. The update explains how these variables are accessed in server code, their precedence over passwords.yaml, and their availability across all run modes. It also clarifies built-in secrets and secrets for first-party packages.

Changes

File(s) Change Summary
docs/06-concepts/07-configuration.md Extended documentation to cover custom passwords in passwords.yaml and environment variables, built-in secrets, and usage examples in Serverpod

Sequence Diagram(s)


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ca3c50a and 81f6dcd.

📒 Files selected for processing (1)
  • docs/06-concepts/07-configuration.md (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/06-concepts/07-configuration.md
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Test build

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@exaby73 exaby73 requested a review from SandPod June 16, 2025 10:41
Copy link

@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: 0

🧹 Nitpick comments (2)
docs/06-concepts/07-configuration.md (2)

82-87: Refine table formatting for code readability

The table entry currently escapes the underscore and doesn’t use inline code styling. To match the style of other tables and improve readability, wrap the pattern in backticks and drop the escape:

-| SERVERPOD_PASSWORD\_\*      | Custom password that will be available in the Session.passwords map. The prefix `SERVERPOD_PASSWORD_` will be stripped from the key name. |
+| `SERVERPOD_PASSWORD_*`      | Custom password that will be available in the Session.passwords map. The prefix `SERVERPOD_PASSWORD_` will be stripped from the key name. |

84-84: Consider renaming column header for clarity

The header “Environment variable format” could be misleading. Using “Environment variable pattern” or simply “Environment variable” would better convey the wildcard usage.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6ec9860 and a1c30c7.

📒 Files selected for processing (1)
  • docs/06-concepts/07-configuration.md (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Test build

Copy link
Contributor

@SandPod SandPod left a comment

Choose a reason for hiding this comment

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

LGTM given my suggested changes.

@exaby73 exaby73 requested a review from SandPod June 17, 2025 02:03
Copy link
Contributor

@SandPod SandPod left a comment

Choose a reason for hiding this comment

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

I think we can do one more touch-up on this page to ensure that custom passwords get a good section.

Remember to add an example for it using the passwords file.

@exaby73 exaby73 requested a review from SandPod June 17, 2025 06:57
Copy link

@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: 0

🧹 Nitpick comments (2)
docs/06-concepts/07-configuration.md (2)

128-134: Escape characters in table formatting
The entry SERVERPOD_PASSWORD\_\* includes backslashes to escape underscores, which is unnecessary inside code spans. Consider updating to:

| `SERVERPOD_PASSWORD_*`      | Custom password that will be available in the Session.passwords map. The prefix `SERVERPOD_PASSWORD_` will be stripped from the key name. |

211-223: Consolidate duplicated YAML examples
The same stripeApiKey and twilioApiKey entries appear in both the "Via Passwords File" and the bottom "Passwords file example" sections. Consider merging or clarifying the purpose of each to reduce repetition and avoid reader confusion.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f2c7af7 and dc8eeae.

📒 Files selected for processing (1)
  • docs/06-concepts/07-configuration.md (3 hunks)
🔇 Additional comments (6)
docs/06-concepts/07-configuration.md (6)

76-80: Clarify custom secret introduction & built‐in scope
Good addition of the sentence explaining how to add custom secrets and the built-in secrets section. This clearly sets user expectations.


88-93: Document first-party package secrets
Nice to see a dedicated section for first-party package secrets. The header and bullet links are clear and helpful.


102-109: Add explicit "Custom Passwords" section
The new header and intro text effectively group the custom-secret docs. This resolves the missing section comment from earlier reviews.


110-113: Show YAML snippet for passwords file
The YAML example under "Via Passwords File" is well-formatted and highlights how to add keys under shared.


140-142: Provide environment variable export example
Clear and concise shell example showing how to set a custom password via env var.


144-154: Demonstrate accessing custom passwords in Dart
Good code snippet illustrating Session.passwords lookup. It directly ties back to the added env-var and YAML examples.

Copy link
Contributor

@SandPod SandPod left a comment

Choose a reason for hiding this comment

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

Awesome, much better! 👍

I think we can remove the addition to the last examples.

Copy link

@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: 1

🧹 Nitpick comments (2)
docs/06-concepts/07-configuration.md (2)

76-76: Refine phrasing for clarity
Consider removing the redundant “your own custom secrets” – e.g. simplify to:

Define custom secrets in the passwords file by adding them to either the shared section (available in all run modes) or to specific run mode sections.


216-216: Avoid duplicating YAML examples and ensure consistency
The bottom “Passwords file example” largely repeats the earlier “Via Passwords File” snippet but omits keys like stripeApiKey/myCustomSharedSecret. Consider removing this redundant block or merging it with the prior example to keep the docs DRY and consistent.

Also applies to: 222-222

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dc8eeae and a8712a9.

📒 Files selected for processing (1)
  • docs/06-concepts/07-configuration.md (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Test build
🔇 Additional comments (1)
docs/06-concepts/07-configuration.md (1)

78-78: Built-in Secrets header level is correct
The new “#### Built-in Secrets” subsection properly nests under “### Secrets.”

Copy link
Contributor

@SandPod SandPod left a comment

Choose a reason for hiding this comment

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

LGTM! 👍

@exaby73 exaby73 merged commit c7f20b4 into serverpod:main Jun 23, 2025
5 checks passed
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