@Tags({"Kerberos", "Keytab", "Principal", "Credentials", "Authentication", "Security"}) @Restricted(restrictions = { @Restriction(requiredPermission = RequiredPermission.ACCESS_KEYTAB, explanation = "Allows user to define a Keytab and principal that can then be used by other components.") }) public class KeytabCredentialsService extends AbstractControllerService implements KerberosCredentialsService {
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.READ_FILESYSTEM, explanation = "Provides operator the ability to read from any file that NiFi has access to."), @Restriction( requiredPermission = RequiredPermission.WRITE_FILESYSTEM, explanation = "Provides operator the ability to delete any file that NiFi has access to.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXPORT_NIFI_DETAILS, explanation = "Provides operator the ability to send sensitive details contained in bulletin events to any external system.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary Flume configurations assuming all permissions that NiFi has.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXPORT_NIFI_DETAILS, explanation = "Provides operator the ability to send sensitive details contained in Provenance events to any external system.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary Flume configurations assuming all permissions that NiFi has.")
@SupportsBatching @InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED) @Tags({"parquet", "hadoop", "HDFS", "get", "ingest", "fetch", "source", "record"}) @CapabilityDescription("Reads from a given Parquet file and writes records to the content of the flow file using " + "the selected record writer. The original Parquet file will remain unchanged, and the content of the flow file " + "will be replaced with records of the selected type. This processor can be used with ListHDFS or ListFile to obtain " + "a listing of files to fetch.") @WritesAttributes({ @WritesAttribute(attribute="fetch.failure.reason", description="When a FlowFile is routed to 'failure', this attribute is added " + "indicating why the file could not be fetched from the given filesystem."), @WritesAttribute(attribute = "record.count", description = "The number of records in the resulting flow file") }) @SeeAlso({PutParquet.class}) @Restricted(restrictions = { @Restriction( requiredPermission = RequiredPermission.READ_FILESYSTEM, explanation = "Provides operator the ability to retrieve any file that NiFi has access to in HDFS or the local filesystem.") }) public class FetchParquet extends AbstractFetchHDFSRecord { @Override public HDFSRecordReader createHDFSRecordReader(final ProcessContext context, final FlowFile flowFile, final Configuration conf, final Path path) throws IOException { final ParquetReader.Builder<GenericRecord> readerBuilder = AvroParquetReader.<GenericRecord>builder(path).withConf(conf); return new AvroParquetHDFSRecordReader(readerBuilder.build()); } }
@SeeAlso({ListHDFS.class, GetHDFS.class, PutHDFS.class}) @Restricted(restrictions = { @Restriction( requiredPermission = RequiredPermission.READ_FILESYSTEM, explanation = "Provides operator the ability to retrieve any file that NiFi has access to in HDFS or the local filesystem.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.")
}) @Restricted(restrictions = { @Restriction( requiredPermission = RequiredPermission.WRITE_FILESYSTEM, explanation = "Provides operator the ability to write any file that NiFi has access to in HDFS or the local filesystem.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.EXECUTE_CODE, explanation = "Provides operator the ability to execute arbitrary code assuming all permissions that NiFi has.")
}) @Restricted(restrictions = { @Restriction( requiredPermission = RequiredPermission.WRITE_FILESYSTEM, explanation = "Provides operator the ability to write to any file that NiFi has access to in HDFS or the local filesystem.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.WRITE_FILESYSTEM, explanation = "Provides operator the ability to write to any file that NiFi has access to.")
+ " knowledge of globbed files deleted is necessary use ListHDFS first to produce a specific list of files to delete. ") @Restricted(restrictions = { @Restriction( requiredPermission = RequiredPermission.WRITE_FILESYSTEM, explanation = "Provides operator the ability to delete any file that NiFi has access to in HDFS or the local filesystem.")
@Restricted( restrictions = { @Restriction( requiredPermission = RequiredPermission.READ_FILESYSTEM, explanation = "Provides operator the ability to read from any file that NiFi has access to."), @Restriction( requiredPermission = RequiredPermission.WRITE_FILESYSTEM, explanation = "Provides operator the ability to delete any file that NiFi has access to.")
@SeeAlso(GetHDFS.class) @Restricted(restrictions = { @Restriction( requiredPermission = RequiredPermission.WRITE_FILESYSTEM, explanation = "Provides operator the ability to delete any file that NiFi has access to in HDFS or the local filesystem.")