You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Vyom Mani Tiwari (Jira)" <ji...@apache.org> on 2026/10/21 08:52:00 UTC

[jira] [Updated] (RANGER-5852) Admin: support constraint policies (policyType 4)

     [ https://issues.apache.org/jira/browse/RANGER-5852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vyom Mani Tiwari updated RANGER-5852:
-------------------------------------
    Description: 
Allow constraint policies ({{{}POLICY_TYPE_CONSTRAINTS{}}}, with {{{}constraintPolicyItems{}}}) to be created, validated, stored and downloaded by plugins through Ranger Admin.

_Scope_
 * *Validation* ({{{}RangerPolicyValidator{}}}):
 ** accept type 4 only when the service def has constraintDefs;
 ** each item’s {{constraintName}} must exist in the service def;
 ** policy resources must fit the hierarchies from {{{}getResourceHierarchiesForConstraint(){}}};
 ** item access types must be in {{{}constraintDef.accessTypes{}}};
 ** mandatory parameters must be present, values must match their type, and unknown parameters are rejected;
 ** type-4 policies have no deny or exception items.
 * *Storage:* policies are stored as JSON in {{{}x_policy.policy_text{}}}, so confirm {{constraintPolicyItems}} round-trip. {{PolicyRefUpdater}} must add users, groups, roles and access types from constraint items to the ref tables, so that search, delete-user checks and reports work.
 * New ref table {{x_policy_ref_constraint}} (policy_id, constraint_def_id, constraint_name), like {{{}x_policy_ref_datamask_type{}}}, populated by {{{}PolicyRefUpdater{}}}. It’s used to block removing or renaming a constraintDef that’s in use 
 * *REST, search and download:* filter by type 4. Include type-4 policies in {{ServicePolicies}} and in policy deltas sent to plugins. Handle them in import/export.
 * *Zones:* constraint policies in security zones should behave the same as access policies.

  was:
Allow constraint policies ({{{}POLICY_TYPE_CONSTRAINTS{}}}, with {{{}constraintPolicyItems{}}}) to be created, validated, stored and downloaded by plugins through Ranger Admin.

_Scope_
 * *Validation* ({{{}RangerPolicyValidator{}}}):
 ** accept type 4 only when the service def has constraintDefs;
 ** each item’s {{constraintName}} must exist in the service def;
 ** policy resources must fit the hierarchies from {{{}getResourceHierarchiesForConstraint(){}}};
 ** item access types must be in {{{}constraintDef.accessTypes{}}};
 ** mandatory parameters must be present, values must match their type, and unknown parameters are rejected;
 ** type-4 policies have no deny or exception items.
 * *Storage:* policies are stored as JSON in {{{}x_policy.policy_text{}}}, so confirm {{constraintPolicyItems}} round-trip. {{PolicyRefUpdater}} must add users, groups, roles and access types from constraint items to the ref tables, so that search, delete-user checks and reports work.
 * *REST, search and download:* filter by type 4. Include type-4 policies in {{ServicePolicies}} and in policy deltas sent to plugins. Handle them in import/export.
 * *Zones:* constraint policies in security zones should behave the same as access policies.


> Admin: support constraint policies (policyType 4)
> -------------------------------------------------
>
>                 Key: RANGER-5852
>                 URL: https://issues.apache.org/jira/browse/RANGER-5852
>             Project: Ranger
>          Issue Type: New Feature
>          Components: admin
>            Reporter: Vyom Mani Tiwari
>            Assignee: Vyom Mani Tiwari
>            Priority: Major
>
> Allow constraint policies ({{{}POLICY_TYPE_CONSTRAINTS{}}}, with {{{}constraintPolicyItems{}}}) to be created, validated, stored and downloaded by plugins through Ranger Admin.
> _Scope_
>  * *Validation* ({{{}RangerPolicyValidator{}}}):
>  ** accept type 4 only when the service def has constraintDefs;
>  ** each item’s {{constraintName}} must exist in the service def;
>  ** policy resources must fit the hierarchies from {{{}getResourceHierarchiesForConstraint(){}}};
>  ** item access types must be in {{{}constraintDef.accessTypes{}}};
>  ** mandatory parameters must be present, values must match their type, and unknown parameters are rejected;
>  ** type-4 policies have no deny or exception items.
>  * *Storage:* policies are stored as JSON in {{{}x_policy.policy_text{}}}, so confirm {{constraintPolicyItems}} round-trip. {{PolicyRefUpdater}} must add users, groups, roles and access types from constraint items to the ref tables, so that search, delete-user checks and reports work.
>  * New ref table {{x_policy_ref_constraint}} (policy_id, constraint_def_id, constraint_name), like {{{}x_policy_ref_datamask_type{}}}, populated by {{{}PolicyRefUpdater{}}}. It’s used to block removing or renaming a constraintDef that’s in use 
>  * *REST, search and download:* filter by type 4. Include type-4 policies in {{ServicePolicies}} and in policy deltas sent to plugins. Handle them in import/export.
>  * *Zones:* constraint policies in security zones should behave the same as access policies.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)