Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
In order to track where a FlowFile is sent to or received from, a provenance event record has to have target RemoteGroupPort ID (if it's S2S client) or RootGroupPort ID (if it's S2S server) in it.
RemoteGroupPort used to have its component UUID as the same UUID as corresponding RootGroupPort's, but NIFI-3155 changed each RemoteGroupPort instance to have different UUIDs.
HTTP protocol still contains port uuid in transit URI. But RAW does not contain a port identifier neither in transit URI nor provenance event record any longer.
Currently, each S2S protocol generates provenance event with transit URI as follows:
- RAW
- nifi://remote-host:remote-port/flowfile-uuid
- E.g. nifi://nifi1.example.com:8081/cb729f05-b2ee-4488-909d-c6696cc34588
- HTTP
- http(s)://homote-host:remote-port/nifi-api/data-transfer/in|output-ports/portId/transactions/txId/flow-files
- E.g. http://nifi1.example.coml:8080/nifi-api/data-transfer/input-ports/35dbc0ab-015e-1000-144c-a8d71255027d/transactions/89335043-f105-4de7-a0ef-46f2ef0c7c51/flow-files
Also provenance events created when a FlowFile is received from remotely have 'Source FlowFile Id' field which contains FlowFile UUID in remote instance.
This JIRA changes RAW S2S protocol to embed Port ID instead of FlowFile ID (which is available in Source FlowFile Id if needed).