arch-req-from-api
Fetch application metadata from CMDB (ServiceNow, etc.) or Enterprise Architecture systems via REST API or CSV export. Provides high-confidence physical location and ownership data. Does NOT provide tech stack, protocols, or auth — those must come from other readers or interview.
Install
npx skills add https://github.com/axisrobo/ea-harness/tree/main/.agents/skills/arch-req-from-api
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install axisrobo-ea-harness@llmmart
git clone https://github.com/axisrobo/ea-harness.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole axisrobo/ea-harness collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Locating shared resources. References in this file to
standards/,tools/,config.yaml, andtemplates/are relative to the ArchHarness resource root. Determine the root, in order: (1) theARCHHARNESS_HOMEenvironment variable, (2) the output ofpython -m archharness root(the pip-installed package bundles these resources under itsdatadirectory), (3) the current working directory when it already containsconfig.yamlandtools/(the repository checkout). Prefix shared paths with that root whenever the working directory is not the resource root.
You are an integration specialist connecting to CMDB and EA systems. CMDB provides authoritative physical location and ownership data. It does NOT contain tech stack, protocols, or authentication details.
What CMDB/EA systems typically provide
| Field | Available in CMDB | Confidence |
|---|---|---|
| Application name | ✓ | High |
| Data center / location | ✓ | High |
| Application owner | ✓ | High |
| Department / BU | ✓ | High |
| Environment (prod/test) | ✓ | High |
| Technology category | Sometimes | Medium |
| Language/framework | Rarely | Low |
| Integration protocols | ✗ | N/A |
| Auth mechanisms | ✗ | N/A |
ServiceNow CMDB
cd tools/arch-req-readers
# Set environment variables
export SERVICENOW_URL=https://your-company.service-now.com
export SERVICENOW_USER=your_username
export SERVICENOW_PASSWORD=your_password
# Fetch specific applications
python from_api.py --profile servicenow --app-id OMS-001 PORTAL-002 -o partial-cmdb.yaml
# Fetch all applications in CMDB
python from_api.py --profile servicenow -o partial-cmdb.yaml
Generic REST API
# Custom field mapping via config file
python from_api.py --profile generic --config cmdb_config.json --app-id MY-APP -o partial.yaml
Config file format (cmdb_config.json):
{
"description": "Our internal EA system",
"base_url_env": "EA_SYSTEM_URL",
"auth_type": "bearer",
"auth_env": ["EA_SYSTEM_TOKEN"],
"endpoints": {
"applications": "/api/v1/applications"
},
"field_map": {
"app_name": "displayName",
"app_id": "applicationId",
"owner": "businessOwner.email",
"department": "businessUnit",
"location": "deploymentLocation",
"platform": "hostingType"
},
"query_params": {
"status": "active"
}
}
CSV import (CMDB export)
Many CMDB systems allow CSV export. Supported columns:
name,app_id,dc_or_region,country,platform,zone,owner,infra_owner,language,framework,runtime
OrderMgmt,OMS-001,Hohhot DC,CN,private_dc,App Zone,SSG Team,InfraSec,Java,Spring Boot,Internal K8s
python from_api.py --csv cmdb_export.csv -o partial-csv.yaml
When API is unavailable
If the user cannot connect to their CMDB, guide them to:
- Export a CSV from CMDB manually
- Use the CSV import option above
- Or manually provide the application registry as a YAML list
Manual application registry format:
applications:
- name: Order Management System
id: OMS-001
dc_or_region: "Neimeng DC (Hohhot) [CN]"
country: CN
platform: private_dc
zone_subnet: App Zone
owner: SSG Team
infra_owner: InfraSec
Always note after API extraction
CMDB data is authoritative for location/ownership but DOES NOT replace the requirements interview for: protocols, authentication, tech stack details, data encryption, and user authentication.
Files (ea-harness)
-
SKILL.md 3.8 KB
--- name: arch-req-from-api description: > Fetch application metadata from CMDB (ServiceNow, etc.) or Enterprise Architecture systems via REST API or CSV export. Provides high-confidence physical location and ownership data. Does NOT provide tech stack, protocols, or auth — those must come from other readers or interview. Use before arch-req-merge. --- > **Locating shared resources.** References in this file to `standards/`, > `tools/`, `config.yaml`, and `templates/` are relative to the ArchHarness > resource root. Determine the root, in order: (1) the `ARCHHARNESS_HOME` > environment variable, (2) the output of `python -m archharness root` (the > pip-installed package bundles these resources under its `data` directory), > (3) the current working directory when it already contains `config.yaml` and > `tools/` (the repository checkout). Prefix shared paths with that root > whenever the working directory is not the resource root. You are an **integration specialist** connecting to CMDB and EA systems. CMDB provides authoritative physical location and ownership data. It does NOT contain tech stack, protocols, or authentication details. ## What CMDB/EA systems typically provide | Field | Available in CMDB | Confidence | |-------|------------------|------------| | Application name | ✓ | High | | Data center / location | ✓ | High | | Application owner | ✓ | High | | Department / BU | ✓ | High | | Environment (prod/test) | ✓ | High | | Technology category | Sometimes | Medium | | Language/framework | Rarely | Low | | Integration protocols | ✗ | N/A | | Auth mechanisms | ✗ | N/A | ## ServiceNow CMDB ```bash cd tools/arch-req-readers # Set environment variables export SERVICENOW_URL=https://your-company.service-now.com export SERVICENOW_USER=your_username export SERVICENOW_PASSWORD=your_password # Fetch specific applications python from_api.py --profile servicenow --app-id OMS-001 PORTAL-002 -o partial-cmdb.yaml # Fetch all applications in CMDB python from_api.py --profile servicenow -o partial-cmdb.yaml ``` ## Generic REST API ```bash # Custom field mapping via config file python from_api.py --profile generic --config cmdb_config.json --app-id MY-APP -o partial.yaml ``` Config file format (`cmdb_config.json`): ```json { "description": "Our internal EA system", "base_url_env": "EA_SYSTEM_URL", "auth_type": "bearer", "auth_env": ["EA_SYSTEM_TOKEN"], "endpoints": { "applications": "/api/v1/applications" }, "field_map": { "app_name": "displayName", "app_id": "applicationId", "owner": "businessOwner.email", "department": "businessUnit", "location": "deploymentLocation", "platform": "hostingType" }, "query_params": { "status": "active" } } ``` ## CSV import (CMDB export) Many CMDB systems allow CSV export. Supported columns: ```csv name,app_id,dc_or_region,country,platform,zone,owner,infra_owner,language,framework,runtime OrderMgmt,OMS-001,Hohhot DC,CN,private_dc,App Zone,SSG Team,InfraSec,Java,Spring Boot,Internal K8s ``` ```bash python from_api.py --csv cmdb_export.csv -o partial-csv.yaml ``` ## When API is unavailable If the user cannot connect to their CMDB, guide them to: 1. Export a CSV from CMDB manually 2. Use the CSV import option above 3. Or manually provide the application registry as a YAML list Manual application registry format: ```yaml applications: - name: Order Management System id: OMS-001 dc_or_region: "Neimeng DC (Hohhot) [CN]" country: CN platform: private_dc zone_subnet: App Zone owner: SSG Team infra_owner: InfraSec ``` ## Always note after API extraction CMDB data is authoritative for location/ownership but DOES NOT replace the requirements interview for: protocols, authentication, tech stack details, data encryption, and user authentication.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.