Skip to content

Add OSS side login background video - #31681

Merged
anuj-kumary merged 11 commits into
mainfrom
oss-login-video
Aug 19, 2026
Merged

Add OSS side login background video#31681
anuj-kumary merged 11 commits into
mainfrom
oss-login-video

Conversation

@anuj-kumary

@anuj-kumary anuj-kumary commented Aug 18, 2026

Copy link
Copy Markdown
Member

Describe your changes:

Screen.Recording.2026-08-18.at.3.34.17.PM.mov

Type of change:

  • Bug fix
  • Improvement
  • New feature
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation

High-level design:

N/A — small change.

Tests:

Use cases covered

Unit tests

Backend integration tests

Ingestion integration tests

Playwright (UI) tests

Manual testing performed

UI screen recording / screenshots:

Not applicable.

Checklist:

  • I have read the CONTRIBUTING document.
  • My PR title is Fixes <issue-number>: <short explanation>
  • My PR is linked to a GitHub issue via Fixes #<issue-number> above.
  • I have commented on my code, particularly in hard-to-understand areas.
  • For JSON Schema changes: I updated the migration scripts or explained why it is not needed.
  • For UI changes: I attached a screen recording and/or screenshots above.
  • I have added tests (unit / integration / Playwright as applicable) and listed them above.

Summary by Gitar

  • UI updates:
    • Added login background video asset and configured LoginClassBase to return loginVideo
    • Added TypeScript module declaration for importing mp4 files

This will update automatically on new commits.

Greptile Summary

The PR replaces the OSS login-side image carousel with a bundled autoplaying background video and adds the required TypeScript, Jest, Maven-resource, and license-header handling.

  • Configures MP4 and WebM assets for tests and Maven resource processing.
  • Adds the OSS login video asset and exposes it through LoginClassBase.
  • Simplifies LoginCarousel to render the configured video and updates its unit tests.

Confidence Score: 4/5

The PR is not yet safe to merge because the login-side video can leave users with a blank, container-only panel when the media fails to load or play.

The previously reported fallback defect remains: the sole video element has no poster, alternate source, error recovery, or retained carousel content for media failures.

Files Needing Attention: openmetadata-ui/src/main/resources/ui/src/pages/LoginPage/LoginCarousel.tsx

Important Files Changed

Filename Overview
openmetadata-ui/src/main/resources/ui/src/pages/LoginPage/LoginCarousel.tsx Replaces the prior carousel with an autoplaying video, but the previously reported media-failure fallback remains absent.
openmetadata-ui/src/main/resources/ui/src/constants/LoginClassBase.ts Configures the OSS implementation to return the bundled login video.
openmetadata-ui/src/main/resources/ui/jest.config.js Maps MP4 and WebM imports to the existing file mock, resolving the previously reported Jest import problem.
openmetadata-ui/src/main/resources/ui/src/pages/LoginPage/LoginCarousel.test.tsx Updates coverage for configured and absent video states.
openmetadata-ui/pom.xml Excludes video formats from Maven resource filtering.

Reviews (5): Last reviewed commit: "fix(checkstyle): exclude mp4 and webm bi..." | Re-trigger Greptile

Context used:

anuj-kumary and others added 6 commits August 12, 2026 15:50
Add an optional login video to the sign-in carousel. `LoginClassBase`
exposes a `getLoginVideo()` hook that returns `undefined` by default, so
existing deployments are unaffected and keep the image carousel.

When a subclass provides a video, `LoginCarousel` renders a muted,
looping, `playsInline` `<video>` in place of the carousel, and
`CarouselLayout` swaps the media column to the leading position. The
video is styled with Tailwind utilities (`tw:absolute tw:inset-0
tw:object-cover`) so it fills the panel edge-to-edge and is clipped by
the container's existing radius/overflow — no new LESS. Autoplay/loop
are disabled under `prefers-reduced-motion`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@anuj-kumary anuj-kumary self-assigned this Aug 18, 2026
@anuj-kumary anuj-kumary added safe to test Add this label to run secure Github workflows on PRs To release Will cherry-pick this PR into the release branch skip-pr-checks Bypass PR metadata validation check labels Aug 18, 2026
@github-actions github-actions Bot added the UI UI specific issues label Aug 18, 2026
@anuj-kumary
anuj-kumary changed the base branch from main to feat/configurable-login-video August 18, 2026 08:57
Comment thread openmetadata-ui/src/main/resources/ui/src/@types/mp4.d.ts
@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

✅ Playwright Results — workflow succeeded

Validated commit 9d9c55b7f2cb04ebe7cc501ebe09f3e6460e4efb in Playwright run 32132600382, attempt 1.

✅ 551 passed · ❌ 0 failed · 🟡 0 flaky · ⏭️ 0 skipped · 🧰 0 lifecycle flaky

Performance

Blocking targets: ✅ met · Optimization targets: 🟡 in progress

Shard-job maxima below are not the full workflow wall time; the linked run includes build, fixture, planning, and reporting.

🕒 Full workflow signal wall (to summary) 53m 28s

⏱️ Max setup 3m 15s · max shard execution 18m 1s · max shard-job elapsed before upload 21m 42s · reporting 4s

🌐 214.93 requests/attempt · 2.83 app boots/UI scenario · 6.94% common-shard skew

Optimization targets still in progress:

  • Browser traffic was 214.93 requests per attempt (convergence target: fewer than 200).
  • Application boot ratio was 2.83 per UI scenario (1619 boots / 572 scenarios; convergence target: at most 1).
Shard Passed Failed Flaky Skipped Lifecycle failed Lifecycle flaky
✅ Shard chromium-01 133 0 0 0 0 0
✅ Shard chromium-02 133 0 0 0 0 0
✅ Shard chromium-03 133 0 0 0 0 0
✅ Shard data-asset-rules-01 61 0 0 0 0 0
✅ Shard domain-isolation-01 14 0 0 0 0 0
✅ Shard global-state-01 34 0 0 0 0 0
✅ Shard ingestion-01 1 0 0 0 0 0
✅ Shard reindex-01 2 0 0 0 0 0
✅ Shard search-01 11 0 0 0 0 0
✅ Shard search-rbac-01 29 0 0 0 0 0

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

Base automatically changed from feat/configurable-login-video to main August 18, 2026 09:37
@anuj-kumary anuj-kumary changed the title Oss login video Add OSS side login background video Aug 18, 2026
@anuj-kumary
anuj-kumary enabled auto-merge August 18, 2026 10:46
@github-actions

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 66%
66.85% (79916/119536) 51.25% (48774/95154) 52.24% (14607/27961)

Binary video assets were not in .licenseheaderignore, so license-check-and-add
tried to parse the MP4 binary as source code, hit byte sequences that produced
an odd number of @@@  regex-identifier markers, and crashed with
"Odd number of regex identifiers found. One must be missing its close."
@sonarqubecloud

Copy link
Copy Markdown

@anuj-kumary
anuj-kumary added this pull request to the merge queue Aug 18, 2026
Merged via the queue into main with commit 64b095e Aug 19, 2026
88 of 90 checks passed
@anuj-kumary
anuj-kumary deleted the oss-login-video branch August 19, 2026 10:43
@github-project-automation github-project-automation Bot moved this to Done ✅ in Shipping Aug 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Changes have been cherry-picked to the 2.0 branch.

github-actions Bot pushed a commit that referenced this pull request Aug 19, 2026
* feat(login): support a configurable full-screen login video

Add an optional login video to the sign-in carousel. `LoginClassBase`
exposes a `getLoginVideo()` hook that returns `undefined` by default, so
existing deployments are unaffected and keep the image carousel.

When a subclass provides a video, `LoginCarousel` renders a muted,
looping, `playsInline` `<video>` in place of the carousel, and
`CarouselLayout` swaps the media column to the leading position. The
video is styled with Tailwind utilities (`tw:absolute tw:inset-0
tw:object-cover`) so it fills the panel edge-to-edge and is clipped by
the container's existing radius/overflow — no new LESS. Autoplay/loop
are disabled under `prefers-reduced-motion`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix lint checks

* Add OSS side login background video

* nit

* fix lint checks

* fix(checkstyle): exclude mp4 and webm binaries from license header check

Binary video assets were not in .licenseheaderignore, so license-check-and-add
tried to parse the MP4 binary as source code, hit byte sequences that produced
an odd number of @@@  regex-identifier markers, and crashed with
"Odd number of regex identifiers found. One must be missing its close."

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 64b095e)
@github-actions

Copy link
Copy Markdown
Contributor

Changes have been cherry-picked to the 1.13 branch.

github-actions Bot pushed a commit that referenced this pull request Aug 19, 2026
* feat(login): support a configurable full-screen login video

Add an optional login video to the sign-in carousel. `LoginClassBase`
exposes a `getLoginVideo()` hook that returns `undefined` by default, so
existing deployments are unaffected and keep the image carousel.

When a subclass provides a video, `LoginCarousel` renders a muted,
looping, `playsInline` `<video>` in place of the carousel, and
`CarouselLayout` swaps the media column to the leading position. The
video is styled with Tailwind utilities (`tw:absolute tw:inset-0
tw:object-cover`) so it fills the panel edge-to-edge and is clipped by
the container's existing radius/overflow — no new LESS. Autoplay/loop
are disabled under `prefers-reduced-motion`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix lint checks

* Add OSS side login background video

* nit

* fix lint checks

* fix(checkstyle): exclude mp4 and webm binaries from license header check

Binary video assets were not in .licenseheaderignore, so license-check-and-add
tried to parse the MP4 binary as source code, hit byte sequences that produced
an odd number of @@@  regex-identifier markers, and crashed with
"Odd number of regex identifiers found. One must be missing its close."

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 64b095e)
@gitar-bot

gitar-bot Bot commented Aug 19, 2026

Copy link
Copy Markdown
Code Review ✅ Approved 1 resolved / 1 findings

Replaces the OSS login carousel with a bundled background video asset and updates Jest asset handling for MP4 files. No issues found.

✅ 1 resolved
Quality: Login video ignores prefers-reduced-motion

📄 openmetadata-ui/src/main/resources/ui/src/pages/LoginPage/LoginCarousel.tsx:23-34
This commit removed the previous prefers-reduced-motion handling, so the background video now unconditionally sets autoPlay and loop. Users who request reduced motion will see continuously looping video, an accessibility regression. Consider gating autoPlay/loop on a window.matchMedia('(prefers-reduced-motion: reduce)') check as before, or omit the video for those users.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

anuj-kumary added a commit that referenced this pull request Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check To release Will cherry-pick this PR into the release branch UI UI specific issues

Projects

Status: Done ✅

Development

Successfully merging this pull request may close these issues.

3 participants