Managing Endpoints
The Wrapd dashboard provides a GUI endpoint editor for creating and managing endpoints without editing wrapd.yaml by hand. Endpoints created in the dashboard are stored in the hub and pulled by the agent on connect.
Creating an endpoint
Section titled “Creating an endpoint”Navigate to Dashboard > Endpoints and click New Endpoint. Fill in the following fields:
| Field | Required | Description |
|---|---|---|
| Slug | Yes | URL path segment (e.g. deploy). Must be unique across your account. |
| Command | Yes | The CLI command to execute (e.g. /ops/deploy.sh). |
| Method | Yes | HTTP method: GET, POST, PUT, DELETE, or PATCH. |
| Description | No | Human-readable label shown in the dashboard and API docs. |
| Trigger | No | http (default) or webhook. See Webhook Triggers. |
| Timeout | No | Max execution time in seconds. Defaults to 60. |
| Working directory | No | Absolute path the command runs in. |
| Public | No | If enabled, the endpoint is callable without an API key. |
| Schedule | No | Cron expression for automatic execution. See Scheduled Endpoints. |
You can also add arguments with names, defaults, and required flags, and configure a response transformer (plain text, JSON, or lines).
Click Create to save. The endpoint is stored in the hub immediately, and the agent picks it up on its next connection or config refresh.
Editing and deleting endpoints
Section titled “Editing and deleting endpoints”Click any endpoint row to open the detail sidebar. From there you can:
- Edit any field and click Save
- Delete the endpoint with the Delete button (requires confirmation)
Changes are applied to the hub immediately. The agent receives the updated config on its next heartbeat cycle.
Importing from wrapd.yaml
Section titled “Importing from wrapd.yaml”If you already have a wrapd.yaml file, you can import its endpoints into the hub. On the Endpoints page, click Import from YAML and paste or upload your config file. The importer creates hub-managed copies of each endpoint. Existing endpoints with the same slug are updated.
After importing, you can continue editing endpoints from the dashboard. The imported endpoints are independent of the original YAML file.
Config-pull model
Section titled “Config-pull model”The hub is the source of truth for endpoint configuration. The flow works like this:
- You create or edit endpoints in the dashboard (or via API)
- The hub stores the endpoint definitions
- When the agent connects (or on a periodic refresh), it pulls the latest config from the hub
- The agent registers the endpoints and begins serving them
This means you can update endpoint configuration without restarting the agent or SSHing into the machine.
Hub-managed mode
Section titled “Hub-managed mode”You can run the agent entirely without a wrapd.yaml file. In this mode, all endpoint configuration comes from the hub.
# Explicitly opt inwrapd agent --token YOUR_TOKEN --hub-managed
# Or just omit wrapd.yaml — the agent detects this and uses hub configwrapd agent --token YOUR_TOKENWhen running in hub-managed mode:
- The agent pulls all endpoint definitions from the hub on connect
- There is no local config file to maintain
- All endpoint management happens through the dashboard
This is the recommended approach for production deployments where you want centralized control.
Local config + hub config merge
Section titled “Local config + hub config merge”If you have both a local wrapd.yaml file and hub-managed endpoints, the agent merges them. The merge rules are:
- Local takes precedence by slug. If an endpoint slug exists in both
wrapd.yamland the hub, the local definition wins. - Hub-only endpoints (slugs not in
wrapd.yaml) are added alongside the local ones. - Local-only endpoints (slugs not in the hub) are registered normally and synced to the hub for visibility.
This lets you keep critical endpoints version-controlled in wrapd.yaml while still using the dashboard for ad-hoc or experimental endpoints.
Endpoint detail sidebar
Section titled “Endpoint detail sidebar”Clicking an endpoint row opens the detail sidebar, which shows:
- Snippets — ready-to-copy cURL, JavaScript, and Python examples for calling the endpoint. Public endpoints omit the
X-API-Keyheader. - Status — whether the agent serving this endpoint is currently connected (live) or offline.
- Schedule — if a cron schedule is set, shows the expression, next fire time, and a pause/resume toggle.
- Recent executions — the last several runs with status, duration, and exit code.