This is an automated email from the ASF dual-hosted git repository. jackie pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push: new f99e9fbb71 Revert SecretStore interface (#15627) f99e9fbb71 is described below commit f99e9fbb71f1764426bc7ec55b09eb545769696f Author: Xiaotian (Jackie) Jiang <17555551+jackie-ji...@users.noreply.github.com> AuthorDate: Thu Apr 24 11:19:47 2025 -0600 Revert SecretStore interface (#15627) --- .../apache/pinot/spi/secretstore/SecretStore.java | 94 ---------------------- .../spi/secretstore/SecretStoreException.java | 94 ---------------------- 2 files changed, 188 deletions(-) diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/secretstore/SecretStore.java b/pinot-spi/src/main/java/org/apache/pinot/spi/secretstore/SecretStore.java deleted file mode 100644 index 4bde44490a..0000000000 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/secretstore/SecretStore.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.pinot.spi.secretstore; - -import java.util.List; - -/** - * Interface for managing secrets in Apache Pinot. - * - * This interface abstracts away the details of the underlying secret storage mechanism, - * allowing Pinot to work with various secret management systems like AWS Secrets Manager, - * HashiCorp Vault, or other custom implementations. - * - * Implementations of this interface should handle all aspects of secret management including - * secure storage, retrieval, and cleanup of sensitive information such as connection credentials. - * All implementations must be thread-safe. - */ -public interface SecretStore { - - /** - * Stores a secret in the secret management system. - * - * @param secretKey A unique identifier for the secret, typically following a hierarchical - * naming pattern (e.g., "pinot/tables/myTable/credentials") - * @param secretValue The actual secret value to be securely stored - * @return A reference key that can be used later to retrieve the secret - * @throws SecretStoreException If the secret cannot be stored due to connectivity issues, - * permission problems, or other errors - */ - String storeSecret(String secretKey, String secretValue) throws SecretStoreException; - - /** - * Retrieves a secret from the secret management system. - * - * @param secretKey The reference key obtained when the secret was stored - * @return The actual secret value - * @throws SecretStoreException If the secret cannot be retrieved or doesn't exist - */ - String getSecret(String secretKey) throws SecretStoreException; - - /** - * Updates an existing secret with a new value. - * - * @param secretKey The reference key for the secret to be updated - * @param newSecretValue The new value to store - * @throws SecretStoreException If the secret cannot be updated or doesn't exist - */ - void updateSecret(String secretKey, String newSecretValue) throws SecretStoreException; - - /** - * Deletes a secret when it is no longer needed. - * - * This method should be called when the associated resource (e.g., a table or connection) - * is being deleted to ensure proper cleanup of sensitive information. - * - * @param secretKey The reference key for the secret to be deleted - * @throws SecretStoreException If the secret cannot be deleted or doesn't exist - */ - void deleteSecret(String secretKey) throws SecretStoreException; - - /** - * Checks if a secret exists in the secret management system. - * - * @param secretKey The reference key for the secret - * @return true if the secret exists, false otherwise - * @throws SecretStoreException If the check cannot be performed - */ - boolean exists(String secretKey) throws SecretStoreException; - - /** - * Lists all secrets with a given prefix. - * - * @param prefix The prefix to filter secrets by - * @return A list of secret keys matching the prefix - * @throws SecretStoreException If the secret list cannot be retrieved - */ - List<String> listSecrets(String prefix) throws SecretStoreException; -} diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/secretstore/SecretStoreException.java b/pinot-spi/src/main/java/org/apache/pinot/spi/secretstore/SecretStoreException.java deleted file mode 100644 index 5ca8a7f862..0000000000 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/secretstore/SecretStoreException.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.pinot.spi.secretstore; - -/** - * Exception thrown when operations on the {@link SecretStore} fail. - * This exception encapsulates errors that may occur during secret storage, - * retrieval, updating, or deletion operations. - */ -public class SecretStoreException extends RuntimeException { - - /** - * Creates a new SecretStoreException with the specified message. - * - * @param message the detail message - */ - public SecretStoreException(String message) { - super(message); - } - - /** - * Creates a new SecretStoreException with the specified message and cause. - * - * @param message the detail message - * @param cause the cause of the exception - */ - public SecretStoreException(String message, Throwable cause) { - super(message, cause); - } - - /** - * Creates a new SecretStoreException with the specified cause. - * - * @param cause the cause of the exception - */ - public SecretStoreException(Throwable cause) { - super(cause); - } - - /** - * Exception thrown when a requested secret cannot be found. - */ - public static class SecretNotFoundException extends SecretStoreException { - public SecretNotFoundException(String secretKey) { - super("Secret not found: " + secretKey); - } - - public SecretNotFoundException(String secretKey, Throwable cause) { - super("Secret not found: " + secretKey, cause); - } - } - - /** - * Exception thrown when permission is denied for a secret store operation. - */ - public static class SecretPermissionException extends SecretStoreException { - public SecretPermissionException(String secretKey) { - super("Permission denied for secret: " + secretKey); - } - - public SecretPermissionException(String secretKey, Throwable cause) { - super("Permission denied for secret: " + secretKey, cause); - } - } - - /** - * Exception thrown when the secret store is unavailable or cannot be reached. - */ - public static class SecretStoreConnectionException extends SecretStoreException { - public SecretStoreConnectionException(String message) { - super("Failed to connect to secret store: " + message); - } - - public SecretStoreConnectionException(String message, Throwable cause) { - super("Failed to connect to secret store: " + message, cause); - } - } -} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org