Request icon
Return icon
Switch icon
Log icon
SlackIncomingWebhook icon
OutputValues icon
Schedule icon

NocoDB Database Platform Health, Storage Engine, and Project Sentinel

Audit NocoDB smart spreadsheet health, validate backend database connectivity and project metadata readiness, classify posture, and alert Slack via Kestra.

Categories
BusinessData

Continuously audits NocoDB no-code database and smart spreadsheet platforms by probing core application health endpoints, validating backend SQL database connection pool responsiveness (PostgreSQL, MySQL, SQLite), verifying base project metadata accessibility, classifying operational posture, and dispatching real-time incident escalation alerts to Slack.

This blueprint was created by Mohit Jeswani.

How it works

  1. probe_health_endpoint (io.kestra.plugin.core.http.Request) queries /api/v1/health to verify that the NocoDB application process is live and that its underlying relational database connection pool (PostgreSQL, MySQL, SQL Server, or SQLite) is responsive and accepting query transactions.
  2. probe_version_endpoint (io.kestra.plugin.core.http.Request) queries /api/v1/version to confirm API gateway responsiveness and deployment release consistency.
  3. probe_project_metadata (io.kestra.plugin.core.http.Request) queries /api/v1/db/meta/projects using an API token to verify that base projects, table schema metadata, and data sources can be queried without permission errors.
  4. classify_nocodb_posture (io.kestra.plugin.core.debug.Return) evaluates endpoint response codes and JSON attributes using a declarative Pebble expression:
    • Classifies as INSTANCE_UNREACHABLE if endpoints cannot be reached over the network.
    • Classifies as DATABASE_STORAGE_DEGRADED if /api/v1/health returns non-200 or the JSON status attribute does not equal expected_status (indicates database disconnection or query pool exhaustion).
    • Classifies as SERVER_PROCESS_UNHEALTHY if /api/v1/version returns non-200.
    • Classifies as PROJECT_METADATA_UNREADY if /api/v1/db/meta/projects fails (invalid token or schema sync stall).
    • Classifies as HEALTHY_COMPLIANT when all probes succeed.
  5. route_by_posture (io.kestra.plugin.core.flow.Switch) routes execution based on the classification:
    • HEALTHY_COMPLIANT: Logs successful audit confirmation with system version, status, and project metadata metrics.
    • DATABASE_STORAGE_DEGRADED: Posts an urgent Slack alert warning that the backend database is down and spreadsheet data mutations are blocked.
    • PROJECT_METADATA_UNREADY: Alerts Slack that project metadata queries or API credentials are misconfigured.
    • SERVER_PROCESS_UNHEALTHY / INSTANCE_UNREACHABLE: Dispatches high-priority incident notifications for container or network failure.
  6. audit_summary (io.kestra.plugin.core.output.OutputValues) exports structured metrics capturing endpoint HTTP status codes and operational posture for compliance logging.
  7. errors sends a priority failure notification to Slack if unhandled workflow execution errors occur.

What you get

  • Automated, continuous validation of critical internal data platforms without relying on manual user reports.
  • Early warning of relational database connection pool exhaustion before business teams experience spreadsheet save errors.
  • Active verification of project metadata APIs ensuring back-office webhooks and automated integrations remain operational.
  • Contextual Slack alerts detailing exact endpoint failure codes, payload statuses, and target hostnames.
  • Auditable execution history satisfying SOC2 and ISO27001 data management and business continuity operational controls.

Who it's for

  • Platform Engineers and DevOps teams maintaining self-hosted NocoDB instances and internal developer platforms (IDP).
  • Business Operations and Data Teams relying on NocoDB smart spreadsheets for mission-critical operations.
  • Database Administrators (DBAs) monitoring application query connections and schema sync health.

Why orchestrate this with Kestra

NocoDB transforms standard SQL databases into smart spreadsheets that operational teams depend on daily for order management, customer onboarding, and data entry. When NocoDB's database connection pool starves, web users cannot save records and automated API webhooks fail. Simple TCP port checks cannot verify whether SQL queries are executing or whether project metadata caches are intact. Kestra orchestrates multi-stage HTTP inspection, declarative Pebble classification, failure escalation to Slack, and centralized compliance audit trails in a single workflow.

Prerequisites

  • A running NocoDB instance (Docker container or Kubernetes pod).
  • A NocoDB API token generated under User Settings > API Tokens.
  • An incoming Slack webhook URL for incident notifications.

Secrets

  • NOCODB_API_TOKEN: NocoDB user API token (xc-token) used for project metadata API inspection.
  • SLACK_WEBHOOK_URL: Incoming Slack webhook URL used by alert_database_degraded_slack, alert_project_metadata_slack, alert_server_unhealthy_slack, alert_unreachable_slack, and alert_flow_failure.

Quick start

  1. Configure NOCODB_API_TOKEN and SLACK_WEBHOOK_URL in your Kestra namespace secrets.
  2. Start a local NocoDB instance using Docker:
    docker run -d --name nocodb -p 8080:8080 nocodb/nocodb:latest
    
  3. Import this blueprint into Kestra and click Execute with default inputs (nocodb_host: "localhost").
  4. Confirm that classify_nocodb_posture classifies HEALTHY_COMPLIANT and inspect the structured telemetry in audit_summary.
  5. Enable the hourly_canary schedule to automate continuous database platform health monitoring.

How to extend

  • Add table row count verification by querying /api/v1/db/data/v1/{baseId}/{tableName} to alert on unexpected data truncation.
  • Integrate PagerDuty or Opsgenie alerts for out-of-hours on-call paging during DATABASE_STORAGE_DEGRADED or INSTANCE_UNREACHABLE incidents.
  • Expand multi-environment monitoring by looping over an array of development, staging, and production NocoDB cluster hostnames using io.kestra.plugin.core.flow.ForEach.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.