Skip to content

Create NiFi Deployment Guide with configuration steps#281

Open
SamitSaleem wants to merge 1 commit intodevfrom
feat-paysys
Open

Create NiFi Deployment Guide with configuration steps#281
SamitSaleem wants to merge 1 commit intodevfrom
feat-paysys

Conversation

@SamitSaleem
Copy link
Copy Markdown

@SamitSaleem SamitSaleem commented Apr 23, 2026

Added detailed steps for configuring AWS and database credentials, setting parameter contexts, and starting processors in NiFi.

SPDX-License-Identifier: Apache-2.0

What did we change?

Why are we doing this?

How was it tested?

  • Locally
  • Development Environment
  • Not needed, changes very basic
  • Husky successfully run
  • Unit tests passing and Documentation done

Summary by CodeRabbit

  • Documentation
    • Introduced comprehensive NiFi deployment guide providing step-by-step instructions for Docker Compose post-setup configuration. Covers AWS credential setup, database password entry, controller service enablement, parameter context creation for multiple services with configurable bucket defaults, detailed NiFi flow startup procedures, and a helpful configuration completion checklist to ensure successful deployment.

Added detailed steps for configuring AWS and database credentials, setting parameter contexts, and starting processors in NiFi.
@SamitSaleem SamitSaleem requested review from a team as code owners April 23, 2026 12:25
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 23, 2026

📝 Walkthrough

Walkthrough

A new NiFi deployment guide is added documenting post-Docker Compose configuration steps. It covers AWS credential entry, database password configuration, controller service enablement, Parameter Context setup for bucket, HTTP, and S3 operations, and processor startup procedures.

Changes

Cohort / File(s) Summary
NiFi Deployment Documentation
Technical/Deployment-Guides/Nifi-Deployment-Guide.md
New guide documenting manual configuration steps after Docker Compose deployment, including AWS credentials setup, database password entry, controller service enablement, Parameter Context configuration for pbucket, phttp, and pozone contexts, and processor startup instructions.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested reviewers

  • Justus-at-Tazama

Poem

🐰 A guide hops into place,
NiFi flows with AWS grace,
Credentials configured right,
Buckets, HTTP, and S3 in sight,
The pipeline's ready to race! 🚀

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: creating a NiFi deployment guide with configuration steps, which directly matches the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-paysys

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (3)
Technical/Deployment-Guides/Nifi-Deployment-Guide.md (3)

32-34: Enhance conclusion with additional resources and context.

Consider improving the conclusion with:

  1. Troubleshooting section: Add common issues and their resolutions.
  2. Additional resources: Link to official NiFi documentation, Tazama architecture docs, or related deployment guides.
  3. Flow purpose: Briefly explain what the NiFi flow does in the Tazama system context.
  4. Next steps: Guide users on what to do after successful deployment (monitoring, testing, etc.).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md` around lines 32 - 34,
Update the "Conclusion" section in
Technical/Deployment-Guides/Nifi-Deployment-Guide.md to expand it with four
short subsections: add a "Troubleshooting" bullet list of common issues and
fixes (controller service failures, AWS auth, DB connectivity), an "Additional
resources" list linking to official Apache NiFi docs and Tazama
architecture/deployment guides, a "Flow purpose" paragraph summarizing what the
NiFi flow does within the Tazama system context, and a "Next steps" checklist
for post-deployment actions (smoke tests, monitoring, alerting, and validation
steps); keep each subsection concise and actionable.

27-30: Add pre-start verification and troubleshooting guidance.

Before starting processors, users should verify their configuration is complete. Consider adding:

  1. Pre-start checklist: Explicitly state to verify all controller services are enabled and all parameter contexts are configured before starting processors.
  2. Verification steps: Explain how to verify processors started successfully (e.g., checking for running state, reviewing bulletins for errors).
  3. Troubleshooting: Provide basic troubleshooting steps if processors fail to start (e.g., check logs, verify credentials, review error messages).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md` around lines 27 - 30,
Update the "4. Start All Processors" section to include a pre-start checklist
and basic troubleshooting: before instructing users to use Shift+Click /
Shift+Arrow Keys and the Operate -> Start action, add a short checklist to
verify all controller services are enabled and all parameter contexts are
configured and valid; add verification steps after starting (confirm processor
state is "Running", check bulletins pane for errors, and validate expected data
flow/activity); and add a brief troubleshooting subsection with steps to check
NiFi logs, confirm credentials/connection settings, re-enable dependent
services, and inspect processor-specific error messages. Reference the existing
"Start All Processors" heading and the "Operate" menu/Start action when
inserting these items so the new checks appear immediately before and after the
start instruction.

1-34: Add prerequisites and version requirements section.

The guide jumps directly into configuration steps without establishing prerequisites. Consider adding a section before step 1 that covers:

  1. Prerequisites:

    • Required NiFi version
    • Docker and Docker Compose versions
    • AWS account with appropriate permissions
    • Database instances (list specific databases)
  2. Architecture overview: Brief explanation of what the NiFi flow does in the Tazama system.

  3. Access requirements: How to access the NiFi UI after Docker Compose setup (URL, default credentials if any).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md` around lines 1 - 34,
Add a new "Prerequisites and Requirements" section immediately before the
existing "## 1. Configure AWS Credentials" header that lists required NiFi
version, minimum Docker and Docker Compose versions, AWS account/permissions
needed, and which database instances (and versions) must exist; also add a brief
"Architecture overview" paragraph that explains the purpose of the NiFi flow in
the Tazama system and high-level data movement; finally add an "Access
requirements" subsection that documents how to reach the NiFi UI after Docker
Compose (URL, port), any default credentials or how to retrieve
credentials/secrets, and any network or IAM access needed so readers can access
NiFi before following the "Configure AWS Credentials" steps.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md`:
- Around line 5-10: Update the "Configure AWS Credentials" section to add
security best practices and required settings: advise using IAM roles
(instance/profile or IRSA) or a secrets manager instead of hardcoding
credentials, and show how to configure AWSCredentialsProviderControllerService
safely; list the specific IAM permissions NiFi needs (e.g., s3:GetObject,
s3:PutObject, s3:ListBucket plus kms:Decrypt/kms:Encrypt if using KMS, and
sts:AssumeRole if using role chaining) and any required resource ARNs or
least-privilege guidance; state that AWS region must be set (or inherited) and
where to set it in NiFi; and add the full UI navigation path to reach Controller
Services (e.g., hamburger menu → Controller Settings → Controller Services) to
make locating AWSCredentialsProviderControllerService clear.
- Around line 12-16: Update the "2. Configure Database Credentials" section to
explicitly list the databases to configure (e.g., PostgreSQL, ArangoDB, Redis)
and name the specific NiFi controller services where credentials must be entered
(e.g., DBCPConnectionPool for PostgreSQL, ArangoDBConnectionService,
RedisConnectionPool), move the instruction to enable controller services so it
occurs after completing all configurations and Parameter Contexts (i.e.,
reference enabling in a later step), and replace "lightning icon" with a clearer
UI reference such as "Configuration icon (lightning bolt) in the NiFi Flow
Configuration menu" to improve clarity.
- Around line 18-25: Clarify that the steps create or update Parameter Contexts
rather than only selecting them: explicitly state "Create or select the
Parameter Context named pbucket" and whether phttp and pozone must be created if
missing; then list exact parameter keys and example values to add to each
context — for phttp add parameters like http.endpoint (e.g.,
https://api.example.com/ingest), http.timeout (e.g., 30s), http.headers (e.g.,
Authorization: Bearer <token>); for pozone add s3.region (e.g., us-east-1) and
s3.bucket (e.g., tazama) and s3.credentials-id (NiFi credentials reference); for
pbucket add bucket.name = tazama (case-sensitive) and bucket.env (optional);
finally include a short example block showing the three contexts and their
key=value pairs so users can copy the exact parameter names and values when
configuring phttp, pozone, and pbucket.
- Line 1: Add the SPDX license header as the very first line of the Markdown
file by inserting an HTML comment containing "SPDX-License-Identifier:
Apache-2.0" (i.e., <!-- SPDX-License-Identifier: Apache-2.0 -->) above the
existing title "NiFi Setup and Configuration Guide" so the document clearly
carries the Apache-2.0 SPDX identifier.

---

Nitpick comments:
In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md`:
- Around line 32-34: Update the "Conclusion" section in
Technical/Deployment-Guides/Nifi-Deployment-Guide.md to expand it with four
short subsections: add a "Troubleshooting" bullet list of common issues and
fixes (controller service failures, AWS auth, DB connectivity), an "Additional
resources" list linking to official Apache NiFi docs and Tazama
architecture/deployment guides, a "Flow purpose" paragraph summarizing what the
NiFi flow does within the Tazama system context, and a "Next steps" checklist
for post-deployment actions (smoke tests, monitoring, alerting, and validation
steps); keep each subsection concise and actionable.
- Around line 27-30: Update the "4. Start All Processors" section to include a
pre-start checklist and basic troubleshooting: before instructing users to use
Shift+Click / Shift+Arrow Keys and the Operate -> Start action, add a short
checklist to verify all controller services are enabled and all parameter
contexts are configured and valid; add verification steps after starting
(confirm processor state is "Running", check bulletins pane for errors, and
validate expected data flow/activity); and add a brief troubleshooting
subsection with steps to check NiFi logs, confirm credentials/connection
settings, re-enable dependent services, and inspect processor-specific error
messages. Reference the existing "Start All Processors" heading and the
"Operate" menu/Start action when inserting these items so the new checks appear
immediately before and after the start instruction.
- Around line 1-34: Add a new "Prerequisites and Requirements" section
immediately before the existing "## 1. Configure AWS Credentials" header that
lists required NiFi version, minimum Docker and Docker Compose versions, AWS
account/permissions needed, and which database instances (and versions) must
exist; also add a brief "Architecture overview" paragraph that explains the
purpose of the NiFi flow in the Tazama system and high-level data movement;
finally add an "Access requirements" subsection that documents how to reach the
NiFi UI after Docker Compose (URL, port), any default credentials or how to
retrieve credentials/secrets, and any network or IAM access needed so readers
can access NiFi before following the "Configure AWS Credentials" steps.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9eb847b8-ef07-472f-acb5-3bbdbf16312b

📥 Commits

Reviewing files that changed from the base of the PR and between 3463b14 and 52ac1c2.

📒 Files selected for processing (1)
  • Technical/Deployment-Guides/Nifi-Deployment-Guide.md

@@ -0,0 +1,34 @@
# NiFi Setup and Configuration Guide
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add the SPDX license header.

The PR description states that an Apache-2.0 SPDX license header is included, but it's missing from the file. Documentation files should include the license header at the top.

📄 Proposed fix to add license header
+<!-- SPDX-License-Identifier: Apache-2.0 -->
+
 # NiFi Setup and Configuration Guide
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# NiFi Setup and Configuration Guide
<!-- SPDX-License-Identifier: Apache-2.0 -->
# NiFi Setup and Configuration Guide
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md` at line 1, Add the SPDX
license header as the very first line of the Markdown file by inserting an HTML
comment containing "SPDX-License-Identifier: Apache-2.0" (i.e., <!--
SPDX-License-Identifier: Apache-2.0 -->) above the existing title "NiFi Setup
and Configuration Guide" so the document clearly carries the Apache-2.0 SPDX
identifier.

Comment on lines +5 to +10
## 1. Configure AWS Credentials

- Navigate to the **Controller Services** section.
- In the **AWSCredentialsProviderControllerService**, enter the required AWS credentials:
- **Access Key ID**
- **Secret Access Key**
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add security best practices and required IAM permissions.

The guide instructs users to enter AWS credentials directly without mentioning security best practices or required permissions. Consider adding:

  1. Security guidance: Recommend using IAM roles when possible, or secrets management solutions for production environments, rather than hardcoded credentials.
  2. Required IAM permissions: Document the specific AWS permissions needed for the NiFi operations (S3, etc.).
  3. Region configuration: Specify if AWS region configuration is required.
  4. Navigation path: Provide the complete UI navigation path (e.g., "hamburger menu → Controller Settings → Controller Services").
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md` around lines 5 - 10,
Update the "Configure AWS Credentials" section to add security best practices
and required settings: advise using IAM roles (instance/profile or IRSA) or a
secrets manager instead of hardcoding credentials, and show how to configure
AWSCredentialsProviderControllerService safely; list the specific IAM
permissions NiFi needs (e.g., s3:GetObject, s3:PutObject, s3:ListBucket plus
kms:Decrypt/kms:Encrypt if using KMS, and sts:AssumeRole if using role chaining)
and any required resource ARNs or least-privilege guidance; state that AWS
region must be set (or inherited) and where to set it in NiFi; and add the full
UI navigation path to reach Controller Services (e.g., hamburger menu →
Controller Settings → Controller Services) to make locating
AWSCredentialsProviderControllerService clear.

Comment on lines +12 to +16
## 2. Configure Database Credentials

- For each database integrated with NiFi, enter the respective credentials:
- **Database passwords**
- Enable all controller services in the **NiFi Flow Configuration** by clicking the **lightning icon**.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Clarify which databases and controller services need configuration.

The instructions are too vague:

  1. Specify databases: List which specific databases need to be configured (e.g., PostgreSQL, Arango, Redis, etc.).
  2. Identify controller services: Name the specific controller services where database passwords should be entered.
  3. Reorder steps: Enabling "all controller services" should occur after all configurations (including Parameter Contexts in step 3) are complete, not in this step.
  4. Improve UI reference: Instead of "lightning icon", use a more descriptive reference like "Configuration icon (lightning bolt) in the NiFi Flow Configuration menu".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md` around lines 12 - 16,
Update the "2. Configure Database Credentials" section to explicitly list the
databases to configure (e.g., PostgreSQL, ArangoDB, Redis) and name the specific
NiFi controller services where credentials must be entered (e.g.,
DBCPConnectionPool for PostgreSQL, ArangoDBConnectionService,
RedisConnectionPool), move the instruction to enable controller services so it
occurs after completing all configurations and Parameter Contexts (i.e.,
reference enabling in a later step), and replace "lightning icon" with a clearer
UI reference such as "Configuration icon (lightning bolt) in the NiFi Flow
Configuration menu" to improve clarity.

Comment on lines +18 to +25
## 3. Set Parameter Context for Specific Buckets

- To add a specific AWS bucket, navigate to **Parameter Contexts** and select **pbucket**.
- The default bucket name is **tazama** (case-sensitive).
- Add the following parameter contexts:
- **phttp** for InvokeHTTP
- **pozone** for PutS3Bucket
- **pbucket** for UpdateAttributes
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Clarify Parameter Context instructions and provide parameter details.

This section has confusing instructions and missing critical information:

  1. Clarify create vs. select: Line 20 says "select pbucket" but line 22 says "Add the following parameter contexts" including pbucket. Are these contexts pre-existing or do they need to be created? Make this explicit.

  2. Provide parameter details: For each parameter context, specify the actual parameter names and values to configure:

    • phttp: What parameters are needed for InvokeHTTP? (e.g., endpoint URLs, timeouts, headers?)
    • pozone: What parameters are needed for PutS3Bucket? (e.g., region, bucket name?)
    • pbucket: What is the parameter name for the bucket? (e.g., bucket-name: tazama?)
  3. Add examples: Include example parameter configurations or screenshots to improve clarity.

Without these details, users cannot complete the configuration.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Technical/Deployment-Guides/Nifi-Deployment-Guide.md` around lines 18 - 25,
Clarify that the steps create or update Parameter Contexts rather than only
selecting them: explicitly state "Create or select the Parameter Context named
pbucket" and whether phttp and pozone must be created if missing; then list
exact parameter keys and example values to add to each context — for phttp add
parameters like http.endpoint (e.g., https://api.example.com/ingest),
http.timeout (e.g., 30s), http.headers (e.g., Authorization: Bearer <token>);
for pozone add s3.region (e.g., us-east-1) and s3.bucket (e.g., tazama) and
s3.credentials-id (NiFi credentials reference); for pbucket add bucket.name =
tazama (case-sensitive) and bucket.env (optional); finally include a short
example block showing the three contexts and their key=value pairs so users can
copy the exact parameter names and values when configuring phttp, pozone, and
pbucket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant