Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Retention

How long messages are kept, and changes to it.

GET /api/v1/retention

Every interface's retention, expired partitions that had to stay, and the held area.

Who may call it: anyone signed in (a person or a token).

Answers

POST /api/v1/retention/{name}/confirm

Confirm an interface's shorter retention, which deletes its messages past it. It's applied at once (or when the running change finishes). Operator.

Who may call it: an operator or admin.

Parameters

InType
name (required)pathtextInterface name.

Answers

Shapes

The JSON bodies the operations above take and return.

Change

FieldType
fromnumber
rows_left (optional)number or nullMessages still to move or delete (an estimate).
started_attime (RFC 3339)
tonumber

ErrorBody

FieldType
errortextWhat went wrong, in plain words.

Held

FieldType
bytesnumberDisk it uses, indexes included.
interfaceslist of HeldInterfaceInterfaces with unfinished messages in it.
messagesnumberMessages in it, finished ones included (they go when their month drops).
monthslist of HeldMonthBy month: a month is dropped once nothing in it is unfinished.
pendingnumber
quarantinednumber

HeldInterface

FieldType
nametext
pendingnumber
quarantinednumber

HeldMonth

FieldType
bytesnumber
messagesnumber
monthtextThe month, 2026-09.
partitiontext
pendingnumber
quarantinednumber

InterfaceRetention

FieldType
change (optional)Change or null
configurednumberWhat interface.yaml (or ductus.yaml) says, in days.
daysnumberThe retention in force: its new messages are kept this many days.
nametext
needs_confirmationtrue or falseThe waiting value deletes messages: confirm it (POST /retention/{name}/confirm).
waiting (optional)number or nullA configured value not applied yet: a change is running, or it's shorter and needs a confirmation.
would_delete (optional)number or nullHow many messages the waiting value would delete now, when it needs a confirmation.

KeptPartition

FieldType
kept_forlist of textInterfaces that now keep their messages longer, with messages still in it.
partitiontext
pendingnumber
quarantinednumber
tiernumberIts retention tier, in days.

RetentionReport

FieldType
heldHeldThe held area as of the last drop: messages past their retention that someone still needs (pending for a destination, or quarantined and kept until resolved).
interfaceslist of InterfaceRetention
keptlist of KeptPartitionExpired partitions kept at the last drop, and why.
last_drop_at (optional)time (RFC 3339) or nullWhen expired partitions were last dropped (hourly).