PracticeQAAutomation logoPracticeQAAutomation

📘 Project KT · Digital Rights Management

🔐 KeyVault DRM

Multi-DRM licence service console

Complexity
Advanced
Screens
9
Scenarios
8
Test cases
18

1Business context

KeyVault is a multi-DRM licence service console — the back office a streaming company uses to protect content. Operators register content keys, issue Widevine / PlayReady / FairPlay licence tokens with business rules (expiry, rentals, device binding, output protection) and audit every licence decision.

Sign in with OTP and roles, create API keys (secret shown once), register titles with 32-hex content keys, issue Widevine, PlayReady and FairPlay licence tokens with expiry, rental, device-binding and HDCP rules, then redeem them on simulated devices and audit every grant or denial.

2Users & roles

  • 👤 Admin (admin@keyvault.dev) — everything, incl. API keys, services and account
  • 👤 Content Ops (ops@keyvault.dev) — content keys and tokens
  • 👤 Read-only (viewer@keyvault.dev) — dashboards and reports

3Modules & screens

ScreenRouteWhat it does
Login/apps/drmEmail/password, then OTP 135790; lockout after 3 failures
Dashboard/apps/drm/dashboardKPIs, 7-day granted/denied chart, environment switch
Content & keys/apps/drm/contentTitles, 32-hex content keys, KIDs, reveal and rotation
Token generator/apps/drm/tokensDRM, expiry (≤ 30 days), rental, device, HDCP, security level
Playback simulator/apps/drm/simulatorRedeem tokens on devices with time travel; grant or KV-code denial
Reports/apps/drm/reportsFilterable, paginated licence log with CSV export
Services/apps/drm/servicesDRM systems per environment and endpoint URLs
API keys/apps/drm/api-keysCreate (secret shown once), revoke, regenerate
Account/apps/drm/accountToken balance, top-up packs and roles

4Main end-to-end journey

Key to licence

  1. Sign in as admin with OTP 135790
  2. Create API key Storefront and store the secret
  3. Issue a Widevine token for Nebula Drift bound to a1b2c3d4e5f60718 with HDCP required
  4. Redeem on Android phone with that device ID
  5. Redeem again on Chrome desktop
  6. Open Reports

Expected: First redemption grants a LIC- licence; the second is denied with KV-420; both appear in Reports, newest first

5Business rules & validations

  • Two-step login & lockoutBeginner

    Wrong password shows attempts left in drm-login-error; the 3rd failure locks the form (drm-unlock resets). Correct password leads to drm-otp-form; OTP 135790 signs in.

  • Role-based accessIntermediate

    ops@ and viewer@ see access-denied on API keys and Account; viewer@ gets tokens-readonly and a disabled generate-token button.

  • Show-once secretsIntermediate

    create-key opens secret-modal with secret-value (kv_live_…); after secret-done only key-masked-<id> (last 4 chars) remains. revoke-<id> needs confirm-revoke.

  • Hex validationBeginner

    save-title with a 31-char or non-hex key shows error-title-key (KV-201); generate-key fills 32 hex and key-length shows 32 / 32.

  • Token rulesAdvanced

    Expiry +2592001 fails with KV-204 (max 30 days); play duration above the rental period fails with KV-205; a 15-char device ID fails with KV-202.

  • Account-level blockersIntermediate

    No active API key → token-error KV-101; FairPlay disabled in Production → KV-301; balance 0 (drain-balance) → KV-402.

  • Licence decisionsAdvanced

    In the simulator, a wrong device ID gives KV-403, HDCP on Chrome desktop gives KV-420, Widevine level 5 on a phone gives KV-421, and moving sim-offset past expiry gives KV-410.

  • Reports & exportBeginner

    Filter report-drm / report-result, search, walk report-next until disabled, and export-csv downloads keyvault-licences.csv.

6Test data & credentials

URL
/apps/drm
Admin
admin@keyvault.dev / Drm@123
OTP
135790
Other roles
ops@ · viewer@keyvault.dev
Key format
32 hex · device 16 hex

7Glossary

DRM
Digital Rights Management — encrypts content and controls playback via licences
Widevine / PlayReady / FairPlay
Google, Microsoft and Apple DRM systems
Content key / KID
128-bit key (32 hex) that encrypts a title, and its key ID
HDCP
Output protection for connected displays
Licence token
Signed permission a player redeems for a licence

8Watch-outs for automation

  • ⚠️Secrets are shown only once — assert the modal, then the masked value
  • ⚠️Use the simulator's time slider instead of waiting for expiry
  • ⚠️Checks apply in order: DRM enabled → device supports DRM → device ID → expiry → rental → HDCP → security level

9Suggested test strategy

1 · Smoke

5

P1 positive and end-to-end cases — run on every build.

2 · Regression

18

All cases, incl. 5 negative and 5 edge — run before release.

3 · End-to-end

3

Full user journeys — run nightly.

Start with these smoke cases

  • KEYVAULTDRM-01 — Two-step admin sign-in
  • KEYVAULTDRM-02 — Issue a Widevine token
  • KEYVAULTDRM-03 — Redeem a token successfully
  • KEYVAULTDRM-E2E-01 — Key to licence
  • KEYVAULTDRM-E2E-02 — Environment and service rules