Settings
The Settings page configures system-wide parameters including the Public URL (FQDN) which is used to generate scanner provisioning commands and OIDC callback URLs. If not set, the system falls back to the PUBLIC_URL environment variable or request headers.
Inputs
| Name | Description | Allowed Values | Default |
|---|---|---|---|
| Public URL | The externally-accessible HTTPS URL for this mipo instance | Valid HTTPS URL (e.g., https://mipo.example.com) | Empty (uses PUBLIC_URL env var or request headers) |
| Heartbeat URL | External monitoring URL that mipo pings on a regular schedule. Use a dead-man-switch service like Healthchecks.io or Cronitor — the service alerts you if pings stop arriving. Leave empty to disable. | Any valid HTTP/HTTPS URL, or empty to disable | Empty (dead-man-switch disabled) |
| Heartbeat Interval (minutes) | How often mipo pings the Heartbeat URL. The external monitoring service should be configured with a grace period slightly longer than this interval (e.g., interval + 2 minutes) to tolerate minor timing jitter. | Integer number of minutes (minimum 1) | 5 minutes |
Fields & Columns
| Name | Description |
|---|---|
| Scanner Install URL | Derived URL used in scanner provisioning curl commands |
| OIDC Callback URL | Derived URL to configure as the redirect URI in your identity provider |
Gotchas
- The Public URL must include the protocol (https://) — just a hostname will not work.
- Changing the Public URL affects all future scanner provisioning commands and OIDC callback URLs.
- If the Public URL is cleared, derived URLs disappear and the system falls back to environment variables.
- The public URL fallback chain is: database setting > PUBLIC_URL environment variable > request Host header. The database setting takes highest priority; the Host header is used only as a last resort and may be unreliable behind proxies.
- If the Heartbeat URL does not respond within 10 seconds, the ping is silently abandoned and logged as a warning. The external monitoring service detects silence — mipo itself does not raise an alarm on ping failure.
- The heartbeat loop is tied to the notification processor. If the manager process exits, pings stop — which is precisely the dead-man-switch signal. The external service should alert on missing pings within one or two heartbeat intervals.
- Changing the Heartbeat Interval saves the new value, but the running loop is not restarted automatically until the next manager restart or settings save. Use the heartbeat test button to verify the URL is reachable before relying on the schedule.
API Calls (5)
| Method | Path | Description |
|---|---|---|
| GET | /api/admin/settings | Retrieve current system settings (publicUrl, heartbeatUrl, heartbeatIntervalMinutes) |
| PUT | /api/admin/settings | Update system settings — accepts publicUrl, heartbeatUrl, and heartbeatIntervalMinutes |
| POST | /api/admin/settings/heartbeat-test | Send a single on-demand ping to the configured Heartbeat URL to verify connectivity. Returns the HTTP status from the monitoring service, or 400 if no URL is configured, or 502 if the ping failed. |
| POST | /api/admin/seeds/reload-builtins | Restore deleted default configuration entries |
| POST | /api/admin/seeds/import | Import seed data from JSON |