Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
f75950f
WIP: add OntologyApprovalRule schema for release review rules
harshach Oct 22, 2026
a5dd249
WIP: record that ontology definition status is derived from releases
harshach Oct 22, 2026
1db68ec
Fixes #35987: Record that native relations instantiate registry relat…
harshach Oct 22, 2026
f124425
WIP: add abstract, source, and deprecation fields to native classes
harshach Oct 22, 2026
c7a302e
Update generated TypeScript types and dereferenced schemas
github-actions[bot] Oct 22, 2026
940bae4
Add IndependentOntologyInverseIT for reciprocal native inverses
harshach Oct 22, 2026
c3357ef
Validate, project, and diff the class model fields
harshach Oct 22, 2026
df641ec
Cover the class model fields in integration tests and record the deci…
harshach Oct 22, 2026
f86721c
WIP: add abstract, source, and deprecation fields to native classes
harshach Oct 22, 2026
6b5163b
Validate, project, and diff the class model fields
harshach Oct 22, 2026
8a960a1
Cover the class model fields in integration tests and record the deci…
harshach Oct 22, 2026
e57ed09
Fix class model integration test assertions for wrapped SDK errors an…
harshach Oct 22, 2026
cbaaf62
Fixes #35981: Derive concept lifecycle status, ontology publication s…
harshach Oct 22, 2026
6132610
WIP: record that ontology definition status is derived from releases
harshach Oct 22, 2026
d21e133
Fixes #35981: Derive concept lifecycle status, ontology publication s…
harshach Oct 22, 2026
a9c9551
WIP: add approvalRule, reviewVotes and the release review read schemas
harshach Oct 23, 2026
216812b
Keep native inverses reciprocal on write
harshach Oct 23, 2026
63023bb
Decide ontology release reviews by the ontology's approval rule
harshach Oct 23, 2026
dde0008
Record votes only for ontology reviews and test the review read model
harshach Oct 23, 2026
322011f
Validate the net change of each ontology definition
harshach Oct 23, 2026
f24cfb3
Offer registry relation types with their inverses in the native picker
harshach Oct 23, 2026
2733b64
chore(playwright): auto-refresh impact-map.generated.json
github-actions[bot] Oct 23, 2026
2cb520f
Skip the reference delete for a definition that does not exist yet
harshach Oct 23, 2026
460408c
Keep the review task's own reviewers and declare approvalRule in the …
harshach Oct 23, 2026
57d6d4e
Fixes #35981: Cover property and ontology edits in the unpublished-ch…
harshach Oct 23, 2026
d7a0267
Match registry inverses by id and link reused property pairs
harshach Oct 23, 2026
0e56fff
Fix review vote durability and authorized pagination
harshach Oct 23, 2026
d8e9904
Keep restored inverses and load every registry page
harshach Oct 23, 2026
213ae31
Attribute inverse cleanup to the deleting user
harshach Oct 23, 2026
4df6f6c
fix: persist workflow votes with terminal task decisions
harshach Oct 23, 2026
1dbf803
Fixes #35981: Clarify the derived publication status contract
harshach Oct 23, 2026
0f16b37
Fixes #35987: Map native ontology changes to browser coverage
harshach Oct 23, 2026
a49d4a7
test: assert ontology review approval rule round trips
harshach Oct 23, 2026
aaf8d05
Fix inverse deletion actor test email length
harshach Oct 23, 2026
55c0778
test(ontology): cover property validation and grouped diff cursors
harshach Oct 23, 2026
f299086
test(ontology): reject release headers as captured definitions
harshach Oct 23, 2026
7b90a6d
feat(ontology): validate captured releases with native SHACL
harshach Oct 24, 2026
a6013a8
Merge main into ontology review rule branch for stacked integration
harshach Oct 25, 2026
358847e
Reconcile published ontology status history with verified local fixes
harshach Oct 25, 2026
50f6f0c
Reconcile published ontology class history with verified local fixes
harshach Oct 25, 2026
a823058
Merge review rules into ontology definition status stack
harshach Oct 25, 2026
3360180
Merge definition status and complete deprecated release summaries
harshach Oct 25, 2026
5f5866a
Merge ontology class model into native relations stack
harshach Oct 25, 2026
7a00da8
Use the registered fixture actor for inverse rollback tests
harshach Oct 25, 2026
ced0a56
feat: validate captured ontology releases and integrate native relations
harshach Oct 26, 2026
332a46c
Recheck review setup under the lock, list reviews by caller, vote per…
harshach Oct 26, 2026
be53aa8
Cover relationship type reuse after the picker's list went stale
harshach Oct 26, 2026
1e76736
Reload the registry before registering a relationship type
harshach Oct 26, 2026
ab51b62
Test ontology review votes through TaskWorkflowHandler.resolveTask
harshach Oct 26, 2026
5656111
Merge review rule fixes into ontology definition status
harshach Oct 26, 2026
ff88aa3
Merge ontology definition status into ontology class model
harshach Oct 26, 2026
83b8cf2
Merge ontology class model into native relations
harshach Oct 26, 2026
57e3bc1
Merge review rule fixes into ontology definition status
harshach Oct 26, 2026
7e7f82a
Merge ontology definition status into ontology class model
harshach Oct 26, 2026
542cea1
Merge ontology class model into ontology native relations
harshach Oct 26, 2026
8704ca8
Merge ontology native relations into ontology release validation
harshach Oct 26, 2026
6bf5a4e
Cover relationship type creation for users who cannot edit registry t…
harshach Oct 26, 2026
8a892da
Offer a registry inverse only to users who can edit relationship types
harshach Oct 26, 2026
85f84a1
Merge ontology native relations into ontology release validation
harshach Oct 26, 2026
eaf8716
Merge main into ontology review rule
harshach Oct 27, 2026
f35e627
Merge review rule with main into ontology definition status
harshach Oct 27, 2026
f3e05a8
Merge definition status with main into ontology class model
harshach Oct 27, 2026
78758b3
Merge class model with main into ontology native relations
harshach Oct 27, 2026
07dd7ca
Merge native relations with main into release validation
harshach Oct 27, 2026
20e50e5
Keep release and member ID binds within one parameter budget in defin…
harshach Oct 27, 2026
49255f0
Test that restoring an ontology keeps inverse links between its prope…
harshach Oct 27, 2026
cb9fad0
Keep inverse links between properties that a restore brings back toge…
harshach Oct 27, 2026
bfaa026
Test that relation choices follow the rights their writes need
harshach Oct 27, 2026
75ed36c
Offer only the relations whose writes the user may make
harshach Oct 27, 2026
eb95757
Merge definition status into class model
harshach Oct 27, 2026
c922e5f
Test that restoring an ontology drops a link its partner no longer na…
harshach Oct 27, 2026
ea3f287
Drop a restored inverse that its returning partner no longer names
harshach Oct 27, 2026
7f171d2
Test that restoring an ontology drops claims that compete for a live …
harshach Oct 27, 2026
8f8d7ba
Drop restored claims that compete for one live partner
harshach Oct 27, 2026
6aaa172
Reword the restore rule in the record and split the restore test setup
harshach Oct 27, 2026
8a5ced8
Merge class model fixes into native relations
harshach Oct 27, 2026
7a8ba84
Merge native relations fixes into release validation
harshach Oct 27, 2026
00e5bb5
Test each ontology review view over stored tasks
harshach Oct 29, 2026
1690f63
List ontology reviews with the release each task is about
harshach Oct 29, 2026
e4cbfe2
Test that the review list never reads the caller's glossary approvals
harshach Oct 29, 2026
5b94592
List only the approval tasks that are about an ontology release
harshach Oct 29, 2026
422e9fa
Name the tasks in the glossary approval list test
harshach Oct 29, 2026
596f70e
Keep the review list test from registering a glossary repository
harshach Oct 29, 2026
97b1ead
Test that the review list drops a superseded review task
harshach Oct 29, 2026
64f21cc
Test that the review list reads its releases in one statement
harshach Oct 29, 2026
9a3059e
Merge review rule fixes into ontology definition status
harshach Oct 29, 2026
a91f9cb
Merge definition status fixes into class model
harshach Oct 29, 2026
8b9d1d3
Merge class model fixes into native relations
harshach Oct 29, 2026
a25bb67
Merge native relations fixes into release validation
harshach Oct 29, 2026
964b3b7
Merge main into ontology review rule
harshach Oct 29, 2026
d63d512
Merge ontology review rule into ontology definition status
harshach Oct 29, 2026
fca4419
Merge main into ontology class model
harshach Oct 29, 2026
4868c52
Merge main into ontology native relations
harshach Oct 29, 2026
073399e
Merge main into ontology release validation
harshach Oct 29, 2026
cf429f9
Order the AI-mode import and space the graph helpers
harshach Oct 29, 2026
acd9930
Merge ontology native relations into release validation
harshach Oct 29, 2026
7d6de20
Merge main into definition status
harshach Oct 29, 2026
ae01b93
Record PR1's squash merge in definition status
harshach Oct 29, 2026
56bf99b
Test that a retried relation type finishes the pair a failed write left
harshach Oct 29, 2026
e112661
Merge definition status with main into class model
harshach Oct 29, 2026
5e0e747
Finish a relation type pair on retry after a registry write fails
harshach Oct 29, 2026
9021493
Record the definition status squash merge in class model
harshach Oct 29, 2026
bdf9f87
Test that a retry reuses no other inverse and draws the relation once
harshach Oct 29, 2026
6655097
Test that a relabelled retry finishes the earlier pair first
harshach Oct 29, 2026
bf8427c
Finish the earlier pair before planning a relabelled retry
harshach Oct 29, 2026
438734a
Test that a failed repair keeps the inverse and a reverse retry links it
harshach Oct 29, 2026
ecd5b5a
Check the property writes when a retry is drawn as the inverse
harshach Oct 29, 2026
09b4142
Look up the retry label in the repaired registry
harshach Oct 29, 2026
a4b130b
Merge class model with main into native relations
harshach Oct 29, 2026
39badd5
Merge main into native relations
harshach Oct 29, 2026
8f4748f
Record the class model squash merge in native relations
harshach Oct 29, 2026
4da2b2a
Merge native relations with main into release validation
harshach Oct 29, 2026
de5d744
Merge main into release validation
harshach Oct 29, 2026
e6905fe
Record the native relations squash merge in release validation
harshach Oct 29, 2026
469d846
Merge main into release validation
harshach Oct 30, 2026
d368129
Merge main into release validation
harshach Oct 30, 2026
d9d0345
Read every page of bindings before counting a deprecated concept's as…
harshach Oct 30, 2026
9d46571
Merge main into release validation
harshach Oct 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .github/java-tests/impact-map.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{

Check warning on line 1 in .github/java-tests/impact-map.json

View workflow job for this annotation

GitHub Actions / harness-integrity

[java-impact-map] no area owns 1 file in openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ (CustomPropertyReferences.java); add "openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/**" to the sources of the area for that code (the code it imports belongs to 'core' (4)); until then a change there runs the full suite

Check warning on line 1 in .github/java-tests/impact-map.json

View workflow job for this annotation

GitHub Actions / harness-integrity

[java-impact-map] IdBatchesIT (openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IdBatchesIT.java): no area owns it; add a test pattern that matches it to the area for the code it tests ('rdf' owns the other ITs in its package)
"version": 2,
"prHeading": "#### Backend integration tests",
"maven": {
Expand Down Expand Up @@ -712,7 +712,9 @@
"openmetadata-service/src/main/resources/json/data/ontology/**",
"openmetadata-spec/src/main/resources/json/schema/api/data/*Ontology*",
"openmetadata-spec/src/main/resources/json/schema/api/data/ontology*",
"openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/Ontology*IT.java"
"openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/Ontology*IT.java",
"openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IndependentOntologyReleaseValidationIT.java",
"openmetadata-service/src/test/java/org/openmetadata/service/ontology/OntologyReleaseValidationTest.java"
],
"tests": [
"*Ontology*IT",
Expand All @@ -732,7 +734,11 @@
"openmetadata-spec/src/main/resources/json/schema/api/rdf/**",
"openmetadata-spec/src/main/resources/json/schema/api/data/rdf*",
"openmetadata-spec/src/main/resources/rdf/**",
"openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/Rdf*IT.java"
"openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/Rdf*IT.java",
"openmetadata-service/src/test/java/org/openmetadata/service/rdf/RdfShaclReportMapperTest.java",
"openmetadata-service/src/test/java/org/openmetadata/service/rdf/NativeOntologyShapesTest.java",
"openmetadata-service/src/test/java/org/openmetadata/service/rdf/OntologyReleaseProjectionTest.java",
"openmetadata-service/src/test/resources/rdf/shapes/malformed-native-test.ttl"
],
"tests": [
"*Rdf*IT",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Native release validation binds SHACL targets to captured definitions

- **Status:** Accepted
- **Revisions:** v1 2026-10-23 (initial)
- **Deciders:** Harsha
- **Guard:** `NativeOntologyShapesTest`, `OntologyReleaseProjectionTest`, `OntologyReleaseValidationTest`, `IndependentOntologyReleaseValidationIT`
- **Related:** ADR:2026-10-14-ontology-definitions-have-independent-entity-storage

## Context

The release RDF projection declares referenced classes and properties, including IRIs from other ontologies. Raw SHACL shapes target every `owl:Class` or `owl:DatatypeProperty` declaration. Applying those targets unchanged to a captured release would report missing labels on referenced classes that the release does not own.

## Decision

The raw native shapes keep standard `sh:targetClass` declarations. A release validation request copies the shapes graph and replaces those targets with the captured OWL class and DATA property IRIs. The request does not change shared shapes or the export projection.

`GET /api/v1/ontologyReleases/{id}/validation` combines structure findings, native SHACL findings, and current authorized impact for definitions newly deprecated against the literal captured base. It reports `logicalCheck: NOT_RUN`. Warnings do not make the report invalid.

The server verifies and authorizes both complete release manifests on every call. It caches only serialized structure and native findings by verified content digest, with at most 256 entries and 131,072 UTF-16 code units per entry. Release IDs are restored on detached structure reports. Base comparison, captured direct dependencies, and current visible bindings are resolved on every call. Missing current concepts or ontologies retain the binding resolver's 404; authorization failures retain 403.

## Consequences

A historical validation read can return 404 after a newly deprecated current concept is deleted. The report does not turn that missing impact into an empty binding list. Cache hits still read and authorize the manifests, so the cache does not bypass access changes. The impact reads every page of visible bindings, following each `after` cursor until it is null, before it sets `boundAssetCount`.
3 changes: 2 additions & 1 deletion docs/generated/api-reference.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- GENERATED FILE — DO NOT EDIT. Run `make generate-api-reference`. -->

Check warning on line 1 in docs/generated/api-reference.md

View workflow job for this annotation

GitHub Actions / harness-integrity

[generated-fresh] out of date with its source — run `make generate-reference-docs` and commit

# API Reference (endpoint index)

Expand All @@ -13,7 +13,7 @@
- Source is the annotations, **not** `openapi.yml` (a config stub with no endpoints; the
full spec is assembled at runtime by Dropwizard).

**1989 endpoints** across 75 resource packages · 1979 carry a summary.
**1990 endpoints** across 75 resource packages · 1980 carry a summary.

## (root)

Expand Down Expand Up @@ -1452,6 +1452,7 @@
| `GET` | `/v1/ontologyReleases/{id}/members/{kind}/{memberId}` | Read an immutable release member |
| `GET` | `/v1/ontologyReleases/{id}/review` | Read this release's review as the calling user sees it |
| `GET` | `/v1/ontologyReleases/{id}/structure` | Check property declarations and axiom structure in a sealed release |
| `GET` | `/v1/ontologyReleases/{id}/validation` | Validate a sealed ontology release |
| `GET` | `/v1/ontologyReleases/{id}/versions/{version}` | Read the release header version submitted to an approval workflow |
| `GET` | `/v1/relationshipTypes` | List relationship types |
| `POST` | `/v1/relationshipTypes` | Create a relationship type |
Expand Down
Loading
Loading