Documentation Index
Fetch the complete documentation index at: https://docs.schedkit.net/docs/llms.txt
Use this file to discover all available pages before exploring further.
Infrastructure Overview
SchedKit runs as a single Fastify service with opinionated dependencies. This page is the quick tour you can point to during demos when somebody asks “what’s under the hood?”Stack at a Glance
| Layer | Tech | Notes |
|---|---|---|
| HTTP/API | Fastify (Node.js 22, ESM) | All endpoints live in src/routes. Swagger + Mintlify docs stay in sync with runtime schemas. |
| Data | NocoDB (REST over Postgres) | Every table (orgs, tickets, bookings, signals) is defined in lib/tables.mjs. No ORM — just NocoDB REST calls. |
| Messaging | Mailjet | Transactional email for bookings, tickets, invites. From name/subject are org-configurable. |
| Push | Web Push API + ntfy.sh | Browsers get VAPID push; phones get ntfy alerts for urgent/alert-sourced tickets. |
| Real-time | Server-Sent Events | /v1/incidents/stream, /v1/signals/stream, /v1/war-room broadcast org-scoped JSON frames. |
| Files | S3-compatible (coming) | Today: uploads land on the app server. Roadmap: S3 bucket per tenant. |
| Auth | Magic link + session cookie | /v1/auth/magic-link creates link; /v1/auth/session exchanges OTP. No passwords anywhere. |
| Deploy | GitOps via Plesk webhook | git push origin main → webhook → deploy.sh → pm2 restart. No click-ops. |
Messaging & Notification Flow
- Email branding pulls directly from the ticket’s org (
ticket_subject_template,ticket_from_prefix). - Hosts get
SchedKit-INC#style from-names so Outlook/Gmail show the ticket number even if the subject is truncated. - ntfy topics live at
https://ntfy.sh/p7n-cloudron-monitorfor incidents,schedkit-leadsfor sales intel.
Data Flow (Signals → Incident → Assignment)
- Everything is org-scoped. Even SSE registrations are bucketed by org ID.
- Same APIs the dashboard uses — no hidden admin endpoints.
- Book / Ticket symmetry: an alert can open a ticket and pre-book a follow-up event using the same API key.
Deployment Pipeline
deploy.shalso writes.git-shafor version reporting (GET /version).- No manual SSH restarts. If it’s not in Git, it’s not deployed.
Demo Script Pointers
- Show Swagger:
https://schedkit.net/docsproves every route is public. - Trigger an alert: curl
POST /v1/ticketswithpriority:"urgent"→ watch Mailjet + SSE + ntfy fire simultaneously. - Toggle org branding: update org settings → resend ticket email → Outlook/Gmail now show custom subject + from name.
- Book a team event:
POST /book/:org/:team/:eventauto-rotates assignees viateam.routing.