Conversation
Signed-off-by: Craig Perkins <craig5008@gmail.com>
PR Reviewer Guide 🔍(Review updated until commit edec2a7)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to edec2a7
Previous suggestionsSuggestions up to commit 5d0bd60
|
Signed-off-by: Craig Perkins <craig5008@gmail.com>
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit edec2a7. ⛔ Hard block: Issues at High severity or above will block this PR from merging.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
Signed-off-by: Craig Perkins <craig5008@gmail.com>
Signed-off-by: Craig Perkins <craig5008@gmail.com>
Signed-off-by: Craig Perkins <craig5008@gmail.com>
|
Persistent review updated to latest commit edec2a7 |
Summary
opensearch.notifications.keystore.<config-id>.<alias>${keystore:<alias>}referencesReloadablePluginso_nodes/reload_secure_settingsrefreshes the in-memory valuesExample
Add a node-local value on every node that can send notifications:
bin/opensearch-keystore add opensearch.notifications.keystore.<config-id>.slack.pathStore the reference in the notification configuration:
After changing keystore files, reload them through the OpenSearch nodes reload secure settings API.
Design discussion
This is an exploratory alternative to #1218. Rather than encrypting secret material into
.opensearch-notifications-config, it stores an explicit reference and obtains the value from each node OpenSearch keystore at send time. The system index remains searchable for non-secret structure, and the implementation does not require encryption-key rotation or ciphertext migration.The current prototype intentionally scopes aliases by notification config ID so one configuration cannot reference another configuration secret alias.
Open questions and limitations
${keystore:...}. This prototype therefore demonstrates embedded URL references; a production design may need a common-utils change to recognize exact reference tokens.This draft is intended to compare the keystore-reference approach with encrypted system-index storage before settling the API and authorization model.
Testing
./gradlew :notifications:testktlint(run by the Gradle build)