Content -> Secondary Video Asset Functional Parity Checklist
Functional parity tracker for the old ViewliftTools-v2 Add Secondary Video Asset flow against cms-v5.
This checklist tracks flow and behavior parity, not transport implementation details.
Old REST UpdateMetadataAction behavior is intentionally re-expressed through cms-v5 GraphQL-first save boundaries.
Baseline Sources
ViewliftTools-v2/src/components/Content/LiveRenditionAndMezzSecondary.jsxViewliftTools-v2/src/components/Content/Modals/EditLiveRenditionSecondary.jsxViewliftTools-v2/src/hooks/Content/useContentSettings.jscms-v5/src/modules/content/details/sections/video-renditions/index.tsxcms-v5/src/hooks/content/useVideoRenditions.tscms-v5/src/adapters/content/buildRenditionCards.adapter.ts
Status Legend
MATCH-> behavior implemented and reachable in activecms-v5pathPARTIAL-> behavior exists but with material gapsMISSING-> behavior not yet implementedINTENTIONAL_CHANGE-> approved UX/architecture modernization
Parity Matrix
| ID | Behavior | Status | Notes / Evidence |
|---|---|---|---|
| SVA-001 | Secondary rendition surface is live-only | MATCH | Secondary tab visibility is gated to live in video-renditions/index.tsx |
| SVA-002 | Empty-state CTAs expose both Create DRM and Create HLS | MATCH | NoData secondary CTA now wires HLS create flow |
| SVA-003 | Create DRM seeds shell and exits empty state | MATCH | Empty state now depends on secondary object presence; create seeds EMPTY_SECONDARY_VIDEO_ASSETS in useVideoRenditions |
| SVA-004 | Create DRM shows editable DRM tiles before URLs exist | MATCH | buildRenditionCards supports empty DRM cards (FairPlay, PlayReady, Widevine) on secondary seeded shell |
| SVA-005 | Create HLS supports URL entry with Save/Cancel | MATCH | Secondary empty state renders HLS URL create form and saves to secondaryVideoAssets.hls + hlsDetail.url |
| SVA-006 | Edit secondary rendition persists into secondaryVideoAssets |
MATCH | Existing edit save path targets assetFieldName captured at open |
| SVA-007 | Preview/download resolves entitlement from secondaryVideoAssets |
MATCH | Existing entitlement branch by target field name in useVideoRenditions |
| SVA-008 | Publish-before-preview/download guard | MATCH | Existing ensurePublished guard with message parity |
| SVA-009 | Secondary 4K is not part of active secondary add flow | INTENTIONAL_CHANGE | Old secondary save path had is4K commented out; new surface now keeps 4K toggle primary-only |
| SVA-010 | fairPlayCmaf empty shell hidden; card shown when URL present | MATCH | Empty secondary DRM create still omits FairPlay CMAF tile; if fairPlayCmaf.url exists in data, card is rendered (buildRenditionCards) |
Priority Closure Order
- SVA-002/SVA-005 (Create HLS path)
- SVA-003/SVA-004 (Create DRM seeded-shell visibility)
- SVA-009 (secondary 4K alignment)
Signoff Rule
Parity signoff requires:
- all P0 secondary add-flow IDs above moved to
MATCH, and - no active operator path retaining
MISSINGfor secondary add/edit/preview/download.
Signoff Evidence (Current Pass)
- Unit/integration verification:
src/__tests__/hooks/content/useVideoRenditions.test.tssrc/__tests__/modules/content/details/sections/video-renditions/index.test.tsxsrc/__tests__/adapters/content/buildRenditionCards.adapter.test.tssrc/__tests__/adapters/content/videoRenditions.adapter.test.ts
- Residual risk:
- live and vod GraphQL secondary field-shape drift remains out of scope for this parity pass