-
Processors
- AttributeRollingWindow
- AttributesToCSV
- AttributesToJSON
- CalculateRecordStats
- CaptureChangeMySQL
- CompressContent
- ConnectWebSocket
- ConsumeAMQP
- ConsumeAzureEventHub
- ConsumeElasticsearch
- ConsumeGCPubSub
- ConsumeIMAP
- ConsumeJMS
- ConsumeKafka
- ConsumeKinesisStream
- ConsumeMQTT
- ConsumePOP3
- ConsumeSlack
- ConsumeTwitter
- ConsumeWindowsEventLog
- ControlRate
- ConvertCharacterSet
- ConvertRecord
- CopyAzureBlobStorage_v12
- CopyS3Object
- CountText
- CryptographicHashContent
- DebugFlow
- DecryptContentAge
- DecryptContentPGP
- DeduplicateRecord
- DeleteAzureBlobStorage_v12
- DeleteAzureDataLakeStorage
- DeleteByQueryElasticsearch
- DeleteDynamoDB
- DeleteFile
- DeleteGCSObject
- DeleteGridFS
- DeleteMongo
- DeleteS3Object
- DeleteSFTP
- DeleteSQS
- DetectDuplicate
- DistributeLoad
- DuplicateFlowFile
- EncodeContent
- EncryptContentAge
- EncryptContentPGP
- EnforceOrder
- EvaluateJsonPath
- EvaluateXPath
- EvaluateXQuery
- ExecuteGroovyScript
- ExecuteProcess
- ExecuteScript
- ExecuteSQL
- ExecuteSQLRecord
- ExecuteStreamCommand
- ExtractAvroMetadata
- ExtractEmailAttachments
- ExtractEmailHeaders
- ExtractGrok
- ExtractHL7Attributes
- ExtractRecordSchema
- ExtractText
- FetchAzureBlobStorage_v12
- FetchAzureDataLakeStorage
- FetchBoxFile
- FetchDistributedMapCache
- FetchDropbox
- FetchFile
- FetchFTP
- FetchGCSObject
- FetchGoogleDrive
- FetchGridFS
- FetchS3Object
- FetchSFTP
- FetchSmb
- FilterAttribute
- FlattenJson
- ForkEnrichment
- ForkRecord
- GenerateFlowFile
- GenerateRecord
- GenerateTableFetch
- GeoEnrichIP
- GeoEnrichIPRecord
- GeohashRecord
- GetAsanaObject
- GetAwsPollyJobStatus
- GetAwsTextractJobStatus
- GetAwsTranscribeJobStatus
- GetAwsTranslateJobStatus
- GetAzureEventHub
- GetAzureQueueStorage_v12
- GetDynamoDB
- GetElasticsearch
- GetFile
- GetFTP
- GetGcpVisionAnnotateFilesOperationStatus
- GetGcpVisionAnnotateImagesOperationStatus
- GetHubSpot
- GetMongo
- GetMongoRecord
- GetS3ObjectMetadata
- GetSFTP
- GetShopify
- GetSmbFile
- GetSNMP
- GetSplunk
- GetSQS
- GetWorkdayReport
- GetZendesk
- HandleHttpRequest
- HandleHttpResponse
- IdentifyMimeType
- InvokeHTTP
- InvokeScriptedProcessor
- ISPEnrichIP
- JoinEnrichment
- JoltTransformJSON
- JoltTransformRecord
- JSLTTransformJSON
- JsonQueryElasticsearch
- ListAzureBlobStorage_v12
- ListAzureDataLakeStorage
- ListBoxFile
- ListDatabaseTables
- ListDropbox
- ListenFTP
- ListenHTTP
- ListenOTLP
- ListenSlack
- ListenSyslog
- ListenTCP
- ListenTrapSNMP
- ListenUDP
- ListenUDPRecord
- ListenWebSocket
- ListFile
- ListFTP
- ListGCSBucket
- ListGoogleDrive
- ListS3
- ListSFTP
- ListSmb
- LogAttribute
- LogMessage
- LookupAttribute
- LookupRecord
- MergeContent
- MergeRecord
- ModifyBytes
- ModifyCompression
- MonitorActivity
- MoveAzureDataLakeStorage
- Notify
- PackageFlowFile
- PaginatedJsonQueryElasticsearch
- ParseEvtx
- ParseNetflowv5
- ParseSyslog
- ParseSyslog5424
- PartitionRecord
- PublishAMQP
- PublishGCPubSub
- PublishJMS
- PublishKafka
- PublishMQTT
- PublishSlack
- PutAzureBlobStorage_v12
- PutAzureCosmosDBRecord
- PutAzureDataExplorer
- PutAzureDataLakeStorage
- PutAzureEventHub
- PutAzureQueueStorage_v12
- PutBigQuery
- PutBoxFile
- PutCloudWatchMetric
- PutDatabaseRecord
- PutDistributedMapCache
- PutDropbox
- PutDynamoDB
- PutDynamoDBRecord
- PutElasticsearchJson
- PutElasticsearchRecord
- PutEmail
- PutFile
- PutFTP
- PutGCSObject
- PutGoogleDrive
- PutGridFS
- PutKinesisFirehose
- PutKinesisStream
- PutLambda
- PutMongo
- PutMongoBulkOperations
- PutMongoRecord
- PutRecord
- PutRedisHashRecord
- PutS3Object
- PutSalesforceObject
- PutSFTP
- PutSmbFile
- PutSNS
- PutSplunk
- PutSplunkHTTP
- PutSQL
- PutSQS
- PutSyslog
- PutTCP
- PutUDP
- PutWebSocket
- PutZendeskTicket
- QueryAirtableTable
- QueryAzureDataExplorer
- QueryDatabaseTable
- QueryDatabaseTableRecord
- QueryRecord
- QuerySalesforceObject
- QuerySplunkIndexingStatus
- RemoveRecordField
- RenameRecordField
- ReplaceText
- ReplaceTextWithMapping
- RetryFlowFile
- RouteHL7
- RouteOnAttribute
- RouteOnContent
- RouteText
- RunMongoAggregation
- SampleRecord
- ScanAttribute
- ScanContent
- ScriptedFilterRecord
- ScriptedPartitionRecord
- ScriptedTransformRecord
- ScriptedValidateRecord
- SearchElasticsearch
- SegmentContent
- SendTrapSNMP
- SetSNMP
- SignContentPGP
- SplitAvro
- SplitContent
- SplitExcel
- SplitJson
- SplitPCAP
- SplitRecord
- SplitText
- SplitXml
- StartAwsPollyJob
- StartAwsTextractJob
- StartAwsTranscribeJob
- StartAwsTranslateJob
- StartGcpVisionAnnotateFilesOperation
- StartGcpVisionAnnotateImagesOperation
- TagS3Object
- TailFile
- TransformXml
- UnpackContent
- UpdateAttribute
- UpdateByQueryElasticsearch
- UpdateCounter
- UpdateDatabaseTable
- UpdateRecord
- ValidateCsv
- ValidateJson
- ValidateRecord
- ValidateXml
- VerifyContentMAC
- VerifyContentPGP
- Wait
-
Controller Services
- ADLSCredentialsControllerService
- ADLSCredentialsControllerServiceLookup
- AmazonGlueSchemaRegistry
- ApicurioSchemaRegistry
- AvroReader
- AvroRecordSetWriter
- AvroSchemaRegistry
- AWSCredentialsProviderControllerService
- AzureBlobStorageFileResourceService
- AzureCosmosDBClientService
- AzureDataLakeStorageFileResourceService
- AzureEventHubRecordSink
- AzureStorageCredentialsControllerService_v12
- AzureStorageCredentialsControllerServiceLookup_v12
- CEFReader
- ConfluentEncodedSchemaReferenceReader
- ConfluentEncodedSchemaReferenceWriter
- ConfluentSchemaRegistry
- CSVReader
- CSVRecordLookupService
- CSVRecordSetWriter
- DatabaseRecordLookupService
- DatabaseRecordSink
- DatabaseTableSchemaRegistry
- DBCPConnectionPool
- DBCPConnectionPoolLookup
- DistributedMapCacheLookupService
- ElasticSearchClientServiceImpl
- ElasticSearchLookupService
- ElasticSearchStringLookupService
- EmailRecordSink
- EmbeddedHazelcastCacheManager
- ExcelReader
- ExternalHazelcastCacheManager
- FreeFormTextRecordSetWriter
- GCPCredentialsControllerService
- GCSFileResourceService
- GrokReader
- HazelcastMapCacheClient
- HikariCPConnectionPool
- HttpRecordSink
- IPLookupService
- JettyWebSocketClient
- JettyWebSocketServer
- JMSConnectionFactoryProvider
- JndiJmsConnectionFactoryProvider
- JsonConfigBasedBoxClientService
- JsonPathReader
- JsonRecordSetWriter
- JsonTreeReader
- Kafka3ConnectionService
- KerberosKeytabUserService
- KerberosPasswordUserService
- KerberosTicketCacheUserService
- LoggingRecordSink
- MapCacheClientService
- MapCacheServer
- MongoDBControllerService
- MongoDBLookupService
- PropertiesFileLookupService
- ProtobufReader
- ReaderLookup
- RecordSetWriterLookup
- RecordSinkServiceLookup
- RedisConnectionPoolService
- RedisDistributedMapCacheClientService
- RestLookupService
- S3FileResourceService
- ScriptedLookupService
- ScriptedReader
- ScriptedRecordSetWriter
- ScriptedRecordSink
- SetCacheClientService
- SetCacheServer
- SimpleCsvFileLookupService
- SimpleDatabaseLookupService
- SimpleKeyValueLookupService
- SimpleRedisDistributedMapCacheClientService
- SimpleScriptedLookupService
- SiteToSiteReportingRecordSink
- SlackRecordSink
- SmbjClientProviderService
- StandardAsanaClientProviderService
- StandardAzureCredentialsControllerService
- StandardDropboxCredentialService
- StandardFileResourceService
- StandardHashiCorpVaultClientService
- StandardHttpContextMap
- StandardJsonSchemaRegistry
- StandardKustoIngestService
- StandardKustoQueryService
- StandardOauth2AccessTokenProvider
- StandardPGPPrivateKeyService
- StandardPGPPublicKeyService
- StandardPrivateKeyService
- StandardProxyConfigurationService
- StandardRestrictedSSLContextService
- StandardS3EncryptionService
- StandardSSLContextService
- StandardWebClientServiceProvider
- Syslog5424Reader
- SyslogReader
- UDPEventRecordSink
- VolatileSchemaCache
- WindowsEventLogReader
- XMLFileLookupService
- XMLReader
- XMLRecordSetWriter
- YamlTreeReader
- ZendeskRecordSink
GetAsanaObject 2.0.0
- Bundle
- org.apache.nifi | nifi-asana-processors-nar
- Description
- This processor collects data from Asana
- Tags
- asana, ingest, source
- Input Requirement
- FORBIDDEN
- Supports Sensitive Dynamic Properties
- false
-
Additional Details for GetAsanaObject 2.0.0
GetAsanaObject
Description
This processor collects various objects (e.g. tasks, comments, etc…) from Asana via the specified
AsanaClientService
. When the processor started for the first time with a given configuration it collects each of the objects matching the user specified criteria, and emitsFlowFile
s of each on theNEW
relationship. Then, it polls Asana in the frequency of the configured Run Schedule and detects changes by comparing the object fingerprints. When there are updates, it emits them through theUPDATED
andREMOVED
relationships, respectively.FlowFile contents & attributes
Each emitted
FlowFile
contains the Json representation of the fetched Asana object. These can be processed further via the respective processors, that accept text data in this format. TheFlowFile
s emitted from theREMOVED
relationship have no content, because the actual data is not stored in the processor, and so there is no way to retrieve the deleted content.Each
FlowFile
, regardless to which relationship they were emitted from, have anasana.gid
attribute set, which contain the ID of the object in Asana. These IDs are globally unique within the Asana instance, regardless of what type of object they were assigned to. In case of Events, these IDs are generated by the client, because Asana does not keep track of these objects.Object fingerprints
These are used only for content change detection.
Fingerprints are generally calculated by applying an
SHA-512
algorithm on the retrieved object. In case of immutable objects, like Attachments, these fingerprints are static, so _update_s (which is impossible anyway) are not detected. In case of Projects and Tasks, where the last modification time is available, these timestamps are stored as fingerprints.Batch size
By default, this processor emits each fetched object from Asana in a separate
FlowFile
. This is usually OK for a workspace having low traffic, and thus generating data in low rate. For workspaces with high volume of traffic, it is advisable to set the batch size to a reasonably high value, to have better performance. With this value set to something other than the default (1), the processor will emitFlowFile
s that have multiple items batched together in a Json array, but in exchange, without having theasana.gid
attribute set.Configuring filters, filtering by name
In case of collecting some objects, like Project Events, Tasks, and Team Members, the processor requires/allows defining filters. In example: if you would like to collect Tasks, then you need to define the project from where the tasks you would like to collect.
In these cases, when the filters refer to some parent object, you need to provide its name in the configuration, in case-sensitive manner. Another important note to keep in mind, Asana lets the users create multiple objects with the same name. In example: you can create two projects with name ‘My project’. But when you need to refer to this project by its name, it is impossible to figure out which ‘My project’ you intended to refer to, therefore these situations should be avoided. In such cases, this processor picks the first one returned by Asana when listing them. This is not random, but the ordering is not guaranteed.
Further reading about Asana
-
Asana Client Service
Specify which controller service to use for accessing Asana.
- Display Name
- Asana Client Service
- Description
- Specify which controller service to use for accessing Asana.
- API Name
- asana-controller-service
- Service Interface
- org.apache.nifi.controller.asana.AsanaClientProviderService
- Service Implementations
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Object Type
Specify what kind of objects to be collected from Asana
- Display Name
- Object Type
- Description
- Specify what kind of objects to be collected from Asana
- API Name
- asana-object-type
- Default Value
- asana-collect-tasks
- Allowable Values
-
- Tasks
- Task Attachments
- Projects
- Tags
- Users
- Members of a Project
- Teams
- Team Members
- Stories of Tasks
- Status Updates of a Project
- Attachments of Status Updates
- Events of a Project
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Output Batch Size
The number of items batched together in a single Flow File. If set to 1 (default), then each item is transferred in a separate Flow File and each will have an asana.gid attribute, to help identifying the fetched item on the server side, if needed. If the batch size is greater than 1, then the specified amount of items are batched together in a single Flow File as a Json array, and the Flow Files won't have the asana.gid attribute.
- Display Name
- Output Batch Size
- Description
- The number of items batched together in a single Flow File. If set to 1 (default), then each item is transferred in a separate Flow File and each will have an asana.gid attribute, to help identifying the fetched item on the server side, if needed. If the batch size is greater than 1, then the specified amount of items are batched together in a single Flow File as a Json array, and the Flow Files won't have the asana.gid attribute.
- API Name
- asana-output-batch-size
- Default Value
- 1
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Project Name
Fetch only objects in this project. Case sensitive.
- Display Name
- Project Name
- Description
- Fetch only objects in this project. Case sensitive.
- API Name
- asana-project-name
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
- Dependencies
-
- Object Type is set to any of [asana-collect-project-members, asana-collect-project-status-attachments, asana-collect-project-status-updates, asana-collect-task-attachments, asana-collect-stories, asana-collect-tasks, asana-collect-project-events]
-
Section Name
Fetch only objects in this section. Case sensitive.
- Display Name
- Section Name
- Description
- Fetch only objects in this section. Case sensitive.
- API Name
- asana-section-name
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
- Dependencies
-
- Object Type is set to any of [asana-collect-task-attachments, asana-collect-stories, asana-collect-tasks]
-
Tag
Fetch only objects having this tag. Case sensitive.
- Display Name
- Tag
- Description
- Fetch only objects having this tag. Case sensitive.
- API Name
- asana-tag-name
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
- Dependencies
-
- Object Type is set to any of [asana-collect-task-attachments, asana-collect-stories, asana-collect-tasks]
-
Team
Team name. Case sensitive.
- Display Name
- Team
- Description
- Team name. Case sensitive.
- API Name
- asana-team-name
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
- Dependencies
-
- Object Type is set to any of [asana-collect-team-members]
-
Distributed Cache Service
Cache service to store fetched item fingerprints. These, from the last successful query are stored, in order to enable incremental loading and change detection.
- Display Name
- Distributed Cache Service
- Description
- Cache service to store fetched item fingerprints. These, from the last successful query are stored, in order to enable incremental loading and change detection.
- API Name
- distributed-cache-service
- Service Interface
- org.apache.nifi.distributed.cache.client.DistributedMapCacheClient
- Service Implementations
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
Resource | Description |
---|---|
MEMORY | An instance of this component can cause high usage of this system resource. Multiple instances or high concurrency settings may result a degradation of performance. |
Name | Description |
---|---|
removed | Notification about deleted objects are routed to this relationship. Flow files will not have any payload. IDs of the resources no longer exist are carried by the asana.gid attribute of the generated FlowFiles. |
new | Newly collected objects are routed to this relationship. |
updated | Objects that have already been collected earlier, but were updated since, are routed to this relationship. |
Name | Description |
---|---|
asana.gid | Global ID of the object in Asana. |