# 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.

MiNiFi Config Version: 3
Flow Controller:
  name: MiNiFi Flow
  comment: ''
Core Properties:
  flow controller graceful shutdown period: 10 sec
  flow service write delay interval: 500 ms
  administrative yield duration: 30 sec
  bored yield duration: 10 millis
  max concurrent threads: 1
FlowFile Repository:
  partitions: 256
  checkpoint interval: 2 mins
  always sync: false
  Swap:
    threshold: 20000
    in period: 5 sec
    in threads: 1
    out period: 5 sec
    out threads: 4
Content Repository:
  content claim max appendable size: 10 MB
  content claim max flow files: 100
  always sync: false
  content repository archive max retention period: 12 hours
  content repository archive max usage percentage: 50%
  content repository archive enabled: false
Provenance Repository:
  provenance rollover time: 1 min
  provenance max storage time: 24 hours
  provenance max storage size: 1 GB
  provenance index shard size: 500 MB
  provenance buffer size: 10000
Component Status Repository:
  buffer size: 1440
  snapshot frequency: 1 min
Security Properties:
  keystore: /tmp/ssl/localhost-ks.jks
  keystore type: JKS
  keystore password: localtest
  key password: localtest
  truststore: /tmp/ssl/localhost-ts.jks
  truststore type: JKS
  truststore password: localtest
  ssl protocol: TLS
  Sensitive Props:
    key: ''
    algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
    provider: BC
Processors:
- id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e2
  name: TailFile
  class: org.apache.nifi.processors.standard.TailFile
  max concurrent tasks: 1
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 1 sec
  penalization period: 30 sec
  yield period: 1 sec
  run duration nanos: 0
  auto-terminated relationships list: []
  Properties:
    File to Tail: logs/minifi-app.log
    Initial Start Position: Beginning of File
    Rolling Filename Pattern: minifi-app*
Connections:
- id: f6cef9b0-8982-391c-8d70-76f33917ac12
  name: TailToS2S
  source id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e2
  source relationship names:
  - success
  destination id: 8644cbcc-a45c-40e0-964d-5e536e2ada61
  max work queue size: 0
  max work queue data size: 1 MB
  flowfile expiration: 60 sec
  queue prioritizer class: org.apache.nifi.prioritizer.NewestFlowFileFirstPrioritizer
Remote Process Groups:
- id: 94b8e610-b4ed-3ec9-b26f-c839931bf3e3
  name: NiFi Flow
  url: https://localhost:8090/nifi
  comment: ''
  timeout: 30 secs
  yield period: 10 sec
  Input Ports:
  - id: 8644cbcc-a45c-40e0-964d-5e536e2ada61
    name: tailed log
    comment: ''
    max concurrent tasks: 1
    use compression: false
Provenance Reporting:
  comment: ''
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 30 sec
  destination url: https://localhost:8090/
  port name: provenance
  originating url: http://${hostname(true)}:8081/nifi
  use compression: true
  timeout: 30 secs
  batch size: 1000
