plugin nself cron monitor - nself-org/cli GitHub Wiki

Plugin: nself-cron-monitor

Scheduled job monitoring that detects missed, late, and failing cron runs with configurable alert thresholds.

Bundle: ɳSentry ($0.99/mo or $9.99/yr) · Port: 3839


Install

nself license set nself_pro_xxxxx...
nself plugin install nself-cron-monitor
nself build
nself start

Schema

Cron monitor tracks job execution state in its own internal database. No np_* Hasura tables.


HTTP API

All endpoints proxy through api.nself.org via Nginx. Internal binding: 127.0.0.1:3839.

Method Path Auth Description
GET /health none Health check
GET /ready none Readiness probe
POST /api/v1/ping/{monitor_id} none Record a successful job heartbeat
POST /api/v1/ping/{monitor_id}/start none Mark a job run as started
POST /api/v1/ping/{monitor_id}/fail none Mark a job run as failed
GET /api/v1/monitors bearer List all cron monitors
POST /api/v1/monitors bearer Create a cron monitor
GET /api/v1/monitors/{id} bearer Get monitor status and history
PATCH /api/v1/monitors/{id} bearer Update monitor schedule or thresholds
DELETE /api/v1/monitors/{id} bearer Remove a monitor

Auth uses R3-PATTERN on management endpoints. Ping endpoints are public — they receive heartbeats from your cron jobs.

# Record a successful heartbeat from your cron job
curl -X POST \
     "https://api.nself.org/nself-cron-monitor/api/v1/ping/my-monitor-id"

Configuration

Variable Required Default Description
DATABASE_URL yes PostgreSQL connection string
PORT no 3839 Plugin listen port

Usage

After creating a monitor via the API, add a ping call to your cron script:

#!/bin/bash
# At the end of your cron job, signal success
curl -s -X POST "https://api.nself.org/nself-cron-monitor/api/v1/ping/$MONITOR_ID"

If the expected ping does not arrive within the configured grace period, the plugin triggers an alert via plugin-nself-alert-router.


Security

  • Ping endpoints are intentionally public — cron jobs on any host must reach them without auth.
  • Management endpoints require bearer token auth.
  • Binds to 127.0.0.1. Nginx routes ping endpoints at the edge with rate limiting.
  • Requires active ɳSentry bundle license (nself_pro_...).

See also