| /* |
| * 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.nifi.web; |
| |
| import java.util.Collection; |
| import java.util.Map; |
| |
| import org.apache.nifi.controller.ControllerService; |
| |
| /** |
| * NiFi web context providing limited access to dataflow configuration for |
| * component custom UIs. |
| */ |
| public interface NiFiWebConfigurationContext { |
| |
| /** |
| * @param serviceIdentifier of the controller service |
| * @param componentId the id of the component that is referencing the controller service |
| * @return the ControllerService for the specified identifier. If a |
| * corresponding service cannot be found, null is returned. If this NiFi is |
| * clustered, the only services available will be those those availability |
| * is NCM only |
| */ |
| ControllerService getControllerService(String serviceIdentifier, String componentId); |
| |
| /** |
| * Provides a mechanism for custom UIs to save actions to appear in NiFi |
| * configuration history. Note all fields within each Action must be |
| * populated. Null values will result in a failure to insert the audit |
| * record. Since the saving to these actions is separate from the actual |
| * configuration change, a failure to insert here will just generate a |
| * warning log message. The recording of these actions typically happens |
| * after a configuration change is applied. Since those changes have already |
| * been applied to the flow, we cannot revert them because of a failure to |
| * insert an audit record. |
| * |
| * @param requestContext context of the request |
| * @param actions to save |
| * @throws IllegalArgumentException When the requestContext isn't fully |
| * populated or isn't appropriate for the given request |
| */ |
| void saveActions(NiFiWebRequestContext requestContext, Collection<ConfigurationAction> actions); |
| |
| /** |
| * @return the current user identity. The value may be a DN, an email, a username, or any string that identities the user. Returns null if no user is found |
| */ |
| String getCurrentUserIdentity(); |
| |
| /** |
| * Sets the annotation data for the underlying component. |
| * |
| * @param configurationContext config context |
| * @param annotationData the data |
| * @param properties component properties |
| * @return the configuration for the underlying component |
| * @throws ResourceNotFoundException if the underlying component does not |
| * exit |
| * @throws InvalidRevisionException if a revision other than the current |
| * revision is given |
| * @throws ClusterRequestException if the annotation data was unable to be |
| * set for the underlying component. This exception will only be thrown when |
| * operating in a cluster. |
| * @throws IllegalArgumentException When the requestContext isn't fully |
| * populated or isn't appropriate for the given request |
| */ |
| ComponentDetails updateComponent(NiFiWebConfigurationRequestContext configurationContext, String annotationData, Map<String, String> properties) |
| throws ResourceNotFoundException, InvalidRevisionException, ClusterRequestException; |
| |
| |
| /** |
| * Gets the details for the underlying component (including configuration, |
| * validation errors, and annotation data). |
| * |
| * @param requestContext context of request |
| * @return the configuration for the underlying component |
| * @throws ResourceNotFoundException if the underlying component does not |
| * exit |
| * @throws ClusterRequestException if the underlying component was unable to |
| * be retrieved from the cluster. This exception will only be thrown when |
| * operating in a cluster. |
| * @throws IllegalArgumentException When the requestContext isn't fully |
| * populated or isn't appropriate for the given request |
| */ |
| ComponentDetails getComponentDetails(NiFiWebRequestContext requestContext) throws ResourceNotFoundException, ClusterRequestException; |
| } |