Background
Backend PR #3673 adds org-owned NyxID channel bot support to /api/channels/registrations.
The list response now includes owner scope display fields so the frontend can distinguish personal bots from organization-owned bots without calling NyxID org APIs itself:
nyx_channel_bot_owner_scope_id
nyx_channel_bot_owner_scope_name
For personal bots, nyx_channel_bot_owner_scope_name returns personal. For organization-owned bots, it returns the organization display name when NyxID /api/v1/orgs can resolve it; otherwise it may be null while the owner scope id is still present.
Requested frontend work
Update the channel registration UI so the "View all" / registrations list displays organization-owned channel bots clearly.
Expected behavior:
- Show personal bots with a
personal owner label.
- Show organization-owned bots using
nyx_channel_bot_owner_scope_name when present.
- Fall back to
nyx_channel_bot_owner_scope_id or a neutral org label when the name is unavailable.
- Keep existing bind/update/delete affordances aligned with the backend
owned field.
- Do not add frontend-side org enumeration for this view; NyxID visibility is already delegated through backend
scope=all handling.
API contract
GET /api/channels/registrations?scope=all returns both bound and unbound NyxID channel bots visible to the caller through NyxID. Relevant row fields:
{
"nyx_channel_bot_id": "...",
"nyx_channel_bot_owner_scope_id": "org-or-personal-scope",
"nyx_channel_bot_owner_scope_name": "personal or org display name",
"owned": true
}
Acceptance criteria
- The registrations list has an owner/scope indicator for every row.
- Personal rows display
personal.
- Organization-owned rows display the organization name when available.
- Organization-owned rows remain visible in the all-view even when not locally owned.
- The frontend does not make separate NyxID org lookup calls for this feature.
Background
Backend PR #3673 adds org-owned NyxID channel bot support to
/api/channels/registrations.The list response now includes owner scope display fields so the frontend can distinguish personal bots from organization-owned bots without calling NyxID org APIs itself:
nyx_channel_bot_owner_scope_idnyx_channel_bot_owner_scope_nameFor personal bots,
nyx_channel_bot_owner_scope_namereturnspersonal. For organization-owned bots, it returns the organization display name when NyxID/api/v1/orgscan resolve it; otherwise it may benullwhile the owner scope id is still present.Requested frontend work
Update the channel registration UI so the "View all" / registrations list displays organization-owned channel bots clearly.
Expected behavior:
personalowner label.nyx_channel_bot_owner_scope_namewhen present.nyx_channel_bot_owner_scope_idor a neutral org label when the name is unavailable.ownedfield.scope=allhandling.API contract
GET /api/channels/registrations?scope=allreturns both bound and unbound NyxID channel bots visible to the caller through NyxID. Relevant row fields:{ "nyx_channel_bot_id": "...", "nyx_channel_bot_owner_scope_id": "org-or-personal-scope", "nyx_channel_bot_owner_scope_name": "personal or org display name", "owned": true }Acceptance criteria
personal.