Apache NiFi flow versioning with Git

How to version NiFi 2 flows in GitHub or GitLab, promote them between environments with parameter contexts, and move off NiFi Registry before NiFi 3.0 removes it.

On this page

How do you version Apache NiFi flows with Git in a regulated environment?

If your team builds NiFi flows directly on the canvas, you have no reliable change history, no review step before a change reaches production, and no repeatable way to move a flow from development to production. NiFi 2 answers this with Flow Registry Clients. The GitHub and GitLab clients store versioned flow definitions in a Git repository, so each change becomes a commit that can be reviewed, approved, traced to an author and rolled back. NiFi Registry, the older versioning service, has been deprecated by the project and is planned for removal in NiFi 3.0. If you are starting a new versioning design, plan around the Git-based clients rather than building new process on NiFi Registry.

Versioning the flow definition is the easier half of the job. A versioned flow still depends on values and objects that live outside the flow file. Parameter contexts hold environment-specific values such as hostnames, bucket names and endpoints, and each environment needs its own set. Sensitive parameters must be handled separately so that secrets never enter the repository in plain text. Controller service bindings, which connect processors to database pools, SSL contexts or message brokers, must resolve to the correct service in each environment. Component versions also matter: a flow saved against one release of a custom processor may not behave the same on another node or environment. Each of these needs a documented owner and a check before promotion.

Before you commit to a design, confirm several points in your own environment. Decide which repository host you will use and whether it meets your change-control requirements for access, branch protection and audit logging. Confirm how your NiFi version handles the Flow Registry Client settings and authentication to the repository, and test that a flow can be committed, imported and started in a non-production cluster. Decide who may commit to the main branch, who approves a promotion, and whether promotions require a tagged release. Document where parameter values are stored for each environment and how sensitive values are supplied at deployment time, so that an auditor can trace what ran in production back to a specific commit.

Which NiFi components and settings make Git versioning work?

Git versioning in Apache NiFi depends on a short chain of components: a Flow Registry Client controller service, a versioned process group, and parameter contexts that carry environment-specific values out of the flow itself. Each link has settings that decide whether a flow can be saved, reviewed, promoted and deployed safely across environments.

GitHubFlowRegistryClient controller service

This is the Apache NiFi controller service that connects a NiFi instance to a GitHub repository for storing versioned flows. Its settings define the repository, the branch or directory used for flow files, and the credentials NiFi uses to read and commit. Confirm the exact property names and any authentication options against the component documentation for your target NiFi 2 release before you build the configuration. Plan which repository and branch holds production flows and who can merge to it.

GitLabFlowRegistryClient controller service

This is the matching controller service for GitLab-hosted repositories, used when your organization keeps source control on GitLab. It requires the project, branch, storage location and access token settings that let NiFi commit flow versions to the repository. Because the property set is specific to the release, confirm names and supported authentication methods against the Apache NiFi component documentation for your target version. Check that the token is scoped to the minimum repository access the team needs.

Registry Client in the version control dialog

Once a Flow Registry Client exists, it appears as a choice in the version control dialog for a process group. Selecting it, the bucket or location, the flow name and the commit message determines where the flow is stored and how its history reads later. Establish naming and bucket conventions before the first commit, because renaming versioned flows later creates confusion across environments. Test the dialog with a non-production flow first so the team learns the save, commit and change-review steps.

Parameter contexts for environment values

Parameter contexts hold values such as hostnames, endpoints, file paths and feature settings, so the versioned flow stays the same across development, test and production. A process group bound to a parameter context can be promoted without editing its processors. Decide which values belong in parameters and which belong in the flow definition, and document the parameter names as part of the flow contract. Mismatched parameter names are a common cause of failed promotion, so review them in each target environment.

Sensitive parameter handling

Sensitive parameters hold passwords, tokens and keys that must not appear in flow files committed to Git. NiFi stores their values separately from the flow definition, which means each target environment must supply the secret values after import. Plan how secrets are provisioned, rotated and audited in each environment, and confirm how sensitive values are encrypted in your deployment using the NiFi administration guide. Verify that exported flow files contain no secret values before any commit is pushed to a shared repository.

Repository access and review controls

Git versioning moves change control into the repository, so access to the NiFi Flow Registry Client credentials and the Git branch protection rules become part of the flow change process. Decide which identities can commit from NiFi, which branches require review, and how merged flow versions are deployed to each environment. Map these controls to your existing change management and access review process, and confirm with your security team which audit trail the repository platform provides.

Which Git host and branching model should you choose for NiFi flows?

This table compares the GitHub and GitLab Flow Registry Clients and the two common ways to organize environments in one repository, then notes where flows should live relative to infrastructure code. Read each row for the fit and the operational cost, then check the costs against your own review, access control and promotion practices before you choose.

DecisionOption AOption B
Git host with Flow Registry ClientGitHub: GitHubFlowRegistryClient. Fits teams already running review and access control on GitHub. Confirm the client's authentication method and repository settings for your organization.GitLab: GitLabFlowRegistryClient. Fits teams already running GitLab merge requests and groups. Confirm the client's authentication method and repository settings for your organization.
Review workflow setupPull requests with required reviewers and protected branches. Operators must learn to commit flow versions from NiFi and open reviews in the same host.Merge requests with approval rules and protected branches. Setup effort is similar, but approval rules and group permissions differ and must be mapped to your reviewers.
Environment layout: branch per environmentOne repository with a branch for dev, test and prod. Fits teams that want a clear branch per stage. Promotion merges copy the whole flow JSON, so conflicts in flow.json.gz-derived content need careful handling.Not applicable as the main layout for comparison purposes.
Environment layout: tags or directoriesOne branch with tags or directories per environment. Fits teams that want one history for all stages. Promotion relies on tags or parameter contexts rather than merges, so keep environment values out of the versioned flow.Not applicable
Repository ownershipDedicated flow repository. Access control applies only to flows, which simplifies audit and limits who can change production dataflows.Flows alongside infrastructure code. Fewer repositories to manage, but users with infrastructure access also gain flow change rights unless branch rules separate them.
Promotion merges and flow JSONDiffs of NiFi flow JSON are hard to review line by line. Plan a review convention and confirm how your tools display changes before relying on merges.Tags make a release reproducible, but a rollback means redeploying an older tag. Confirm how your deployment tooling pins the tagged version.
Access control on the repositoryRestrict write access to flow branches and protect production branches. Confirm that the NiFi service account has only the rights it needs to commit.Directory-level rights are less granular on most hosts. Confirm whether your host can restrict writes by path before choosing this layout.
Registry deprecation planningNiFi Registry is deprecated and planned for removal in NiFi 3.0. Either option moves flows toward Git-based clients, so the choice of host should be made before migration.Ask your team to inventory current NiFi Registry buckets and map each bucket to a repository and branch or directory.

How do you set up Git-backed flow versioning step by step?

This sequence takes a NiFi 2 installation from unversioned flows to a repository-backed workflow in which every change is committed, reviewed, promoted and checked for drift. Each step closes with a check so the team can confirm the result before moving to the next environment.

  1. Confirm the NiFi 2 release and Java 21 runtime

    The platform team confirms the NiFi 2 release line and checks that every node runs Java 21, the minimum runtime listed in the NiFi administration guide. Review the release notes for the GitHub or GitLab Flow Registry Client version you plan to use, since both ship with NiFi 2. Record the exact versions in your change ticket so later upgrades can be compared against them. Done when each node reports the expected Java version and the NiFi UI loads on its secured endpoint.

  2. Create the repository and scoped access tokens

    Create a dedicated repository for flow definitions, separate from application code, and decide how the main branch will be protected. Issue an access token limited to that repository with the minimum permissions needed to read and write flow files. Store the token in your secrets manager and keep it out of flow definitions. Confirm the exact token scopes each host requires in the client documentation. Check: the token can push a test commit to a feature branch and is refused on an unrelated repository.

  3. Configure the GitHub or GitLab registry client

    Add the GitHub or GitLab Flow Registry Client as a controller service in NiFi, then set the repository location, default branch and a reference to the stored token. For self-hosted GitLab, add any proxy or certificate settings your network needs. Confirm each property name against the component documentation for your release. Enable the service and check its validation status. Done when the service is enabled with no validation errors and can read the repository contents.

  4. Connect a process group and commit version one

    Select a process group that holds a working flow and enable version control on it. Choose the registry client, repository, branch and storage path, then write a commit message that names the flow and the change request. Commit the first version. Check: the flow file appears in the repository at the expected path, and NiFi shows the process group as up to date with that version.

  5. Move secrets into non-committed parameter contexts

    Move database hosts, credentials, certificates and API keys out of processor properties and into parameter contexts. Mark secret values as sensitive and supply them for each environment through your secrets store or a deployment step, so the repository holds only parameter names and non-secret defaults. Confirm in your release documentation how sensitive parameter values are handled in version control. Check: a search of the repository for known test secrets returns nothing, and each environment resolves its own values.

  6. Define the promotion path and review gates

    Agree which branches or tags map to development, test and production, and who may merge into each. Require a reviewed pull or merge request for every change to a promoted branch, and record which commit each environment runs. Use the Git host's review history as the approval record. Check: a change merged to the test branch traces back to an approved request, and the commit shown in the test environment matches that merge.

  7. Verify the commit, pull and deploy round trip

    Make a small, labeled change in the development NiFi and commit it. Pull the committed version into a second environment that uses its own parameter contexts, then deploy and run it with test data. Check: after import, the second environment shows a clean diff against the repository version, apart from the parameter values it supplies locally. If the diff is not clean, find and fix the cause before promoting further.

How do parameter contexts keep one flow valid across environments?

The versioned flow should hold logic only. Processors, connections, controller services and process group structure go into Git, while hostnames, endpoints, credentials, file paths and tuning values come from parameter contexts that are bound to each environment. When a flow refers to a parameter such as #{kafka.bootstrap.servers} instead of a literal address, the same version can be imported into development, test and production without editing its components. The practical decision is which values count as environment data. Ask the team to list every property that changes between environments, then confirm each one is referenced through a parameter before the first commit. Anything left as a literal in a processor will be promoted silently and fail only when the target environment is reached.

Sensitive parameters need their own rule. A parameter marked as sensitive has its value encrypted in the NiFi flow store and is not displayed in the UI after it is saved, but the flow definition that goes to Git records only the parameter name and its sensitivity flag. Credentials, tokens and private keys must never be typed into a flow file, a commit message or a shared variable file. In practice, the value is entered in the target environment's parameter context or supplied from a secrets manager through a parameter provider that your NiFi version supports. Confirm with the NiFi administration guide which parameter providers are available for your release, and confirm how your team will rotate these values without a new flow version.

Importing a versioned flow is where the mapping is made. When a flow version is brought into a new NiFi instance, each parameter context it references must be bound to a context in the target environment, either created new or matched to an existing one. Build the mapping as a written table: versioned flow, parameter context name, and the environment-specific context it binds to. Check that every parameter name in the flow has a value in each target context, and that no context carries stale parameters left from an earlier promotion. Parameters that are defined in the flow but missing in the target context usually cause components to be invalid at start-up rather than at import, so the check should run before the process group is started.

Drift happens when someone changes a running flow directly in production, for example by editing a processor property during an incident. NiFi shows local changes against the version recorded in the registry, so the process group displays a modified state, and the team should treat that indicator as an alert. Set a rule that changes are made in Git and promoted, with the production change either reverted or committed back to the repository within a defined window. Review the local changes list regularly, and record the reason for any approved exception. A drift check is only useful if someone is responsible for acting on it.

NiFi 2.0 changed how variables are scoped. The variable registry expression language scope was removed and replaced by an ENVIRONMENT scope, so flows that resolved values through the older scope need rework before they are promoted to a 2.x instance. Before any promotion, search each flow for variable references and classify every hit as either a parameter that should move into a parameter context or a variable that must be rewritten for the new scope. Confirm the exact behavior with the NiFi 2.0 migration guidance and test the flow in a non-production instance. Treat this scan as a gate in the promotion checklist, not as a one-time migration task, because new flow versions can reintroduce the old pattern.

What drives the effort of Git versioning for NiFi flows?

This table lists the factors that change how much work it takes to version NiFi flows in Git, with a practical way to keep each one under control. Read each row as a question to answer about your own estate before scoping, since the largest drivers are usually the number of flows and how many teams edit them. The main takeaway is that a small set of naming, ownership and promotion decisions made early reduces most of the later rework.

DriverWhy it changes effortHow to keep it down
Process groups and flowsEach versioned process group becomes a flow in a repository, with its own commits, reviews and upgrade path. More flows mean more versions to track and more drift to reconcile.Version only reusable or production-bound process groups. Keep experimental flows out of the shared registry until they are ready for promotion.
Number of environmentsEach environment needs its own parameter values, deployment checks and version pinning. Every added environment multiplies verification work after each change.Limit the chain to the environments you actually promote through, typically development, test and production. Pin the same flow version across all of them.
Parameter contexts and sensitive valuesParameter contexts carry environment-specific values and secrets. Inconsistent names across flows force manual mapping and increase the chance of leaking sensitive values into Git.Standardize parameter names across flows. Keep sensitive values out of the repository and supply them through your secrets store or NiFi's sensitive parameter handling.
Existing NiFi Registry buckets to migrateFlows stored in NiFi Registry buckets must be re-pointed to Git-backed Flow Registry Clients. Bucket history, owners and version numbers need to be mapped, and some versions may need to be re-committed.Inventory buckets and flows before starting. Decide which versions to carry forward and which to retire, and record the mapping in one table.
Branching and review rulesEach protected branch, required reviewer and merge rule adds steps to every flow change. Unclear rules lead to flows being committed directly to the wrong branch.Agree on one branching model for all flow repositories. Use the same review rules across repositories and document who approves production merges.
Integration with CI checksAutomated validation of flow definitions, parameter completeness and deployment tests needs pipeline work. Each new check requires maintenance when NiFi versions change.Start with a small set of checks, such as parameter completeness and flow import tests. Add checks only when a failure has a clear owner.
Flows edited by many teamsWhen several teams change the same process groups or repositories, merge conflicts, unclear ownership and inconsistent conventions increase. Review queues also grow.Limit flow ownership per repository, with one owning team for each. Use one promotion pipeline so that every team's changes follow the same path to production.
Promotion pipeline designPromotion between environments needs a repeatable deployment step, a record of which version runs where, and a way to roll back. Ad hoc promotion adds manual checks to every release.Use one promotion pipeline for all flows. Record the deployed version per environment and confirm the rollback steps during the first promotion.

How does versioning differ across single node, clustered and air-gapped NiFi?

Versioned flows live in a Git repository, and the NiFi instance reaches that repository through a Flow Registry Client. How that connection is built changes with the deployment shape. The four cards below cover the single node case, the clustered case, the air-gapped case and the certificate trust questions that apply to all three.

Single node: one client, one connection

A standalone NiFi instance needs one Flow Registry Client configured against the GitHub or GitLab repository that holds the flow definitions. Operators commit and update versioned process groups from the canvas, and that single instance is the only place the client runs. Check that the instance can reach the Git host over HTTPS, that the credentials used by the client have write access only to the intended repository, and that the repository branch used for versioning is agreed with the team that reviews flow changes.

Clustered: every node must reach the repository

In a cluster, versioned flows are the same across nodes, so the flow is committed and reloaded consistently. Every node, not only the one the operator is logged into, must be able to reach the Git host or an internal repository mirror, because each node loads the flow definition it needs. Confirm the outbound path from each node, any proxy or firewall rules that apply per subnet, and how the cluster behaves when the repository is briefly unavailable during a restart.

Air-gapped: an internal Git host

In an air-gapped network, the Git host must sit inside the same boundary as NiFi, typically a self-hosted GitLab instance. Public GitHub or GitLab.com endpoints are not reachable, so the Flow Registry Client must point to the internal host. Ask the platform team which internal Git service will be used, how repositories are replicated or transferred into the enclave, who approves flow changes, and whether the internal instance is covered by the same backup and retention rules as the NiFi cluster.

Certificate trust for each environment

Each Flow Registry Client connects over TLS, so NiFi must trust the certificate chain presented by the Git host. Internal GitLab deployments often use a private certificate authority, and that authority must be present in the truststore used by every NiFi node. Confirm the certificate chain, its expiry and renewal process, and the truststore location for each environment before the first commit, since a trust failure looks like a failed versioning action rather than a clear configuration error.

How do you test that Git versioning works and fails safely?

Testing a Git-backed NiFi setup means proving four things before any production flow depends on it: a change saved from the canvas reaches the repository, a clean environment can load that version without surprises, a bad credential fails loudly without touching the running flow, and a rollback to an earlier commit actually restores known behavior. Each of these is a separate test case, and each should have a pass condition written down before anyone runs it. The first case is simple. Make a small change to a test process group in a development NiFi 2 instance, commit it through the Flow Registry Client (GitHub or GitLab, depending on what your organization uses), and confirm the commit appears in the target repository with the expected flow file, branch and commit message.

The second case checks promotion. Import the committed version into a clean environment that has never seen the flow, using that environment's own parameter contexts. Then compare the imported flow against the source version. The only differences you should accept are parameter values and environment-specific references such as controller service bindings that you have deliberately mapped. Any other difference, such as a processor property that changed or a component that was dropped on import, is a finding to resolve before cutover. Confirm the exact behavior of your NiFi version and Registry Client settings in the vendor documentation and in a test run, because the set of values that travel with a versioned flow is the part teams most often misjudge.

The third case is the failure path, and it deserves the most attention. Revoke or invalidate the token the Registry Client uses, then attempt a version change from the canvas. The test passes only if three things hold: the failure is visible to the operator through the UI and the bulletin or log output, the commit or change is not partially applied to the repository, and the running flow continues processing unchanged. Check the running flow's state and its queued data before and after the attempt. Also confirm who receives the alert, because a silent failure that nobody sees is worse than a loud one. Write down what a successful failure looks like for your team, since the answer is not always obvious from the defaults.

The fourth case is rollback. In a test environment, select a prior commit, import or revert the affected process group to that version, and run it against representative data. Verify that the flow matches the earlier commit, that parameter contexts still resolve, and that no component is left in a stopped or invalid state. Record how long the rollback takes in your environment and which steps required manual work. The most useful output of this exercise is a runbook that a second engineer can follow without help.

Record expected behavior for every case before cutover, not after. Write each test with its preconditions, steps, expected result, and the evidence you will keep, such as screenshots, repository commit hashes and log excerpts. Assign an owner and a sign-off role. If a test cannot be run in a non-production environment, say so in the plan and decide how that risk will be managed. A written baseline lets you tell whether a later change in NiFi, the Registry Client or the repository host has altered behavior, and it gives auditors and security reviewers concrete evidence of how the platform fails.

What to monitor, back up and document after Git versioning goes live?

This table lists the operational practices the team owns once NiFi flows are versioned in GitHub or GitLab, with the owner, cadence and evidence for each. Read it as a checklist to assign before go-live, not as a schedule, because the right intervals depend on your change volume and your own policies. The main takeaway is that the Git repository, its tokens and the promotion runbook need named owners, since no one else will maintain them.

PracticeWhat the team doesEvidence to keep
Registry client errorsWatch NiFi bulletins for Flow Registry Client failures, such as failed authentication, unreachable repository or rejected commits, and route them to the flow ownersAlert rules, bulletin review log, ticket for each failed version action
Failed version control actionsReview failed commit, update and revert attempts in the canvas and logs, and confirm that no flow change reached production without a commitPeriodic review record and list of unversioned changes found
Git repository backupBack up the repository on a schedule and test restores, including branches, tags and protected branch settingsBackup job reports and a documented restore test result
Hosting platform backupExport or back up GitHub or GitLab settings that the repository depends on, such as access groups, branch protection and webhooks, where your plan allows itConfiguration export and owner sign-off
Access token rotationRotate the personal or service access tokens used by Flow Registry Clients on a schedule set by your security policy, and update the NiFi controller serviceRotation calendar, change record and revoked token list
Upgrade checks for NiFi releasesBefore moving to a newer NiFi release, confirm Flow Registry Client behavior, deprecated components and flow versions in a test clusterUpgrade test report and a list of flows checked against the new release
Promotion runbookDocument how a version moves from dev to test to production, including parameter context values, approvals and rollback stepsApproved runbook version and records of past promotions
Repository ownershipName the owners of the repository, branch rules, access groups and the naming convention for flow foldersOwnership register reviewed on a set schedule
Registry deprecation statusTrack that NiFi Registry is deprecated and planned for removal in NiFi 3.0, and record which flows still depend on itDependency inventory and a dated migration plan approved by the owner

Common questions about NiFi flow versioning with Git

How much does it cost to version NiFi flows with Git?

Apache NiFi carries no license fee, because it is released under the Apache License 2.0 and the project sells no paid edition, so the cost is work and infrastructure. You pay for engineer time to design the branch and promotion model, configure the Flow Registry Client and parameter contexts, write the promotion procedure and train operators, plus the Git hosting plan your organization already buys or chooses. Setup is a one-time cost. Flow reviews, keeping environments in step and upgrades when NiFi moves to a new minor release recur. Costs rise with the number of flows, environments, Git hosts and approval steps your change process requires. When you ask for a quote, request a line item for each phase, the recurring support option listed separately, and a written list of assumptions about your environments and access.

How long does a NiFi Git versioning setup take?

Duration depends on how many process groups you need to version, how many environments must receive them, and how much of your Git and identity setup already exists. DeployOpen does not publish a duration for this work, so confirm the timeline in the written scope before work starts. A typical plan includes a short discovery of your flow inventory, a repository and branch model, a pilot on one flow across two environments, and then the remaining flows in batches. Delays most often come from access approvals for the Git host, token issuance, and waiting for flow owners to sign off on promoted changes. Ask the proposal to list the dependencies it assumes from your side and the dates on which you must deliver them.

What does my team need to provide for NiFi Git versioning?

Your team provides the Git repository or permission to create one, a service identity or token with the scopes the Flow Registry Client needs, and access to each NiFi environment that will receive flows. You also need named owners: one for the repository and branch policy, one for each flow group, and an approver for production promotion. Share the inventory of existing flows and parameter contexts, the secrets each environment uses, and the network paths from NiFi nodes to the Git host, including any proxy or certificate authority. Confirm with your Git administrator which token type and scopes your policy allows, and whether the host is cloud-hosted or self-managed. Unnamed owners often stall review cycles, so assign them before kickoff.

Can our own engineers set up NiFi flow versioning with Git?

Yes, if your engineers already administer NiFi, practice Git branching and have access to the NiFi and Git administrative consoles. In NiFi 2, configuring a Flow Registry Client is a configuration task, and the promotion model is a process decision your team can make. The harder parts are consistent parameter contexts across environments, keeping sensitive values out of the repository, and a change procedure that operators follow under pressure. A team that has not run a NiFi cluster before will likely need more time on environment and security settings than on Git itself. Be candid about gaps, and if nobody has tested a flow import in a non-production environment, plan that test first. DeployOpen can take on the whole piece or a defined part, and the written scope decides who does what.

Do NiFi Registry flows need to move to Git now?

Not on a single fixed date, but you should plan the move now. The NiFi downloads page states that NiFi Registry has been deprecated and is planned for removal in NiFi 3.0, so flows stored there depend on a component with a stated end point. If you run NiFi 1.x, the more pressing step is upgrading: the downloads page says 1.28 is the last minor release of that series and lists an end-of-support date of December 8, 2024 for 1.28.1. The migration guidance also requires moving to 1.27.0 before 2.0.0. Confirm your current version and the NiFi 3.0 timeline in the project's release notes. A common path exports flows from Registry, commits them to Git through a Flow Registry Client, and verifies each import in a test environment before cutover. Treat that migration as a separate, scoped piece of work.

Is a fixed-scope engagement the right form for NiFi versioning?

A fixed-scope engagement suits work with a clear set of flows, environments and deliverables, because scope, deliverables and timelines are agreed in writing before work starts, and most DeployOpen engagements are fixed-scope. It is a weaker fit if the number of flows is still unknown, if the branch policy is undecided across several business units, or if you expect requirements to change every week. In those cases, begin with a short discovery that produces the flow inventory and a scope document, then quote the build against that document. For ongoing needs such as upgrades, reviews of new flows or testing after NiFi releases, a retainer is available. Ask for written acceptance criteria per environment, the handover documents you will receive, and what happens if a dependency on your side slips.

Which Git hosts does NiFi support for flow versioning?

NiFi 2 includes Flow Registry Clients for GitHub and GitLab that version flows in a Git repository, according to the NiFi component documentation. Confirm each client's configuration properties, required token scopes and how it handles branches and commits against the NiFi version you run, because those details can change between releases. Self-managed GitLab instances and enterprise GitHub deployments need network and certificate checks from every NiFi node, not only from the workstation where flows are edited. Sensitive parameter values should stay out of versioned process groups, so decide where secrets live before the first commit. Test one flow end to end, including a change, a review, a commit, an import into a second environment and a rollback, before your teams rely on the setup.

How DeployOpen scopes, builds and hands over NiFi versioning work

DeployOpen connects Apache NiFi flow versioning to a Git repository your team already controls, using the Flow Registry Clients for GitHub or GitLab that ship with NiFi 2. We agree the scope in writing first, then build, test and document the versioning setup so your team can run it after handover.

How we scope

  • Confirm which NiFi 2 deployment, Git host (GitHub or GitLab) and repository layout the versioning setup will use.
  • List the environments to promote flows between and how parameter contexts will differ per environment.
  • Agree in writing the flows in scope, the branching and review rules, and whether NiFi Registry deprecation planning is included.

How we build

  • Configure the GitHub or GitLab Flow Registry Client with credentials stored under your secrets management practices.
  • Version the agreed process groups, then test commit, update and promotion of a flow in a non-production environment.
  • Separate environment-specific values into parameter contexts so the same versioned flow runs unchanged across environments.

How we hand over

  • Deliver written runbooks covering committing changes, reverting versions, promoting flows and handling conflicts in the repository.
  • Document the repository structure, naming conventions, access model and the parameter context mapping for each environment.
  • Walk your engineers through the setup and record the test results so your team can repeat the process without us.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • A retainer can cover reviewing NiFi release notes that affect Flow Registry Clients and applying the changes you approve.
  • Ask any partner to confirm how it will track NiFi Registry deprecation and the planned removal in NiFi 3.0 for your flows.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.