Skip to content

feat(flightcheck): validate ServiceNow portal base URL env vars (US 7535608)#174

Open
srideshpande wants to merge 2 commits into
mainfrom
srdeshpande/servicenow-base-url-flightcheck
Open

feat(flightcheck): validate ServiceNow portal base URL env vars (US 7535608)#174
srideshpande wants to merge 2 commits into
mainfrom
srdeshpande/servicenow-base-url-flightcheck

Conversation

@srideshpande

Copy link
Copy Markdown
Contributor

What & why

Adds ESS FlightCheck coverage for the update-safe ServiceNow portal base URL environment variables introduced for US 7535608 (Option B). An empty base URL is the root cause of ICM 820635151 — ServiceNow record hyperlinks only returned when explicitly requested.

Changes

  • New checks SN-URL-001 (HRSD) / SN-URL-002 (ITSM) in servicenow.py, wired into run_servicenow_checks. Each verifies its env var (msdyn_ServiceNow{HRSD,ITSM}PortalBaseURI) is present and a well-formed absolute URL:
    • PASSED – valid absolute URL
    • FAILED – definition exists but no value (the maker step was missed — the ICM bug)
    • WARNING – value set but not an absolute URL
    • NotConfigured – pack not installed
    • SKIPPED – no Dataverse token
  • New test test_servicenow_base_url.py — 6 cases (both-set, missing-value, per-pack independence, malformed URL, definition-absent, no-token), mirroring the Workday env-var test and using the documented-tier Dataverse mock.

Validation

pytest tests/flightcheck/checks/test_servicenow_base_url.py → 6 passed. Full ServiceNow + role-enforcement suite (37 tests) green.

Related

Pairs with the ESSVivaCopilot solution PR that creates these env vars + wires the orchestrator flows (US 7535608 Tasks 2–3).

…535608)

Adds SN-URL-001 (HRSD) and SN-URL-002 (ITSM) checks that verify each
ServiceNow extension pack's update-safe portal base URL environment variable
(msdyn_ServiceNow{HRSD,ITSM}PortalBaseURI) is present and a well-formed
absolute URL. An empty value is the root cause of ICM 820635151 (hyperlinks
only returned when explicitly requested).

Status mapping: PASSED (valid URL), FAILED (definition exists but no value -
the maker step was missed), WARNING (value set but not an absolute URL),
NotConfigured (pack not installed), SKIPPED (no Dataverse token). Wired into
run_servicenow_checks.

Test (test_servicenow_base_url.py) mirrors the Workday env-var pattern using
the documented-tier Dataverse mock: 6 cases covering both-set, missing-value,
per-pack independence, malformed URL, definition-absent, and no-token.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@nehaoss

nehaoss commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

👋 Friendly reminder: This PR has been inactive for a while. Could the author or reviewers take a look and either push it forward, request changes, or close it if it's no longer needed? Let's keep our PR queue healthy! 🚀

…hipped solution

The ESSVivaCopilot solution ships the portal base URL environment variables
without a publisher prefix (ServiceNow{HRSD,ITSM}PortalBaseURI), for consistency
with existing env var naming. Update the FlightCheck expected-schema constants,
test fixtures, and docs to match. The runtime lookup was already publisher-agnostic
(contains-filter + prefix-stripped substring match), so behavior is unchanged; this
keeps the declared schema names accurate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants