P0 App Documentation
Sign up for FreeKnowledge Base
  • What Is P0?
    • πŸŽ›οΈIAM Dashboard
    • πŸ”ŽAccess Inventory
    • πŸͺ‘IAM Posture
    • ⏱️Just-In-Time Access
    • ♻️Service-Account Key Rotation
  • Getting Started
    • ⬇️Quick Start
    • 🎁Share P0 With Your Team
  • INVENTORY
    • πŸ—ΊοΈAccess Inventory
    • πŸ”¬Result Details
    • ❔Query Search
      • πŸ“–Search Reference
  • Posture
    • βš–οΈPosture Overview
  • Monitor Results
  • πŸ€”Finding Details
  • ORCHESTRATION
    • ⏰Just-in-time access
      • πŸ–οΈRequesting Access
        • πŸ‘‰For Another Party
      • 🏁Approving Access
        • Pre-approving Access
      • πŸ”€Request Routing
        • Google Cloud Filtering
        • AWS Filtering
      • πŸ—’οΈSession Recording
        • πŸ“¦AWS
      • πŸ”ŒJust-in-time API
        • Command API
        • Access Requests API
        • Routing Rules API
  • Environments
    • ☁️Creating an Environment
    • πŸ““Environment Terminology
    • βš™οΈSettings
  • Integrations
    • πŸ“žNotifier integrations
      • πŸ’¬Slack
      • πŸ‘¬Microsoft Teams
      • πŸ“£Custom Notifiers
        • AWS Lambda Notifier
    • πŸ”‘Resource integrations
      • ☁️Google Cloud
        • Security Perimeter
        • Requesting Access
        • Permissions Reference
          • Cloud Storage
          • Compute Engine
        • Function Caller
      • πŸ“¦AWS
        • Requesting Access
        • AWS Integration API
        • Function Caller
      • ☸️Kubernetes
        • Requesting Access
        • Advanced Requests
      • πŸ”‹PostgreSQL
        • Requesting Access
      • ❄️Snowflake
      • πŸ–₯️SSH
      • GitHub
        • Requesting Access
      • πŸ› οΈCustom Resource
        • Installing a Custom Resource Integration
    • πŸ‘₯Directory integrations
      • Microsoft Entra ID
        • Requesting Access
      • Google Workspace
      • Okta
    • βœ”οΈApproval integrations
      • πŸ””PagerDuty
    • ⚑SIEM Integrations
      • Splunk HEC Setup
  • πŸ“Tracker integrations
    • 🎟️Jira
  • P0 Management
    • 🎩Role-Based Access Control
    • πŸ”ŒManagement API
      • Role Management API
      • Just-in-time settings API
Powered by GitBook
On this page
  1. Integrations
  2. Notifier integrations

Custom Notifiers

Integrate P0 with any internal notification system you own, or with systems that do not have a built-in notification service yet.

PreviousMicrosoft TeamsNextAWS Lambda Notifier

Last updated 2 days ago

Implement your own API endpoints that P0 can send notifications to.

Set up Custom Notifier Integration

Configuration Parameters

These parameters are configured by you during setup.

The examples use a custom notifier that sends notifications to an internal application for custom processing. Each custom notifier integration supports different trigger types. To reduce notification noise, you can choose only the specific triggers you want to be notified about.

Parameter
Description
Example Value

Notifier ID

The identifier of the system you are integrating*

my-notifier-service

Notifier Name

The name of the custom notifier integration

Internal Customer Admin App

Webhook URL

Your https URL that P0 uses to call your endpoints.

https://p0-api.example.com/notifications

* Identifiers in P0 do not allow whitespace and by convention use CamelCasing. Not visible to users.

OpenAPI Specification

This specification describes the API endpoint you must implement to create a custom notifier integration in P0.

πŸ“ž
πŸ“£
16KB
custom-notifier.yml
  • Set up Custom Notifier Integration
  • Configuration Parameters
  • OpenAPI Specification
  • POSTReceive notifications about requests and preapprovals

Receive notifications about requests and preapprovals

post

This endpoint receives access-related notifications from P0, including user access requests and preapproval notifications. Implement this endpoint to handle custom notifiers that are not natively supported by P0. Once implemented, register the endpoint using a custom notifier in the P0 console to start receiving events.

Authorizations
Body
one ofOptional
Responses
200
Success
default
Error
application/json
post
POST / HTTP/1.1
Host: 
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 568

{
  "id": "my-notifier-service",
  "name": "My Notifier Service",
  "eventType": "preapproval-created",
  "data": {
    "id": "07ZmVeUxSc4LyhrGhlzK",
    "type": "ssh",
    "access": "session",
    "permission": {
      "name": "demo-node-1",
      "description": "sudo SSH access to demo-node-1 in AWS account Dev Stack"
    },
    "startsAt": 782735400000,
    "endsAt": 782735400000,
    "createdAt": 782735400000,
    "principal": "john.smith@p0.dev",
    "approver": {
      "id": "john.smith@p0.dev",
      "name": "John Smith",
      "email": "john.smith@p0.dev",
      "approvalTimestamp": 782735400000,
      "approvalSource": "webapp"
    },
    "reason": "Need to give a big customer a fancy demo"
  }
}

No content