Repository navigation
[DAPS-1912] - refactor: register linkml storage engine with schema handler - #1912
Merged
JoshuaSBrown merged 46 commits intoMar 31, 2026
Merged
Conversation
…e-foxx-schema-integration_3
…ns into used logic for create and revise methods.
…S-core-foxx-schema-integration_3
1830 1902 merge
Contributor
Reviewer's guide (collapsed on small PRs)Reviewer's GuideRegisters the LinkML schema storage engine in SchemaHandler by creating and registering a dedicated storage instance, and prepares for external schema storage and validation by including their headers. Sequence diagram for SchemaHandler construction and LinkML storage registrationsequenceDiagram
actor Server
participant SchemaHandler
participant SchemaStorageFactory
participant ArangoSchemaStorage
Server->>SchemaHandler: construct SchemaHandler(a_db_client)
activate SchemaHandler
SchemaHandler->>ArangoSchemaStorage: create shared ArangoSchemaStorage() as linkml_storage
activate ArangoSchemaStorage
ArangoSchemaStorage-->>SchemaHandler: shared_ptr<ArangoSchemaStorage>
deactivate ArangoSchemaStorage
SchemaHandler->>SchemaStorageFactory: registerStorage(linkml, linkml_storage)
SchemaStorageFactory-->>SchemaHandler: void
deactivate SchemaHandler
Class diagram for SchemaHandler and schema storage registrationclassDiagram
class DatabaseAPI
class SchemaStorage {
<<interface>>
}
class ArangoSchemaStorage {
}
SchemaStorage <|.. ArangoSchemaStorage
class SchemaStorageFactory {
+registerStorage(storageType, storage)
}
class SchemaHandler {
-DatabaseAPI &m_db_client
-SchemaStorageFactory m_schema_factory
+SchemaHandler(a_db_client)
}
SchemaHandler --> DatabaseAPI : uses
SchemaHandler --> SchemaStorageFactory : manages
SchemaHandler ..> ArangoSchemaStorage : creates
SchemaStorageFactory o--> SchemaStorage : owns registered storages
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Contributor
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- The newly added
ExternalSchemaStorage.hppandExternalSchemaValidator.hppheaders are not used in this file and can be removed to avoid unnecessary dependencies. - You can simplify the
linkmlstorage registration by passingstd::make_shared<ArangoSchemaStorage>()directly toregisterStorageinstead of storing it in a local variable and thenstd::move-ing it.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The newly added `ExternalSchemaStorage.hpp` and `ExternalSchemaValidator.hpp` headers are not used in this file and can be removed to avoid unnecessary dependencies.
- You can simplify the `linkml` storage registration by passing `std::make_shared<ArangoSchemaStorage>()` directly to `registerStorage` instead of storing it in a local variable and then `std::move`-ing it.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
… storage backend in client handler.
JoshuaSBrown
changed the base branch from
1830-DAPS-core-foxx-schema-integration_3
to
devel
March 27, 2026 17:12
…kML client handler tests.
…ith docker proxy.
nedvedba
approved these changes
Mar 30, 2026
JoshuaSBrown
deleted the
1905-DAPS-feature-core-add-linkml-in-schema-handler
branch
March 31, 2026 11:04
JoshuaSBrown
added a commit
that referenced
this pull request
Mar 31, 2026
* [DAPS-1912] - refactor: register linkml storage engine with schema handler (#1912) * [DAPS-1919] - python, web support linkml schema (#1921) * [DAPS-1923] - update: version numbers bumped. (#1923) --------- Co-authored-by: Austin Hampton <44103380+megatnt1122@users.noreply.github.com> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
JoshuaSBrown
added a commit
that referenced
this pull request
Apr 1, 2026
* [DAPS-1663] - feature: core, LogContext to dbGetRaw, Correlation_ID to dbMaintenance, metricThread and task_worker (#1885) * [DAPS-1890] - fix: test, mock_core server build (#1890) * [DAPS-1887] - refactor: facility fuse, remove dead code. (#1888) * [DAPS-1857] - feature: python client, tests, support schema functions, to hit feature parity with web ser… (#1859) * [DAPS-1855] - feature, core, add schema factory to decouple schema logic (#1891) * [DAPS-1896] - feature: foxx, schema format and type added to schema create API (#1897) * [DAPS-1893] - feature: common, proto3 add fields for schema type, format, and metadata format (#1894) * [DAPS-1830-1] - refactor: core foxx refactored json schema integration 1 (#1892) * [DAPS-1857-2] - feature: python client schema support (#1895) * [DAPS-1830-2] - refactor: core foxx refactored json schema integration (#1899) * [DAPS-1902] - feature: core, common, get schema api client into compliance with API spec file. (#1903) * [DAPS-1906-1] - feature: add core unit testing to CI (#1907) * [DAPS-1830-3] - refactor: core foxx refactored json schema integration 3 1827 (#1898) * [DAPS-1910] - upgrade: playwright 1.51.1 version. (#1911) * [DAPS-1914] - fix: web, bug in schema id name version mismatch (#1915) * [DAPS-1913] - refactor: foxx ci test scripts consolidate database name and default to different database for tests (#1917) * [DAPS-1916] - tests: add integration test for schema client handler to cmake (#1918) * [DAPS-1912] - refactor: register linkml storage engine with schema handler (#1912) * [DAPS-1919] - feature: python, web support linkml schema (#1921) * [DAPS-1923] - update: version numbers bumped. (#1923) Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: Austin Hampton <amh107@latech.edu> Co-authored-by: Blake Nedved <blakeanedved@gmail.com> Co-authored-by: Polina Shpilker <infinite.loopholes@gmail.com> Co-authored-by: JoshuaSBrown <brownjs@ornl.gov>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Needs
#1918
That pr creates integration tests with the Schema Handler for the json validator and the Arango backend. That needs to be brought into this PR so we can locally test with the linkml pieces once they are integrated.
Summary by Sourcery
New Features: