mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-05-21 11:55:10 +00:00
51f823bf7e
## Summary - Adds `POST /api/admin/prune-geo-filter` endpoint — dry-run by default, `?confirm=true` to permanently delete nodes outside the current geofilter polygon + buffer. Requires `X-API-Key` header. - Adds **Prune nodes** section inside the GeoFilter customizer tab (write-access only, same `writeEnabled` gate as PUT). **Preview** lists affected nodes; **Confirm delete** removes them. - Adds `GetNodesForGeoPrune` and `DeleteNodesByPubkeys` DB helpers. - Updates `docs/user-guide/geofilter.md` — documents the UI button as primary workflow, CLI script as alternative. > **Depends on M3** (`feat/geofilter-m3-customizer`, PR #736). Merge M3 first. ## Test plan - [x] `cd cmd/server && go test ./...` — all pass - [x] Customizer GeoFilter tab without `apiKey` — Prune section not visible - [x] With `apiKey` + polygon active — Prune section visible - [x] **Preview** returns list of nodes outside polygon (no deletions) - [x] **Confirm delete** removes nodes, list clears - [x] `POST /api/admin/prune-geo-filter` without `X-API-Key` → 401 - [x] `POST /api/admin/prune-geo-filter` with no polygon configured → 400 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
87 lines
3.2 KiB
Markdown
87 lines
3.2 KiB
Markdown
# Customization
|
|
|
|
CoreScope includes a built-in theme customizer. Access it from **Tools → Customization** in the navigation menu.
|
|
|
|
[Screenshot: theme customizer panel with color pickers]
|
|
|
|
## What you can customize
|
|
|
|
### Branding
|
|
|
|
- **Site name** — displayed in the nav bar and browser tab
|
|
- **Tagline** — shown on the home page
|
|
- **Logo URL** — replace the default logo
|
|
- **Favicon URL** — custom browser tab icon
|
|
|
|
### Theme colors (Light & Dark)
|
|
|
|
Every color in the UI is customizable:
|
|
|
|
- **Accent** — primary color for links, buttons, highlights
|
|
- **Navigation** — nav bar background, text, and muted text colors
|
|
- **Background** — page background and content area
|
|
- **Surfaces** — cards, panels, input fields, detail panes
|
|
- **Status** — green (healthy), yellow (degraded), red (silent)
|
|
- **Text** — primary text, muted text, borders
|
|
- **Tables** — row stripe, hover, and selected row colors
|
|
|
|
Both light and dark themes are independently configurable.
|
|
|
|
### Node colors
|
|
|
|
Set the color for each role: repeater, companion, room, sensor, observer. These colors appear on the map, in node badges, and throughout the UI.
|
|
|
|
### Packet type colors
|
|
|
|
Customize the color for each packet type: Advert, Channel Msg, Direct Msg, ACK, Request, Response, Trace, Path.
|
|
|
|
### Home page
|
|
|
|
Customize the onboarding experience:
|
|
|
|
- Hero title and subtitle
|
|
- Getting-started steps (emoji, title, description for each)
|
|
- FAQ items
|
|
- Footer links
|
|
|
|
### Timestamps
|
|
|
|
- **Display mode** — relative ("5 min ago") or absolute
|
|
- **Timezone** — local or UTC
|
|
- **Format preset** — ISO or other presets
|
|
|
|
## Live preview
|
|
|
|
Changes apply instantly as you edit. You see the result in real time without saving.
|
|
|
|
## Exporting a theme
|
|
|
|
Click **Export JSON** to download your customizations as a JSON file. This produces a config-compatible block you can paste into your `config.json`.
|
|
|
|
## Importing a theme
|
|
|
|
Click **Import JSON** and paste a previously exported theme. The customizer loads all values and applies them immediately.
|
|
|
|
## Resetting
|
|
|
|
Click **Reset to Defaults** to restore all settings to the built-in defaults.
|
|
|
|
## GeoFilter (admin only)
|
|
|
|
The **🗺️ GeoFilter** tab lets operators configure geographic filtering directly from the customizer. It shows the active polygon on a Leaflet map and — on servers with a write-capable `apiKey` — allows editing the polygon and saving back to `config.json` without a restart.
|
|
|
|
The editing controls are only revealed after the server confirms write access. On public deployments without an `apiKey`, the tab is read-only.
|
|
|
|
See [Geographic Filtering](geofilter.md) for the full guide, including the API, the prune script, and the standalone GeoFilter Builder.
|
|
|
|
## How it works
|
|
|
|
The customizer writes CSS custom properties (variables) to override the defaults. Exported JSON maps directly to the `theme`, `nodeColors`, `branding`, and `home` sections of [config.json](configuration.md).
|
|
|
|
## Tips
|
|
|
|
- Start with the accent color — it cascades through buttons, links, and highlights
|
|
- Dark mode has its own color set (`themeDark`), independent of light mode
|
|
- Node colors affect the [Map](map.md), [Live](live.md) page, and node badges everywhere
|
|
- Export your theme before upgrading CoreScope, then re-import it after
|