Simon, The ability to have NiFi automatically back up the flow was added in 1.0. Previous to 1.0, you have the ability to manually archive the flow, but it is not done each time that the flow is modified.
Thanks -Mark > On Oct 3, 2016, at 11:06 AM, Simon Tack <[email protected]> wrote: > > Hello, > > I am using NiFi 0.6.1 and I am trying to get flow.xml.gz files archived to > the ./conf/archive directory when I make changes to my flow, like adding a > new process group, or renaming one. > > I am new to NiFi, but I believe that this feature should be on by default. > It is working by default in a NiFi 1.0.0 install I have. I have tried > changing my flow and I see the ./conf/flow.xml.gz file is updated immediately > when I do. But I am not seeing any archive directory in ./conf. > > I tried creating an ./conf/archive directory, but still no file is written > there. > > I could not find a solution by searching the archives. > > My nifi.properties is below. I am running on CentOs 7. > > Am I missing something obvious? Shouldn't my flow.xml.gz file be archived > into ./conf/archive whenever a new flow.xml.gz file is generated? > Thanks, > > Simon > > # Core Properties # > nifi.version=0.6.1 > nifi.flow.configuration.file=./conf/flow.xml.gz > nifi.flow.configuration.archive.dir=./conf/archive/ > nifi.flow.configuration.archive.enabled=true > nifi.flowcontroller.autoResumeState=true > nifi.flowcontroller.graceful.shutdown.period=10 sec > nifi.flowservice.writedelay.interval=500 ms > nifi.administrative.yield.duration=30 sec > # If a component has no work to do (is "bored"), how long should we wait > before checking again for work? > nifi.bored.yield.duration=10 millis > nifi.authority.provider.configuration.file=./conf/authority-providers.xml > nifi.login.identity.provider.configuration.file=./conf/login-identity-providers.xml > nifi.templates.directory=./conf/templates > nifi.ui.banner.text= > nifi.ui.autorefresh.interval=30 sec > nifi.nar.library.directory=./lib > nifi.nar.working.directory=./work/nar/ > nifi.documentation.working.directory=./work/docs/components > #################### > # State Management # > #################### > nifi.state.management.configuration.file=./conf/state-management.xml > # The ID of the local state provider > nifi.state.management.provider.local=local-provider > # The ID of the cluster-wide state provider. This will be ignored if NiFi is > not clustered but must be populated if running in a cluster. > nifi.state.management.provider.cluster=zk-provider > # Specifies whether or not this instance of NiFi should run an embedded > ZooKeeper server > nifi.state.management.embedded.zookeeper.start=false > # Properties file that provides the ZooKeeper properties to use if > <nifi.state.management.embedded.zookeeper.start> is set to true > nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties > > # H2 Settings > nifi.database.directory=./database_repository > nifi.h2.url.append=;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE > # FlowFile Repository > nifi.flowfile.repository.implementation=org.apache.nifi.controller.repository.WriteAheadFlowFileRepository > nifi.flowfile.repository.directory=./flowfile_repository > nifi.flowfile.repository.partitions=256 > nifi.flowfile.repository.checkpoint.interval=2 mins > nifi.flowfile.repository.always.sync=false > nifi.swap.manager.implementation=org.apache.nifi.controller.FileSystemSwapManager > nifi.queue.swap.threshold=20000 > nifi.swap.in.period=5 sec > nifi.swap.in.threads=1 > nifi.swap.out.period=5 sec > nifi.swap.out.threads=4 > # Content Repository > nifi.content.repository.implementation=org.apache.nifi.controller.repository.FileSystemRepository > nifi.content.claim.max.appendable.size=10 MB > nifi.content.claim.max.flow.files=100 > nifi.content.repository.directory.default=./content_repository > nifi.content.repository.archive.max.retention.period=12 hours > nifi.content.repository.archive.max.usage.percentage=50% > nifi.content.repository.archive.enabled=true > nifi.content.repository.always.sync=false > nifi.content.viewer.url=/nifi-content-viewer/ > # Provenance Repository Properties > nifi.provenance.repository.implementation=org.apache.nifi.provenance.PersistentProvenanceRepository > # Persistent Provenance Repository Properties > nifi.provenance.repository.directory.default=./provenance_repository > nifi.provenance.repository.max.storage.time=24 hours > nifi.provenance.repository.max.storage.size=1 GB > nifi.provenance.repository.rollover.time=30 secs > nifi.provenance.repository.rollover.size=100 MB > nifi.provenance.repository.query.threads=2 > nifi.provenance.repository.index.threads=1 > nifi.provenance.repository.compress.on.rollover=true > nifi.provenance.repository.always.sync=false > nifi.provenance.repository.journal.count=16 > # Comma-separated list of fields. Fields that are not indexed will not be > searchable. Valid fields are: > # EventType, FlowFileUUID, Filename, TransitURI, ProcessorID, > AlternateIdentifierURI, Relationship, Details > nifi.provenance.repository.indexed.fields=EventType, FlowFileUUID, Filename, > ProcessorID, Relationship > # FlowFile Attributes that should be indexed and made searchable. Some > examples to consider are filename, uuid, mime.type > nifi.provenance.repository.indexed.attributes= > # Large values for the shard size will result in more Java heap usage when > searching the Provenance Repository > # but should provide better performance > nifi.provenance.repository.index.shard.size=500 MB > # Indicates the maximum length that a FlowFile attribute can be when > retrieving a Provenance Event from > # the repository. If the length of any attribute exceeds this value, it will > be truncated when the event is retrieved. > nifi.provenance.repository.max.attribute.length=65536 > # Volatile Provenance Respository Properties > nifi.provenance.repository.buffer.size=100000 > # Component Status Repository > nifi.components.status.repository.implementation=org.apache.nifi.controller.status.history.VolatileComponentStatusRepository > nifi.components.status.repository.buffer.size=1440 > nifi.components.status.snapshot.frequency=1 min > # Site to Site properties > nifi.remote.input.socket.host= > nifi.remote.input.socket.port= > nifi.remote.input.secure=true > # web properties # > nifi.web.war.directory=./lib > nifi.web.http.host= > nifi.web.http.port=8080 > nifi.web.https.host= > nifi.web.https.port= > nifi.web.jetty.working.directory=./work/jetty > nifi.web.jetty.threads=200 > # security properties # > nifi.sensitive.props.key= > nifi.sensitive.props.algorithm=PBEWITHMD5AND256BITAES-CBC-OPENSSL > nifi.sensitive.props.provider=BC > nifi.security.keystore= > nifi.security.keystoreType= > nifi.security.keystorePasswd= > nifi.security.keyPasswd= > nifi.security.truststore= > nifi.security.truststoreType= > nifi.security.truststorePasswd= > nifi.security.needClientAuth= > nifi.security.user.credential.cache.duration=24 hours > nifi.security.user.authority.provider=file-provider > nifi.security.user.login.identity.provider= > nifi.security.support.new.account.requests= > # Valid Authorities include: > ROLE_MONITOR,ROLE_DFM,ROLE_ADMIN,ROLE_PROVENANCE,ROLE_NIFI > nifi.security.anonymous.authorities= > nifi.security.ocsp.responder.url= > nifi.security.ocsp.responder.certificate= > # cluster common properties (cluster manager and nodes must have same values) > # > nifi.cluster.protocol.heartbeat.interval=5 sec > nifi.cluster.protocol.is.secure=false > nifi.cluster.protocol.socket.timeout=30 sec > nifi.cluster.protocol.connection.handshake.timeout=45 sec > # if multicast is used, then nifi.cluster.protocol.multicast.xxx properties > must be configured # > nifi.cluster.protocol.use.multicast=false > nifi.cluster.protocol.multicast.address= > nifi.cluster.protocol.multicast.port= > nifi.cluster.protocol.multicast.service.broadcast.delay=500 ms > nifi.cluster.protocol.multicast.service.locator.attempts=3 > nifi.cluster.protocol.multicast.service.locator.attempts.delay=1 sec > # cluster node properties (only configure for cluster nodes) # > nifi.cluster.is.node=false > nifi.cluster.node.address= > nifi.cluster.node.protocol.port= > nifi.cluster.node.protocol.threads=2 > # if multicast is not used, nifi.cluster.node.unicast.xxx must have same > values as nifi.cluster.manager.xxx # > nifi.cluster.node.unicast.manager.address= > nifi.cluster.node.unicast.manager.protocol.port= > # cluster manager properties (only configure for cluster manager) # > nifi.cluster.is.manager=false > nifi.cluster.manager.address= > nifi.cluster.manager.protocol.port= > nifi.cluster.manager.node.firewall.file= > nifi.cluster.manager.node.event.history.size=10 > nifi.cluster.manager.node.api.connection.timeout=30 sec > nifi.cluster.manager.node.api.read.timeout=30 sec > nifi.cluster.manager.node.api.request.threads=10 > nifi.cluster.manager.flow.retrieval.delay=5 sec > nifi.cluster.manager.protocol.threads=10 > nifi.cluster.manager.safemode.duration=0 sec > # kerberos # > nifi.kerberos.krb5.file= > nifi.kerberos.service.principal= > nifi.kerberos.keytab.location= > nifi.kerberos.authentication.expiration=12 hours
