UI settings & presets¶
Presets are a client-side feature of the running dashboard โ no server configuration, no env vars, no accounts. State lives in localStorage in the browser.
Looking for the read-only, repo/CI-sourced presets that show up in a PROVIDED section of the same popover? See Provided presets โ a separate feature published by a source outside the browser, never edited or deleted from the UI.
UI settings presets¶
Presets are a client-side feature โ no env vars, no backend, no accounts. State lives in localStorage in the browser. Nothing here needs to be configured on the server.
What a preset saves¶
A preset captures the full UI settings snapshot at the moment it is saved:
- free-text service filter input value
- active service, environment, and notification glob filter patterns
- view and display preferences (visible columns, layout options)
- notification filter settings (status, service, environment axes)
Working with presets¶
The preset list marks the last-applied preset with an "Active" badge. The indicator persists across reloads and follows renames; it is cleared when the active preset is deleted or all settings are reset.
| Action | How |
|---|---|
| Save | Open the preset panel; type a name; click Save. |
| Apply | Hover a preset row; click the Apply icon โ all captured settings take effect immediately. The row is marked Active. |
| Clone | Hover a preset row; click the Clone icon โ saves a copy with (copy) appended. |
| Update | Hover a preset row; click the Update icon โ overwrites the preset with the current settings after a confirmation. Name unchanged. |
| Rename | Hover a preset row; click the Rename icon โ edit the name inline; confirm. |
| Export | Hover a preset row; click the Export icon โ the file downloads instantly. |
| Delete | Hover a preset row; click the Delete icon โ a confirmation prompt prevents accidental removal. |
| Reset all settings | Click Reset all settings at the bottom of the panel โ a confirmation prompt resets every setting to its default and clears the active preset. |
File-based sharing¶
Presets can be shared without a server. Each preset exports as a single dd-preset-<slug>.json file.
Sharing flow:
- Hover a preset row; click Export โ the file downloads instantly.
- Share the file by email, Slack, or by committing it to a git repo alongside your pipeline config.
- The recipient opens the preset panel, clicks Import, and selects the file โ the preset appears in their list immediately.
Import is always an explicit user action. There is no central registry and no sync โ each browser holds its own presets independently.
Team starter kit
Commit a presets/ directory to your repo with a dd-preset-<name>.json for each standard view (e.g. dd-preset-prod-services.json, dd-preset-on-call.json). New team members import them on first launch and are up to speed in seconds.
Import from URL¶
The preset panel also accepts a public HTTPS URL. Paste a URL in the Import from URL field and click Import โ the SPA fetches the JSON client-side, validates it, and imports using the same name-dedup rules as file import ((2), (3), โฆ on collision).
Accepted JSON formats:
| Format | Shape |
|---|---|
| Single preset | {"version":1,"name":"<name>","settings":{โฆ}} |
| Tagged bundle | {"version":1,"presets":[{"name":"<name>","settings":{โฆ}},โฆ]} |
A bundle URL delivers an entire preset set in one share. Bare JSON arrays are rejected.
URL compatibility:
| Source | Works? | Notes |
|---|---|---|
Public GitHub raw (raw.githubusercontent.com) |
Yes | Public repos only. |
| Secret Gist raw URL | Yes | The raw URL is the secret; anyone with it can import. |
| Private repo raw URL | No | Requires auth the SPA cannot send โ the SPA holds no secrets. |
http:// (non-TLS) |
No | Browser mixed-content blocking; HTTPS required. |
Error handling: A clear inline error is shown for each failure case โ CORS block, 404, non-JSON response, or invalid preset shape. No partial state is written on error.