Skip to content

Configuration

The plugin is configured from a single screen in wp-admin. After activation, go to Settings → Quiet Guard (a user with the manage_options capability is required).

All values are stored together in one WordPress option named laravel_monitor_options, under the settings group laravel_monitor. The form is a standard WordPress Settings API page titled Quiet Guard, with a single Connection section.

Fields

The settings screen exposes these fields:

Field labelOption keyExampleNotes
Enabled (1/0)enabled1Master switch. Any non-empty value is stored as 1; empty is stored as 0. Capture only starts when this is on and the key is set; an empty URL means the hosted service.
Server URLurlhttps://monitor.example.comBase URL of your Quiet Guard server. Sanitised with esc_url_raw. The plugin appends /api/v1/ingest itself, and a value that already ends in /api or /api/v1 is accepted: the suffix is stripped rather than doubled, so pasting the API address works as well as pasting the server address. Empty means the hosted service at https://quietguard.dev, so a site on it only has to paste its key.
Project keykeylm_xxxxxxxxThe per-project API key from your Quiet Guard dashboard. Sent as an HTTP Authorization: Bearer token. Sanitised with sanitize_text_field.
Environments (comma-separated, empty = all)environmentsproduction,stagingOptional list of environment names. See the note below about its current behaviour.
Release (optional)release2024.05.1 or a git SHAIdentifier for the deployed version. Attached to every reported event so the server can attribute issues to a deploy.

All five fields render as plain text inputs. Click Save Changes to persist them.

Minimum setup

To start reporting you only need two things:

  1. Enabled set to 1.
  2. Project key, created when you add the project in the Quiet Guard dashboard. See the server documentation for how projects and keys are created.

Server URL is only filled in for a self-hosted instance, with the base URL of your server (a trailing /api or /api/v1 is stripped for you): empty, it means the hosted service.

If the plugin is enabled but the key is empty, nothing is sent and nothing errors, the plugin simply stays silent. An empty URL does not stop it: reports go to the hosted service.

How the key is sent

Reports are sent as an HTTPS POST to {Server URL}/api/v1/ingest, with the project key in the Authorization: Bearer … header and a JSON body. The request is bounded by a short timeout so a slow or unreachable server never blocks the page.

Release

Setting a Release lets the server group issues by deploy. A hexadecimal git SHA is ideal, because the server can map an issue's release to the matching commit it has synced for the project. Update this value each time you deploy.

A note on Environments

The Environments field is stored and forwarded to the underlying core configuration, where it is intended as an allowlist of environments to report from (empty means "report from everywhere").

In the current version the WordPress adapter does not compute a "current environment" to compare against, so this list has no filtering effect yet, every captured error is reported regardless of what you enter here. The field is wired through for forward compatibility; environment-aware filtering for WordPress is planned. To stop reporting from a given site today, turn Enabled off.

Advanced options (not in the UI)

Three further keys are read from the same laravel_monitor_options option but are not exposed on the settings screen, so they use their defaults unless set programmatically (for example via update_option):

Option keyDefaultPurpose
timeout3HTTP timeout, in seconds, for each report.
trace_limit0Stack-trace frames sent per exception. 0 (the default) sends the full stack trace; a positive value trims the trace to that many frames. The throw site, at the head of the stack since version 0.3, counts as one frame.
code_snippetstrueSends, with each frame of your own code, the five source lines on each side of its own. Never for a dependency; a line that names a scrub key and gives it a value is masked whole. false sends file and line only.

Programmatic values are safe to set: the settings sanitizer preserves timeout, trace_limit and code_snippets when the settings screen is saved, so a value written via update_option() survives later saves from wp-admin.

Next step

Continue to Usage to see what the plugin captures and how to confirm it is working.

You are reading the WordPress Plugin v1.0 documentation.