About me
This bug report is posted on behalf of CBC
Observed Behavior
Internal rundownIds are generated from the studioId and the rundownExternalId which doesn't allow you to create a rundown in another playlist with the same rundownExternalId. playlistExternalId is not considered.
This overrides the content of an already existing rundown with a different playlistExternalId.
export function getRundownId(studioId: StudioId, rundownExternalId: string): RundownId {
if (!studioId) throw new Error('getRundownId: studio not set!')
if (!rundownExternalId) throw new Error('getRundownId: rundownExternalId must be set!')
return protectString<RundownId>(getHash(`${studioId}_${rundownExternalId}`))
}
On other content levels the Id's are based on the parent's Id. (eg.: allowing two rundowns to both have a segment with the segmentExternalId of 'Intro'):
export function getSegmentId(rundownId: RundownId, segmentExternalId: string): SegmentId {
if (!rundownId) throw new Error('getSegmentId: rundownId must be set!')
if (!segmentExternalId) throw new Error('getSegmentId: segmentExternalId must be set!')
return protectString<SegmentId>(getHash(`${rundownId}_segment_${segmentExternalId}`))
}
export function getPartId(rundownId: RundownId, partExternalId: string): PartId {
if (!rundownId) throw new Error('getPartId: rundownId must be set!')
if (!partExternalId) throw new Error('getPartId: partExternalId must be set!')
return protectString<PartId>(getHash(`${rundownId}_part_${partExternalId}`))
}
Expected Behavior
Internal Id's should be unique for each ingested rundown.
Version
26.3.0-2
Severity / Impact
- Temporary fixes can be made to block the creation of new rundowns with existing
rundownExternalIds however that doesn't follow the pattern of other content levels.
- Patching just the function would break the current stable Id's in the system, especially since the Ids cascade.
Level of Involvement
- I am implementing a temporary fix for the Ingest API to block unintended updates
- We need to come up with a plan to roll out a proper fix and also explore ways to make Id's more stable.
About me
This bug report is posted on behalf of CBC
Observed Behavior
Internal
rundownIds are generated from thestudioIdand therundownExternalIdwhich doesn't allow you to create a rundown in another playlist with the samerundownExternalId.playlistExternalIdis not considered.This overrides the content of an already existing rundown with a different
playlistExternalId.On other content levels the Id's are based on the parent's Id. (eg.: allowing two rundowns to both have a segment with the
segmentExternalIdof 'Intro'):Expected Behavior
Internal Id's should be unique for each ingested rundown.
Version
26.3.0-2
Severity / Impact
rundownExternalIds however that doesn't follow the pattern of other content levels.Level of Involvement