# Examples

This section provides a library of ready-to-use JSON templates covering the most common job and plugin integration scenarios for Keeper Endpoint Privilege Manager. Each sub-page focuses on a single scenario, includes a complete, deployable JSON file, and explains what the example demonstrates and when to use it.

All examples are self-describing — each file's `description` field begins with `SCENARIO:` so you can identify the purpose of the template at a glance without reading the entire file. Replace placeholder paths, IDs, and topic names before deploying to your environment.

## Job Examples

Job files are placed under `Jobs/{id}.json` on the agent. The examples below cover the most common trigger and scheduling patterns across all supported platforms.

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="218">Example</th><th>What It Covers</th></tr></thead><tbody><tr><td><a href="/pages/2QC9qfSDVlhYNOGuRu9L">Minimal Job — Windows</a></td><td>The simplest valid job on Windows: interval schedule, Service task execution, and KeeperLogger output. Use this as your starting template on Windows.</td></tr><tr><td><a href="/pages/lk3xt0U27RL2XqaRiYpj">Minimal Job — macOS</a></td><td>The same minimal job pattern adapted for macOS, including the correct binary paths and <code>osFilter</code> configuration.</td></tr><tr><td><a href="/pages/4nAJA3FWsSLjoZ9teSsN">Minimal Job — Linux</a></td><td>The same minimal job pattern adapted for Linux, including the correct binary paths and <code>osFilter</code> configuration.</td></tr><tr><td><a href="/pages/28NT0aVDSpV2vMCniyXd">Job with Schedule &#x26; Startup</a></td><td>A job that runs once immediately when the agent starts and then continues on a recurring interval. This is the recommended pattern for scanner-style integrations.</td></tr><tr><td><a href="/pages/NmlcfFNRECGVbhrZ2fBR">Job with Event Topic</a></td><td>A job that publishes progress updates over MQTT using a custom <code>eventTopic</code>. Demonstrates how to keep <code>eventTopic</code> and <code>mqttTopics.allowedPublications</code> in sync.</td></tr></tbody></table>

## Plugin Examples

Plugin files are placed under `Plugins/{id}.json` on the agent. The examples below cover the most common plugin registration and communication patterns.

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="289.3333740234375">Example</th><th>What It Covers</th></tr></thead><tbody><tr><td><a href="/pages/oaM326uSx5LhetmE8q4u">Minimal Plugin — Windows</a></td><td>The simplest valid managed plugin on Windows: <code>autoStart</code>, a primary MQTT <code>Subscription</code>, and KeeperLogger output. Use this as your starting template on Windows.</td></tr><tr><td><a href="/pages/c3u5QnMWwX4mGWxsDPek">Minimal Plugin — macOS</a></td><td>The same minimal plugin pattern adapted for macOS, including the correct binary path and platform configuration.</td></tr><tr><td><a href="/pages/BDm9hdTs1XU1R1uZrESr">Minimal Plugin — Linux</a></td><td>The same minimal plugin pattern adapted for Linux, including the correct binary path and platform configuration.</td></tr><tr><td><a href="/pages/sUaNXqWY7Ghl351MeNlv">Plugin with Command/Response over MQTT</a></td><td>A plugin using a command/response topic pattern (<code>Commands/+</code>, <code>Responses/+</code>, <code>Status</code>). Use this when your plugin needs to receive instructions and reply over MQTT.</td></tr><tr><td><a href="/pages/AaWwVT7qgu3gj5jwV0Ox">Plugin with Manual Start</a></td><td>A plugin registered with <code>autoStart: false</code>, meaning it is not launched automatically when the agent starts. Use this for on-demand or conditionally launched plugins.</td></tr></tbody></table>

## Before You Begin

* Refer to the [Custom Job Integration Guide](/keeperpam/endpoint-privilege-manager/integrations/custom-job-guide.md) and [Custom Plugin Integration Guide](/keeperpam/endpoint-privilege-manager/integrations/custom-plugin-guide.md) before deploying any example to ensure you understand the binary layout, signing requirements, and MQTT topic permission model.
* For a richer Windows job sample with more fields filled in, see the `secrets-scanner-sample-job.json` reference in the parent integration bundle.
* Use `POST /api/Jobs/validate` to validate your job JSON before deploying it to an endpoint.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/endpoint-privilege-manager/integrations/examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
