Secondary Video Asset Functional Parity

Prev Next

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.jsx
  • ViewliftTools-v2/src/components/Content/Modals/EditLiveRenditionSecondary.jsx
  • ViewliftTools-v2/src/hooks/Content/useContentSettings.js
  • cms-v5/src/modules/content/details/sections/video-renditions/index.tsx
  • cms-v5/src/hooks/content/useVideoRenditions.ts
  • cms-v5/src/adapters/content/buildRenditionCards.adapter.ts

Status Legend

  • MATCH -> behavior implemented and reachable in active cms-v5 path
  • PARTIAL -> behavior exists but with material gaps
  • MISSING -> behavior not yet implemented
  • INTENTIONAL_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

  1. SVA-002/SVA-005 (Create HLS path)
  2. SVA-003/SVA-004 (Create DRM seeded-shell visibility)
  3. 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 MISSING for secondary add/edit/preview/download.

Signoff Evidence (Current Pass)

  • Unit/integration verification:
    • src/__tests__/hooks/content/useVideoRenditions.test.ts
    • src/__tests__/modules/content/details/sections/video-renditions/index.test.tsx
    • src/__tests__/adapters/content/buildRenditionCards.adapter.test.ts
    • src/__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