EPM VRO · Deploy

EPM VRO System — Paths, Fluent App, Deploy Online

Catalog of every related doc + the Fluent SDK package that models VRO (vuln → VI → campaign → deferral → close) and deploys to your instance with now-sdk build / install.

Fluent rootservicenow-ai-workspace/epm-vro-sdk
Scopex_786686_epm_vro
Instancehttps://dev398980.service-now.com
Auth aliasDEVELOPMENT
After deploy — open on instance Application Vulnerable Items Vulnerabilities Deferrals EPM Flows Flow Designer

Why scoped tables (not sn_vul_*)

This PDI has no sn_vul_vulnerable_item (VR plugin not installed). Fluent cannot own OOB VR dictionary. EPM VRO deploys a complete scoped stand-in with the same lifecycle so SDK install works end-to-end. When VR is licensed later, wrap sn_vul_* with extra flows — do not redefine the plugin.

1 · All related documentation (paths + brief)

PathWhat it is
html/EPM_VRO_SDK_DEPLOY_FROM_SCRATCH.htmlThis page — catalog + deploy cycle
html/PRACTICAL_SECOPS_VRO_FROM_SCRATCH.htmlPractical SecOps/VRO lab (SIR+VR+TI+CTD, scanner→close)
html/modules/SECOPS.htmlDeep SecOps module / CIS drills
modules/SECOPS.mdMarkdown source for SecOps module
html/PRACTICAL_FLOW_DESIGNER_FROM_SCRATCH.htmlFlow Designer labs incl. VR-style triage
html/PRACTICAL_AI_SERVICENOW_FROM_SCRATCH.htmlAI agents path (read-only tools on SecOps/HR)
html/SDK_WINDOWS_FULL_CYCLE_CAN_CANNOT.htmlWindows SDK install→auth→commands→CAN/CANNOT→VR objects
html/SDK_CURSOR_FULL_DOCUMENTATION.htmlAll 12 CLI commands + flags (4.12.2)
html/16_SDK_FULL_DEV_ADMIN_FROM_SCRATCH.htmlSDK master study path
html/11_SDK_CURSOR_CLAUDE.htmlStudio / Cursor companion
MadarTechAcademy/content/lessons/mod-secops.htmlAcademy SecOps lesson

2 · Fluent created for EPM VRO (paths)

Fluent fileObjects
servicenow-ai-workspace/epm-vro-sdk/SDK project root (scope x_786686_epm_vro)
…/src/fluent/tables.now.ts5 tables: vuln, vi, campaign, defer, audit
…/src/fluent/roles.now.tsanalyst · manager · admin
…/src/fluent/acls.now.tsCRUD ACLs per table
…/src/fluent/script-includes.now.tsEpmVroUtils numbering + audit
…/src/fluent/business-rules.now.tsVI/defer number + audit BRs
…/src/fluent/properties.now.tsauto_assign_high · default_risk_approver
…/src/fluent/menu.now.tsApp menu + 5 modules
…/src/fluent/flows/vi-high-priority-triage.now.tsFlow: high/critical VI triage
…/src/fluent/flows/deferral-approval.now.tsFlow: risk deferral Ask for Approval
…/src/fluent/flows/vi-remediation-verify.now.tsFlow: awaiting_verify stamp
…/src/fluent/flows/campaign-activate.now.tsFlow: campaign active → bulk VI remediate
servicenow-ai-workspace/hr-leave-sdk/Separate Fluent app (HR Leave) — reference for Flow() style

3 · Description cycle (objects)

1vuln
→
2VI
→
3triage flow
→
4campaign
→
5verify
→
6close
|
altdeferral

4 · Deploy process (Windows PowerShell) — from scratch to end

0Prereq: Node 20+, SDK auth alias DEVELOPMENT
1cd C:\SVCProject\HR_Leave_App\servicenow-ai-workspace\epm-vro-sdk
2npm ci (or npm install)
3npx @servicenow/sdk auth --list → DEVELOPMENT points at instance
4npx @servicenow/sdk build
5npx @servicenow/sdk install --auth DEVELOPMENT
6Proof: query app + open VI list URLs above
cd C:\SVCProject\HR_Leave_App\servicenow-ai-workspace\epm-vro-sdk
npx @servicenow/sdk auth --list
npx @servicenow/sdk build
if ($LASTEXITCODE -ne 0) { throw "build failed" }
npx @servicenow/sdk install --auth DEVELOPMENT --async false
npx @servicenow/sdk query sys_app -q "scope=x_786686_epm_vro" -f name,scope,version --auth DEVELOPMENT
npx @servicenow/sdk query sys_hub_flow -q "nameLIKEEPM" -f name,active --auth DEVELOPMENT

Deployed on https://dev398980.service-now.com: app EPM VRO · scope x_786686_epm_vro · 5 tables · 4/4 flows activated (High Priority Triage, Deferral Approval, Awaiting Verify, Campaign Activate). App form: sys_app.

✓ Pin @servicenow/sdk@4.12.2 per project ✓ Use TemplateValue({...}) on updateRecord values ✓ Commit keys.ts after first successful build ✗ Recreate sn_vul_* dictionary in Fluent ✗ install -r on shared prod without change ticket