id: microsoft_purview name: Microsoft Purview version: 1.0.0 description: "Microsoft Purview DLP alerts (via Microsoft Graph Security API) — data-loss-prevention triage: list and read DLP security alerts, update alert status/assignment, and list/read security incidents. Azure AD OAuth2 client-credentials authentication; stdlib-only, no extra Python dependencies." changelog: "1.0.0 — Initial release: list/get DLP alerts, update alert, list/get incidents." category: dlp # Per-instance configuration. Application (client-credentials) OAuth2. Needs Graph # application permissions SecurityAlert.ReadWrite.All and SecurityIncident.Read.All. config_schema: properties: tenant_id: type: string description: "Azure AD tenant ID" client_id: type: string description: "App registration (client) ID" client_secret: type: string description: "App registration client secret" x-soar-sensitive: true required: - tenant_id - client_id - client_secret commands: - id: list_dlp_alerts name: purview-list-dlp-alerts description: "List Data Loss Prevention alerts." risk: read inputs_schema: properties: status: { type: string, description: "Filter by status (new, inProgress, resolved)" } limit: { type: number, description: "Max alerts (default 25)" } required: [] outputs_schema: { properties: {} } - id: get_alert name: purview-get-alert description: "Get a single security alert by ID." risk: read inputs_schema: properties: alert_id: { type: string, description: "Alert ID" } required: [alert_id] outputs_schema: { properties: {} } - id: update_alert name: purview-update-alert description: "Update an alert's status and/or assignee." inputs_schema: properties: alert_id: { type: string, description: "Alert ID" } status: { type: string, description: "new, inProgress, or resolved" } assigned_to: { type: string, description: "Assignee (UPN)" } determination: { type: string, description: "Optional determination (e.g. truePositive, falsePositive)" } required: [alert_id] outputs_schema: { properties: {} } - id: list_incidents name: purview-list-incidents description: "List security incidents." risk: read inputs_schema: properties: status: { type: string, description: "Filter by status (active, resolved, redirected)" } limit: { type: number, description: "Max incidents (default 25)" } required: [] outputs_schema: { properties: {} } - id: get_incident name: purview-get-incident description: "Get a single security incident by ID." risk: read inputs_schema: properties: incident_id: { type: string, description: "Incident ID" } required: [incident_id] outputs_schema: { properties: {} } - id: test_connection name: purview-test-connection description: "Verify connectivity and the app credentials (used by the Test button)." risk: read inputs_schema: properties: {} required: [] outputs_schema: { properties: {} }