# Admin-Task Notes

Task-oriented recipes. Each section assumes you already have `splam` installed and running. See the [Tutorial](tutorial-getting-started.md) if not.


# Add or edit admin-task notes from the app

Select a service in the sidebar (or type a new systemd unit name), click **Configure**, and fill in the **Admin-task notes** form: Purpose, Checks and Common issues (one per line), Suggested log search terms (comma-separated), and Compliance note. Click **Save admin-task notes**.

This writes to `service_info_overrides.json` in the app's data directory (override the location with `SPLAM_SERVICE_INFO_OVERRIDES`) and takes effect immediately, with no redeploy needed. An override for an existing unit name (e.g. `cron.service`) replaces the built-in entry.

The **Service** dropdown lists every `.service` unit in systemd's search path, so a unit installed on the host is already selectable before anyone writes notes for it. Notes saved against a name that isn't installed are added to the dropdown anyway, which is what keeps a note from disappearing when its package is removed.


# Add admin-task notes in code instead

For notes that should ship with the package rather than live in a per-deployment override file, edit `src/splam/service_info.py` and add an entry to `SERVICE_INFO` keyed by the exact systemd unit name:

``` python
"my-service.service": {
    "purpose": "...",
    "checks": ["...", "..."],
    "common_issues": ["...", "..."],
    "log_patterns": ["error", "..."],
    "compliance_note": "...",
},
```

If the same guidance applies to multiple unit names (e.g. a service that's named differently across distros), define the dict once and point several keys at it. See `_SSH_INFO` (`ssh.service` / `sshd.service`) or `_TIME_SYNC_INFO` for the pattern. Any service without an entry falls back to `GENERIC_INFO`.
