Support Questions

Find answers, ask questions, and share your expertise

Multiple Nifi Flows in one Nifi

avatar

Is there any way to create multiple NiFi flows (the blank canvas which appears on the start)?

For now, even if 2-3 users are logging in they all see the same NiFi flow. I want to create 2 NiFi flows so each user can see his own individual NiFi flow.

1 ACCEPTED SOLUTION

avatar
Guru

Have each user put all of his/her flows in a processor group owned by that user. This high-level processor group can hold multiple flows by the user (including separate flows themselves organized by processor groups). The high-level processor group can be owned by the users so only user has permission to view and edit the contents.

This post is a good reference: https://community.hortonworks.com/questions/33007/what-is-the-best-way-to-organize-many-nifi-process...

View solution in original post

5 REPLIES 5

avatar
Guru

Have each user put all of his/her flows in a processor group owned by that user. This high-level processor group can hold multiple flows by the user (including separate flows themselves organized by processor groups). The high-level processor group can be owned by the users so only user has permission to view and edit the contents.

This post is a good reference: https://community.hortonworks.com/questions/33007/what-is-the-best-way-to-organize-many-nifi-process...

avatar

But suppose there are 3 users and I created 3 different process groups for each of them. So when User 1 logs in he can see 3 process group but can edit and modify only 1 which belongs to him. But he still can see the rest of the two. I want to hide those 2 for him so he will see just his process group.

avatar
Guru

User 2 cannot see the details or contents of process group of user 1, but can still see the presence of the process group, eg as per screenshot:

15356-screen-shot-2017-05-12-at-81039-am.png

See: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html

"User2 is unable to add components to the dataflow or move, edit, or connect components. The details and properties of the root process group and processors are hidden from User2."

avatar
Master Mentor

@Sunil Neurgaonkar

If user 1 does not have view or modify to user 2 or user 3 process groups, all user 1 will see is a ghosted boxes for those processors, remote process groups, process groups, etc.

15355-screen-shot-2017-05-12-at-80430-am.png

User 1 will not be able to view the configuration or FlowFiles that pass through these components either. He will not even be able to identify what kind of processor it is.

The only thing they can see are the stats. This is important since all dataflows run within the same JVM. So understanding where a backlog somewhere else in the flow exists can be important. I suggest creating a label that is viewable by all users fro each process group that provides a POC for that process group in the even their is an issue.

Another reason you would not want hide these components completely, is to avoid users stacking components on top of each other. Lets say user 2 can see both user 1 and user2 components, but user 1 can only see his components. User 1 now has no way of knowing where components exist making it very hard for user 2 to view the canvas since he would see all components potential layer on top of one another.

Perhaps I am missing something in your use case, but I don't see the benefit or vulnerability introduced by allowoing all users to see these ghosted components.

Thank you, Matt

avatar
New Contributor

In my understanding, everything is based anyhow on "processGroup". and there is a "root" process group that is shared among all the users. It would be nice to allow the creation of multiple "root" process group and define for a user or a group of user what is the root "processGroup". Of course, super users or users belonging to different groups, should have the possibilty to see the list of root "processGroup" they can access and enter it.

what do you think? for real multi-tenancy this would be quite interesting.