<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: How to create process-groups and apply custom policies to the processor via Nifi API in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404236#M252290</link>
    <description>&lt;P&gt;Update :&lt;/P&gt;&lt;P&gt;i realized that I wasn't adding process-group id to the resources, so i added the process-group to the policy config json&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;policy Group Config: {
  "revision": {
    "version": 0
  },
  "permissions": {
    "canRead": true,
    "canWrite": true
  },
  "component": {
    "resource": "data-transfer/output-ports/a2a202da-0195-1000-0000-000045d2086d",
    "action": "write",
    "configurable": true,
    "users": [],
    "userGroups": [
      {
        "revision": {
          "version": 0
        },
        "id": "3d872ce1-e08a-4794-85e5-66e5a1f2f4ac",
        "permissions": {
          "canRead": true,
          "canWrite": true
        },
        "component": {
          "id": "3d872ce1-e08a-4794-85e5-66e5a1f2f4ac",
          "identity": "TenantID.john.nifi_superadmin",
          "configurable": true
        }
      },
      {
        "revision": {
          "version": 0
        },
        "id": "ebe9c88a-77d7-4070-bead-e24329b2e9c1",
        "permissions": {
          "canRead": true,
          "canWrite": true
        },
        "component": {
          "id": "ebe9c88a-77d7-4070-bead-e24329b2e9c1",
          "identity": "nifi_superadmin",
          "configurable": true
        }
      }
    ]
  }
}&lt;/LI-CODE&gt;&lt;P&gt;"data-transfer/output-ports/a2a202da-0195-1000-0000-000045d2086d",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;where&amp;nbsp;a2a202da-0195-1000-0000-000045d2086d is the id of the process group&lt;/P&gt;&lt;P&gt;all the policies were created with 201&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="scoutjohn_1-1742190703577.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/44339i39FD2B4337CD4537/image-size/medium?v=v2&amp;amp;px=400" role="button" title="scoutjohn_1-1742190703577.png" alt="scoutjohn_1-1742190703577.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;when i try to access the policies of the process group , i don't see the respective user-group having privilege to it, it just has super admins in the list&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="scoutjohn_0-1742190615717.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/44338i44E1989412E9427F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="scoutjohn_0-1742190615717.png" alt="scoutjohn_0-1742190615717.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 17 Mar 2025 05:51:59 GMT</pubDate>
    <dc:creator>scoutjohn</dc:creator>
    <dc:date>2025-03-17T05:51:59Z</dc:date>
    <item>
      <title>How to create process-groups and apply custom policies to the processor via Nifi API</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404217#M252287</link>
      <description>&lt;P&gt;Hi All&lt;/P&gt;&lt;P&gt;I have a list of users that i have in an array.&lt;/P&gt;&lt;P&gt;I am trying to create a job in shell script that creates a process-group for each user and apply policy to that particular process group so that only that user and nifi's super user can access or operate in it&amp;nbsp;&lt;/P&gt;&lt;P&gt;here is how the polices config json looks like&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;'[{"globalAccessPolicies":[{"resource":"flow","action":"read"},{"resource":"provenance","action":"read"}],"componentLevelAccessPolicies":[{"resource":"process-groups","action":"read"},{"resource":"process-groups","action":"write"},{"resource":"operation/process-groups","action":"write"},{"resource":"provenance-data/process-groups","action":"write"},{"resource":"provenance-data/process-groups","action":"read"},{"resource":"data/process-groups","action":"read"},{"resource":"data/process-groups","action":"write"},{"resource":"policies/process-groups","action":"read"},{"resource":"policies/process-groups","action":"write"},{"resource":"data-transfer/input-ports","action":"write"},{"resource":"data-transfer/output-ports","action":"write"}]}]'     &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;For each user in the array, the job iterates through &lt;STRONG&gt;globalAccessPolicies&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;componentLevelAccessPolicies&lt;/STRONG&gt; and assigns permission to the user.&lt;BR /&gt;&lt;BR /&gt;before assigning the &lt;STRONG&gt;componentLevelAccessPolicies&lt;/STRONG&gt; the job creates an empty process-group to in the nifi canvas&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;using the api&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;nifi_api_request "process-groups/root/process-groups" "POST" "Content-Type: application/json" "{\"revision\":{\"version\":0},\"component\":{\"name\":\"${tenant}\",\"position\":{\"x\":${x},\"y\":${y}},\"comments\":\"Processor group for ${tenant}\"}}"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;this returns a json from which the id of the process group is fetched&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;then the Job uses the fetched ID, uses the &lt;STRONG&gt;componentLevelAccessPolicies&lt;/STRONG&gt; array and tries to create a policy configuration using&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;for policy in $(echo "${componentLevelAccessPolicies}" | jq -c '.[]'); do
                      resource=$(echo "${policy}" | jq -r '.resource')
                      action=$(echo "${policy}" | jq -r '.action')
                      policyConfig=$(echo '{
                                          "revision": {
                                            "version": 0
                                          },
                                          "component": {
                                            "resource": "'${resource}'",
                                            "action": "'${action}'",
                                            "configurable": true,
                                            "users": [],
                                            "userGroups": []
                                          }
                                        }' | jq .)

                      policyConfig=$(echo "${policyConfig}" | jq ".component.userGroups += [{\"revision\":{\"version\":0},\"id\":\"${tenant_superadmin_id}\",\"permissions\":{\"canRead\":true,\"canWrite\":true},\"component\":{\"id\":\"${processor_group_id}\",\"identity\":\"${tenant_superadmin}\",\"configurable\":true}}]")
                      policyConfig=$(echo "${policyConfig}" | jq ".component.userGroups += [{\"revision\":{\"version\":0},\"id\":\"${tenant_readonly_id}\",\"permissions\":{\"canRead\":true,\"canWrite\":false},\"component\":{\"id\":\"${processor_group_id}\",\"identity\":\"${tenant_readonly}\",\"configurable\":true}}]")
                      policyConfig=$(echo "${policyConfig}" | jq ".component.userGroups += [{\"revision\":{\"version\":0},\"id\":\"${nifi_superadmin_id}\",\"permissions\":{\"canRead\":true,\"canWrite\":true},\"component\":{\"id\":\"${processor_group_id}\",\"identity\":\"${nifi_superadmin}\",\"configurable\":true}}]")
                      policyConfig=$(echo "${policyConfig}" | jq ".component.userGroups += [{\"revision\":{\"version\":0},\"id\":\"${nifi_readonly_id}\",\"permissions\":{\"canRead\":true,\"canWrite\":false},\"component\":{\"id\":\"${processor_group_id}\",\"identity\":\"${nifi_readonly}\",\"configurable\":true}}]")

                      echo "policy Group Config: ${policyConfig}"
                      nifi_api_request "policies/" "POST" "Content-Type: application/json" "${policyConfig}"
                      echo -e "status ${status}"
                      echo -e "body ${body}"
                      [[ ${status} -eq 201 ]] || exit 1

                    done&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The required Ids are fetched beforehand from the user groups&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;Since job is trying to create policy to each processor group, i have set&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;the http method as POST&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;      nifi_api_request "policies/" "POST" "Content-Type: application/json" "${policyConfig}"
 &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;in the Loop it creates a json paylod like this&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;{
"revision": {
"version": 0
},
"component": {
"resource": "data-transfer/output-ports",
"action": "write",
"configurable": true,
"users": [],
"userGroups": [
{
"revision": {
"version": 0
},
"id": "9fd4eabd-5b6f-4a1d-8c5f-ca6049986d96",
"permissions": {
"canRead": true,
"canWrite": true
},
"component": {
"id": "9ef8a5e3-0195-1000-ffff-ffffb4a7b545",
"identity": "TenantID.john.nifi_superadmin",
"configurable": true
}
},
{
"revision": {
"version": 0
},
"id": "aba0f614-d09a-42ee-9081-3328c86fcd6e",
"permissions": {
"canRead": true,
"canWrite": false
},
"component": {
"id": "9ef8a5e3-0195-1000-ffff-ffffb4a7b545",
"identity": "TenantID.john.nifi_readonly",
"configurable": true
}
},
{
"revision": {
"version": 0
},
"id": "ebe9c88a-77d7-4070-bead-e24329b2e9c1",
"permissions": {
"canRead": true,
"canWrite": true
},
"component": {
"id": "9ef8a5e3-0195-1000-ffff-ffffb4a7b545",
"identity": "nifi_superadmin",
"configurable": true
}
},
{
"revision": {
"version": 0
},
"id": "95aedc49-20f6-4dad-95f5-c7311a66c353",
"permissions": {
"canRead": true,
"canWrite": false
},
"component": {
"id": "9ef8a5e3-0195-1000-ffff-ffffb4a7b545",
"identity": "nifi_readonly",
"configurable": true
}
}
]
}
}
 ​&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;the job did not throw any error for the first user in the loop ( though the process-group did not have the users assigned in the canvas PFA).&lt;/DIV&gt;&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="scoutjohn_0-1742131450795.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/44327i462E5B3FFB489406/image-size/medium?v=v2&amp;amp;px=400" role="button" title="scoutjohn_0-1742131450795.png" alt="scoutjohn_0-1742131450795.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt;but when it run for the &lt;EM&gt;&lt;STRONG&gt;second user&lt;/STRONG&gt;&lt;/EM&gt; it returns 400 bad request&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;status 409
body Found multiple policies for 'process-groups' with 'read'.
​&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;I have tried with configurations by setting the user-group id in the policy config json&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;policyConfig=$(echo "${policyConfig}" | jq ".component.userGroups += [{\"revision\":{\"version\":0},\"id\":\"${tenant_superadmin_id}\",\"permissions\":{\"canRead\":true,\"canWrite\":true},\"component\":{\"id\":\"${tenant_superadmin_id}\",\"identity\":\"${tenant_superadmin}\",\"configurable\":true}}]")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;This did not work, because processor group id is not linked&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Can anyone please advise to how to set the policies uniquely for each process group so that only the user and super admins can access it?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;From the canvas it is achievable, when i select override as empty, But i need this to be done via API call&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks much for your time.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 16 Mar 2025 13:27:14 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404217#M252287</guid>
      <dc:creator>scoutjohn</dc:creator>
      <dc:date>2025-03-16T13:27:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to create process-groups and apply custom policies to the processor</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404218#M252288</link>
      <description>&lt;P&gt;Note 2:&lt;/P&gt;&lt;P&gt;I have also tried to fetch the policy id from the processor and appending it a policy configuration&amp;nbsp;&lt;/P&gt;&lt;P&gt;using&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;nifi_api_request "policies/${action}${resource}" "GET"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;example&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;policies/read/data/process-groups/9486a139-0195-1000-0000-00000ddc9b4f&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;gives a json&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;job will fetch the ID of the policy&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;the call the policy&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;nifi_api_request "policies/${policyId}" "GET"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;use policyConfig to append info where&amp;nbsp;entity_id is the id of the user and&amp;nbsp;entity_name is the name&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;policyConfig=$(echo ${body} | jq ".component.userGroups[.component.userGroups | length] |= {\"revision\":{\"version\":0},\"id\":\"${entity_id}\",\"permissions\":{\"canRead\":${canRead},\"canWrite\":${canWrite}},\"component\":{\"id\":\"${entity_id}\",\"identity\":\"${entity_name}\",\"configurable\":true}}")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This unfortunately started created large json and ended up assigning all the users access to all the process-groups&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 16 Mar 2025 13:16:35 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404218#M252288</guid>
      <dc:creator>scoutjohn</dc:creator>
      <dc:date>2025-03-16T13:16:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to create process-groups and apply custom policies to the processor via Nifi API</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404236#M252290</link>
      <description>&lt;P&gt;Update :&lt;/P&gt;&lt;P&gt;i realized that I wasn't adding process-group id to the resources, so i added the process-group to the policy config json&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;policy Group Config: {
  "revision": {
    "version": 0
  },
  "permissions": {
    "canRead": true,
    "canWrite": true
  },
  "component": {
    "resource": "data-transfer/output-ports/a2a202da-0195-1000-0000-000045d2086d",
    "action": "write",
    "configurable": true,
    "users": [],
    "userGroups": [
      {
        "revision": {
          "version": 0
        },
        "id": "3d872ce1-e08a-4794-85e5-66e5a1f2f4ac",
        "permissions": {
          "canRead": true,
          "canWrite": true
        },
        "component": {
          "id": "3d872ce1-e08a-4794-85e5-66e5a1f2f4ac",
          "identity": "TenantID.john.nifi_superadmin",
          "configurable": true
        }
      },
      {
        "revision": {
          "version": 0
        },
        "id": "ebe9c88a-77d7-4070-bead-e24329b2e9c1",
        "permissions": {
          "canRead": true,
          "canWrite": true
        },
        "component": {
          "id": "ebe9c88a-77d7-4070-bead-e24329b2e9c1",
          "identity": "nifi_superadmin",
          "configurable": true
        }
      }
    ]
  }
}&lt;/LI-CODE&gt;&lt;P&gt;"data-transfer/output-ports/a2a202da-0195-1000-0000-000045d2086d",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;where&amp;nbsp;a2a202da-0195-1000-0000-000045d2086d is the id of the process group&lt;/P&gt;&lt;P&gt;all the policies were created with 201&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="scoutjohn_1-1742190703577.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/44339i39FD2B4337CD4537/image-size/medium?v=v2&amp;amp;px=400" role="button" title="scoutjohn_1-1742190703577.png" alt="scoutjohn_1-1742190703577.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;when i try to access the policies of the process group , i don't see the respective user-group having privilege to it, it just has super admins in the list&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="scoutjohn_0-1742190615717.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/44338i44E1989412E9427F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="scoutjohn_0-1742190615717.png" alt="scoutjohn_0-1742190615717.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Mar 2025 05:51:59 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404236#M252290</guid>
      <dc:creator>scoutjohn</dc:creator>
      <dc:date>2025-03-17T05:51:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to create process-groups and apply custom policies to the processor via Nifi API</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404249#M252292</link>
      <description>&lt;P&gt;Update :&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Solved it&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;i was missing a '/' infront of the resources that i was providing&amp;nbsp;&lt;/P&gt;&lt;P&gt;it should have been&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;"resource": "/data-transfer/output-ports/a2a202da-0195-1000-0000-000045d2086d",&lt;/LI-CODE&gt;&lt;P&gt;instead of&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;"resource": "data-transfer/output-ports/a2a202da-0195-1000-0000-000045d2086d",&lt;/LI-CODE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="scoutjohn_0-1742201068076.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/44348iD4E4E97692A9D666/image-size/medium?v=v2&amp;amp;px=400" role="button" title="scoutjohn_0-1742201068076.png" alt="scoutjohn_0-1742201068076.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;comparing the policies created with UI and with API made me realize it&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="scoutjohn_1-1742201162765.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/44349i9AD27EEC5DAED601/image-size/medium?v=v2&amp;amp;px=400" role="button" title="scoutjohn_1-1742201162765.png" alt="scoutjohn_1-1742201162765.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Mar 2025 08:46:13 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-create-process-groups-and-apply-custom-policies-to/m-p/404249#M252292</guid>
      <dc:creator>scoutjohn</dc:creator>
      <dc:date>2025-03-17T08:46:13Z</dc:date>
    </item>
  </channel>
</rss>

