Skip to content
On this page

Configuration ​

Configuration is loaded from multiple places with precedence in this order:

  1. CLI flags
  2. The running shell's environment variables
  3. Project-level environment configuration from the .env file in the project directory
  4. Project-level configuration file (see below for details)

This project follows the Command Line Interface Guidelines.

config ​

The configuration file to load. The configuration file can be expressed in one of multiple file formats: TOML, JSON, YAML, INI, RON, or JSON5.

  • Default: wallowa.config.[toml | json | yaml | ini | ron | json5] in the working directory. The first configuration file found in the order listed here is used. The others are ignored.
  • CLI: wallowa --config CONFIG where CONFIG is the path to the configuration file (wallowa --config wallowa.config.toml for example)
  • Environment variable: WALLOWA_CONFIG (WALLOWA_CONFIG=wallowa.config.toml for example)

database ​

The DuckDB database file to use. If the database file does not exist then it will be created. The special value :memory: can be used to create an in-memory database where no data is persisted to disk (all data is lost when the process exits). See the DuckDB documentation on connect for more information.

  • Default: wallowa.db in the working directory
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_DATABASE

Example for the wallowa.config.toml file ​

toml
database = "wallowa.db"

fetch.enabled ​

Whether to fetch new data in the background. If this is disabled, then use the wallowa fetch CLI command to fetch when the server is not running.

  • Default: true
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_FETCH_ENABLED

Example for the wallowa.config.toml file ​

toml
[fetch]
enabled = false

fetch.interval ​

The time interval to wait between fetching for additional data, in seconds.

  • Default: 3600 (1 hour)
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_FETCH_INTERVAL

Example for the wallowa.config.toml file ​

toml
[fetch]
interval = 3600

github.auth.token ​

The auth token to use for authentication to the GitHub REST API. It is recommended to use a personal access token with read-only access to each of the repos being tracked.

  • Default: none
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_GITHUB_AUTH_TOKEN

Example as an environment variable or in the .env file ​

sh
WALLOWA_GITHUB_AUTH_TOKEN='A TOKEN FROM GITHUB'

github.per_page ​

The number of items to fetch per page of API results (maximum of 100).

  • Default: 100
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_GITHUB_PER_PAGE

Example for the wallowa.config.toml file ​

This example sets the number of items to fetch per page to 50.

toml
[github]
per_page = "50"

github.repos ​

The GitHub repositories to track.

  • Default: [] (no repositories)
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_GITHUB_REPOS

Example for the wallowa.config.toml file ​

This example tracks two repos: open-telemetry/opentelemetry-rust and open-telemetry/opentelemetry-swift.

toml
[github]
repos = ["open-telemetry/opentelemetry-rust", "open-telemetry/opentelemetry-swift"]

log-format ​

Set the log format.

  • Default: terminal
  • CLI: wallowa --log-format=FORMAT where FORMAT is one of the values listed above (wallowa --log-format=full for example)
  • Environment variable: WALLOWA_LOG_FORMAT (WALLOWA_LOG_FORMAT=json for example)

Accepted values are:

  • terminal - terminal-friendly human-readable basic log messages (the default)
  • full - richer human-readable log messages
  • compact - similar to full, but with less information
  • pretty - multi-line version of full
  • json - newline-delimited JSON logs

See https://docs.rs/tracing-subscriber/latest/tracing_subscriber/fmt/#formatters for more details.

Log level ​

Set the log level to output. See https://rust-lang-nursery.github.io/rust-cookbook/development_tools/debugging/config_log.html for more on configuration options.

Note that setting the environment variable RUST_BACKTRACE=1 can be used to include a backtrace in error output. See https://doc.rust-lang.org/std/backtrace/index.html for more details.

  • Default: INFO
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_LOG (WALLOWA_LOG=debug for example)

Accepted values are:

  • terminal - terminal-friendly human-readable basic log messages (the default)
  • full - richer human-readable log messages
  • compact - similar to full, but with less information
  • pretty - multi-line version of full
  • json - newline-delimited JSON logs

See https://docs.rs/tracing-subscriber/latest/tracing_subscriber/fmt/#formatters for more details.

server.host ​

The network address to bind to.

  • Default: "0.0.0.0"
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_SERVER_HOST

Example for the wallowa.config.toml file ​

toml
[server]
host = "0.0.0.0"

server.port ​

The network port to bind to.

  • Default: "9843"
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_SERVER_PORT

Example for the wallowa.config.toml file ​

toml
[server]
port = "9843"

server.response.compression.brotli ​

Use brotli compression for HTTP server responses when requested by the client.

  • Default: false
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_SERVER_RESPONSE_COMPRESSION_BROTLI

Example for the wallowa.config.toml file ​

toml
[server.response.compression]
brotli = false

server.response.compression.deflate ​

Use deflate compression for HTTP server responses when requested by the client.

  • Default: true
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_SERVER_RESPONSE_COMPRESSION_DEFLATE

Example for the wallowa.config.toml file ​

toml
[server.response.compression]
deflate = true

server.response.compression.gzip ​

Use gzip compression for HTTP server responses when requested by the client.

  • Default: true
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_SERVER_RESPONSE_COMPRESSION_GZIP

Example for the wallowa.config.toml file ​

toml
[server.response.compression]
gzip = true

server.response.compression.level ​

The compression level to use for HTTP server responses. Options are: algo_default, best, fastest.

algo_default uses the default compression level for the given compression algorithm. See https://docs.rs/tower-http/0.4.1/tower_http/enum.CompressionLevel.html#variant.Default for more.

  • Default: "fastest"
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_SERVER_RESPONSE_COMPRESSION_LEVEL

Example for the wallowa.config.toml file ​

toml
[server.response.compression]
level = "fastest"

server.response.compression.zstd ​

Use zstd compression for HTTP server responses when requested by the client.

  • Default: true
  • CLI: this setting cannot be configured with a CLI argument
  • Environment variable: WALLOWA_SERVER_RESPONSE_COMPRESSION_ZSTD

Example for the wallowa.config.toml file ​

toml
[server.response.compression]
zstd = true