A timeline is a pull surface. Someone has to look. Notification rules make a publish push instead - to a person's email, or to whatever system you want to wire it into.
Rules
A rule lives on a workspace and says: when a publish carries this tag, deliver it to this channel. Leave the tag blank and it matches every publish in the workspace. A rule can also opt in to fire when an alert fires, so the same channels carry both.
Each rule has a name, a match tag, a channel (email or webhook), a target, an optional secret, and an active flag - so you can switch one off without deleting it.
Set them up in the workspace's notification settings. Any authenticated member can create one - only a read-only viewer can't - and the usual pattern is a handful per workspace rather than one per person.
Those two channels - email or a signed webhook - are all a rule can target, and a publish and an alert are all that can trigger one. A blank-tag rule fires on every publish in the workspace, and the notification carries the publish's title, tags, producer and a link straight to the work.
The target is an email address. When a matching collection is published, whoever is on the other end gets the title, the tags, who produced it, and a link straight to the work.
Useful for the person who isn't in the app daily - a cofounder, a client, the person who wants to know when the nightly job publishes something.
Webhooks
The target is an HTTPS URL. Kythene POSTs JSON:
{
"space_id": "…",
"collection_id": "…",
"title": "Nightly benchmark",
"tags": ["api", "bench"],
"producer": "kythe-cli",
"url": "https://kythene.com/c/…"
}Two headers worth handling:
X-Kythene-Delivery- a stable id per delivery. Delivery is at-least-once and transient failures retry, so dedupe on this rather than assuming exactly-once.X-Kythene-Signature-sha256=<hex>, an HMAC of the raw request body using the rule's secret. Set a secret and verify this before you act on a payload.
The request is sent with the user agent kythene-notifier and expects a 2xx. Anything 300 or above counts as a failure and retries.
Delivery is off the publish path
Deliveries run on the jobs worker, not inline with the publish, so a slow or broken channel never slows down or fails somebody's publish. Transient failures retry with backoff, up to five attempts.
Webhook targets are screened when the rule is saved and again at dial time, so a rule can't be used to make the server call something it shouldn't on your internal network.
Alerting on silence
Rules fire on a publish, but you can also be alerted when a publish stops arriving. Declare an expectation and Kythene raises an alert when the silence goes on too long, delivered over the same email and webhook channels for any rule that opts into alert triggers.
That's its own topic - see Alerts and expectations for expectations, severity, the inbox, and on-call access without an account.