N.I.N.A. Sync Plugin
PSF Guard Sync is a N.I.N.A. plugin that keeps a live Target Scheduler catalog in step with a PSF Guard server — pushing each capture as it lands and syncing plans and grades on demand, without the two-database CLI sync dance.
/api/sync/v1 protocol. The PSF
Guard server side of that protocol is still being built, so capture pushes
return 404 until it ships — install it now to try the N.I.N.A.
side and follow along.
Install it in N.I.N.A.
PSF Guard hosts its own N.I.N.A. plugin repository. Add it as a plugin source and PSF Guard Sync installs and updates like any other plugin:
- In N.I.N.A., open Options → Plugins.
- Add this repository URL:
https://nina-plugins.psf-guard.com/ - Turn on “Include beta versions” — PSF Guard Sync ships on the beta channel.
- Find PSF Guard Sync in the Available list, install it, and restart N.I.N.A.
How it works
The plugin subscribes to N.I.N.A.'s image-saved event. For each saved light
frame it waits briefly for Target Scheduler to commit the matching
acquiredimage row, builds a schema-preserving bundle of that capture
plus its project, target, and plan dependencies, and drops it in a durable retry
queue. Network work never blocks the image-save pipeline — if
the server is unreachable, bundles wait and retry.
- Automatic capture push — every light frame is queued to the PSF Guard catalog right after Target Scheduler records it.
- Durable, idempotent queue — bundles live under
%LOCALAPPDATA%\NINA\PsfGuardSync, survive restarts, and re-send safely. - Two-way, on demand — manual full merge, planning push, and reviewed-grade push, plus planning and grade pull back into Target Scheduler.
- Stable identity — matches images by GUID, remaps parent
IDs for projects, targets, templates, and plans, and preserves the
telescope-side
acquired/acceptedcounters. Grade pulls touch onlygradingStatusandrejectreason. - Optional thumbnails — transfer Target Scheduler thumbnails alongside the capture.
Configure it
Open Plugins → Installed → PSF Guard Sync and set:
- The PSF Guard server URL.
- The destination PSF Guard catalog ID.
- An API token (stored in Windows Credential Manager).
- The Target Scheduler database path (default
%LOCALAPPDATA%\NINA\SchedulerPlugin\schedulerdb.sqlite). - Your capture-push and preview-apply policy.
Use Test connection before enabling automatic pushes.
Sequencer instructions
The plugin also contributes instructions under PSF Guard Sync in the advanced sequencer:
- Check PSF Guard connection — verifies the server, API token, and selected catalog. Place it near the start of a session so a remote outage follows the instruction's configured error behavior.
- Pull PSF Guard planning — applies remote projects, targets, templates, and plans to Target Scheduler. Run it before a Target Scheduler container starts; a running container may keep its in-memory plan.
- Pull PSF Guard grades — applies reviewed grades and rejection reasons by unambiguous acquired-image GUID.
psf-guard sync commands do the same
job between database files, without the plugin.