From d952bd593303e1f7bf15c3102e5ede1abf424070 Mon Sep 17 00:00:00 2001 From: Kohelbekker Date: Fri, 24 Sep 2021 01:53:27 +0300 Subject: [PATCH] Fix: change LoadSecret logic for empty metadata --- README.md | 9 +++++++++ pkg/vault/vault.go | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 76b9fc7..7c53540 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,15 @@ To **delete** existing secrets for a given app name and scope, run: vault delete secret/data/$KAIGARA_DEPLOYMENT_ID/$KAIGARA_APP_NAME/*scope* ``` +To delete all versions and metadata for the provided key for a given app name and scope, run: +```sh +vault kv metadata delete secret/$KAIGARA_DEPLOYMENT_ID/$KAIGARA_APP_NAME/*scope* +``` +This command don't remove the underlying version data from storage, it will mark the version as deleted which allows the version to be undeleted - `vault kv undelete`, while next command will make version data permanently deleted: +```sh +vault kv metadata destroy secret/$KAIGARA_DEPLOYMENT_ID/$KAIGARA_APP_NAME/*scope* +``` + ### Bulk writing secrets to the SecretStore To write secrets from the command line, save in a YAML file with a format similar to `secrets.yaml` and use `kaisave -f *filepath*` diff --git a/pkg/vault/vault.go b/pkg/vault/vault.go index 516bee6..6f7b088 100644 --- a/pkg/vault/vault.go +++ b/pkg/vault/vault.go @@ -198,7 +198,7 @@ func (vs *Service) LoadSecrets(appName, scope string) error { vs.metadata[appName] = make(map[string]interface{}) } - if secret == nil || secret.Data == nil || secret.Data["data"] == nil { + if secret == nil || secret.Data == nil || secret.Data["data"] == nil || secret.Data["metadata"] == nil { vs.data[appName][scope] = make(map[string]interface{}) vs.metadata[appName][scope] = make(map[string]interface{}) } else {