rust-cli / rust-cli/config-rs

Enable placeholders on configuration files

Open
#345 7 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-enhancement E-help-wanted
Dominant language
Rust
Stars
3.2k
Forks
265
Avg merge
2h 42m
Merged PRs (30d)
4

Description

Feature description

Ability to declare placeholder values in our configuration files that will be taken from the environment variables.

Use Case

Sometimes we do not decide how our environment variables will be named, so we don't get to define them with prefixes like APP__

It would be nice if we could declare placeholders in our configuration files where the values should be taken from our environment variables.

Example:

application_port: ${PORT} #value taken from PORT environment variable
database:
  host: "127.0.0.1"
  port: 5432
  username: "postgres"
  password: "${DB_PASS}" #value taken from DB_PASS environment variable
  database_name: "${DB_HOST}" #value taken from DB_HOST environment variable
  require_ssl: false

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Start by locating the configuration-file parsing and environment-variable handling, then determine how placeholders such as ${PORT} should be interpreted across supported formats. Done means configuration values can be sourced from the referenced environment variables, including unprefixed names such as PORT and DB_PASS, with tests covering the requested YAML example.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.