Channels commands

Reference for the `revenexx channels` commands — every subcommand with a runnable example.

Auto-generated. This page is generated from the revenexx CLI by tools/sync-cli-reference.mjs. Don't edit it by hand — your changes will be overwritten.

Every revenexx channels subcommand. The example shows the required arguments; the options table lists every flag the command accepts, with a ✓ marking required flags. Some flag names carry a -_ (e.g. --attribute-_values) — that is the exact token the CLI accepts, so copy them verbatim. Run revenexx channels <command> --help for the live options.

context

Bash
revenexx channels context
FlagRequiredDescription
--channel <channel>Channel code to resolve. Overrides the scope_context.channel claim and the default channel, and is the only way to name a channel explicitly through the gateway.

create

Bash
revenexx channels create \
    --code shop \
    --name Shop
FlagRequiredDescription
--code <code>
--name <name>Display name.
--is-default [value]Mark as the default channel (default false). At most one channel carries it — setting it demotes the previous holder.
--labels <labels>Localized display names. A locale map keyed by language tag: {"en": …, "de": …}. Read the requested tag and fall back to the plain column beside it.
--position <position>Sort position (default 0).
--status <status>Lifecycle status (default 'active'). Whether the channel is in service. What 'inactive' DOES is the tenant's inactive_channel_behavior setting: on 'serve' it is a label and the channel still resolves, on 'block' /channels/context answers resolved:false with reason 'channel_inactive'. Served as the 'channels.statuses' vocabulary.
--type <type>Which channel type this is. One of the codes the tenant keeps under GET /channels/types — served with labels as the 'channels.types' vocabulary. Deliberately NOT an enum: the set is the tenant's own rows, not a CHECK constraint this repo could quote. A fresh install starts with storefront, punchout, marketplace, api, pos, which is why 'storefront' is the example here, but a merchant may rename or retire any of them and add their own (a feed or a print channel), so read the list rather than assuming it. Omitted on create it falls back to the type the tenant flagged as their default, never to a hardcoded value; a code the tenant does not keep is a 400 that names the ones they do.
--unassigned-visibility <unassigned-visibility>

defaults

Bash
revenexx channels defaults

delete

Bash
revenexx channels delete \
    --id ''
FlagRequiredDescription
--id <id>The channel, by id. This is the uuid, not the \

get

Bash
revenexx channels get \
    --id ''
FlagRequiredDescription
--id <id>The channel, by id. This is the uuid, not the \

list

Bash
revenexx channels list
FlagRequiredDescription
--id <id>Filter to one channel by row id. The same row GET /channels/{id} answers, but inside the list envelope — so a caller gets \
--code <code>Filter to one channel by its scope slug. Unique per tenant, so this selects at most one row — the way to turn a scope slug held by another app into the channel it names.
--name <name>Filter by display name. Whole-string, case-sensitive equality — there is no contains or prefix form; \
--labels <labels>Filter by the localized-names map, as an exact jsonb document: the value must be a whole JSON object and it must match the stored map completely, not merely overlap it. Key order and whitespace do not matter (the column is jsonb, which normalizes both); a missing or extra language tag does. A value that is not valid JSON is refused with 400 \
--type <type>Filter to one channel type, by code. One of the codes the tenant keeps under GET /channels/types — served with labels as the 'channels.types' vocabulary. Deliberately NOT an enum: the set is the tenant's own rows, not a CHECK constraint this repo could quote. A fresh install starts with storefront, punchout, marketplace, api, pos, which is why 'storefront' is the example here, but a merchant may rename or retire any of them and add their own (a feed or a print channel), so read the list rather than assuming it.
--status <status>Filter by lifecycle status. A value outside the CHECK constraint is not an error — it simply matches nothing and comes back as a 200 with an empty page.
--unassigned-visibility <unassigned-visibility>Filter by the per-channel visibility override — how a punchout channel that closed its assortment is found. \
--is-default [value]Filter to the default channel — the one a request naming no channel falls back to. More than one row coming back is a misconfiguration; /channels/context reports the same condition as default_ambiguous.
--position <position>Filter by exact sort position. An equality, not a range: there is no \
--created-at <created-at>Filter by exact insert instant — equality to the microsecond, not a range, so this is for reproducing a known row rather than for windowing. Use \
--updated-at <updated-at>Filter by exact last-write instant. Equality to the microsecond, like \
--limit <limit>Page size (default 50, max 200).
--offset <offset>Row offset for pagination (default 0).
--order <order>Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else — or a column this entity does not have — is refused with 400.
--filter <column=value>Filter rows by column equality (repeatable).

types-create

Bash
revenexx channels types-create \
    --code feed \
    --title Product feed
FlagRequiredDescription
--code <code>What \
--title <title>The fallback name. \
--description <description>One sentence on what kind of place this type of channel is, for the merchant choosing between them. Plain text, in the tenant's primary language; \
--descriptions <descriptions>A locale map keyed by language tag: {"en": …, "de": …}. Read the requested tag and fall back to the plain column beside it.
--is-default [value]Promote this type; the previous default is demoted. The default is the type a channel created without one gets.
--labels <labels>A locale map keyed by language tag: {"en": …, "de": …}. Read the requested tag and fall back to the plain column beside it.
--position <position>Sort position (default 0). GET /channels/types answers in this order; ties fall back to the code.
--tone <tone>Badge colour (default 'neutral'). A value outside the palette is ignored rather than refused.

types-delete

Bash
revenexx channels types-delete \
    --id ''
FlagRequiredDescription
--id <id>The channel type, by id. This is the uuid, not the type \

types-get

Bash
revenexx channels types-get \
    --id ''
FlagRequiredDescription
--id <id>The channel type, by id. This is the uuid, not the type \

types-list

Bash
revenexx channels types-list
FlagRequiredDescription
--limit <limit>Page size (default 50, max 200).
--offset <offset>Row offset for pagination (default 0).
--filter <column=value>Filter rows by column equality (repeatable).

types-update

Bash
revenexx channels types-update \
    --id ''
FlagRequiredDescription
--id <id>The channel type, by id. This is the uuid, not the type \
--description <description>Replace the one-sentence description. Sent as null it is cleared; omitted it is kept. \
--descriptions <descriptions>A locale map keyed by language tag: {"en": …, "de": …}. Read the requested tag and fall back to the plain column beside it.
--is-default [value]Promote this type; the previous default is demoted. Only \
--labels <labels>A locale map keyed by language tag: {"en": …, "de": …}. Read the requested tag and fall back to the plain column beside it.
--position <position>Move the type in the order GET /channels/types answers in.
--title <title>Rename the type. A blank or non-string title is ignored, not refused — the stored one is kept.
--tone <tone>Change the badge colour. A value outside the palette is ignored rather than refused, and the stored tone is kept.

update

Bash
revenexx channels update \
    --id ''
FlagRequiredDescription
--id <id>The channel, by id. This is the uuid, not the \
--code <code>
--is-default [value]Mark as the default channel (default false). At most one channel carries it — setting it demotes the previous holder.
--labels <labels>Localized display names. A locale map keyed by language tag: {"en": …, "de": …}. Read the requested tag and fall back to the plain column beside it.
--name <name>Display name.
--position <position>Sort position (default 0).
--status <status>Lifecycle status (default 'active'). Whether the channel is in service. What 'inactive' DOES is the tenant's inactive_channel_behavior setting: on 'serve' it is a label and the channel still resolves, on 'block' /channels/context answers resolved:false with reason 'channel_inactive'. Served as the 'channels.statuses' vocabulary.
--type <type>Which channel type this is. One of the codes the tenant keeps under GET /channels/types — served with labels as the 'channels.types' vocabulary. Deliberately NOT an enum: the set is the tenant's own rows, not a CHECK constraint this repo could quote. A fresh install starts with storefront, punchout, marketplace, api, pos, which is why 'storefront' is the example here, but a merchant may rename or retire any of them and add their own (a feed or a print channel), so read the list rather than assuming it. Omitted on create it falls back to the type the tenant flagged as their default, never to a hardcoded value; a code the tenant does not keep is a 400 that names the ones they do.
--unassigned-visibility <unassigned-visibility>

visibility

Bash
revenexx channels visibility \
    --items one two three
FlagRequiredDescription
--items [items...]
--channel <channel>Channel code to evaluate against, for a caller that would rather not touch the payload. The body field wins if both are sent; everything else about it is identical.
--channel-body <channel-body>The channel \

vocabularies-get

Bash
revenexx channels vocabularies-get \
    --name statuses
FlagRequiredDescription
--name <name>The vocabulary name — the part after the dot in the qualified id.

vocabularies-list

Bash
revenexx channels vocabularies-list
FlagRequiredDescription
--filter <column=value>Filter rows by column equality (repeatable).
Was this page helpful?