OpenMetadata is a unified metadata platform for data discovery, data observability, and data governance powered by a central metadata repository, in-depth column level lineage, and seamless team collaboration.
Find a file
Sid ca2d0122db
test(playwright): add nightly SAML session renewal coverage (#27619)
* test(playwright): add nightly SAML session renewal spec

Covers OM's JWT refresh behavior for SAML sessions end-to-end against
the local Keycloak fixture: silent refresh after expiry, concurrent
401s queuing behind a single refresh call, and forced re-login when
the server-side SAML HttpSession is gone.

Reuses the snapshot/restore mechanism and keycloak-azure-saml provider
helper introduced in #27164; shortens samlConfiguration.security.token
Validity to 10s so the suite observes multiple expiry cycles in <60s.

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

* Update openmetadata-ui/src/main/resources/ui/playwright/utils/sessionRenewal.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* test(playwright): drop expiry wait from refresh-on-reload SSO specs

The reactive 401 refresh path races with the AuthProvider useEffect that
wires tokenService.renewToken from authenticatorRef — if the 401 from
/users/loggedInUser lands before that effect commits the populated ref,
refreshToken() returns null and the user is logged out instead of refreshed.

With tokenValidity=10s (< EXPIRY_THRESHOLD_MILLES=60s), the UI's proactive
timer in startTokenExpiryTimer fires immediately on every mount, so
/auth/refresh is exercised on each reload regardless of expiry state.
Assertions on token rotation and session continuity still cover "silent
refresh works end-to-end".

The SAML-session-gone case still waits for expiry — it needs to.

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

* test(playwright): trigger refresh via SPA nav in SSO renewal specs

page.reload() remounts React and re-races the axios interceptor setup
in AuthProvider — the useEffect that wires authenticatorRef.renewIdToken
onto TokenService has a ref-typed dependency that doesn't reliably
re-run, so the first 401 after reload sometimes finds renewToken=null
and the interceptor silently logs the user out instead of refreshing.

Click the Explore sidebar link instead. The click triggers authenticated
API calls while staying inside the already-mounted React tree, so the
interceptor always reaches the wired TokenService. Spec now passes
10/10 locally.

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

---------

Co-authored-by: Siddhant <siddhant@MacBook-Pro-621.local>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-05-04 11:48:45 +05:30
.claude feat(ingestion): restore connector-audit skill (#27688) 2026-04-24 10:23:02 +02:00
.devcontainer MINOR - DevContainer Setup for contribution (#26623) 2026-03-20 08:27:30 +01:00
.github test(playwright): add nightly SAML session renewal coverage (#27619) 2026-05-04 11:48:45 +05:30
bin Set Indexing related executor threads priority to LOW (#27153) 2026-04-15 11:28:47 -07:00
bootstrap SearchIndex: tunable index settings + per-stage latency metrics (#27865) 2026-05-02 20:11:06 -07:00
common ISSUE #20212 - TestCase DP Propagation + Search Index Propagation Refactor & Issue (#26901) 2026-04-03 17:32:53 +00:00
conf Containers: batch container data-model column tag retrieval to avoid subtree fan-out (#27836) 2026-04-30 20:55:55 -07:00
docker Perf/redis cache metrics and indexes (#27499) 2026-04-23 12:18:53 +02:00
docs feat: Add auto-classification support for storage service containers (#26495) 2026-04-24 06:29:16 -07:00
examples/python-sdk/data-quality Create documentation resources for Data Quality as Code (closes #23800) (#24169) 2025-11-11 10:25:42 +00:00
ingestion Fixes #27842: Fix unitycataog error when httpPath is missing (#27844) 2026-05-01 18:52:58 +05:30
openmetadata-airflow-apis chore(ingestion): drop pylint, expand ruff (#27774) 2026-04-28 07:21:59 +02:00
openmetadata-clients Deprecate OpenMetadata Java client in favor of new Java SDK (#26388) 2026-03-10 21:30:39 -07:00
openmetadata-dist Deprecate OpenMetadata Java client in favor of new Java SDK (#26388) 2026-03-10 21:30:39 -07:00
openmetadata-integration-tests test: cover glossary CSV typed relations across unit, IT, Playwright (#27740) 2026-05-02 18:08:56 -07:00
openmetadata-k8s-operator Fix omjob pod/label naming length constraints (#27143) 2026-04-16 16:17:25 +02:00
openmetadata-mcp Remove fuzzy match on ngram; merge SearchUtils into single class; add more test coverage (#27636) 2026-04-23 07:46:36 -07:00
openmetadata-sdk Containers: batch container data-model column tag retrieval to avoid subtree fan-out (#27836) 2026-04-30 20:55:55 -07:00
openmetadata-service fix: serve .md files as static assets instead of SPA fallback (#27860) 2026-05-04 10:33:10 +05:30
openmetadata-shaded-deps Reduced version to 3.4 (#26017) 2026-02-20 19:28:21 +05:30
openmetadata-spec SearchIndex: tunable index settings + per-stage latency metrics (#27865) 2026-05-02 20:11:06 -07:00
openmetadata-ui test(playwright): add nightly SAML session renewal coverage (#27619) 2026-05-04 11:48:45 +05:30
openmetadata-ui-core-components fix(ui): restore cover image preview in COVER_IMAGE_UPLOAD field (#27790) 2026-04-29 17:45:43 +05:30
openspec Task redesign (#25894) 2026-04-23 15:52:30 +02:00
scripts Revert "Feature #18173: Version API Improvements" (#26307) (#27837) 2026-04-30 11:23:42 +00:00
skills chore(ingestion): drop pylint, expand ruff (#27774) 2026-04-28 07:21:59 +02:00
.dockerignore RDF, cleanup relations and remove unnecessary bindings, add distributed mode for RDF reindex (#26902) 2026-04-14 13:24:41 -07:00
.git-blame-ignore-revs Minor: update git-blmae-ignore-revs, and uncomment ClassificationResourceTest tests code (#14431) 2023-12-18 19:16:29 -08:00
.gitignore chore(ingestion): enable basedpyright across the codebase via baseline (#27755) 2026-04-27 17:15:44 +02:00
.nojekyll shahsank3t published a site update 2021-08-04 06:23:29 +00:00
.pre-commit-config.yaml chore(ingestion): migrate to ruff for format + isort + unused-import (#27739) 2026-04-27 10:05:28 +02:00
.snyk Ignore _openmetadata_testutils from snyk (#21168) 2025-05-13 18:01:05 +05:30
adr-incident-manager-governance-workflows.md Task redesign (#25894) 2026-04-23 15:52:30 +02:00
AGENTS.md chore(ingestion): drop pylint, expand ruff (#27774) 2026-04-28 07:21:59 +02:00
APPLICATION.md Rename app 'preview' property to 'enabled' (#26170) 2026-03-05 08:29:54 +01:00
CLAUDE.md chore(ingestion): drop pylint, expand ruff (#27774) 2026-04-28 07:21:59 +02:00
CODE_OF_CONDUCT.md Fix #412 - Add code of conduct for OpenMetadata community 2021-09-06 18:57:17 -07:00
CONTRIBUTING.md addded more detail on issue creation in contributors page (#16583) 2024-06-09 14:02:36 -07:00
DEVELOPER.md chore(ingestion): drop pylint, expand ruff (#27774) 2026-04-28 07:21:59 +02:00
generate_ts.sh Feature: Generate TS From JSON (#19823) 2025-02-25 18:18:02 +05:30
INCIDENT_RESPONSE.md Add threat model and incident response (#23603) 2025-09-28 13:17:23 -07:00
LICENSE OpenMetadata snapshot release 0.3 2021-08-01 14:27:44 -07:00
Makefile Chore(UI): consolidated UI checkstyle fix commands and modify workflow comment (#27402) 2026-04-16 17:18:22 +05:30
NOTICE OpenMetadata snapshot release 0.3 2021-08-01 14:27:44 -07:00
package.json fix: Resolve frontend security vulnerabilities in lodash and lodash-es (#27105) 2026-04-07 07:55:25 +00:00
pom.xml Fix(Security): Upgrade netty-bom to 4.1.132.Final to address CVE-2026-33870 and CVE-2026-33871 (#26938) 2026-04-01 16:13:14 +00:00
README.md Update README.md for column-level consistency (#24670) 2025-12-03 07:59:18 -08:00
SECURITY.md Update vulnerability reporting instructions in SECURITY.md (#25651) 2026-01-30 14:03:09 -08:00
THREAT_MODEL.md Add threat model and incident response (#23603) 2025-09-28 13:17:23 -07:00
yarn.lock fix: Resolve frontend security vulnerabilities in lodash and lodash-es (#27105) 2026-04-07 07:55:25 +00:00



Logo

Empower your Data Journey with OpenMetadata

Commit Activity Release

What is OpenMetadata?

OpenMetadata is a unified metadata platform for data discovery, data observability, and data governance powered by a central metadata repository, in-depth column-level lineage, and seamless team collaboration. It is one of the fastest-growing open-source projects with a vibrant community and adoption by a diverse set of companies in a variety of industry verticals. Based on Open Metadata Standards and APIs, supporting connectors to a wide range of data services, OpenMetadata enables end-to-end metadata management, giving you the freedom to unlock the value of your data assets.


Contents:

OpenMetadata Consists of Four Main Components:

  • Metadata Schemas: These are the core definitions and vocabulary for metadata based on common abstractions and types. They also allow for custom extensions and properties to suit different use cases and domains.
  • Metadata Store: This is the central repository for storing and managing the metadata graph, which connects data assets, users, and tool-generated metadata in a unified way.
  • Metadata APIs: These are the interfaces for producing and consuming metadata, built on top of the metadata schemas. They enable seamless integration of user interfaces and tools, systems, and services with the metadata store.
  • Ingestion Framework: This is a pluggable framework for ingesting metadata from various sources and tools to the metadata store. It supports about 84+ connectors for data warehouses, databases, dashboard services, messaging services, pipeline services, and more.

Key Features of OpenMetadata

Data Discovery: Find and explore all your data assets in a single place using various strategies, such as keyword search, data associations, and advanced queries. You can search across tables, topics, dashboards, pipelines, and services.

12


Data Collaboration: Communicate, converse, and cooperate with other users and teams on data assets. You can get event notifications, send alerts, add announcements, create tasks, and use conversation threads.

11


Data Quality and Profiler: Measure and monitor the quality with no-code to build trust in your data. You can define and run data quality tests, group them into test suites, and view the results in an interactive dashboard. With powerful collaboration, make data quality a shared responsibility in your organization.

8


Data Governance: Enforce data policies and standards across your organization. You can define data domains and data products, assign owners and stakeholders, and classify data assets using tags and terms. Use powerful automation features to auto-classify your data.

10


Data Insights and KPIs: Use reports and platform analytics to understand how your organization's data is doing. Data Insights provides a single-pane view of all the key metrics to reflect the state of your data best. Define the Key Performance Indicators (KPIs) and set goals within OpenMetadata to work towards better documentation, ownership, and tiering. Alerts can be set against the KPIs to be received on a specified schedule.

9


Data Lineage: Track and visualize the origin and transformation of your data assets end-to-end. You can view column-level lineage, filter queries, and edit lineage manually using a no-code editor.

Data Documentation: Document your data assets and metadata entities using rich text, images, and links. You can also add comments and annotations and generate data dictionaries and data catalogs.

Data Observability: Monitor the health and performance of your data assets and pipelines. You can view metrics such as data freshness, data volume, data quality, and data latency. You can also set up alerts and notifications for any anomalies or failures.

Data Security: Secure your data and metadata using various authentication and authorization mechanisms. You can integrate with different identity providers for single sign-on and define roles and policies for access control.

Webhooks: Integrate with external applications and services using webhooks. You can register URLs to receive metadata event notifications and integrate with Slack, Microsoft Teams, and Google Chat.

Connectors: Ingest metadata from various sources and tools using connectors. OpenMetadata supports about 84+ connectors for data warehouses, databases, dashboard services, messaging services, pipeline services, and more.

Try our Sandbox

Take a look and play with sample data at http://sandbox.open-metadata.org

Install and Run OpenMetadata

Get up and running in a few minutes. See the OpenMetadata documentation for installation instructions.

Documentation and Support

We're here to help and make OpenMetadata even better! Check out OpenMetadata documentation for a complete description of OpenMetadata's features. Join our Slack Community to get in touch with us if you want to chat, need help, or discuss new feature requirements.

Contributors

We ❤️ all contributions, big and small! Check out our CONTRIBUTING guide to get started, and let us know how we can help.

Don't want to miss anything? Give the project a 🚀

A HUGE THANK YOU to all our supporters!

Stargazers

Stargazers of @open-metadata/OpenMetadata repo

License

OpenMetadata is released under Apache License, Version 2.0