Sheet MER-17 — Audit & Compliance Manual
Remediation Bridge
Findings-to-action workflow, ownership handoff, and the model Meridian uses to keep remediation tied to real systems and teams.
Scope
Findings do not matter unless they reliably turn into accountable work. This page keeps the public-safe remediation model and removes the private integration plumbing that supports it internally.
What It Does
The remediation bridge connects Meridian compliance gaps to Jira, ServiceNow, or GitHub. When Meridian detects a control failure, you can open a ticket directly from the alert, finding, or MAP action item. The bridge tracks the ticket’s upstream status and syncs it back into Meridian so the compliance dashboard reflects real operational progress.
Prerequisites
- A supported remediation connector:
- Jira credentials with project write permissions, or
- ServiceNow credentials with incident create/read permissions, or
- GitHub credentials with issue create/read permissions for the target repository.
- The connector type must have the
remediation_ticketlaunch capability and the connector row must beactive. Meridian.adminpermission to configure the connector.Meridian.managepermission to create remediation tickets.
If the account is in license grace or hard-expired read-only mode, Meridian blocks manual ticket creation and pauses automatic ticket creation / status sync until billing is writable again. No local ticket rows or upstream ticketing calls are made during that window.
Setting Up the Jira Connector
- Navigate to Connectors in the sidebar.
- Click New Connector and select Jira.
- Fill in:
- Name — descriptive name (e.g., “Jira Cloud — Security Project”).
- Atlassian Account Email — the email of the account the API token belongs to.
- Atlassian API Token — the token you created. Stored encrypted.
- Project Key — the Jira project key where tickets land (e.g.,
SEC). - Issue Type ID — the Jira issue type ID (e.g.,10001for Task). Use the numeric ID, not the name — IDs are stable across Jira customizations. - Click Create Connector.
- Click Test Connection. The test verifies both authentication and project access.
Meridian resolves the Jira host once, pins the outbound request to the resolved IP address, and sends the original host in the request headers so DNS rebinding cannot redirect ticket creation after validation.
Finding the Issue Type ID
In Jira, navigate to Project Settings > Issue Types. The issue type ID is in the URL when you click on a type, or use the Jira REST API:
Optional: Field Mapping
If you want Meridian fields to map to Jira custom fields, add a field_mapping in the connector config:
Optional: Priority Mapping
Override the default severity-to-priority mapping:
Without this, the default mapping applies: critical -> Highest, high -> High, medium -> Medium, low -> Low, info -> Lowest.
Setting Up the ServiceNow Connector
- Navigate to Connectors in the sidebar.
- Click New Connector and select ServiceNow.
- Fill in the instance URL and API credentials Meridian should use.
- Click Create Connector.
- Click Test Connection to verify Meridian can authenticate and reach the instance.
ServiceNow is launch-supported for remediation ticket creation only. ServiceNow evidence collection, Sync Now, available evidence tests, and scheduled evidence runs remain blocked until the evidence capability is separately promoted.
Setting Up the GitHub Connector
For remediation tickets, configure a repository where Meridian may create issues. GitHub is launch-supported for both repository evidence and remediation-ticket creation when the connector row is active.
Creating Remediation Tickets
From an Alert
When a control failure fires an alert:
- Navigate to the alert detail page.
- Click Create Ticket (requires
Meridian.managepermission). - The bridge creates a ticket in the selected connector with:
- Summary:
[Meridian Alert] {message} — {severity}- Description: alert type, severity, status, dedup key, timestamps, and details. - Priority: mapped from the alert severity. - Labels:meridian,alert, and the alert type. - The remediation ticket appears in the program’s remediation ticket list.
From a Finding
After a finding is created (manually or by an automated rule):
- Navigate to the finding detail page (the relevant workflow).
- Click Create Ticket in the finding actions panel (requires
Meridian.managepermission). - The bridge creates a ticket with:
- Summary:
[Meridian Finding] {title} — {classification} ({materiality})- Description: finding ref, classification, materiality, status, and description. - The finding detail page updates to show the ticket key and a link to the external system.
From a MAP Action Item
When a MAP action item needs external tracking:
- Navigate to the MAP action item.
- Click Create Ticket.
- The bridge creates a ticket with:
- Summary:
[Meridian MAP Item] {description} — {status}- Description: item ID, status, target date, and description.
Duplicate Prevention
Each source artifact (alert, finding, or MAP item) can have at most one remediation ticket per connector. Attempting to create a second ticket message identifying the existing ticket.
Viewing Remediation Tickets
Navigate to a compliance program and find the Remediation Tickets section. Each ticket shows:
- External Key — the Jira issue key, ServiceNow incident identifier, or GitHub issue number, linked to the external ticket.
- External Status — the raw upstream status from the most recent sync.
- Internal Status — Meridian’s state machine: open, in_progress, resolved, closed, or failed.
- Last Synced — when Meridian last polled the upstream connector for status.
- Source — the alert, finding, or MAP item the ticket was created from.
Rows with External Status creating or creation_failed are ticket-creation
reservations. Meridian keeps them to prevent a second Jira, ServiceNow, or GitHub
ticket from being opened while the outcome of the original create attempt is
still ambiguous.
Status Sync
Meridian periodically polls Jira, ServiceNow, or GitHub for ticket status updates.
When the upstream system reports a ticket as done, resolved, or closed,
Meridian transitions the internal status to resolved.
If the account is read-only because licensing is in grace or hard-expired state, the sync sweep pauses for that tenant. The ticket stays visible with its last known upstream status; polling resumes after licensing is restored.
How Status Mapping Works
Common Jira statuses are mapped automatically:
| Jira Status | Meridian Status |
|---|---|
| Done, Closed, Resolved, Complete, Fixed, Won’t Do, Cancelled | resolved |
| In Progress, In Review, In Development, Working | in_progress |
| (anything else) | No change — raw status recorded |
If your Jira workflow uses custom status names that are not in this list, the sync will record the raw status but will not transition the internal state. Custom status mapping is a planned enhancement.
ServiceNow uses its instance state codes and common display values. Out
of the box, Meridian maps resolved/closed states to resolved and the
standard in-progress state to in_progress.
Auto-Advance MAP Items
When a remediation ticket for a MAP action item resolves in Jira,
ServiceNow, or GitHub, Meridian automatically marks the MAP item as completed,
then immediately checks whether the parent MAP can advance to
implemented.
Ticket Lifecycle
A remediation ticket moves through these states:
- open: Ticket created in the upstream system. Waiting for progress.
- in_progress: Jira, ServiceNow, or GitHub reports the ticket is being worked.
- resolved: The upstream ticket is done. Meridian can close the bridge row.
- closed: Final state. The compliance gap has been addressed.
- failed: Something went wrong (connector API error, connector offline). Can retry.
Supported Connectors
Meridian currently supports three remediation-ticket connectors:
- Jira for issue-based workflows.
- ServiceNow for incident-based workflows.
- GitHub for issue-based workflows in a configured repository.
All three connector types appear in the Create Ticket picker on alerts,
findings, and MAP items when they have the remediation_ticket launch capability
and the connector row is active.