Labels: ready-to-code
Dependencies: None
RHIDP Stories: RHIDP-15271, RHIDP-15272, RHIDP-15306 (permission definitions), RHIDP-15312
Feature: RHDHPLAN-1508 — Epic RHIDP-15270
Define AI Catalog permission constants (ai-catalog.asset.read, ai-catalog.asset.read.usage-docs, ai-catalog.admin), implement graduated visibility backend enforcement (Tier 1 entity-level + Tier 2 field-level filtering), and implement conditional permission rules (isAiAssetCategory, isFromConnector, isInTenant) with toQuery() support. The default-deny config implementation is in Issue 20.
Tasks
From openspec/changes/ai-catalog-asset-governance/tasks.md group 1 (RHIDP-15271, RHIDP-15306):
- 1.1 Define
AI_CATALOG_ASSET_RESOURCE_TYPE constant in boost-common/src/permissions.ts
- 1.2 Define
ai-catalog.asset.read resource permission
- 1.3 Define
ai-catalog.asset.read.usage-docs resource permission
- 1.4 Define
ai-catalog.admin basic permission
- 1.5 Export all permission constants and resource type
- 1.6 Register all 3 permissions via
permissionsRegistry.addPermissions()
From openspec/changes/ai-catalog-asset-governance/tasks.md group 2 (RHIDP-15271, RHIDP-15272):
- 2.1 Implement Tier 2 field-level filtering in AI asset detail endpoint
- 2.2 Implement entity-level filtering on list endpoint using
authorizeConditional()
- 2.3 Implement batch
authorizeConditional() for Tier 2
- 2.4 Add unit tests for field-level filtering
From openspec/changes/ai-catalog-asset-governance/tasks.md group 4 (RHIDP-15312):
- 4.1 Implement
isAiAssetCategory rule with apply() and toQuery()
- 4.2 Implement
isAiAssetCategory.toQuery() generating catalog query predicate
- 4.3 Implement
isFromConnector rule with apply() and toQuery()
- 4.4 Implement
isFromConnector.toQuery() generating catalog query predicate
- 4.5 Implement
isInTenant rule with apply() and toQuery()
- 4.6 Implement
isInTenant.toQuery() generating catalog query predicate
- 4.7 Register all 3 rules via
createPermissionIntegrationRouter with resourceType: 'ai-catalog-asset'
- 4.8 Add unit tests for each rule's
apply() and toQuery() methods
Specifications
openspec/changes/ai-catalog-asset-governance/specs/graduated-visibility/spec.md
openspec/changes/ai-catalog-asset-governance/specs/conditional-policies/spec.md
Labels:
ready-to-codeDependencies: None
RHIDP Stories: RHIDP-15271, RHIDP-15272, RHIDP-15306 (permission definitions), RHIDP-15312
Feature: RHDHPLAN-1508 — Epic RHIDP-15270
Define AI Catalog permission constants (
ai-catalog.asset.read,ai-catalog.asset.read.usage-docs,ai-catalog.admin), implement graduated visibility backend enforcement (Tier 1 entity-level + Tier 2 field-level filtering), and implement conditional permission rules (isAiAssetCategory,isFromConnector,isInTenant) withtoQuery()support. The default-deny config implementation is in Issue 20.Tasks
From
openspec/changes/ai-catalog-asset-governance/tasks.mdgroup 1 (RHIDP-15271, RHIDP-15306):AI_CATALOG_ASSET_RESOURCE_TYPEconstant inboost-common/src/permissions.tsai-catalog.asset.readresource permissionai-catalog.asset.read.usage-docsresource permissionai-catalog.adminbasic permissionpermissionsRegistry.addPermissions()From
openspec/changes/ai-catalog-asset-governance/tasks.mdgroup 2 (RHIDP-15271, RHIDP-15272):authorizeConditional()authorizeConditional()for Tier 2From
openspec/changes/ai-catalog-asset-governance/tasks.mdgroup 4 (RHIDP-15312):isAiAssetCategoryrule withapply()andtoQuery()isAiAssetCategory.toQuery()generating catalog query predicateisFromConnectorrule withapply()andtoQuery()isFromConnector.toQuery()generating catalog query predicateisInTenantrule withapply()andtoQuery()isInTenant.toQuery()generating catalog query predicatecreatePermissionIntegrationRouterwithresourceType: 'ai-catalog-asset'apply()andtoQuery()methodsSpecifications
openspec/changes/ai-catalog-asset-governance/specs/graduated-visibility/spec.mdopenspec/changes/ai-catalog-asset-governance/specs/conditional-policies/spec.md