dengc367 commented on PR #14347:
URL: https://github.com/apache/gravitino/pull/14347#issuecomment-6491223293
The REST layer, both clients and the user documentation are now in this PR,
so it covers the whole design rather than the first slice. Added in the last
four commits:
- **REST**: `GET/POST /api/metalakes/{metalake}/ontologies` and
`GET/PUT/DELETE .../{ontology}`, with an ordered `{"updates": [...]}` batch
discriminated by `@type` for `rename`, `updateComment`, `setProperty`,
`removeProperty`, `replaceDefinition` and `updateStatus`. `OntologyDispatcher`
/ `OntologyOperationDispatcher` sit over the entity store and are wired into
`GravitinoEnv` and `GravitinoServer`; `OntologyExceptionHandler` maps the new
exceptions onto the shared error responses.
- **DTOs**: `OntologyDTO` plus the definition, concept, relationship, role,
request and response DTOs, and `SupportsOntologies` as the metalake capability.
- **Java client**: `GravitinoMetalake implements SupportsOntologies`, an
ontology error handler and the change-to-request converter.
- **Python client**: a full `api/ontology` model layer, DTOs, requests, an
error handler and the six metalake methods.
- **Docs**: `docs/ontologies.md`, linked from the index, and
`docs/open-api/ontologies.yaml` (validated by `:docs:build`).
Testing: 132 ontology tests — 25 API, 28 converter, 21 entity/service, 15
dispatcher, 7 REST (every endpoint and every update type over the wire), 13
Java client, 23 Python — plus the full Java client suite (377) and the full
Python unit suite (1283), and `./gradlew :docs:build`. All with JDK 17 after
`spotlessApply`.
Two limits are stated in the docs rather than left implicit: Ossie
import/export exists on the Java API but not on REST yet, and `MANAGE_ONTOLOGY`
/ `USE_ONTOLOGY` are specified but not yet grantable, so until they land writes
require metalake ownership and reads require metalake access.
The fork CI is in `action_required`, so a maintainer needs to approve the
workflow run before checks can go green. @mchades @jerryshao, this is ready for
a first review pass — happy to split the REST/client work into a stacked PR if
you would rather review the API and storage first.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]