Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

CSDM- Data loader excel sheet

rtrtungal39
Tera Contributor

Hi ,

 

 

I need to implement CSDM and would appreciate it if someone could share a sample data-loaded sheet for CSDM. This would be very helpful for my work.

 

 

Regards,

Rahul Tungal

1 ACCEPTED SOLUTION

MaxMixali
Mega Sage

CSDM Sample Data-Load Template (Text Version)
=================================================
Purpose
-------
This sample shows the minimal, practical columns you can use to stage a first CSDM load into CMDB/Service Portfolio. It follows CSDM layers: Business Capabilities → Business Applications → Application Services → Technical Services/Offerings → Application Components → Infrastructure, plus relationships.
Use these as CSV tabs (worksheets) or separate files. Keep sys_ids blank if you’ll create new records; populate if you’re updating.

Conventions
-----------
- Names: unique, business-friendly.
- Owners: email or user_name that exists in sys_user.
- Status: Active/Retired where applicable.
- Dates: ISO 8601 (YYYY-MM-DD).
- Relationship refs: point by Name (preferred) or external_key; transform maps will resolve to sys_id.

TAB 1: business_capability.csv
------------------------------
Columns:
- capability_name
- capability_level (1-3)
- parent_capability_name (blank if level 1)
- description
- owner (email)
Examples:
capability_name,capability_level,parent_capability_name,description,owner
"HR Management",1,,"Hire to Retire","ciso@example.com"
"Recruiting",2,"HR Management","Candidate sourcing and hiring","ciso@example.com"
"Payroll",2,"HR Management","Compensation processing","finops@example.com"

TAB 2: business_application.csv (APM)
-------------------------------------
Maps to cmdb_ci_business_app (or APM App table in your org)
Columns:
- app_name
- business_owner (email)
- it_owner (email)
- capability_name (primary capability)
- lifecycle_status (Planned/Live/Retired)
- criticality (Low/Medium/High)
- data_classification (Public/Internal/Confidential/Restricted)
- description
Examples:
app_name,business_owner,it_owner,capability_name,lifecycle_status,criticality,data_classification,description
"HR Portal","vp.hr@example.com","app.owner@example.com","HR Management","Live","High","Internal","Employee self-service portal"
"Talent ATS","vp.hr@example.com","ats.owner@example.com","Recruiting","Live","Medium","Confidential","Applicant tracking"

TAB 3: application_service.csv (Service Portfolio – Business-facing)
-------------------------------------------------------------------
Maps to cmdb_ci_service (Service Type = Business) or cmdb_ci_service_discovered in some orgs
Columns:
- svc_name
- service_type (Business)
- provided_for (Department/Org)
- app_name (backed-by application)
- service_owner (email)
- support_group (group_name)
- availability_slo_pct
- description
Examples:
svc_name,service_type,provided_for,app_name,service_owner,support_group,availability_slo_pct,description
"HR Self-Service","Business","All Employees","HR Portal","svc.owner@example.com","HR Support L1","99.9","Catalog and knowledge for HR"

TAB 4: technical_service.csv (Service Portfolio – Technical)
-----------------------------------------------------------
Maps to cmdb_ci_service (Service Type = Technical)
Columns:
- tech_svc_name
- service_type (Technical)
- service_owner (email)
- support_group (group_name)
- description
Examples:
tech_svc_name,service_type,service_owner,support_group,description
"Notification Platform","Technical","platform.owner@example.com","Platform Eng","Email/SMS push gateway"
"Container Runtime","Technical","platform.owner@example.com","Platform Eng","Kubernetes runtime and ingress"

TAB 5: service_offering.csv (Service Offerings)
-----------------------------------------------
Maps to service_offering
Columns:
- offering_name
- parent_service_name (svc_name or tech_svc_name)
- offering_type (Business/Technical)
- owner (email)
- active (true/false)
- description
Examples:
offering_name,parent_service_name,offering_type,owner,active,description
"HR Case Management","HR Self-Service","Business","svc.owner@example.com",true,"Case intake and handling"
"Email Delivery API","Notification Platform","Technical","platform.owner@example.com",true,"SMTP/REST mail sending"
"Container Hosting (Gold)","Container Runtime","Technical","platform.owner@example.com",true,"Production-grade cluster"

TAB 6: application_component.csv (App Modules)
---------------------------------------------
Maps to cmdb_ci_appl (or subclass)
Columns:
- component_name
- app_name
- component_type (Web, API, Batch, DB)
- version
- owner (email)
Examples:
component_name,app_name,component_type,version,owner
"HR Portal UI","HR Portal","Web","2.3.1","app.owner@example.com"
"HR API","HR Portal","API","1.8.0","app.owner@example.com"
"Talent ATS Core","Talent ATS","Web","5.2.0","ats.owner@example.com"

TAB 7: infra_node.csv (Simplified Infrastructure)
-------------------------------------------------
Maps to cmdb_ci_computer / cmdb_ci_db_instance / cmdb_ci_container, etc.
Columns:
- node_name
- node_class (Server, DB, Container, Cloud Service)
- environment (Prod/Non-prod)
- host_provider (AWS/Azure/Onprem)
- os_or_engine
- owned_by (email)
Examples:
node_name,node_class,environment,host_provider,os_or_engine,owned_by
"hrweb01","Server","Prod","AWS","Amazon Linux 2","ops@example.com"
"hrdb01","DB","Prod","AWS","PostgreSQL 14","dba@example.com"
"aks-prod-app-01","Container","Prod","Azure","AKS","ops@example.com"

TAB 8: relationships.csv (Dependencies & Hosting)
-------------------------------------------------
Maps to cmdb_rel_ci or service_offering_consumer records as applicable.
Columns:
- parent_type (BusinessApp|AppService|TechService|Offering|Component)
- parent_name
- rel_type (depends_on|runs_on|consumes|hosts|calls)
- child_type (Component|Server|DB|Offering|TechService)
- child_name
Examples:
parent_type,parent_name,rel_type,child_type,child_name
"AppService","HR Self-Service","depends_on","TechService","Notification Platform"
"Offering","Email Delivery API","hosts","Server","mailgw01"
"Component","HR Portal UI","runs_on","Server","hrweb01"
"Component","HR API","runs_on","Container","aks-prod-app-01"
"BusinessApp","HR Portal","depends_on","AppService","HR Self-Service"

TAB 9: service_consumer.csv (Offerings consumed by Apps)
--------------------------------------------------------
Maps to service_offering_consumer (or your integration table)
Columns:
- offering_name
- consumer_type (BusinessApp|AppService|TechService)
- consumer_name
- start_date
Examples:
offering_name,consumer_type,consumer_name,start_date
"Email Delivery API","BusinessApp","HR Portal","2024-05-01"
"Container Hosting (Gold)","AppService","HR Self-Service","2024-03-10"

Validation Rules (Pre-Load)
---------------------------
- Mandatory uniqueness: capability_name, app_name, svc_name/tech_svc_name, offering_name, component_name, node_name.
- Owners exist in sys_user; groups exist in sys_user_group.
- Relationship references resolve to an existing Name in prior tabs.
- Don’t create services without an owner and support group.
- Use ‘Technical’ for shared platform layers; ‘Business’ for end-user-facing services.

Load Order (Recommended)
------------------------
1) business_capability
2) business_application
3) application_service (Business)
4) technical_service
5) service_offering
6) application_component
7) infra_node
😎 relationships
9) service_consumer

Quick Starter Example (Minimal Chain)
------------------------------------
- Business App: HR Portal
- App Service: HR Self-Service (Business)
- Technical Services: Notification Platform; Container Runtime
- Offerings: Email Delivery API; Container Hosting (Gold)
- Components: HR Portal UI; HR API
- Infra: hrweb01 (Server); aks-prod-app-01 (Container)
- Relationships:
HR Self-Service depends_on Notification Platform
HR API runs_on aks-prod-app-01
HR Portal depends_on HR Self-Service
Email Delivery API hosts mailgw01 (if used)

Notes & Tips
------------
- Keep “service_type” consistent; use Technical for reusable platforms (per CSDM).
- Don’t model libraries/frameworks as Business Apps—use Technical Services & Offerings.
- Use transforms to resolve Name → sys_id. Keep Name unique to simplify mapping.
- Start small: 1–2 value streams; expand iteratively.

View solution in original post

5 REPLIES 5

MaxMixali
Mega Sage

CSDM Sample Data-Load Template (Text Version)
=================================================
Purpose
-------
This sample shows the minimal, practical columns you can use to stage a first CSDM load into CMDB/Service Portfolio. It follows CSDM layers: Business Capabilities → Business Applications → Application Services → Technical Services/Offerings → Application Components → Infrastructure, plus relationships.
Use these as CSV tabs (worksheets) or separate files. Keep sys_ids blank if you’ll create new records; populate if you’re updating.

Conventions
-----------
- Names: unique, business-friendly.
- Owners: email or user_name that exists in sys_user.
- Status: Active/Retired where applicable.
- Dates: ISO 8601 (YYYY-MM-DD).
- Relationship refs: point by Name (preferred) or external_key; transform maps will resolve to sys_id.

TAB 1: business_capability.csv
------------------------------
Columns:
- capability_name
- capability_level (1-3)
- parent_capability_name (blank if level 1)
- description
- owner (email)
Examples:
capability_name,capability_level,parent_capability_name,description,owner
"HR Management",1,,"Hire to Retire","ciso@example.com"
"Recruiting",2,"HR Management","Candidate sourcing and hiring","ciso@example.com"
"Payroll",2,"HR Management","Compensation processing","finops@example.com"

TAB 2: business_application.csv (APM)
-------------------------------------
Maps to cmdb_ci_business_app (or APM App table in your org)
Columns:
- app_name
- business_owner (email)
- it_owner (email)
- capability_name (primary capability)
- lifecycle_status (Planned/Live/Retired)
- criticality (Low/Medium/High)
- data_classification (Public/Internal/Confidential/Restricted)
- description
Examples:
app_name,business_owner,it_owner,capability_name,lifecycle_status,criticality,data_classification,description
"HR Portal","vp.hr@example.com","app.owner@example.com","HR Management","Live","High","Internal","Employee self-service portal"
"Talent ATS","vp.hr@example.com","ats.owner@example.com","Recruiting","Live","Medium","Confidential","Applicant tracking"

TAB 3: application_service.csv (Service Portfolio – Business-facing)
-------------------------------------------------------------------
Maps to cmdb_ci_service (Service Type = Business) or cmdb_ci_service_discovered in some orgs
Columns:
- svc_name
- service_type (Business)
- provided_for (Department/Org)
- app_name (backed-by application)
- service_owner (email)
- support_group (group_name)
- availability_slo_pct
- description
Examples:
svc_name,service_type,provided_for,app_name,service_owner,support_group,availability_slo_pct,description
"HR Self-Service","Business","All Employees","HR Portal","svc.owner@example.com","HR Support L1","99.9","Catalog and knowledge for HR"

TAB 4: technical_service.csv (Service Portfolio – Technical)
-----------------------------------------------------------
Maps to cmdb_ci_service (Service Type = Technical)
Columns:
- tech_svc_name
- service_type (Technical)
- service_owner (email)
- support_group (group_name)
- description
Examples:
tech_svc_name,service_type,service_owner,support_group,description
"Notification Platform","Technical","platform.owner@example.com","Platform Eng","Email/SMS push gateway"
"Container Runtime","Technical","platform.owner@example.com","Platform Eng","Kubernetes runtime and ingress"

TAB 5: service_offering.csv (Service Offerings)
-----------------------------------------------
Maps to service_offering
Columns:
- offering_name
- parent_service_name (svc_name or tech_svc_name)
- offering_type (Business/Technical)
- owner (email)
- active (true/false)
- description
Examples:
offering_name,parent_service_name,offering_type,owner,active,description
"HR Case Management","HR Self-Service","Business","svc.owner@example.com",true,"Case intake and handling"
"Email Delivery API","Notification Platform","Technical","platform.owner@example.com",true,"SMTP/REST mail sending"
"Container Hosting (Gold)","Container Runtime","Technical","platform.owner@example.com",true,"Production-grade cluster"

TAB 6: application_component.csv (App Modules)
---------------------------------------------
Maps to cmdb_ci_appl (or subclass)
Columns:
- component_name
- app_name
- component_type (Web, API, Batch, DB)
- version
- owner (email)
Examples:
component_name,app_name,component_type,version,owner
"HR Portal UI","HR Portal","Web","2.3.1","app.owner@example.com"
"HR API","HR Portal","API","1.8.0","app.owner@example.com"
"Talent ATS Core","Talent ATS","Web","5.2.0","ats.owner@example.com"

TAB 7: infra_node.csv (Simplified Infrastructure)
-------------------------------------------------
Maps to cmdb_ci_computer / cmdb_ci_db_instance / cmdb_ci_container, etc.
Columns:
- node_name
- node_class (Server, DB, Container, Cloud Service)
- environment (Prod/Non-prod)
- host_provider (AWS/Azure/Onprem)
- os_or_engine
- owned_by (email)
Examples:
node_name,node_class,environment,host_provider,os_or_engine,owned_by
"hrweb01","Server","Prod","AWS","Amazon Linux 2","ops@example.com"
"hrdb01","DB","Prod","AWS","PostgreSQL 14","dba@example.com"
"aks-prod-app-01","Container","Prod","Azure","AKS","ops@example.com"

TAB 8: relationships.csv (Dependencies & Hosting)
-------------------------------------------------
Maps to cmdb_rel_ci or service_offering_consumer records as applicable.
Columns:
- parent_type (BusinessApp|AppService|TechService|Offering|Component)
- parent_name
- rel_type (depends_on|runs_on|consumes|hosts|calls)
- child_type (Component|Server|DB|Offering|TechService)
- child_name
Examples:
parent_type,parent_name,rel_type,child_type,child_name
"AppService","HR Self-Service","depends_on","TechService","Notification Platform"
"Offering","Email Delivery API","hosts","Server","mailgw01"
"Component","HR Portal UI","runs_on","Server","hrweb01"
"Component","HR API","runs_on","Container","aks-prod-app-01"
"BusinessApp","HR Portal","depends_on","AppService","HR Self-Service"

TAB 9: service_consumer.csv (Offerings consumed by Apps)
--------------------------------------------------------
Maps to service_offering_consumer (or your integration table)
Columns:
- offering_name
- consumer_type (BusinessApp|AppService|TechService)
- consumer_name
- start_date
Examples:
offering_name,consumer_type,consumer_name,start_date
"Email Delivery API","BusinessApp","HR Portal","2024-05-01"
"Container Hosting (Gold)","AppService","HR Self-Service","2024-03-10"

Validation Rules (Pre-Load)
---------------------------
- Mandatory uniqueness: capability_name, app_name, svc_name/tech_svc_name, offering_name, component_name, node_name.
- Owners exist in sys_user; groups exist in sys_user_group.
- Relationship references resolve to an existing Name in prior tabs.
- Don’t create services without an owner and support group.
- Use ‘Technical’ for shared platform layers; ‘Business’ for end-user-facing services.

Load Order (Recommended)
------------------------
1) business_capability
2) business_application
3) application_service (Business)
4) technical_service
5) service_offering
6) application_component
7) infra_node
😎 relationships
9) service_consumer

Quick Starter Example (Minimal Chain)
------------------------------------
- Business App: HR Portal
- App Service: HR Self-Service (Business)
- Technical Services: Notification Platform; Container Runtime
- Offerings: Email Delivery API; Container Hosting (Gold)
- Components: HR Portal UI; HR API
- Infra: hrweb01 (Server); aks-prod-app-01 (Container)
- Relationships:
HR Self-Service depends_on Notification Platform
HR API runs_on aks-prod-app-01
HR Portal depends_on HR Self-Service
Email Delivery API hosts mailgw01 (if used)

Notes & Tips
------------
- Keep “service_type” consistent; use Technical for reusable platforms (per CSDM).
- Don’t model libraries/frameworks as Business Apps—use Technical Services & Offerings.
- Use transforms to resolve Name → sys_id. Keep Name unique to simplify mapping.
- Start small: 1–2 value streams; expand iteratively.