Skip to content

Filters and their lifecycle

A filter decides which events from one source are worth one agent’s run. This page explains what a filter is made of, the seven states it can be in, and what moves it from one to the next. The short version: a filter starts out sending everything, and it filters events only after a person has approved it twice.

A filter is two things: a spec, which says what the filter does, and a lifecycle state, which says what it is allowed to do right now. Each filter reads one source and sends to one agent.

The spec has these parts:

PartWhat it holds
SourceThe Kindo integration tool Sift calls, its parameters, and how often: the poll interval, 30 to 900 seconds, 60 by default.
IntentOne or two sentences, up to 2,000 characters, saying which events matter. The gold set is judged against it.
StagesThe recipe in each slot of the pipeline, and whether each runs for real or is only measured.
TargetThe agent the filter sends to, and how the event is delivered: as the whole event to the paired agent, or mapped onto an existing agent’s inputs.
Operating pointThe threshold (or hourly budget, or fixed rule), the leak-through rate, the trigger ceiling and what to do on an alarm. See Operating point and approval.
AcceptanceThe posture, the label floor and the holdout.
DriftThe alarm levels for the drift signals, and the retrain schedule.

You see most of these on the filter’s Settings tab. The filter settings reference lists every field with its default and range.

Every save writes a new version of the spec. A saved version is never edited afterwards, so an approval always refers to exactly what was approved. Settings › History lists the versions.

Whether a save keeps the filter’s threshold approval depends on what changed:

  • A change that cannot make it filter more (the poll interval, the drift alarm levels, a higher leak-through rate, the name) carries the approval forward to the new version.
  • A change that could make it filter more, or read something other than what was approved (the operating point, the deciding recipe, the source query, the target, a lower leak-through rate), needs a new approval. On an active filter such a save moves it to shadow in the same step, so it stops filtering until the new version is approved.
  • A change to a pipeline stage alone, on an active filter, waits as a waiting version (the console marks it Waits for approval). The filter keeps filtering on the version it runs, and the waiting one replaces it only when its own operating point is approved. A filter has at most one waiting version; a second such save replaces it.

The intent, and the source fields Sift uses to tell events apart, can change only while the filter is in draft or authoring. After that, a new intent is a new filter.

StateBadgeScores eventsFiltersWhat it means
draftdraftNoNoCreated, with no spec to run yet.
authoringauthoringNoNoA spec exists and is being reviewed. The gold set is built and reviewed here.
shadowshadowYesNoScores every event and sends every one to the agent, recording what it would filter. An agent budget or sampled shadow, if you set one, sends less without filtering anything.
proposedproposedYesNoA trained model has an operating point waiting for approval. Still sends everything.
activeFilteringYesYesFilters events that fall below the approved operating point.
pausedpausedNoNoHolding events: Sift is not reading the source, so nothing is scored, filtered or sent.
retiredretiredNoNoEnd of life. Nothing is scored, and there is no way back.

Only an active filter filters events. Shadow and proposed do the same work as active, scoring every event, but send everything; that is how Sift measures a filter before anyone lets it filter. Shadow and filtering explains why.

The status badges beside a filter’s name show at most two things: first whether it is filtering, then whether anything is wrong. An active filter shows Filtering; any other state shows its own name, which also tells a screen reader that the filter is not filtering. A second badge, Attention or Fault, appears when the filter’s health needs someone, and links to its Actions tab. An active filter whose operating point filters nothing shows no first badge and always carries an Attention badge saying so.

These are the only moves a filter can make, and Sift checks the gate on every one. The console offers only the moves that are possible from the current state.

FromToWho or whatGate
draftauthoringSift, when the first spec version is writtenA spec
authoringdraftA person abandons the draft specNone
authoringshadowA person: Start in shadow on the Actions tabGold-set approval, and the paired agent connected if the filter sends whole events
shadowproposedSift, when training produces a model with an operating point; or a person, from the Actions tabA trained model for the deciding recipe
proposedactiveA person approves the threshold, or resumes it on the model already running (Resume)A threshold approval, new or standing
proposedshadowA person rejects the proposed thresholdNone
active, shadow, proposedpausedA person: Hold eventsNone
activeshadowA person: Stop filtering; or Sift, on an alarm or a missing approvalNone
pausedshadowA person: Move it back to shadowNone
shadow, pausedactiveA person: ResumeA standing threshold approval for the current version
any except retiredretiredA person, with a written reasonNone

Two moves change what an active filter filters without changing its state: a retrained model replacing the running one, and a waiting version replacing the running version. Both need a threshold approval, exactly as the move into active does.

The table has a deliberate shape. Every move that could mean more events are filtered needs a recorded approval. Every move that means fewer, into shadow or paused, needs none, so nothing stands between you and turning filtering off.

Sift takes five moves without a person:

  1. draft to authoring, when the filter’s first spec version is written.
  2. shadow to proposed, when a training run finishes with an operating point to propose.
  3. active to shadow on drift, when the hourly drift check finds a signal past its alarm level.
  4. active to shadow on the trigger ceiling, when the filter’s escalations in one hour reach its ceiling.
  5. active to shadow when no approval stands, when the version being scored has no standing threshold approval.

The last three are fall-backs. Each withdraws the approval the filter was running on, and is recorded in the audit log as the system’s act. For drift and the ceiling you can set the filter to keep filtering and raise an alert instead; a missing approval always falls back. See Shadow and filtering.

Retiring ends a filter for good: it stops reading, scoring and filtering, and there is no move out of retired. Nothing is deleted. Its history, approvals and filtered events stay readable. To start again, create a new filter. You retire a filter from Settings › Retire, with a written reason.

Every state change, hold, resume and approval needs the operator or admin role. A reviewer sees the same screens without the controls. See Users and roles.