Indexer: strict env validation for production profile #88

Closed
opened 2026-04-09 03:24:30 +00:00 by PlasticDigits · 5 comments
PlasticDigits commented 2026-04-09 03:24:30 +00:00 (Migrated from gitlab.com)

Evidence

  • indexer/src/config.rs; RELEASE_READINESS_MATRIX.md

Acceptance criteria

  • e.g. RUN_MODE=prod requires critical vars; fails fast

Epic

#62

## Evidence - `indexer/src/config.rs`; `RELEASE_READINESS_MATRIX.md` ## Acceptance criteria - [ ] e.g. `RUN_MODE=prod` requires critical vars; fails fast ## Epic #62
PlasticDigits commented 2026-04-09 03:24:31 +00:00 (Migrated from gitlab.com)

marked this issue as related to #62

marked this issue as related to #62
PlasticDigits commented 2026-04-13 12:29:10 +00:00 (Migrated from gitlab.com)

Epic #62 delivery

Implemented strict production config in indexer/src/config.rs:

  • RUN_MODE=prod (or production) requires non-empty DATABASE_URL, FACTORY_ADDRESS, CORS_ORIGINS, and LCD URLs that are not the built-in public default list (normalized comparison).
  • Config::from_env() returns Result; binary exits with a clear message on error.
  • Unit tests with serial_test in the same file.

Verify: cd indexer && cargo test --lib config::

@brouie please review.

## Epic #62 delivery Implemented strict production config in `indexer/src/config.rs`: - `RUN_MODE=prod` (or `production`) requires non-empty `DATABASE_URL`, `FACTORY_ADDRESS`, `CORS_ORIGINS`, and **LCD URLs that are not the built-in public default list** (normalized comparison). - `Config::from_env()` returns `Result`; binary exits with a clear message on error. - Unit tests with `serial_test` in the same file. Verify: `cd indexer && cargo test --lib config::` @brouie please review.
PlasticDigits commented 2026-04-13 12:29:18 +00:00 (Migrated from gitlab.com)

mentioned in issue #62

mentioned in issue #62
Brouie commented 2026-04-20 06:56:59 +00:00 (Migrated from gitlab.com)

@PlasticDigits Verified on current main. Acceptance criteria:

  • RUN_MODE=prod requires critical vars; fails fast: indexer/src/config.rs has Config::from_env() returning Result, binary exits with clear message on error. Ran cargo test --lib config:: locally: 5 passed, 0 failed:

  • config::tests::dev_allows_default_lcd_urls

  • config::tests::metrics_enabled_when_metrics_bind_non_empty

  • config::tests::prod_rejects_builtin_lcd_defaults

  • config::tests::prod_accepts_explicit_lcd_urls

  • config::tests::prod_rejects_empty_cors

Coverage confirms: prod rejects built-in LCD defaults, rejects empty CORS, accepts explicit LCD URLs, dev allows defaults. serial_test used to prevent env var contention between tests. Strict production profile validation locked in. Closing.

@PlasticDigits Verified on current main. Acceptance criteria: - [x] RUN_MODE=prod requires critical vars; fails fast: indexer/src/config.rs has Config::from_env() returning Result, binary exits with clear message on error. Ran cargo test --lib config:: locally: **5 passed, 0 failed**: - config::tests::dev_allows_default_lcd_urls - config::tests::metrics_enabled_when_metrics_bind_non_empty - config::tests::prod_rejects_builtin_lcd_defaults - config::tests::prod_accepts_explicit_lcd_urls - config::tests::prod_rejects_empty_cors Coverage confirms: prod rejects built-in LCD defaults, rejects empty CORS, accepts explicit LCD URLs, dev allows defaults. serial_test used to prevent env var contention between tests. Strict production profile validation locked in. Closing.
Brouie (Migrated from gitlab.com) closed this issue 2026-04-20 06:57:02 +00:00
Brouie commented 2026-04-20 07:02:04 +00:00 (Migrated from gitlab.com)

mentioned in issue #92

mentioned in issue #92
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#88
No description provided.