Every tawa deploy automatically registers an uptime monitor via iec-pulse. No configuration needed — the builder reads your service URL and health endpoint from catalog-info.yaml, and attaches your org (from spec.owner) so the monitor is scoped to you.
The builder includes your owning org slug in the registration payload (org, derived from spec.owner). iec-pulse stores it on the monitor so per-org status pages can show only your services. Older builders that don't send org still work — a missing org never overwrites a known one.
| Check | Interval | Target |
|---|---|---|
| Health endpoint | 30s (prod) / 60s (sandbox) | https://{service}.tawa.pro{healthEndpoint} |
| Custom domains | 60s | Each domain from tawa domain add |
Your service must expose a health endpoint that returns 2xx. The default path depends on your framework:
| Framework | Default | Override |
|---|---|---|
| express / fastify / hono | /health | insureco.io/health-endpoint annotation |
| nextjs | /api/health | insureco.io/health-endpoint annotation |
Every tawa deploy also publishes a changelog for your service. It appears on your status page under What's new — no wiring, no extra command. The source is picked automatically, so even a vibe-coder who never writes release notes gets one:
| Source (in priority order) | What you do |
|---|---|
CHANGELOG.md in your repo root | Keep a CHANGELOG.md (Keep-a-Changelog style — ## headings + - bullets render cleanly). Best control. |
| Fallback: your git commits | Nothing. The builder derives a summary from git log since your last deploy. Write decent commit subjects (feat: …, fix: …) and they become your changelog for free. |
tawa deploy
└─ builder derives notes (CHANGELOG.md → else git log since last deploy)
└─ POST koko /api/plugins/{service}/changelog (stored once per service, upserted)
└─ iec-pulse status page reads it → renders "What's new"
Koko is the single store — iec-pulse reads it live at GET /api/plugins/{service}/changelog (public). Nothing is duplicated. If Koko is unreachable, the status page simply omits the section; deploys are never blocked.
Tips
`code`). Raw HTML is escaped.CHANGELOG.md.CHANGELOG.md/manifest carries one) and the deploy time.| URL | What |
|---|---|
https://status.insureco.io | Public status page |
https://checkcle.insureco.io | Admin dashboard (response times, history, alerting) |
GET https://iec-pulse.tawa.pro/api/pulse/status | JSON status API |
The builder saves a pulseMonitorId on your service record after registering the monitor. This is automatic — you never interact with it directly.
If IEC_PULSE_URL is not set on the builder, monitor registration is silently skipped. Deploys are never blocked by pulse failures.
For external services or legacy systems not deployed through tawa deploy, add monitors manually via the CheckCle UI at https://checkcle.insureco.io.
Last updated: July 15, 2026