6.10.2.12 ReleaseChannel
6.10.2.12.1 Purpose¶
A lane of distribution for an application, such as stable, beta or internal. It carries the access rule: which capabilities and entitlement features a caller needs, whether the channel is listed, and whether a release needs approval; recipient Organizations and tester groups attach to it. A caller who does not pass the rule sees the channel as if it did not exist.
6.10.2.12.2 Questions it answers¶
- Which release is current on a channel?
- Who can receive the channel: which capabilities, which entitlements, which Organizations, which testers?
- Is the channel advertised, or reached only by its enrolment link?
- Does a release on this channel need approval?
6.10.2.12.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
application |
ReleaseApplication | 1..1 |
|
name |
string |
1..1 |
(application, name) is unique. |
listed |
boolean |
1..1 |
Default: true.Shown in the client's channel picker and on the download page to those who may receive it. An unlisted channel is reached only by its enrolment link; the access rule applies the same. Replaces visibility (public, restricted, hidden), which mixed who may access with what is advertised. |
requires_approval |
boolean |
1..1 |
Default: true.Always true when the application's audience is public. |
current_release |
Release | 0..1 |
The release of this channel that is active or paused; at most one. |
required_capabilities |
string |
0..* |
Capabilities of the audience's catalog (OrganizationRoleCapabilityEnum for organization, MoonitoringCapabilityEnum for moonitoring; none for public), all of which the caller's role must hold. Empty: everyone in the audience. |
required_features |
string |
0..* |
Entitlement features of Entitlement the caller's Organization must hold, all active; only for the organization audience. Empty: no entitlement needed. |
created_at |
datetime |
1..1 |
|
updated_at |
datetime |
1..1 |
6.10.2.12.4 Relationships¶
References
ReleaseChannel.application→ ReleaseApplication (1..1)ReleaseChannel.current_release→ Release (0..1)
Referenced by
ReleaseApplication.default_channel(0..1)Release.channel(1..1)ReleaseChannelAccess.channel(1..1)ReleaseInstallation.channel(1..1)ReleaseTesterGroup.channels(0..*)
6.10.2.12.5 Rules & constraints¶
- A lane of distribution: stable, beta, internal.
- A caller may enrol or update from the channel when: they belong to the application's audience; no.
- ReleaseChannelAccess row exists or their Organization is listed; their role holds every required capability; their.
- Organization holds every required feature. Or, whatever the above, their verified e-mail is an active ReleaseTester of a group of the channel. Targeting lives here, never on a Release: "only these cooperatives" is a channel with access rows;
rollout_pct(Release.rollout_pct) spreads a release inside it.