Просмотр исходного кода

feat(webhook): return not supported error for GetAllSecrets (#6817)

* feat(webhook): return not supported error for GetAllSecrets

Signed-off-by: Abderraoufzekkour <abderraoufzekkour05@gmail.com>

* test(webhook): add test for GetAllSecrets not supported

Signed-off-by: Abderraoufzekkour <abderraoufzekkour05@gmail.com>

* fix(webhook): address review comments - use const and errors.New

Signed-off-by: Abderraoufzekkour <abderraoufzekkour05@gmail.com>

---------

Signed-off-by: Abderraoufzekkour <abderraoufzekkour05@gmail.com>
Co-authored-by: Alexander Chernov <alexander@chernov.it>
Abderraouf Zekkour 1 неделя назад
Родитель
Сommit
882baf6dcb
2 измененных файлов с 26 добавлено и 5 удалено
  1. 6 5
      providers/v1/webhook/webhook.go
  2. 20 0
      providers/v1/webhook/webhook_test.go

+ 6 - 5
providers/v1/webhook/webhook.go

@@ -36,8 +36,8 @@ import (
 )
 
 const (
-	errNotImplemented   = "not implemented"
-	errFailedToGetStore = "failed to get store: %w"
+	errGetAllSecretsNotSupported = "GetAllSecrets is not supported by the Webhook provider"
+	errFailedToGetStore          = "failed to get store: %w"
 )
 
 // https://github.com/external-secrets/external-secrets/issues/644
@@ -215,10 +215,11 @@ func (w *WebHook) PushSecret(ctx context.Context, secret *corev1.Secret, data es
 	return nil
 }
 
-// GetAllSecrets Empty .
+// GetAllSecrets is not supported by the Webhook provider.
+// The webhook provider is designed for single secret retrieval and does not
+// support listing or finding secrets by name or tags.
 func (w *WebHook) GetAllSecrets(_ context.Context, _ esv1.ExternalSecretFind) (map[string][]byte, error) {
-	// TO be implemented
-	return nil, errors.New(errNotImplemented)
+	return nil, errors.New(errGetAllSecretsNotSupported)
 }
 
 // GetSecret gets a secret from the remote store.

+ 20 - 0
providers/v1/webhook/webhook_test.go

@@ -835,3 +835,23 @@ func TestDeleteSecret(t *testing.T) {
 		})
 	}
 }
+
+func TestGetAllSecrets(t *testing.T) {
+	store := makeClusterSecretStore("http://fake-url", args{URL: "/api/secret"})
+	prov := &Provider{}
+	client, err := prov.NewClient(context.Background(), store, nil, "testnamespace")
+	if err != nil {
+		t.Fatalf("failed to create client: %v", err)
+	}
+
+	result, err := client.GetAllSecrets(context.Background(), esv1.ExternalSecretFind{})
+	if result != nil {
+		t.Errorf("expected nil result, got %v", result)
+	}
+	if err == nil {
+		t.Fatal("expected error, got nil")
+	}
+	if err.Error() != errGetAllSecretsNotSupported {
+		t.Errorf("expected error %q, got %q", errGetAllSecretsNotSupported, err.Error())
+	}
+}