-
Notifications
You must be signed in to change notification settings - Fork 57
Labels
help wantedNoone is actively working on this, contributions are welcomeNoone is actively working on this, contributions are welcome🐛bugSomething isn't workingSomething isn't working
Description
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
help wantedNoone is actively working on this, contributions are welcomeNoone is actively working on this, contributions are welcome🐛bugSomething isn't workingSomething isn't working