Source: projects/identity-management/ad-shop-seeding/ITSHOP-STRUCTURE-PROPOSAL.md

> Source: projects/identity-management/ad-shop-seeding/ITSHOP-STRUCTURE-PROPOSAL.md

IT Shop Structure Proposal for Sandbox AD Entitlements

Status: corrected structure seeded in OneIM on 2026-04-27; product publication still pending

Scope: OIM-side publication model for the AD groups proposed in

PROPOSAL.md and data/ad-shop-catalog.json

Implementation artifact: sql/seed-itshop-structure.sql

Live Starting Point

Queried from the live OneIM database on 2026-04-27:

AreaCurrent state
Shop rootIdentity & Access Lifecycle exists in ITShopOrg with ITShopInfo = SH.
Existing shelvesActive Directory Groups, Group Lifecycle, and Identity Lifecycle exist with ITShopInfo = BO.
Existing product nodesRequestable nodes such as Role membership and New Active Directory security group use ITShopInfo = PR, IsCutNode = 1, and have UID_AccProduct plus UID_PWODecisionMethod.
Customer nodeIdentity Lifecycle Customer uses ITShopInfo = CU.
AD groupsADSGroup exists, but current rows are not IT Shop published.
System rolesESet and ESetHasEntitlement are empty.

ITShopInfo Semantics

Observed live values:

ITShopInfoMeaning in this sandboxValid role in this plan
SHShop rootReuse existing Identity & Access Lifecycle; do not create another shop root for v1.
BOShelf / bucket directly below a shop rootUse for the four sandbox shelves.
PRRequestable product nodeUse later when publishing AccProduct service items.
CUCustomer nodeNot part of this entitlement catalog phase.

Important constraint: OneIM's QER_TUBaseTree trigger rejects a BO shelf

below another BO shelf with "Cannot change shelf property, because

predecessor already is a shelf." Therefore the earlier deep tree

Sandbox Entitlements\Applications\<Domain>\<Application> is invalid as an

ITShopOrg structure. Application/domain grouping must be represented through

AccProductGroup, service item names, metadata, or portal search/filtering.

Corrected IT Shop Tree

Identity & Access Lifecycle (`ITShopInfo = SH`)
├── Sandbox Applications (`ITShopInfo = BO`)
├── Sandbox Business Roles (`ITShopInfo = BO`)
├── Sandbox System Role Bundles (`ITShopInfo = BO`)
└── Sandbox Distribution Lists (`ITShopInfo = BO`)

All four seeded shelves are direct children of Identity & Access Lifecycle.

They are intentionally broad because ITShopOrg is a shop/shelf/product-node

structure, not a taxonomy tree. Application/domain grouping belongs in

service-item metadata, AccProductGroup, or portal filtering.

The shelves use:

FieldValue
ITShopInfoBO
IsCutNode0
IsInvalidForDynamicGroup1
UID_ParentITShopOrgQER-ITSHOPORG-DELEGATION-SH
CustomProperty01[OIM-SANDBOX-SEED:ad-shop-seeding:v1]

The seeded shelf descriptions now carry the intended boundary for each shelf:

application AD groups, business-role marker groups, placeholder system-role

bundle groups, and distribution-list-shaped AD groups.

Product Placement Rules

Application Entitlements

Publish every APP_<CODE>_<TIER> AD group as an orderable product node below:

Identity & Access Lifecycle\Sandbox Applications

Use friendly service item names and metadata for application grouping:

AD groupIT Shop shelfDisplay name
APP_ATLAS_READERSandbox ApplicationsAtlas Office - Read-only
APP_ATLAS_USERSandbox ApplicationsAtlas Office - Standard user
APP_ATLAS_EDITORSandbox ApplicationsAtlas Office - Content editor
APP_ATLAS_ADMINSandbox ApplicationsAtlas Office - Administrator
APP_ATLAS_APPROVERSandbox ApplicationsAtlas Office - Request approver

Business Role Markers

Publish BR_* groups below:

Identity & Access Lifecycle\Sandbox Business Roles

These are AD-side marker groups only. They should not be confused with OIM

business role objects yet. A later phase can decide whether to map them into

OIM business roles (Org) or keep them as requestable AD groups.

System Role Bundles

Publish SR_* groups below:

Identity & Access Lifecycle\Sandbox System Role Bundles

These groups are placeholders for future OIM ESet system roles. In a later

phase, the better OIM-native design is:

1. Create ESet rows matching each SR_* bundle.

2. Link included ADSGroup entitlements through ESetHasEntitlement.

3. Publish the ESet system role service item instead of requesting the

placeholder AD group directly.

Distribution Lists

Publish DL_* groups below:

Identity & Access Lifecycle\Sandbox Distribution Lists

They remain Global Security groups in AD for v1 and are not mail-enabled.

Service Categories

The live sandbox has these project-owned AccProductGroup service categories:

Sandbox Applications
Sandbox Business Roles
Sandbox System Role Bundles
Sandbox Distribution Lists

Recommendation for v1: keep these four categories. They are coarse on purpose.

Application/domain refinement belongs in AccProduct names and metadata first;

only add subcategory rows after the Web Portal view is tested.

Relationship Notes

Relevant live relations for the next publication phase:

TableColumnRelation
BaseTreeUID_OrgRootOrgRoot.UID_OrgRoot
BaseTreeUID_ParentOrgSame-tree parent, enforced by trigger logic.
BaseTreeUID_AccProductAccProduct.UID_AccProduct for PR product nodes.
BaseTreeUID_PWODecisionMethodPWODecisionMethod.UID_PWODecisionMethod for request workflow.
AccProductUID_AccProductGroupAccProductGroup.UID_AccProductGroup.
AccProductInBaseTreeUID_Org, UID_AccProductPresent in schema, but empty in this sandbox; do not treat as the current active placement mechanism until a supported flow populates it.
BaseTreeHasADSGroupUID_Org, UID_ADSGroupLinks AD groups to role/tree nodes when using entitlement assignment relations.
BaseTreeHasESetUID_Org, UID_ESetLinks system roles to role/tree nodes when modeling native ESet.

For direct IT Shop publication, model future requestable product nodes as

ITShopInfo = PR, IsCutNode = 1, with UID_AccProduct and

UID_PWODecisionMethod, following the supported publish/ProductNode creation

flow rather than hand-building a parallel BO hierarchy.

Implementation Status

Completed in the live sandbox OneIM database on 2026-04-27:

Identity & Access Lifecycle.

no nested BO taxonomy, no direct PR rows until the supported publication

path is executed, and no reliance on empty AccProductInBaseTree as the

current placement mechanism.

Still pending: