canonical: https://jentic.com/apis/puppet.com/puppet

# Puppet HTTP API

Puppet Server HTTP API for managing catalogs, nodes, facts, reports, file content, file metadata, environments, and file bucket operations. The API exposes 11 endpoints secured with mutualTLS authentication.

## For AI agents

Programmatically compile and retrieve a catalog for a node, retrieve a cached catalog for a node. Covers 11 operations with mutualTLS authentication.

## Scope

Does not handle payments, communications, or crm - use for e-commerce only.

## Capabilities

- Compile and retrieve a catalog for a node
- Retrieve a cached catalog for a node
- Store facts for a node
- Submit a report for a node
- Upload a file to the file bucket

## Use cases

### E-Commerce Operations

Use the Puppet HTTP API to perform e commerce operations programmatically. The API provides 11 endpoints covering core functionality including compile and retrieve a catalog for a node, retrieve a cached catalog for a node, retrieve node information.

Example prompt: Call POST `/puppet/v3/catalog/{nodename}` to compile and retrieve a catalog for a node

### Automated Puppet Management

Automate puppet operations by combining multiple Puppet HTTP API endpoints. Agents can retrieve a cached catalog for a node and then retrieve node information in a single workflow.

Example prompt: Call GET `/puppet/v3/catalog/{nodename}` to retrieve a cached catalog for a node, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call Puppet HTTP API endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle mutualTLS tokens manually.

Example prompt: Search Jentic for 'compile and retrieve a catalog for a node', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/puppet/v3/catalog/{nodename}` | Compile and retrieve a catalog for a node |
| GET | `/puppet/v3/catalog/{nodename}` | Retrieve a cached catalog for a node |
| GET | `/puppet/v3/node/{certname}` | Retrieve node information |
| PUT | `/puppet/v3/facts/{nodename}` | Store facts for a node |
| PUT | `/puppet/v3/report/{nodename}` | Submit a report for a node |
| GET | `/puppet/v3/file_bucket_file/{md5}` | Retrieve a file from the file bucket by MD5 hash |
| PUT | `/puppet/v3/file_bucket_file/{md5}` | Upload a file to the file bucket |
| GET | `/puppet/v3/file_content/{mount}/{path}` | Retrieve file content from the Puppet file server |

## Key resources

- **Puppet** — Operations for puppet

## Why Jentic

- **Setup:** Wiring the Puppet HTTP API by hand means provisioning mutual TLS client certificates, pointing at your own Puppet server host and port, and handling catalog and report calls yourself. Through Jentic you install once, import the Puppet HTTP API from the API Directory, store the client certificate once, and your agent calls it.
- **Permission scoping:** Puppet puts the node name in the URL path (`/puppet/v3/catalog/{nodename}`, `/puppet/v3/node/{certname}`), so a rule can pin your agent to one node: it can compile a catalog or read facts for that node and nothing else. You choose the operations it may call, so writes like submitting facts or reports are not included unless you add them.
- **Credential handling:** Your Puppet client certificate is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'compile a catalog for a node' or 'read a node's facts', and Jentic returns the matching Puppet operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Shopify** — Alternative e commerce API
- **Stripe** — Alternative e commerce API

## FAQ

### What authentication does the Puppet HTTP API use?

The Puppet HTTP API uses mutualTLS authentication. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I compile and retrieve a catalog for a node with the Puppet HTTP API?

Yes. Use the POST `/puppet/v3/catalog/{nodename}` endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the Puppet HTTP API?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I compile and retrieve a catalog for a node through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'compile and retrieve a catalog for a node'. Jentic returns the matching Puppet HTTP API operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the Puppet HTTP API have?

The Puppet HTTP API exposes 11 endpoints covering puppet operations.

### Can I limit what my agent is allowed to do with the Puppet HTTP API?

Yes. Because Jentic One is self-hosted, your own rules decide which Puppet operations and credentials the agent may use. Since Puppet puts the node name in the URL path, such as `/puppet/v3/catalog/{nodename}` and `/puppet/v3/node/{certname}`, you can pin the agent to a single node so it only compiles a catalog or reads facts for that node and nothing else. You choose the operations it may call, so write actions like submitting facts to `/puppet/v3/facts/{nodename}` or reports to `/puppet/v3/report/{nodename}` are excluded unless you add them.
