Skip to content
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

Story: convention for sensitive configuration values #4656

Open
3 tasks
paullatzelsperger opened this issue Dec 4, 2024 Discussed in #4649 · 1 comment
Open
3 tasks

Story: convention for sensitive configuration values #4656

paullatzelsperger opened this issue Dec 4, 2024 Discussed in #4649 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@paullatzelsperger
Copy link
Member

paullatzelsperger commented Dec 4, 2024

Discussed in #4649

Feature Request

For sensitive configuration values, a consistent naming scheme and resolution mechanism will be implemented.

A sensitive configuration value should primarily be resolved from the Vault using its config key plus the ".alias" suffix as secret key.
For example, "edc.dataspace.default.url" would be stored as "edc.dataspace.default.url.alias" in the Vault.

If the sensitive configuration value is not found in the vault, it is resolved from the Config using its config key minus the ".alias" suffix, i.e. "edc.dataspace.default.url".

Note that this does not apply to public or private keys. They must always be resolved from the vault!

Which Areas Would Be Affected?

  • SQL connection pool (CommonsConnectionPoolServiceExtension)
  • token-based API auth (TokenBasedAuthenticationExtension), just to verify
  • STS client configuration (RemoteSecureTokenService, StsRemoteClientConfigurationExtension)
  • possibly others?

Why Is the Feature Desired?

consistent naming conventions, faster startup (no need to look in the vault, if the alias is not configured), ground work for a more integrated approach through config injection

Future work

Once this manual approach is implemented, we can investigate how to integrate this into the configuration injection, something like this:

@Setting(..., sensitive = true, key = "some.config.value")
private String sensitiveValueWithFallback; // vault of config

@Setting(..., sensitive = true, allowFallback = false)
private String supersecretValue; // must be resolved from Vault, no fallback

Steps

@paullatzelsperger paullatzelsperger added the enhancement New feature or request label Dec 4, 2024
@paullatzelsperger paullatzelsperger self-assigned this Dec 4, 2024
@github-actions github-actions bot added the triage all new issues awaiting classification label Dec 4, 2024
@paullatzelsperger paullatzelsperger removed the triage all new issues awaiting classification label Dec 4, 2024
Copy link

github-actions bot commented Jan 2, 2025

This issue is stale because it has been open for 28 days with no activity.

@github-actions github-actions bot added the stale Open for x days with no activity label Jan 2, 2025
@paullatzelsperger paullatzelsperger removed the stale Open for x days with no activity label Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant