Events and the entity store
Weik.io 2026.2Create channels, read and resend stored events, handle dead letters, move a reader and manage entity types.
On this page
- Commands on this page
- weikio get channels
- weikio channel create
- weikio channel set
- weikio delete channel
- weikio rename channel
- weikio get eventsources
- weikio get eventsubscriptions
- weikio get streams
- weikio get record
- weikio events list
- weikio events show
- weikio events purge
- weikio deadletters list
- weikio deadletters show
- weikio deadletters resend
- weikio deadletters discard
- weikio get readers
- weikio reader skip
- weikio reader rewind
- weikio events resend
- weikio entities list
- weikio entities get
- weikio entities delete
- weikio get entity-store-policies
- weikio describe entity-store-policy
- weikio entitystore policy set
- weikio entitystore policy delete
- weikio rename entity-store-policy
- Exit codes
- See also
Channels, event sources and event subscriptions are integrations, so you publish them with weikio apply and run them with weikio deploy. Each environment keeps the events of its channels for 30 days within its budget, and weikio events lists, shows, resends and purges them.
An event that an integration couldn’t handle after its last retry is kept as a dead letter with the integration it failed in and the reason. weikio deadletters resend sends it back to that integration once you have fixed the cause, and weikio deadletters discard deletes it. The entity store keeps the latest value of each entity of a type, with the size, age and history limits of the type’s policy in each environment.
Commands on this page#
| Command | What it does |
|---|---|
weikio get channels |
List a project’s event channels with their publishers and readers. |
weikio channel create |
Create an event channel. |
weikio channel set |
Change an event channel. |
weikio delete channel |
Delete an event channel that isn’t deployed, with its versions and its own variables and secrets. |
weikio rename channel |
Rename an event channel. |
weikio get eventsources |
List the event sources of a project. |
weikio get eventsubscriptions |
List the event subscriptions of a project. |
weikio get streams |
List an environment’s streams and entity store buckets with their usage and limits. |
weikio get record |
Print a record’s kind and address from its ID. |
weikio events list |
List an environment’s stored events. |
weikio events show |
Print one stored event. |
weikio events purge |
Delete the stored events that match the filters. |
weikio deadletters list |
List the dead letters of an environment. |
weikio deadletters show |
Print one dead letter with its event. |
weikio deadletters resend |
Resend dead letters to the integrations they failed in. |
weikio deadletters discard |
Discard dead letters. |
weikio get readers |
List the readers of the integrations deployed in an environment and how far each has come with its events. |
weikio reader skip |
Pass over every event that waits for the integration’s reader, so it receives only the events published from now on. |
weikio reader rewind |
Deliver a reader’s events again from a sequence number. |
weikio events resend |
Publish stored events again. |
weikio entities list |
List the entities of one type in id order. |
weikio entities get |
Print one entity. |
weikio entities delete |
Delete one entity. |
weikio get entity- |
List an environment’s entity types with their policies and usage. |
weikio describe entity- |
Show an entity type’s policy and usage. |
weikio entitystore policy set |
Create an entity type in an environment, or change its policy. |
weikio entitystore policy delete |
Delete an entity type and its entities from an environment. |
weikio rename entity- |
Rename an entity type in every environment that has it. |
The flags every command accepts, such as --env, --project, -o and --context, are on the CLI reference page and are left out of the tables below.
weikio get channels#
List a project’s event channels with their publishers and readers.
weikio get channels [--project P]Who can run it: a grant on the project whose role has read.
API: GET /api/v1/projects/{project}/channels.
Also written as weikio get eventchannels.
weikio channel create#
Create an event channel.
weikio channel create <p>/<name> [--type T] [--param k=v ...] [--description S] [--retention 30d|0]| Argument or flag | What it does |
|---|---|
<channel> |
The channel, as project/name. |
-- |
The sink kamelet to deliver to, without its - suffix, such as http, or ‘’ for none. |
-- |
A sink parameter, as key=value, repeated for each parameter. |
-- |
What the channel is for. |
-- |
How long events are kept: 30d (the environment’s default) or 0 (not stored). |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant on the project whose role has author.
API: PUT /api/v1/configuration.
Also written as weikio create channel.
$ weikio apply -f ./finance/events/Target: https://hub.example, project finance (from finance/project.yaml)
event-channel finance/invoice-created unchanged
event-channel finance/invoice-alerts created (version 0.1.0, built in 14.2 s, delivers to slack)
event-source finance/invoice-files created (version 0.1.0, built in 16.8 s, aws-s3 -> invoice-files)
event-subscription finance/files-to-invoices created (version 0.1.0, built in 15.1 s, invoice-files -> invoice-created)
event-subscription finance/alert-on-invoices created (version 0.1.0, built in 14.9 s, invoice-created -> invoice-alerts)
Nothing new is running yet. To run it:
weikio deploy -f ./finance/events --env devtest$ weikio deploy -f ./finance/events --env devtestTarget: https://hub.example, project finance (from finance/project.yaml), environment devtest (--env)
Deploying finance/invoice-alerts 0.1.0 (latest) to devtest...
Deploying finance/invoice-files 0.1.0 (latest) to devtest...
Deploying finance/files-to-invoices 0.1.0 (latest) to devtest...
Deploying finance/alert-on-invoices 0.1.0 (latest) to devtest...
deployment devtest/finance/invoice-alerts created (version 0.1.0)
deployment devtest/finance/invoice-files created (version 0.1.0)
deployment devtest/finance/files-to-invoices created (version 0.1.0)
deployment devtest/finance/alert-on-invoices created (version 0.1.0)weikio channel set#
Change an event channel.
weikio channel set <p>/<name> [--type T] [--param k=v ...] [--description S] [--retention 30d|0]| Argument or flag | What it does |
|---|---|
<channel> |
The channel, as project/name. |
-- |
The sink kamelet to deliver to, without its - suffix, such as http, or ‘’ for none. |
-- |
A sink parameter, as key=value, repeated for each parameter. |
-- |
What the channel is for. |
-- |
How long events are kept: 30d (the environment’s default) or 0 (not stored). |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant on the project whose role has author.
API: PUT /api/v1/configuration, GET /api/v1/projects/{project}/channels, GET /api/v1/environments/{environment}/projects/{project}/deployments.
weikio delete channel#
Delete an event channel that isn’t deployed, with its versions and its own variables and secrets.
weikio delete channel <p>/<name> [-y]| Argument or flag | What it does |
|---|---|
<channel> |
The channel, as project/name. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant on the project whose role has author.
API: GET /api/v1/projects/{project}/integrations/{name}, DELETE /api/v1/projects/{project}/integrations/{name}?dryRun=true, DELETE /api/v1/projects/{project}/integrations/{name}.
Also written as weikio delete eventchannel.
weikio rename channel#
Rename an event channel.
weikio rename channel <p>/<name> <new-name>| Argument or flag | What it does |
|---|---|
<channel> |
The channel, as project/name. |
<new- |
New name in the same project. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant on the project whose role has author.
API: GET /api/v1/projects/{project}/integrations/{name}, PATCH /api/v1/projects/{project}/integrations/{name}.
weikio get eventsources#
List the event sources of a project.
weikio get eventsources [--project P]Who can run it: a grant on the project whose role has read.
API: GET /api/v1/projects/{project}/integrations?type=event-source, GET /api/v1/projects/{project}/integrations/{name}/status.
weikio get eventsubscriptions#
List the event subscriptions of a project.
weikio get eventsubscriptions [--project P]Who can run it: a grant on the project whose role has read.
API: GET /api/v1/projects/{project}/integrations?type=event-subscription, GET /api/v1/projects/{project}/integrations/{name}/status.
weikio get streams#
List an environment’s streams and entity store buckets with their usage and limits.
weikio get streams [--env E]Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/streams.
weikio get record#
Print a record’s kind and address from its ID.
weikio get record <id>| Argument or flag | What it does |
|---|---|
<id> |
The record’s ID, from a listing, an audit record or the admin UI. |
Who can run it: any API key. The record is shown as its own read shows it.
API: GET /api/v1/records/{uid}.
weikio events list#
List an environment’s stored events. The FAMILY column tells channel events (ev), webhook receipts (hook), transfer run records (mft) and entity store changes (es) apart.
weikio events list [<p>/<channel>] [--env E] [--family ev|hook|mft|es] [--api A] [--integration N] [--type <p>/<type>] [--record-id ID] [--since 1h | --from T --to T] [--before STREAM.SEQ | --after STREAM.SEQ] [--order newest|oldest] [--source <p>/<n>] [--with-body] [--limit N]| Argument or flag | What it does |
|---|---|
<channel> |
The channel, as project/name. |
-- |
The family: ev (channel events), hook (webhook receipts), mft (transfer runs) or es (entity store events). |
-- |
The API whose webhook receipts to list. |
-- |
The transfer whose runs to list, as project/name. |
-- |
The entity type, as project/type. |
-- |
The ID of an integration or API, deleted or not, whose events to list, including the ones it published. |
-- |
Read the events stored before this position, as stream.seq, such as events.48213. |
-- |
Read the events stored after this position, as stream.seq, such as events.48213. |
-- |
The order: newest or oldest first, by default newest. |
-- |
Show only the events this integration published, as project/name. |
-- |
Print each event’s body in its row. |
-- |
How far back to read, such as 1h. |
-- |
Start of the window. |
-- |
End of the window. |
-- |
How many events to read, at most 1,000. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/events?family=&channel={p}/{name}&project={p}&api=&integration=&type={p}/{type}&recordUid=&from=&to=&source={p}/{name}&withBody=true&limit=&before=&after=&order=.
$ weikio events list finance/invoice-created --env production --since 1hSEQ STREAM TIME FAMILY SOURCE AGENT BYTES RESEND OF
48211 events 2026-09-16 13:02:11 UTC ev finance/erp-invoice-export agent-fi-02 1204 -
48212 events 2026-09-16 13:03:11 UTC ev finance/erp-invoice-export agent-fi-02 1187 -
48213 events 2026-09-16 13:04:40 UTC ev finance/invoice-files agent-fi-02 2310 -weikio events show#
Print one stored event.
weikio events show [<p>/<channel>] [--env E] [--stream S] --seq N [--raw]| Argument or flag | What it does |
|---|---|
<channel> |
The channel the event belongs to, as project/name. |
-- |
The event’s stream, events or entities, from the STREAM column, by default events when a channel is given. |
-- |
The event’s sequence number in its stream. |
-- |
Print the body as it was stored. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/streams/{stream}/events/{seq}.
$ weikio events show finance/invoice-created --env production --seq 48213Seq: 48213
Subject: weikio.data.01k5h2m8q3x7c9d4f6g1j0n2p4.ev.01k5h2n1r6t8v0w2y4z6a8b0c2.01k5h3a7b9d1f3g5h7j9k1m3n5
Time: 2026-09-16 13:04:40 UTC
Source: finance/invoice-files
Headers: Content-Type: application/json
Weikio-Agent-Id: 7c1e...
Weikio-Source: finance/invoice-files
{
"invoiceId": "INV-2026-0912",
...
}weikio events purge#
Delete the stored events that match the filters. A purge removes stored events before the environment’s retention would, for example a webhook body with personal data. It’s written to the audit log, and a purge that runs past the 10-minute wait finishes when you run it again.
weikio events purge [<p>/<channel>] [--env E] [--family ev|hook|mft|es] [--api A] [--integration N] [--type <p>/<type>] [--record-id ID] [-y]| Argument or flag | What it does |
|---|---|
<channel> |
The channel, as project/name. |
-- |
The family: ev (channel events), hook (webhook receipts), mft (transfer runs) or es (entity store events). |
-- |
The API whose webhook receipts to remove. |
-- |
The transfer whose runs to remove, as project/name. |
-- |
The entity type, as project/type. |
-- |
The ID of an integration or API, deleted or not, whose events to remove, including the ones it published. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has operate in the environment.
API: POST /api/v1/environments/{environment}/streams/{stream}/events/_purge.
weikio deadletters list#
List the dead letters of an environment.
weikio deadletters list [<p>/<channel>] [--env E] [--integration P/N | --record-id ID] [--since 1h | --from T --to T] [--before SEQ | --after SEQ] [--order newest|oldest] [--limit N]| Argument or flag | What it does |
|---|---|
<channel> |
The channel the events came from, as project/name. |
-- |
The integration the events failed in, as project/name. |
-- |
The ID of the integration the events failed in, deleted or not. |
-- |
Dead letters that failed in the last duration, such as 1h. |
-- |
The start of the window, by when the dead letters failed. |
-- |
The end of the window, by when the dead letters failed. |
-- |
Read dead letters older than this seq. |
-- |
Read dead letters newer than this seq, or 0 for the oldest. |
-- |
The order: newest or oldest first, by default newest. |
-- |
How many dead letters to read, at most 1,000. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/dead-letters?project={p}&integration={n}&recordUid=&channel={p}/{name}&from=&to=&limit=&before=&after=&order=.
weikio deadletters show#
Print one dead letter with its event.
weikio deadletters show --seq N [--env E] [--raw]| Argument or flag | What it does |
|---|---|
-- |
The dead letter’s sequence number, from the SEQ column. |
-- |
Print the event’s body as it was stored. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/dead-letters/{seq}.
weikio deadletters resend#
Resend dead letters to the integrations they failed in. Each dead letter goes back only to the integration it failed in, and its copy is removed once sent.
weikio deadletters resend (--seq N [--seq N ...] | [<p>/<channel>] [--integration P/N | --record-id ID] [--since 1h | --from T --to T] | --all) [--env E] [-y]| Argument or flag | What it does |
|---|---|
<channel> |
The channel the events came from, as project/name. |
-- |
The sequence number of a dead letter to resend, repeated for each dead letter. |
-- |
Resend every dead letter you may act on. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
-- |
The integration the events failed in, as project/name. |
-- |
The ID of the integration the events failed in, deleted or not. |
-- |
Dead letters that failed in the last duration, such as 1h. |
-- |
The start of the window, by when the dead letters failed. |
-- |
The end of the window, by when the dead letters failed. |
Who can run it: a grant whose role has operate in the environment.
weikio deadletters discard#
Discard dead letters.
weikio deadletters discard (--seq N [--seq N ...] | [<p>/<channel>] [--integration P/N | --record-id ID] [--since 1h | --from T --to T] | --all) [--env E] [-y]| Argument or flag | What it does |
|---|---|
<channel> |
The channel the events came from, as project/name. |
-- |
The sequence number of a dead letter to discard, repeated for each dead letter. |
-- |
Discard every dead letter you may act on. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
-- |
The integration the events failed in, as project/name. |
-- |
The ID of the integration the events failed in, deleted or not. |
-- |
Dead letters that failed in the last duration, such as 1h. |
-- |
The start of the window, by when the dead letters failed. |
-- |
The end of the window, by when the dead letters failed. |
Who can run it: a grant whose role has operate in the environment.
weikio get readers#
List the readers of the integrations deployed in an environment and how far each has come with its events.
weikio get readers [<p>/<channel>] [--integration <p>/<n>] [--env E] [--project P]| Argument or flag | What it does |
|---|---|
<channel> |
The channel read, as project/name or, in the project, the name alone. |
-- |
The reading integration, as project/name or, in the project, the name alone. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/readers?project={p}&integration={n}&channel={p}/{name}.
weikio reader skip#
Pass over every event that waits for the integration’s reader, so it receives only the events published from now on. Use it when a reader is far behind and the waiting events no longer matter. The command says how many events it passes over and asks first.
weikio reader skip <p>/<integration> [--channel C | --transfer T | --type T] [--env E] [-y]| Argument or flag | What it does |
|---|---|
<integration> |
The deployed integration, as project/name. |
-- |
The channel the reader receives events from, as project/name or, in the integration’s project, the name alone. |
-- |
The transfer whose records the reader receives, as project/name or, in the integration’s project, the name alone. |
-- |
The entity type whose changes the reader receives, as project/type or, in the integration’s project, the type alone. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has operate in the environment.
weikio reader rewind#
Deliver a reader’s events again from a sequence number. Use it to process events again from a known point, for example after fixing a bug in the reader. Take the sequence number from the SEQ column of weikio events list.
weikio reader rewind <p>/<integration> [--channel C | --transfer T | --type T] --to-seq N [--env E] [-y]| Argument or flag | What it does |
|---|---|
<integration> |
The deployed integration, as project/name. |
-- |
The channel the reader receives events from, as project/name or, in the integration’s project, the name alone. |
-- |
The transfer whose records the reader receives, as project/name or, in the integration’s project, the name alone. |
-- |
The entity type whose changes the reader receives, as project/type or, in the integration’s project, the type alone. |
-- |
The event’s sequence number to deliver again from. Take it from the SEQ column. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has operate in the environment.
weikio events resend#
Publish stored events again. The event is published again with a Weikio-Resend-Of header that refers to the original, so every reader of the channel receives it again.
weikio events resend [<p>/<channel>] [--env E] [--stream S] --seq N [--seq N ...] [--to <p>/<integration>] [--dry-run] [-y]| Argument or flag | What it does |
|---|---|
<channel> |
The channel, as project/name. |
-- |
The event’s stream, events or entities, from the STREAM column, by default events when a channel is given. |
-- |
The sequence number of an event to resend, repeated for each event. |
-- |
The only integration to receive it, as project/name, by default every integration that reads it. |
-- |
Print what would happen and change nothing. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has operate in the environment.
API: POST /api/v1/environments/{environment}/streams/{stream}/events/{seq}/resend.
$ weikio events resend finance/invoice-created --env production --seq 48213 -yTarget: https://hub.example, project finance (argument), environment production (--env)
event 48213 resent as 48397 (Weikio-Resend-Of: 48213)weikio entities list#
List the entities of one type in id order.
weikio entities list <p>/<type> [--env E] [--updated-since T] [--id-prefix S] [--limit N] [--after ID | --before ID]| Argument or flag | What it does |
|---|---|
<type> |
The type, as project/type. |
-- |
Show entities updated since this time, such as 1h or 2026-09-01. |
-- |
Show only entities whose ID starts with this text. |
-- |
Number of entities to read, at most 1,000. |
-- |
Show the entities before this ID. |
-- |
Show the entities after this ID. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/projects/{project}/entities/{type}?updatedSince&idPrefix&limit&before&after.
weikio entities get#
Print one entity.
weikio entities get <p>/<type> <id> [--env E] [--revisions]| Argument or flag | What it does |
|---|---|
<type> |
The type, as project/type. |
<id> |
The entity’s ID. |
-- |
Print the entity’s kept revisions, newest first. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/projects/{project}/entities/{type}/{id}.
weikio entities delete#
Delete one entity.
weikio entities delete <p>/<type> <id> [--env E] [-y]| Argument or flag | What it does |
|---|---|
<type> |
The type, as project/type. |
<id> |
The entity’s ID. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has operate in the environment.
API: DELETE /api/v1/environments/{environment}/projects/{project}/entities/{type}/{id}.
weikio get entity-store-policies#
List an environment’s entity types with their policies and usage.
weikio get entity-store-policies [--env E] [--project P]Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/entity-store, GET /api/v1/environments/{environment}/projects/{project}/entity-store.
weikio describe entity-store-policy#
Show an entity type’s policy and usage.
weikio describe entity-store-policy <p>/<type> [--env E]| Argument or flag | What it does |
|---|---|
<type> |
The type, as project/type. |
Who can run it: a grant whose role has read in the environment.
API: GET /api/v1/environments/{environment}/projects/{project}/entity-store/{type}/policy.
weikio entitystore policy set#
Create an entity type in an environment, or change its policy. The policies of all the environment’s entity types together can’t exceed its entity store budget, and the command prints how much of the budget is allocated.
weikio entitystore policy set <p>/<type> [--env E] [--max-bytes SIZE] [--max-age LENGTH] [--history N] [--max-value-bytes SIZE] [-y]| Argument or flag | What it does |
|---|---|
<type> |
The type, as project/type. |
-- |
Maximum size the type may take, such as 512MiB. |
-- |
Maximum age of an entity, such as 30d. |
-- |
Number of past values kept for an entity. |
-- |
Maximum size of one entity, such as 64KiB. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has entity-store-policy in the environment.
API: PUT /api/v1/environments/{environment}/projects/{project}/entity-store/{type}/policy.
$ weikio entitystore policy set finance/invoice --env production --max-bytes 512MiB --history 2 -yTarget: https://hub.example, project finance (argument), environment production (--env)
entity-store-policy production/finance/invoice created (maxBytes 512 MiB, history 2, revision 57)
production entity store budget: 512 MiB of 2 GiB allocatedweikio entitystore policy delete#
Delete an entity type and its entities from an environment.
weikio entitystore policy delete <p>/<type> [--env E] [-y]| Argument or flag | What it does |
|---|---|
<type> |
The type, as project/type. |
- |
Don’t ask for confirmation. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has entity-store-policy in the environment.
API: DELETE /api/v1/environments/{environment}/projects/{project}/entity-store/{type}/policy.
weikio rename entity-store-policy#
Rename an entity type in every environment that has it.
weikio rename entity-store-policy <p>/<type> <new-name>| Argument or flag | What it does |
|---|---|
<type> |
The type, as project/type. |
<new- |
The new name. |
-- |
Reason for the change, stored with the audit record. |
Who can run it: a grant whose role has entity-store-policy in the environment.
API: PATCH /api/v1/projects/{project}/entity-store/{type}.
Exit codes#
The commands on this page exit with the codes in the exit code table: 0 on success, 1 when the hub refuses a change, 2 for a usage error, 3 when the key is missing or not allowed, 4 when something isn’t found, 5 for a conflicting change, 6 when the hub can’t be reached and 8 when a document isn’t valid.