diff --git a/src/main/java/org/apache/nifi/parameter/ParameterProvider.java b/src/main/java/org/apache/nifi/parameter/ParameterProvider.java index d8cf6ad..3e36a88 100644 --- a/src/main/java/org/apache/nifi/parameter/ParameterProvider.java +++ b/src/main/java/org/apache/nifi/parameter/ParameterProvider.java @@ -89,6 +89,27 @@ public interface ParameterProvider extends ConfigurableComponent { */ List fetchParameters(ConfigurationContext context) throws IOException; + /** + * Lists named groups of parameters from an external source, returning only parameter metadata without necessarily resolving + * parameter values. This method is intended for use cases such as populating a parameter picker UI, where only the names, + * groups, and descriptions of available parameters are needed. + * + *

+ * The default implementation delegates to {@link #fetchParameters(ConfigurationContext)}, which fetches all parameter values. + * Implementations that can enumerate parameter metadata without the cost of fetching values (for example, by querying a + * catalog or running a metadata-only listing command) should override this method to provide an optimized implementation. + * In such cases, the returned {@link Parameter} objects may have {@code null} values. + *

+ * + * @param context The ConfigurationContext for the provider + * @return A list of Parameter groups containing parameter metadata. Parameter values may be {@code null} if the + * implementation provides metadata without resolving values. + * @throws IOException if there is an I/O problem while listing the Parameters + */ + default List listParameters(final ConfigurationContext context) throws IOException { + return fetchParameters(context); + } + /** *

* Allows for the migration of an old property configuration to a new configuration. This allows the Parameter Provider to evolve over time,