1913 daps refactor foxx ci test scripts#1917
Merged
JoshuaSBrown merged 21 commits intodevelfrom Mar 27, 2026
Merged
Conversation
… cleanup with tests.
…ORNL/DataFed into 1913-DAPS-refactor-foxx-ci-test-scripts
…ORNL/DataFed into 1913-DAPS-refactor-foxx-ci-test-scripts
…ORNL/DataFed into 1913-DAPS-refactor-foxx-ci-test-scripts
Contributor
Reviewer's GuideRefactors Foxx CI/test database handling to be environment-driven and safety-aware, introducing configurable test database names, shared db config modules, and updated Docker/CMake wiring while preventing accidental use of the production database by tests. Sequence diagram for Foxx CI test setup with environment-driven databasesequenceDiagram
participant CTest as CTest
participant CMake as CMake_ctest_config
participant Install as install_foxx_sh
participant Arango as ArangoDB
participant ArangoShell as arangosh_db_scripts
CTest->>CMake: run test foxx_setup
CMake->>Install: execute with
Note right of CMake: WORKING_DIRECTORY=core/database/foxx
Note right of Install: DATAFED_DATABASE_NAME=DATAFED_TEST_DATABASE_NAME<br/>ALLOW_PRODUCTION_DB=DATAFED_ALLOW_TESTING_PROD_DATABASE
Install->>Install: read DATAFED_DATABASE_NAME
Install->>Install: default local_DATABASE_NAME="sdms" if unset
Install->>Install: safety check against production name
alt name is sdms and ALLOW_PRODUCTION_DB not true
Install-->>CTest: exit 1 (abort tests)
else allowed or non-sdms name
Install->>Arango: GET /_api/database
Arango-->>Install: list of databases
alt database exists
Install-->>CTest: log "Database exists, do nothing"
else database missing
Install->>ArangoShell: run db_create_js with DATAFED_DATABASE_NAME
ArangoShell->>Arango: create DB and graph
ArangoShell-->>Install: done
end
Install->>Arango: deploy Foxx services in DB
Install-->>CTest: success
end
Class diagram for shared Foxx and arangosh database configuration modulesclassDiagram
class db_env_js {
<<arangosh_module>>
+string DB_NAME
+string GRAPH_NAME
}
class db_config_js {
<<foxx_module>>
+string GRAPH_NAME
+getGraph() object
}
class install_foxx_sh {
<<script>>
+string local_DATABASE_NAME
+string local_allow_prod
+runSafetyCheck()
+ensureDatabaseExists()
+deployFoxxServices()
}
class db_create_js {
<<arangosh_script>>
+createDatabase()
+createGraph()
}
class db_clear_js {
<<arangosh_script>>
+truncateCollections()
}
db_env_js <.. db_create_js : uses
db_env_js <.. db_clear_js : uses
db_config_js <.. coll_router_js : used_by
db_config_js <.. data_router_js : used_by
db_config_js <.. group_router_js : used_by
db_config_js <.. query_router_js : used_by
db_config_js <.. repo_router_js : used_by
db_config_js <.. schema_router_js : used_by
db_config_js <.. support_js : used_by
db_config_js <.. tasks_js : used_by
db_config_js <.. user_router_js : used_by
install_foxx_sh <.. db_env_js : sets DB_NAME
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 CMake
set_tests_propertiesblock now repeats the sameENVIRONMENTstring for almost every Foxx test; consider factoring the commonDATAFED_DATABASE_NAME/ALLOW_PRODUCTION_DBenvironment configuration into aforeach()or helper macro to reduce duplication and chances of drift. - The production-database safety checks (
ALLOW_PRODUCTION_DB, defaulting database names, error messages) are duplicated across several scripts (install_foxx.sh,test_foxx.sh,test_fixture_setup.sh, etc.); extracting this logic into a shared helper or sourcing a common shell fragment would make it easier to keep behavior consistent.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The CMake `set_tests_properties` block now repeats the same `ENVIRONMENT` string for almost every Foxx test; consider factoring the common `DATAFED_DATABASE_NAME`/`ALLOW_PRODUCTION_DB` environment configuration into a `foreach()` or helper macro to reduce duplication and chances of drift.
- The production-database safety checks (`ALLOW_PRODUCTION_DB`, defaulting database names, error messages) are duplicated across several scripts (`install_foxx.sh`, `test_foxx.sh`, `test_fixture_setup.sh`, etc.); extracting this logic into a shared helper or sourcing a common shell fragment would make it easier to keep behavior consistent.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
nedvedba
added a commit
that referenced
this pull request
Mar 31, 2026
* refactor: core server files refactored to support re-use in the mock implementation * refactor: changed mock core server to work with proto3 and reusue abstractions from core server. * fix: prevent defaults being set to undefined, and interpret numbers a… (#1861) * fix: prevent defaults being set to undefined, and interpret numbers and enums as strings. * chore: Auto-format JavaScript files with Prettier * fix: version numbers from proto3 messages follow camel case. (#1868) * docs: fix jsdoc error. * [DAPS-1862] - fix allocation change failure (#1864) * [DAPS-1663] Adding LogContext to dbGetRaw, Correlation_ID to dbMaintenance, metricThread and task_worker (#1885) Co-authored-by: Joshua S Brown <joshbro42867@yahoo.com> Co-authored-by: Joshua S Brown <brownjs@ornl.gov> * fix: 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] - core foxx refactored json schema integration 1 (#1892) * [DAPS-1857-2] python client schema support (#1895) Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * [DAPS-1830-2] - core foxx refactored json schema integration (#1899) * [DAPS-1902] - core, common, feat: get schema api client into compliance with API spec file. (#1903) * [DAPS-1906-1] - feature: add core unit testing to CI (#1907) Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> * [DAPS-1830-3] - core foxx refactored json schema integration 3 1827 (#1898) * [DAPS-1910] - upgrade: playwright 1.51.1 version. (#1911) * [DAPS-1914] - bug, web 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) Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: JoshuaSBrown <brownjs@ornl.gov> Co-authored-by: Joshua S Brown <joshbro42867@yahoo.com> 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.
Ticket
Description
How Has This Been Tested?
Artifacts (if appropriate):
Tasks
Summary by Sourcery
Make Foxx database and graph configuration environment-driven and safer for testing, while updating scripts, tests, and Docker/CI wiring to use a configurable test database by default.
Enhancements:
CI:
Deployment:
Tests: