Skip to content
Console
Menu

Getting Started

Authentication

KV Store

Alerts and uptime checks

Check an HTTPS endpoint or a Hosting service and read durable uptime evidence.

An uptime check observes an HTTPS endpoint or a service in your environment. Observability records each scheduled result and its coverage. Alert transitions go through Events to a registered webhook endpoint.

You need an enabled Observability environment, an Access key with observability:write to configure checks and observability:read to read them, and a finite Access delegation authorizing Observability to execute the check. Register your webhook with Events using events:write before using its URI as a notification target.

#1. Authorize execution

Set ENV_RESOURCE to your exact environment resource name, in the form orgs/{org}/projects/{project}/envs/{env}. Read the setup resource:

Shell
curl "https://api.sylphx.com/v1/$ENV_RESOURCE/uptime_sources/manifest" \
  -H "Authorization: Bearer $SYLPHX_API_KEY"

status.delegate_principal identifies Observability's attested principal. Create an Access delegation to that principal for this environment, with hosting:read for the Hosting ownership and readiness reads. Use its returned reference as execution_delegation. Every dispatch exchanges the delegation afresh; an expired or revoked grant stops outbound execution.

#2. Create a check

This example uses a public HTTPS endpoint. Replace the example URI and delegation reference with your own. An idempotency key identifies one request; keep it when retrying that request.

Shell
curl -X POST "https://api.sylphx.com/v1/$ENV_RESOURCE/uptime_checks?uptime_check_id=site" \
  -H "Authorization: Bearer $SYLPHX_API_KEY" \
  -H "Idempotency-Key: $REQUEST_ID" \
  -H "Content-Type: application/json" \
  -d '{"spec":{"public_uri":"https://app.example.com/healthz","method":"HEAD","interval":"60s","execution_delegation":"dlgt_your_reference"}}'

Public endpoints must use HTTPS on port 443, without credentials, query parameters, fragments or redirects. Checks support GET and HEAD. Private service checks use the same-environment Hosting service resource name; READY reads readiness without waking the service.

To receive notifications, set spec.notify to ["webhook:https://your-registered-receiver.example.com/events"], using the exact URI of your Events webhook endpoint. Events owns signing, retries and delivery readback. Verify its Standard Webhooks signature at your receiver.

#3. Read results and coverage

Shell
curl "https://api.sylphx.com/v1/$ENV_RESOURCE/uptime_checks/site" \
  -H "Authorization: Bearer $SYLPHX_API_KEY"

The status includes the last result, sample freshness, target evidence and 24-hour, 7-day and 30-day coverage. Follow next_target_page_token through target_page_token to read every target. Missing observations, unavailable authority and unsupported evidence remain unknown. They do not count as successful observations or resolve an active alert.

A revision check sets bound_public_revisions to true. Hosting supplies every authorized public host and path and the selected Release's source SHA; the public response supplies the observed revision. A known mismatch must persist for more than 30 minutes before firing. Affirmative equality resolves the same episode. An empty binding census remains unknown.

#Manifest setup

You can declare checks under resources.telemetry.check in your manifest. To enable synchronization, update uptime_sources/manifest with a delegation that also includes observability:read and observability:write. The source subscription reconciles the complete declaration set through ordinary check CRUD and retains ownership by check UID. A valid empty declaration set removes only checks owned by that subscription.