Skip to content

Request-signing store selection is inconsistent (hardcoded vs config-driven) #399

Closed

Description

@aram356

Summary

Store names are hardcoded as "jwks_store" / "signing_keys" in standalone functions but read from settings.request_signing in the admin endpoints. If config and hardcoded values diverge, signing produces keys the verifier cannot find, and key rotation writes to the wrong store.

Refs

  • crates/common/src/request_signing/signing.rs line 20 — FastlyConfigStore::new("jwks_store") hardcoded
  • crates/common/src/request_signing/signing.rs line 122 — FastlyConfigStore::new("jwks_store") hardcoded
  • crates/common/src/request_signing/signing.rs line 130 — FastlySecretStore::new("signing_keys") hardcoded
  • crates/common/src/request_signing/jwks.rs line 63 — FastlyConfigStore::new("jwks_store") hardcoded
  • crates/common/src/request_signing/rotation.rs line 44 — FastlyConfigStore::new("jwks_store") hardcoded, ignores config_store_id constructor arg
  • crates/common/src/request_signing/endpoints.rs line 151 — reads config_store_id/secret_store_id from settings

Recommendation

Single source of truth — either always read store IDs from Settings and thread them through, or document + assert the hardcoded names match config.

Context

Production readiness audit — see #396

Activity

  1. added theissue type on Mar 4, 2026
  2. ChristianPavilonis commented on Mar 6, 2026

    @ChristianPavilonis
    Collaborator

    I don't think claude understood the difference between the store names and ids.

    The ids are required for the write operations, and the names are required for read via the fastly crate. Made a PR to define consts.

  3. added a commit that references this issue on Mar 10, 2026
    33c88ad
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions