nmdc-runtime 2.4.0__tar.gz → 2.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nmdc-runtime might be problematic. Click here for more details.
- nmdc_runtime-2.5.0/.docker/mongo_init/initialize_replica_set.sh +44 -0
- nmdc_runtime-2.5.0/.dockerignore +29 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.env.example +1 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.env.test +1 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/workflows/build-and-release-to-spin.yml +5 -2
- nmdc_runtime-2.5.0/.github/workflows/python-app.yml +91 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.gitignore +1 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/Makefile +19 -5
- {nmdc_runtime-2.4.0/nmdc_runtime.egg-info → nmdc_runtime-2.5.0}/PKG-INFO +17 -4
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/README.md +14 -2
- nmdc_runtime-2.5.0/docker-compose.test.yml +144 -0
- nmdc_runtime-2.5.0/docker-compose.yml +130 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/admin.md +1 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/release-process.md +1 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/update-sensors-ops.md +6 -7
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/nb/bulk_validation_referential_integrity_check.ipynb +1 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/nb/wf_automation.ipynb +1 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/tutorials/json.md +84 -51
- nmdc_runtime-2.5.0/nmdc_runtime/Dockerfile +127 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/db/mongo.py +24 -17
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/find.py +283 -0
- nmdc_runtime-2.5.0/nmdc_runtime/api/endpoints/queries.py +418 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/util.py +2 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/query.py +71 -57
- nmdc_runtime-2.5.0/nmdc_runtime/api/models/query_continuation.py +111 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/ops.py +6 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/repair/database_updater.py +12 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/repository.py +2 -2
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/neon_benthic_translator.py +156 -157
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0/nmdc_runtime.egg-info}/PKG-INFO +17 -4
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime.egg-info/SOURCES.txt +4 -3
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/requirements/dev.txt +16 -15
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/requirements/main.in +1 -1
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/requirements/main.txt +74 -75
- nmdc_runtime-2.5.0/tests/__init__.py +22 -0
- nmdc_runtime-2.5.0/tests/lib/faker.py +271 -0
- nmdc_runtime-2.5.0/tests/mongorestore-nmdc-testdb.sh +9 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_api/test_db_mongo.py +66 -3
- nmdc_runtime-2.5.0/tests/test_api/test_endpoints.py +1842 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_api/test_metadata.py +10 -4
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_neon_benthic_data_translator.py +116 -42
- nmdc_runtime-2.5.0/tests/test_the_util/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_util.py +13 -0
- nmdc_runtime-2.4.0/.dockerignore +0 -9
- nmdc_runtime-2.4.0/.github/workflows/python-app.yml +0 -57
- nmdc_runtime-2.4.0/docker-compose.test.yml +0 -110
- nmdc_runtime-2.4.0/docker-compose.yml +0 -99
- nmdc_runtime-2.4.0/nmdc_runtime/api/endpoints/queries.py +0 -242
- nmdc_runtime-2.4.0/nmdc_runtime/dagster.Dockerfile +0 -42
- nmdc_runtime-2.4.0/nmdc_runtime/fastapi.Dockerfile +0 -29
- nmdc_runtime-2.4.0/nmdc_runtime/test.Dockerfile +0 -43
- nmdc_runtime-2.4.0/tests/__init__.py +0 -6
- nmdc_runtime-2.4.0/tests/mongodump-nmdc-testdb.sh +0 -6
- nmdc_runtime-2.4.0/tests/mongorestore-nmdc-testdb.sh +0 -6
- nmdc_runtime-2.4.0/tests/test_api/test_endpoints.py +0 -844
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/pull_request_template.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/workflows/deploy-redirects.yml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/workflows/lint.yml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/workflows/mkdocs.yml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.github/workflows/release-to-pypi.yml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.gitpod.Dockerfile +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.gitpod.yml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/.nvmrc +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/LICENSE +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/RELEASES.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/components/nmdc_runtime/workflow/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/components/nmdc_runtime/workflow/spec.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/components/nmdc_runtime/workflow_execution_activity/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/components/nmdc_runtime/workflow_execution_activity/core.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/components/nmdc_runtime/workflow_execution_activity/spec.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/components/nmdc_runtime/workflow_execution_activity/store.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/README.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/README.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/.gitignore +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/.notebook.env.example +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/bookkeeper.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/helpers.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/manual_test_bookkeeper.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_10_0_0_to_10_1_4.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_10_3_0_to_10_4_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_10_4_0_to_10_9_1.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_10_9_1_to_11_0_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_11_0_0_to_11_0_1.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_11_0_3_to_11_1_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_11_1_0_to_11_2_1.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_11_2_1_to_11_3_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_11_3_0_to_11_4_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_7_7_2_to_7_8_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_7_8_0_to_8_0_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_8_0_0_to_8_1_2.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_8_1_2_to_9_0_4.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_9_0_4_to_9_1_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_9_1_0_to_9_2_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_9_3_2_to_10_0_0.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/migrate_A_B_C_to_X_Y_Z.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/mongosh-scripts/restore-privileges.mongo.js +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/mongosh-scripts/revoke-privileges.mongo.js +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/requirements.txt +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/stakeholders.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/db/migrations/notebooks/test_helpers.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/.env.example +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/GOLDs5levelEcosystemClassificationPaths.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/biosamples.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/console_queries.dev +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/docker-compose.yml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/envo.owl +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/indexing.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_discovery/po.owl +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_migration/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_migration/main.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/demo/metadata_migration/main.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/contributing-docs.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/draft.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/explanation/domain-vision-statement.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/explanation/identifiers.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/explanation/journeys.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/author-changesheets.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/claim-and-run-jobs.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/create-triggers.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/improving-search-api.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/jobs/gold-translation-etl.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/howto-guides/minting-ids.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/auth-button.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/auth-client-id.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/auth-close-modal.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/auth-username.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/dagit-apply-changesheet-job.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/dagster-translation-gold-job.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/dagster-translation-gold-launchpad.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/dagster-translation-gold-overview.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/dagster-translation-repo-jobs.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/dagster-workspace-repo-loaded.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/exporters-dagit.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/job-triggering.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/list-from-collection-filter.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/list-from-collection-page-token.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/list-from-collection.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/metadata-in-dagit-runs.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/metadata-in-put-types.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/nmdc-runtime-federation.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/rancher-nmdc-runtime-dev-workloads.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/translators-dagit.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/validate-json-copy-paste-execute.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/validate-json-get-one-valid.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/validate-json-response.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/validate-json-try-it-out.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/img/validate-json.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/index.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/nb/api_access_via_python.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/nb/get_data.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/nb/queue_and_trigger_data_jobs.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/stylesheets/extra.css +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/tutorials/auth.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/tutorials/exporters.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/tutorials/metadata-in.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs/tutorials/translators.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/design/api-resource-diagram.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/design/api-resource-layout.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/design/nmdc-runtime-api-resource-diagram.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/design/nmdc-wfe.ttl +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/design/redoc-static.html +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/design/spec.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/design/workflow-automation.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/docs_prev/index.html +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/flake.lock +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/flake.nix +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/github_secrets_to_dotenv.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/guix-manifest.scm +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/Makefile +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/README.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/Froze_Core_2015_S2_0_10_7_Metab.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/MAGs_activity.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/biosample_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/changesheet-ex-01-screenshot.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/changesheet-ex-01.csv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/emsl_data_object_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/emsl_project_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/feature-set.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/ftms_nom_data_products.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/functional-annotation.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/gcms_metabolomics_data_products.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/gold_project_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/img_mg_annotation_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/img_mg_annotation_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/metagenome_annotation_activity.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/mg_assembly_activities_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/mg_assembly_data_objects_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/migs-template-cedar.schema.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/nom_analysis_activity.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/readQC_activities_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/readQC_data_objects_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/read_based_analysis_activity.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/examples/study_test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/images/nmdc-etl-workflow.drawio +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/images/nmdc-etl-workflow.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/images/nmdc-etl-workflow.svg +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/Description_MIxS_Packages_v5.docx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/GOLD-Paths-to-MIxS-ENVO-triad-mapping.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSair_20180621_GOLD_Mapping_04132020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSbuiltenv_20180621_GOLD_Mapping_04172020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShostassoc_20180621_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShumanassoc_20180621_GOLD_Mapping_04142020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShumangut_20180621_GOLD_Mapping_04152020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShumanoral_20180621_GOLD_Mapping_04152020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShumanskin_20180621_GOLD_Mapping_04162020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShumanvaginal_20180621_GOLD_04162020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShydrocarbCores_20180621_Mapping_GOLD.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxShydrocarbfs_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSmatbiofilm_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSmisc_20180621_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSplantassoc_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSsediment_20180621_GOLD_Mapping_04102020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSsoil_20180621_GOLD_Mapping_04102020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSwastesludge_20180621_GOLD_Mapping_Apr-10.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/MIxSwater_20180621_GOLD_Mapping_04122020.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/Makefile +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/README.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/mixs_v4.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/mapping-files/mixs_v5.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/202106_curation_updates.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/202106_workflow_execution_demo.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/202109_metadata_ingest.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/NMDC-GOLD-data-counts.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/README.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/archive/generate-gold-sample-json.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/archive/translate-30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/changesheets-example.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/changesheets-testing.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-array-item-nested-attributes.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-insert.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-remove-item.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-remove-property.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-replace.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-update-pi-websites.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-with-separator1.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-without-separator1.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-without-separator2.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/changesheet-without-separator3.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/study-data1.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/study-data2.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/data/study-data3.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/ensure_biosample_set_study_id.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/ghissue_252_253_linked_samples.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/ghissue_255.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/ghissue_272.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/gold-biosample-null-value-analysis.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/gold_ids_to_igsns.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/images/EMSL-data-translation.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/images/GOLD-data-objects-translation.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/images/GOLD-study-project-biosample-translation.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/images/NMDC-jupyter-translation-workflow.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/metaP_stegen.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/metadata_db_admin.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/mongo_etl_demo.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/FICUS-projects-merged.owl +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/FICUS-projects-merged.owl.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/FICUS-projects-translation.owl +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/catalog-v001.xml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/gold-classification-paths-translation.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/gold-classification-paths-translation.json.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/gold-dataset-translation.owl +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json/biosample.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json/data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json/omics_processing.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json/study.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json_2020-02-01.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json_2020-02-05.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json_2020-02-06.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json_2020-02-12.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json_2020-02-18.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/nmdc-json_2020-02-19.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/schema-test-full.txt.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/schema-test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/schema-test.txt +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/schema-test.txt.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/temp.txt +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-five-biosamples/biosample.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-five-biosamples/data_object.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-five-biosamples/project.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-five-biosamples/study.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline/biosample.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline/emsl_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline/emsl_omics_processing.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline/faa_fna_fastq_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline/gold_omics_processing.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline/gold_study.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline/nmdc-02.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/output/test-pipeline.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test-changesheet-with-separator.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test-changesheet-without-separator.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test-output.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test-pipeline-scratch.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test-pipeline-temp.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test-pipeline.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/test.txt +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/translate-EMSL-data.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/translate-GOLD-data-objects.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/translate-GOLD-study-project-biosample.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/notebooks/translation-pipeline.ipynb +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/align_nmdc_datatypes.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/execute_etl_pipeline.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/fix_omics_processing_json.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/data_operations.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/extract_nmdc_data.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/load_nmdc_data.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/nmdc_data_source.yaml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/nmdc_dataframes.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/nmdc_etl_class.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/lib/transform_nmdc_data.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/mandatory_mixs_terms.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/mandatory_mixs_terms.py.org +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/bin/validate_json.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/2020-23-12-brodie-Gs0135149-soil-metadata.csv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/2021-02-03-stegen_biosample_linking_update.csv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/2021-02-04-brodie_biosample_linking_update.csv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/2021-02-04-stegen_biosample_template.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/2021-07-02-study-changes.csv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/EMSL_FICUS_project_process_data_export.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/EMSL_Hess_Stegen_Blanchard_DatasetToMetagenomeMapping.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/EMSL_biosample_matches.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/FICUS - JGI-EMSL Proposal - Gold Study - ID mapping and PI.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/GOLD-soil-mixs-envo-mappings.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/GOLD-to-mixs-map.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/GOLD_Ecosystem_Classification_Paths_10152019.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/GOLD_ecosystem_classification_paths.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/JGI-EMSL-FICUS-proposals.fnl.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/NMDC-GOLD-Fields.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/README.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/Hess_emsl_analysis_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/Hess_metaproteomic_analysis_activities.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/Stegen_emsl_analysis_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/Stegen_metaproteomic_analysis_activities.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_activities.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_activities.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/readQC_activities.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/aim-2-workflows/readQC_data_objects.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/all_gold_fields.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/ficus_project_faa.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/ficus_project_fastq.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/ficus_project_fna.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/mixs_v5.xlsx +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/nmdc-version2.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/metadata-translation/src/data/nmdc-version5.zip +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/mkdocs.yml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/mkdocs_overrides/partials/source.html +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/mongoKeyFile +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nersc-sshproxy.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc-wfe.html +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/analytics.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/boot/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/boot/capabilities.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/boot/object_types.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/boot/triggers.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/boot/workflows.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/core/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/core/auth.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/core/idgen.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/core/metadata.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/core/util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/db/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/db/s3.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/capabilities.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/ids.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/jobs.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/metadata.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/nmdcschema.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/object_types.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/objects.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/operations.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/runs.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/search.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/sites.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/triggers.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/users.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/endpoints/workflows.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/entrypoint.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/main.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/capability.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/id.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/job.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/metadata.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/minter.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/nmdc_schema.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/object.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/object_type.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/operation.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/run.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/site.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/trigger.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/user.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/models/workflow.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/api/v1/router.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/client/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/config.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/containers.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/core/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/core/db/Database.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/core/db/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/core/exceptions/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/core/exceptions/base.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/core/exceptions/token.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/domain/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/domain/users/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/domain/users/queriesInterface.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/domain/users/userSchema.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/domain/users/userService.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/db.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/impl/mongo/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/impl/mongo/db.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/impl/mongo/models/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/impl/mongo/models/user.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/models/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/infrastructure/database/models/user.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/lib/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/lib/extract_nmdc_data.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/lib/load_nmdc_data.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/lib/nmdc_data_source.yaml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/lib/nmdc_dataframes.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/lib/nmdc_etl_class.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/lib/transform_nmdc_data.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/main.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/adapters/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/adapters/repository.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/bootstrap.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/config.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/domain/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/domain/model.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/entrypoints/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/minter/entrypoints/fastapi_app.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/backup/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/backup/nmdcdb_mongodump.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/backup/nmdcdb_mongoexport.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/backup/nmdcdb_mongoimport.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/changesheets/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/changesheets/base.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/changesheets/data/OmicsProcessing-to-catted-Biosamples.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/changesheets/scripts/missing_neon_soils_ecosystem_data.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/changesheets/scripts/neon_soils_add_ncbi_ids.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/dagster.yaml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/drsobjects/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/drsobjects/ingest.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/drsobjects/registration.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/entrypoint-daemon.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/entrypoint-dagit-readonly.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/entrypoint-dagit.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/export/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/export/ncbi_xml.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/export/ncbi_xml_utils.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/export/study_metadata.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/graphs.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/normalization/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/normalization/gold.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/repair/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/resources.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/emsl.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/gold.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/gold_translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/jgi.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/neon_soil_translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/neon_surface_water_translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/neon_utils.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/submission_portal_translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/translation/util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/validation/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/validation/emsl.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/validation/gold.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/validation/jgi.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/validation/util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/site/workspace.yaml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/static/ORCIDiD_icon128x128.png +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/static/favicon.ico +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/templates/search.html +0 -0
- /nmdc_runtime-2.4.0/tests/test_api/__init__.py → /nmdc_runtime-2.5.0/nmdc_runtime/test.Dockerfile +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime/util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime.egg-info/dependency_links.txt +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime.egg-info/entry_points.txt +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/nmdc_runtime.egg-info/top_level.txt +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/requirements/dev.in +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/setup.cfg +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/setup.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tasks.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/conftest.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/e2e/test_minter_api.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/nmdc_bsm-11-0pyv7738.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/nmdc_bsm-11-5nhz3402.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/nmdc_bsm-12-7mysck21.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/nmdc_dobj-11-000n1286.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/nmdc_sty-11-pzmd0x14.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/planned_processes.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/study_no_credit_associations.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/test_changesheet_decimal_value.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/test_changesheet_insert_study_doi.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/test_changesheet_update_bytes_ranged_slot.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/files/test_changesheet_update_one_ph.tsv +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/integration/test_minter_repository.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/nmdcdb.test.archive.gz +0 -0
- {nmdc_runtime-2.4.0/tests/test_data → nmdc_runtime-2.5.0/tests/test_api}/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_api/util.py +0 -0
- {nmdc_runtime-2.4.0/tests/test_graphs → nmdc_runtime-2.5.0/tests/test_data}/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/conftest.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_database_updater.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_gold_translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_gold_translator_data.yaml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_integrity.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_ncbi_xml.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_neon_soil_data_translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_submission_portal_translator.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_submission_portal_translator_data.yaml +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_data/test_translator.py +0 -0
- {nmdc_runtime-2.4.0/tests/test_normalization → nmdc_runtime-2.5.0/tests/test_graphs}/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_graphs/ensure_jobs.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_graphs/test_hello.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_graphs/test_submission_portal_graphs.py +0 -0
- {nmdc_runtime-2.4.0/tests/test_ops → nmdc_runtime-2.5.0/tests/test_normalization}/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_normalization/test_gold.py +0 -0
- {nmdc_runtime-2.4.0/tests/test_the_util → nmdc_runtime-2.5.0/tests/test_ops}/__init__.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_ops/test_data_api_ops.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_ops/test_get_csv_rows_from_url.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_ops/test_gold_api_ops.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_ops/test_materialize_alldocs.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_ops/test_ops.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_the_util/README.md +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/test_the_util/test_the_util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/unit/core_util.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tests/unit/test_minter_model.py +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/tmp.json +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/util/get_latest_nmdc_prod_dump_dir.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/util/mongodump-nmdc.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/util/mongorestore-nmdc.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/wait-for-it.sh +0 -0
- {nmdc_runtime-2.4.0 → nmdc_runtime-2.5.0}/workspace.toml +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#! /bin/sh
|
|
2
|
+
|
|
3
|
+
###############################################################################
|
|
4
|
+
# Overview
|
|
5
|
+
# --------
|
|
6
|
+
# This shell script uses `mongosh` to: (a) check whether the specified MongoDB
|
|
7
|
+
# instance is a member of a replica set and, if is isn't, (b) creates a replica
|
|
8
|
+
# set of which that MongoDB instance is the sole member.
|
|
9
|
+
#
|
|
10
|
+
# This shell script was designed to be run within a Docker container based upon
|
|
11
|
+
# the `mongo:8.0.4` container image (i.e., https://hub.docker.com/_/mongo).
|
|
12
|
+
#
|
|
13
|
+
# Positional parameters
|
|
14
|
+
# ---------------------
|
|
15
|
+
# 1. MongoDB hostname (e.g., "mongo")
|
|
16
|
+
# 2. MongoDB port (e.g., "27017")
|
|
17
|
+
# 3. MongoDB username (e.g., "admin")
|
|
18
|
+
# 4. MongoDB password (e.g., "root")
|
|
19
|
+
#
|
|
20
|
+
# References
|
|
21
|
+
# ----------
|
|
22
|
+
# 1. https://www.mongodb.com/docs/manual/reference/method/rs.status/
|
|
23
|
+
# 2. https://www.mongodb.com/docs/mongodb-shell/reference/options/
|
|
24
|
+
# 3. https://www.warp.dev/terminus/docker-compose-health-check
|
|
25
|
+
###############################################################################
|
|
26
|
+
|
|
27
|
+
echo 'Setting up replica set.'
|
|
28
|
+
|
|
29
|
+
echo '
|
|
30
|
+
try {
|
|
31
|
+
rs.status();
|
|
32
|
+
} catch (e) {
|
|
33
|
+
rs.initiate({ _id: "rs0", members: [{ _id: 0, host: "localhost" }] });
|
|
34
|
+
}
|
|
35
|
+
' | mongosh \
|
|
36
|
+
--host "${1}" \
|
|
37
|
+
--port "${2}" \
|
|
38
|
+
--username "${3}" \
|
|
39
|
+
--password "${4}"
|
|
40
|
+
|
|
41
|
+
echo 'Finished setting up replica set.'
|
|
42
|
+
|
|
43
|
+
# Exit with a status code of 0.
|
|
44
|
+
exit 0
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.env*
|
|
2
|
+
!.env.example
|
|
3
|
+
!.env.test
|
|
4
|
+
.idea
|
|
5
|
+
deployment
|
|
6
|
+
.eggs
|
|
7
|
+
.pytest_cache
|
|
8
|
+
build
|
|
9
|
+
dist
|
|
10
|
+
|
|
11
|
+
# Omit the Docker configuration/specification files from the image build context,
|
|
12
|
+
# so we can edit them without invalidating existing image layers.
|
|
13
|
+
# Reference: https://docs.docker.com/build/concepts/context/#dockerignore-files
|
|
14
|
+
/.dockerignore
|
|
15
|
+
/.docker
|
|
16
|
+
/.gitpod.Dockerfile
|
|
17
|
+
/docker-compose.yml
|
|
18
|
+
/docker-compose.test.yml
|
|
19
|
+
/nmdc_runtime/Dockerfile
|
|
20
|
+
|
|
21
|
+
# Omit any local Python virtual environment from the image build context. The
|
|
22
|
+
# image build process includes its own package download/installation step.
|
|
23
|
+
/venv
|
|
24
|
+
/.venv
|
|
25
|
+
|
|
26
|
+
# Omit residual files left behind by some tests.
|
|
27
|
+
/neon.db
|
|
28
|
+
/neon_api_cache.sqlite
|
|
29
|
+
/neon_cache.sqlite
|
|
@@ -51,4 +51,4 @@ INFO_BANNER_INNERHTML='Announcement: Something important is about to happen. If
|
|
|
51
51
|
|
|
52
52
|
# To get the latest mongo dump directory, run e.g.
|
|
53
53
|
# ssh -i ~/.ssh/nersc -q ${NERSC_USERNAME}@dtn01.nersc.gov 'bash -s ' < util/get_latest_nmdc_prod_dump_dir.sh 2>/dev/null
|
|
54
|
-
MONGO_REMOTE_DUMP_DIR=/global/cfs/projectdirs/m3408/nmdc-mongodumps/dump_nmdc-
|
|
54
|
+
MONGO_REMOTE_DUMP_DIR=/global/cfs/projectdirs/m3408/nmdc-mongodumps/dump_nmdc-prod_2025-02-12_20-12-02
|
|
@@ -9,7 +9,7 @@ on:
|
|
|
9
9
|
paths:
|
|
10
10
|
- '.github/workflows/build-and-release-to-spin.yml'
|
|
11
11
|
- 'Makefile'
|
|
12
|
-
- '
|
|
12
|
+
- '**/Dockerfile'
|
|
13
13
|
- '**.py'
|
|
14
14
|
- 'requirements/main.txt'
|
|
15
15
|
|
|
@@ -78,7 +78,10 @@ jobs:
|
|
|
78
78
|
with:
|
|
79
79
|
context: .
|
|
80
80
|
push: ${{ env.IS_ORIGINAL_REPO }}
|
|
81
|
-
file: nmdc_runtime
|
|
81
|
+
file: nmdc_runtime/Dockerfile
|
|
82
|
+
# Note: Since our `Dockerfile` describes multiple stages, we use the `target` option to specify a stage.
|
|
83
|
+
# Reference: https://github.com/marketplace/actions/build-and-push-docker-images#inputs
|
|
84
|
+
target: ${{ matrix.image }}
|
|
82
85
|
tags: ${{ steps.meta.outputs.tags }}
|
|
83
86
|
labels: ${{ steps.meta.outputs.labels }}
|
|
84
87
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# This GitHub Actions workflow spins up the "test" Docker Compose stack and runs automated tests within it.
|
|
2
|
+
# Reference: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions
|
|
3
|
+
name: Python application
|
|
4
|
+
|
|
5
|
+
# Note: The following events will trigger this workflow:
|
|
6
|
+
# 1. Someone pushes a commit to `main` that includes changes to any of the listed files.
|
|
7
|
+
# 2. Someone opens a pull request that includes changes to any of the listed files.
|
|
8
|
+
# 3. Someone clicks the "Run workflow" button on the "Actions" tab on GitHub.
|
|
9
|
+
#
|
|
10
|
+
# References:
|
|
11
|
+
# - https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/triggering-a-workflow#example-including-paths
|
|
12
|
+
# - https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
|
|
13
|
+
#
|
|
14
|
+
on:
|
|
15
|
+
push:
|
|
16
|
+
branches: [ main ]
|
|
17
|
+
paths:
|
|
18
|
+
- '.github/workflows/python-app.yml'
|
|
19
|
+
- 'Makefile'
|
|
20
|
+
- '**/Dockerfile'
|
|
21
|
+
- '**.py'
|
|
22
|
+
- 'requirements/main.txt'
|
|
23
|
+
# Every file in the `data` directory or in any of its subdirectories:
|
|
24
|
+
- 'metadata-translation/notebooks/data/**'
|
|
25
|
+
pull_request:
|
|
26
|
+
paths:
|
|
27
|
+
- '.github/workflows/python-app.yml'
|
|
28
|
+
- 'Makefile'
|
|
29
|
+
- '**/Dockerfile'
|
|
30
|
+
- '**.py'
|
|
31
|
+
- 'requirements/main.txt'
|
|
32
|
+
- 'metadata-translation/notebooks/data/**'
|
|
33
|
+
# Allow developers to trigger this workflow manually via the "Actions" page on GitHub.
|
|
34
|
+
# Reference: https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow
|
|
35
|
+
workflow_dispatch: { }
|
|
36
|
+
|
|
37
|
+
jobs:
|
|
38
|
+
build:
|
|
39
|
+
runs-on: ubuntu-latest
|
|
40
|
+
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@v4 # update version to maintain consistency across workflows
|
|
43
|
+
# Prepare the MongoDB keyfile to be mounted by the `mongo` container.
|
|
44
|
+
#
|
|
45
|
+
# Note: This is to prevent MongoDB from reporting the error:
|
|
46
|
+
# > "permissions on /path/to/keyfile are too open"
|
|
47
|
+
#
|
|
48
|
+
# Note: This involves making the file be readable _only_ by the OS user that MongoDB runs as.
|
|
49
|
+
#
|
|
50
|
+
# In containers using the `mongo` image, that user is named `mongodb` and has a
|
|
51
|
+
# UID of `999`. That user belongs to a group named `mongodb`, whose GID is `999`.
|
|
52
|
+
# You can verify this by looking at the Dockerfile layers on Docker Hub.
|
|
53
|
+
# Reference: https://hub.docker.com/layers/library/mongo/8.0.5/images/sha256-90bf5066fed8a3cd59345d963922bc5cb557d4b4b2a0e38dfd9ee299c405741b
|
|
54
|
+
#
|
|
55
|
+
# The GHA Runner will allow me to `chmod 600` the file, but not `chown 999:999` it.
|
|
56
|
+
# Since the GHA Runner will not allow me to `chown` the file, I use a Docker container
|
|
57
|
+
# to (effectively) accomplish that. Since—after I use the Docker container to change
|
|
58
|
+
# the file's owner—the GHA Runner will not allow me to then `chmod` the file, I opt to
|
|
59
|
+
# accomplish that within the Docker container as well.
|
|
60
|
+
#
|
|
61
|
+
# The reason—within the Docker container—I do not `chmod` or `chown` the original file
|
|
62
|
+
# directly, is that I am under the impression that ownership/permission changes made
|
|
63
|
+
# within a container to mounted files that already exist on the host will not be seen
|
|
64
|
+
# by the host. I have not found official documentation supporting this yet.
|
|
65
|
+
# TODO: Include a reference about changing mounted file's permission within container.
|
|
66
|
+
#
|
|
67
|
+
- name: Restrict access to MongoDB keyfile
|
|
68
|
+
run: |
|
|
69
|
+
mkdir _tmp
|
|
70
|
+
docker run --rm \
|
|
71
|
+
-v ./mongoKeyFile:/mongoKeyFile \
|
|
72
|
+
-v ./_tmp:/out \
|
|
73
|
+
alpine \
|
|
74
|
+
sh -c 'cp /mongoKeyFile /out/mongoKeyFile && chmod 600 /out/mongoKeyFile && chown 999:999 /out/mongoKeyFile'
|
|
75
|
+
mv _tmp/mongoKeyFile ./mongoKeyFile
|
|
76
|
+
rmdir _tmp
|
|
77
|
+
- name: Set up Python 3.10
|
|
78
|
+
uses: actions/setup-python@v4
|
|
79
|
+
with:
|
|
80
|
+
python-version: '3.10'
|
|
81
|
+
# deprecated: Consider merging python.app.yml and lint.yml
|
|
82
|
+
# - name: Lint with flake8
|
|
83
|
+
# run: |
|
|
84
|
+
# pip install flake8
|
|
85
|
+
# make lint
|
|
86
|
+
- name: Build and run containers upon which test runner depends
|
|
87
|
+
run: make up-test
|
|
88
|
+
- name: Build container image for test runner
|
|
89
|
+
run: make test-build
|
|
90
|
+
- name: Run tests
|
|
91
|
+
run: make test-run
|
|
@@ -38,25 +38,39 @@ update: update-deps init
|
|
|
38
38
|
up-dev:
|
|
39
39
|
docker compose up --build --force-recreate --detach --remove-orphans
|
|
40
40
|
|
|
41
|
+
# Restores the MongoDB dump residing in `./tests/nmdcdb` on the Docker host, into the MongoDB server in the dev stack.
|
|
41
42
|
dev-reset-db:
|
|
42
43
|
docker compose \
|
|
43
|
-
exec mongo /bin/bash -c "
|
|
44
|
+
exec mongo /bin/bash -c "/mongorestore-nmdc-testdb.sh"
|
|
44
45
|
|
|
46
|
+
# Uses Docker Compose to build and spin up the stack upon which the `test` container (i.e. the test runner) depends.
|
|
47
|
+
#
|
|
48
|
+
# Note: This does not build or spin up the `test` container, itself, since the `test` container's Docker Compose service
|
|
49
|
+
# has the "donotstart" profile specified for it in `docker-compose.test.yml`.
|
|
50
|
+
#
|
|
45
51
|
up-test:
|
|
46
52
|
docker compose --file docker-compose.test.yml \
|
|
47
53
|
up --build --force-recreate --detach --remove-orphans
|
|
48
54
|
|
|
55
|
+
# Uses Docker Compose to build the container image for the `test` container (i.e. the test runner).
|
|
49
56
|
test-build:
|
|
50
57
|
docker compose --file docker-compose.test.yml build test
|
|
51
58
|
|
|
52
|
-
test
|
|
59
|
+
# Restores the MongoDB dump residing in `./tests/nmdcdb` on the Docker host, into the MongoDB server in the test stack.
|
|
60
|
+
test-reset-db:
|
|
53
61
|
docker compose --file docker-compose.test.yml \
|
|
54
62
|
exec mongo /bin/bash -c "/mongorestore-nmdc-testdb.sh"
|
|
55
63
|
|
|
56
|
-
#
|
|
57
|
-
#
|
|
64
|
+
# Uses Docker Compose to spin up the `test` container (i.e. the test runner), effectively running the tests.
|
|
65
|
+
#
|
|
66
|
+
# Tip: If you append `ARGS=` and a file path to the `make` command, pytest will run only the tests defined in that file.
|
|
67
|
+
# For example, to run only the tests defined in `tests/test_api/test_endpoints.py`:
|
|
68
|
+
# ```
|
|
69
|
+
# $ make test-run ARGS="tests/test_api/test_endpoints.py"
|
|
70
|
+
# ```
|
|
71
|
+
#
|
|
58
72
|
test-run:
|
|
59
|
-
docker compose --file docker-compose.test.yml run test
|
|
73
|
+
docker compose --file docker-compose.test.yml run test $(ARGS)
|
|
60
74
|
|
|
61
75
|
test: test-build test-run
|
|
62
76
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: nmdc_runtime
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
4
4
|
Summary: A runtime system for NMDC data management and orchestration
|
|
5
5
|
Home-page: https://github.com/microbiomedata/nmdc-runtime
|
|
6
6
|
Author: Donny Winston
|
|
@@ -17,6 +17,7 @@ Dynamic: classifier
|
|
|
17
17
|
Dynamic: description
|
|
18
18
|
Dynamic: description-content-type
|
|
19
19
|
Dynamic: home-page
|
|
20
|
+
Dynamic: license-file
|
|
20
21
|
Dynamic: requires-python
|
|
21
22
|
Dynamic: summary
|
|
22
23
|
|
|
@@ -37,8 +38,7 @@ houses the LinkML schema specification, as well as generated artifacts (e.g. JSO
|
|
|
37
38
|
* [nmdc-server](https://github.com/microbiomedata/nmdc-server)
|
|
38
39
|
houses code specific to the data portal -- its database, back-end API, and front-end application.
|
|
39
40
|
|
|
40
|
-
* [
|
|
41
|
-
references workflow code spread across several repositories, that take source data and produce computed data.
|
|
41
|
+
* Workflows — documented in the [workflows](https://docs.microbiomedata.org/workflows/) section of the NMDC documentation website — take source data and produce computed data.
|
|
42
42
|
|
|
43
43
|
* This repo (nmdc-runtime)
|
|
44
44
|
* houses code that takes source data and computed data, and transforms it
|
|
@@ -156,6 +156,9 @@ Tests can be found in `tests` and are run with the following commands:
|
|
|
156
156
|
```bash
|
|
157
157
|
make up-test
|
|
158
158
|
make test
|
|
159
|
+
|
|
160
|
+
# Run a Specific test file eg. tests/test_api/test_endpoints.py
|
|
161
|
+
make test ARGS="tests/test_api/test_endpoints.py"
|
|
159
162
|
```
|
|
160
163
|
|
|
161
164
|
As you create Dagster solids and pipelines, add tests in `tests/` to check that your code behaves as
|
|
@@ -164,6 +167,16 @@ desired and does not break over time.
|
|
|
164
167
|
[For hints on how to write tests for solids and pipelines in Dagster, see their documentation
|
|
165
168
|
tutorial on Testing](https://docs.dagster.io/tutorial/testable).
|
|
166
169
|
|
|
170
|
+
### RAM usage
|
|
171
|
+
|
|
172
|
+
The `dagster-daemon` and `dagster-dagit` containers can consume a lot of RAM. If tests are failing and the console of
|
|
173
|
+
the `test` container shows "Error 137," here is something you can try as a workaround: In Docker Desktop, go to
|
|
174
|
+
"Settings > Resources > Advanced," and increase the memory limit. One of our team members has
|
|
175
|
+
found **12 GB** to be sufficient for running the tests.
|
|
176
|
+
|
|
177
|
+
> Dedicating 12 GB of RAM to Docker may be prohibitive for some prospective developers.
|
|
178
|
+
> There is an open [issue](https://github.com/microbiomedata/nmdc-runtime/issues/928) about the memory requirement.
|
|
179
|
+
|
|
167
180
|
## Publish to PyPI
|
|
168
181
|
|
|
169
182
|
This repository contains a GitHub Actions workflow that publishes a Python package to [PyPI](https://pypi.org/project/nmdc-runtime/).
|
|
@@ -15,8 +15,7 @@ houses the LinkML schema specification, as well as generated artifacts (e.g. JSO
|
|
|
15
15
|
* [nmdc-server](https://github.com/microbiomedata/nmdc-server)
|
|
16
16
|
houses code specific to the data portal -- its database, back-end API, and front-end application.
|
|
17
17
|
|
|
18
|
-
* [
|
|
19
|
-
references workflow code spread across several repositories, that take source data and produce computed data.
|
|
18
|
+
* Workflows — documented in the [workflows](https://docs.microbiomedata.org/workflows/) section of the NMDC documentation website — take source data and produce computed data.
|
|
20
19
|
|
|
21
20
|
* This repo (nmdc-runtime)
|
|
22
21
|
* houses code that takes source data and computed data, and transforms it
|
|
@@ -134,6 +133,9 @@ Tests can be found in `tests` and are run with the following commands:
|
|
|
134
133
|
```bash
|
|
135
134
|
make up-test
|
|
136
135
|
make test
|
|
136
|
+
|
|
137
|
+
# Run a Specific test file eg. tests/test_api/test_endpoints.py
|
|
138
|
+
make test ARGS="tests/test_api/test_endpoints.py"
|
|
137
139
|
```
|
|
138
140
|
|
|
139
141
|
As you create Dagster solids and pipelines, add tests in `tests/` to check that your code behaves as
|
|
@@ -142,6 +144,16 @@ desired and does not break over time.
|
|
|
142
144
|
[For hints on how to write tests for solids and pipelines in Dagster, see their documentation
|
|
143
145
|
tutorial on Testing](https://docs.dagster.io/tutorial/testable).
|
|
144
146
|
|
|
147
|
+
### RAM usage
|
|
148
|
+
|
|
149
|
+
The `dagster-daemon` and `dagster-dagit` containers can consume a lot of RAM. If tests are failing and the console of
|
|
150
|
+
the `test` container shows "Error 137," here is something you can try as a workaround: In Docker Desktop, go to
|
|
151
|
+
"Settings > Resources > Advanced," and increase the memory limit. One of our team members has
|
|
152
|
+
found **12 GB** to be sufficient for running the tests.
|
|
153
|
+
|
|
154
|
+
> Dedicating 12 GB of RAM to Docker may be prohibitive for some prospective developers.
|
|
155
|
+
> There is an open [issue](https://github.com/microbiomedata/nmdc-runtime/issues/928) about the memory requirement.
|
|
156
|
+
|
|
145
157
|
## Publish to PyPI
|
|
146
158
|
|
|
147
159
|
This repository contains a GitHub Actions workflow that publishes a Python package to [PyPI](https://pypi.org/project/nmdc-runtime/).
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
services:
|
|
2
|
+
|
|
3
|
+
# Postgres server used by Dagster.
|
|
4
|
+
#
|
|
5
|
+
# > This service runs the postgres DB used by dagster for run storage, schedule storage,
|
|
6
|
+
# > and event log storage.
|
|
7
|
+
# > Tests use `postgres:11` image.
|
|
8
|
+
# > https://github.com/dagster-io/dagster/blob/0.11.9/python_modules/libraries/dagster-postgres/dagster_postgres_tests/docker-compose.yml
|
|
9
|
+
#
|
|
10
|
+
dagster-postgresql:
|
|
11
|
+
image: postgres:11
|
|
12
|
+
environment:
|
|
13
|
+
POSTGRES_USER: "postgres_user"
|
|
14
|
+
POSTGRES_PASSWORD: "postgres_password"
|
|
15
|
+
POSTGRES_DB: "postgres_db"
|
|
16
|
+
volumes:
|
|
17
|
+
- postgres_data:/var/lib/postgresql/data
|
|
18
|
+
|
|
19
|
+
# Web server that hosts the Dagster web UI.
|
|
20
|
+
#
|
|
21
|
+
# > This service runs dagit.
|
|
22
|
+
# > Since our instance uses the QueuedRunCoordinator, any runs submitted from dagit will be put on
|
|
23
|
+
# > a queue and later dequeued and launched by dagster-daemon.
|
|
24
|
+
#
|
|
25
|
+
dagster-dagit:
|
|
26
|
+
build:
|
|
27
|
+
context: .
|
|
28
|
+
dockerfile: nmdc_runtime/Dockerfile
|
|
29
|
+
target: dagster
|
|
30
|
+
entrypoint: ["tini", "--", "../lib/nmdc_runtime/site/entrypoint-dagit.sh"]
|
|
31
|
+
expose:
|
|
32
|
+
- "3000"
|
|
33
|
+
ports:
|
|
34
|
+
- "3000:3000"
|
|
35
|
+
environment:
|
|
36
|
+
DAGSTER_POSTGRES_USER: "postgres_user"
|
|
37
|
+
DAGSTER_POSTGRES_PASSWORD: "postgres_password"
|
|
38
|
+
DAGSTER_POSTGRES_DB: "postgres_db"
|
|
39
|
+
depends_on:
|
|
40
|
+
- dagster-postgresql
|
|
41
|
+
restart: on-failure
|
|
42
|
+
volumes:
|
|
43
|
+
- ./:/opt/dagster/lib
|
|
44
|
+
env_file: .env.test
|
|
45
|
+
|
|
46
|
+
# Dagster daemon.
|
|
47
|
+
#
|
|
48
|
+
# > This service runs the dagster-daemon process, which is responsible for taking runs
|
|
49
|
+
# > off of the queue and launching them, as well as creating runs from schedules or sensors.
|
|
50
|
+
#
|
|
51
|
+
dagster-daemon:
|
|
52
|
+
build:
|
|
53
|
+
context: .
|
|
54
|
+
dockerfile: nmdc_runtime/Dockerfile
|
|
55
|
+
target: dagster
|
|
56
|
+
entrypoint: ["tini", "--", "../lib/nmdc_runtime/site/entrypoint-daemon.sh"]
|
|
57
|
+
restart: on-failure
|
|
58
|
+
environment:
|
|
59
|
+
DAGSTER_POSTGRES_USER: "postgres_user"
|
|
60
|
+
DAGSTER_POSTGRES_PASSWORD: "postgres_password"
|
|
61
|
+
DAGSTER_POSTGRES_DB: "postgres_db"
|
|
62
|
+
depends_on:
|
|
63
|
+
dagster-postgresql: { condition: service_started }
|
|
64
|
+
# Wait until the MongoDB replica set has been set up by the "init container"
|
|
65
|
+
# before starting this Dagster daemon container.
|
|
66
|
+
mongo-init: { condition: service_completed_successfully }
|
|
67
|
+
volumes:
|
|
68
|
+
- ./:/opt/dagster/lib
|
|
69
|
+
env_file: .env.test
|
|
70
|
+
|
|
71
|
+
# Uvicorn server hosting the FastAPI application.
|
|
72
|
+
fastapi:
|
|
73
|
+
build:
|
|
74
|
+
context: .
|
|
75
|
+
dockerfile: nmdc_runtime/Dockerfile
|
|
76
|
+
target: fastapi
|
|
77
|
+
ports:
|
|
78
|
+
- "8000:8000"
|
|
79
|
+
volumes:
|
|
80
|
+
- .:/code
|
|
81
|
+
# Wait until the MongoDB replica set has been set up by the "init container"
|
|
82
|
+
# before starting this FastAPI container.
|
|
83
|
+
depends_on:
|
|
84
|
+
mongo-init: { condition: service_completed_successfully }
|
|
85
|
+
env_file: .env.test
|
|
86
|
+
|
|
87
|
+
# Short-lived MongoDB server used to initialize the one used by the FastAPI application.
|
|
88
|
+
mongo-init:
|
|
89
|
+
image: mongo:8.0.4
|
|
90
|
+
volumes:
|
|
91
|
+
- ./wait-for-it.sh:/wait-for-it.sh:ro
|
|
92
|
+
- .docker/mongo_init/initialize_replica_set.sh:/initialize_replica_set.sh:ro
|
|
93
|
+
depends_on:
|
|
94
|
+
mongo: { condition: service_started }
|
|
95
|
+
entrypoint: /bin/bash /wait-for-it.sh --host=mongo --port=27017 --timeout=20 -- /bin/sh /initialize_replica_set.sh mongo 27017 admin root
|
|
96
|
+
|
|
97
|
+
# MongoDB server used by the FastAPI application.
|
|
98
|
+
mongo:
|
|
99
|
+
image: mongo:8.0.4
|
|
100
|
+
ports:
|
|
101
|
+
- "27018:27017"
|
|
102
|
+
restart: unless-stopped
|
|
103
|
+
environment:
|
|
104
|
+
MONGO_INITDB_ROOT_USERNAME: admin
|
|
105
|
+
MONGO_INITDB_ROOT_PASSWORD: root
|
|
106
|
+
# Configure MongoDB to run in replica set mode, so we can use MongoDB transactions.
|
|
107
|
+
#
|
|
108
|
+
# Note: Including a KeyFile is necessary when doing the combination of (a) running MongoDB in
|
|
109
|
+
# replica set mode and (b) running MongoDB with authentication enabled.
|
|
110
|
+
#
|
|
111
|
+
command: ["--replSet", "rs0", "--bind_ip_all", "--keyFile", "/keyFile"]
|
|
112
|
+
volumes:
|
|
113
|
+
- mongo_data:/data/db
|
|
114
|
+
- ./mongoKeyFile:/keyFile:ro
|
|
115
|
+
- ./tests/nmdcdb:/nmdcdb_dump:ro
|
|
116
|
+
- ./tests/mongorestore-nmdc-testdb.sh:/mongorestore-nmdc-testdb.sh:ro
|
|
117
|
+
|
|
118
|
+
# Test runner.
|
|
119
|
+
test:
|
|
120
|
+
# Prevent Docker Compose from starting this service automatically.
|
|
121
|
+
# Reference: https://stackoverflow.com/a/65957695
|
|
122
|
+
profiles:
|
|
123
|
+
- donotstart
|
|
124
|
+
build:
|
|
125
|
+
context: .
|
|
126
|
+
dockerfile: nmdc_runtime/Dockerfile
|
|
127
|
+
target: test
|
|
128
|
+
env_file: .env.test
|
|
129
|
+
depends_on:
|
|
130
|
+
mongo-init: { condition: service_completed_successfully }
|
|
131
|
+
mongo: { condition: service_started }
|
|
132
|
+
fastapi: { condition: service_started }
|
|
133
|
+
dagster-daemon: { condition: service_started }
|
|
134
|
+
dagster-dagit: { condition: service_started }
|
|
135
|
+
volumes:
|
|
136
|
+
- .:/code
|
|
137
|
+
|
|
138
|
+
volumes:
|
|
139
|
+
postgres_data:
|
|
140
|
+
driver: local
|
|
141
|
+
mongo_data:
|
|
142
|
+
driver: local
|
|
143
|
+
|
|
144
|
+
name: nmdc-runtime-test
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
services:
|
|
2
|
+
|
|
3
|
+
# Postgres server used by Dagster.
|
|
4
|
+
#
|
|
5
|
+
# > This service runs the postgres DB used by dagster for run storage, schedule storage,
|
|
6
|
+
# > and event log storage.
|
|
7
|
+
# > Tests use `postgres:11` image.
|
|
8
|
+
# > https://github.com/dagster-io/dagster/blob/0.11.9/python_modules/libraries/dagster-postgres/dagster_postgres_tests/docker-compose.yml
|
|
9
|
+
#
|
|
10
|
+
dagster-postgresql:
|
|
11
|
+
image: postgres:11
|
|
12
|
+
environment:
|
|
13
|
+
POSTGRES_USER: "postgres_user"
|
|
14
|
+
POSTGRES_PASSWORD: "postgres_password"
|
|
15
|
+
POSTGRES_DB: "postgres_db"
|
|
16
|
+
volumes:
|
|
17
|
+
- postgres_data:/var/lib/postgresql/data
|
|
18
|
+
|
|
19
|
+
# Web server that hosts the Dagster web UI.
|
|
20
|
+
#
|
|
21
|
+
# > This service runs dagit.
|
|
22
|
+
# > Since our instance uses the QueuedRunCoordinator, any runs submitted from dagit will be put on
|
|
23
|
+
# > a queue and later dequeued and launched by dagster-daemon.
|
|
24
|
+
#
|
|
25
|
+
dagster-dagit:
|
|
26
|
+
build:
|
|
27
|
+
context: .
|
|
28
|
+
dockerfile: nmdc_runtime/Dockerfile
|
|
29
|
+
target: dagster
|
|
30
|
+
entrypoint: ["tini", "--", "../lib/nmdc_runtime/site/entrypoint-dagit.sh"]
|
|
31
|
+
expose:
|
|
32
|
+
- "3000"
|
|
33
|
+
ports:
|
|
34
|
+
- "3000:3000"
|
|
35
|
+
environment:
|
|
36
|
+
DAGSTER_POSTGRES_USER: "postgres_user"
|
|
37
|
+
DAGSTER_POSTGRES_PASSWORD: "postgres_password"
|
|
38
|
+
DAGSTER_POSTGRES_DB: "postgres_db"
|
|
39
|
+
depends_on:
|
|
40
|
+
- dagster-postgresql
|
|
41
|
+
restart: on-failure
|
|
42
|
+
volumes:
|
|
43
|
+
- ./:/opt/dagster/lib
|
|
44
|
+
env_file: .env
|
|
45
|
+
|
|
46
|
+
# Dagster daemon.
|
|
47
|
+
#
|
|
48
|
+
# > This service runs the dagster-daemon process, which is responsible for taking runs
|
|
49
|
+
# > off of the queue and launching them, as well as creating runs from schedules or sensors.
|
|
50
|
+
#
|
|
51
|
+
dagster-daemon:
|
|
52
|
+
build:
|
|
53
|
+
context: .
|
|
54
|
+
dockerfile: nmdc_runtime/Dockerfile
|
|
55
|
+
target: dagster
|
|
56
|
+
entrypoint: ["tini", "--", "../lib/nmdc_runtime/site/entrypoint-daemon.sh"]
|
|
57
|
+
restart: on-failure
|
|
58
|
+
environment:
|
|
59
|
+
DAGSTER_POSTGRES_USER: "postgres_user"
|
|
60
|
+
DAGSTER_POSTGRES_PASSWORD: "postgres_password"
|
|
61
|
+
DAGSTER_POSTGRES_DB: "postgres_db"
|
|
62
|
+
depends_on:
|
|
63
|
+
dagster-postgresql: { condition: service_started }
|
|
64
|
+
# Wait until the MongoDB replica set has been set up by the "init container"
|
|
65
|
+
# before starting this Dagster daemon container.
|
|
66
|
+
mongo-init: { condition: service_completed_successfully }
|
|
67
|
+
volumes:
|
|
68
|
+
- ./:/opt/dagster/lib
|
|
69
|
+
env_file: .env
|
|
70
|
+
|
|
71
|
+
# Uvicorn server hosting the FastAPI application.
|
|
72
|
+
fastapi:
|
|
73
|
+
build:
|
|
74
|
+
context: .
|
|
75
|
+
dockerfile: nmdc_runtime/Dockerfile
|
|
76
|
+
target: fastapi
|
|
77
|
+
ports:
|
|
78
|
+
- "8000:8000"
|
|
79
|
+
volumes:
|
|
80
|
+
- .:/code
|
|
81
|
+
# Wait until the MongoDB replica set has been set up by the "init container"
|
|
82
|
+
# before starting this FastAPI container.
|
|
83
|
+
depends_on:
|
|
84
|
+
mongo-init: { condition: service_completed_successfully }
|
|
85
|
+
command: ["uvicorn", "nmdc_runtime.api.main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"]
|
|
86
|
+
env_file: .env
|
|
87
|
+
|
|
88
|
+
# Short-lived MongoDB server used to initialize the one used by the FastAPI application.
|
|
89
|
+
mongo-init:
|
|
90
|
+
image: mongo:8.0.4
|
|
91
|
+
volumes:
|
|
92
|
+
- ./wait-for-it.sh:/wait-for-it.sh:ro
|
|
93
|
+
- .docker/mongo_init/initialize_replica_set.sh:/initialize_replica_set.sh:ro
|
|
94
|
+
depends_on:
|
|
95
|
+
mongo: { condition: service_started }
|
|
96
|
+
entrypoint: /bin/bash /wait-for-it.sh --host=mongo --port=27017 --timeout=20 -- /bin/sh /initialize_replica_set.sh mongo 27017 admin root
|
|
97
|
+
|
|
98
|
+
# MongoDB server used by the FastAPI application.
|
|
99
|
+
# TODO: Why does this service (which is in the dev—not test—stack), mount descendants of `./tests` — is that intentional?
|
|
100
|
+
mongo:
|
|
101
|
+
image: mongo:8.0.4
|
|
102
|
+
ports:
|
|
103
|
+
- "27018:27017"
|
|
104
|
+
restart: unless-stopped
|
|
105
|
+
environment:
|
|
106
|
+
MONGO_INITDB_ROOT_USERNAME: admin
|
|
107
|
+
MONGO_INITDB_ROOT_PASSWORD: root
|
|
108
|
+
# Configure MongoDB to run in replica set mode, so we can use MongoDB transactions.
|
|
109
|
+
#
|
|
110
|
+
# Note: Including a KeyFile is necessary when doing the combination of (a) running MongoDB in
|
|
111
|
+
# replica set mode and (b) running MongoDB with authentication enabled.
|
|
112
|
+
#
|
|
113
|
+
command: ["--replSet", "rs0", "--bind_ip_all", "--keyFile", "/keyFile"]
|
|
114
|
+
volumes:
|
|
115
|
+
- mongo_data:/data/db
|
|
116
|
+
- ./mongoKeyFile:/keyFile:ro
|
|
117
|
+
- ./tests/nmdcdb:/nmdcdb_dump:ro
|
|
118
|
+
- ./tests/mongorestore-nmdc-testdb.sh:/mongorestore-nmdc-testdb.sh:ro
|
|
119
|
+
|
|
120
|
+
volumes:
|
|
121
|
+
postgres_data:
|
|
122
|
+
driver: local
|
|
123
|
+
mongo_data:
|
|
124
|
+
driver: local
|
|
125
|
+
|
|
126
|
+
secrets:
|
|
127
|
+
mongoKeyFile:
|
|
128
|
+
file: ./mongoKeyFile
|
|
129
|
+
|
|
130
|
+
name: nmdc-runtime-dev
|
|
@@ -52,7 +52,7 @@ do so at the code level. A suitable template for this is the [implementation of
|
|
|
52
52
|
/users](https://github.com/microbiomedata/nmdc-runtime/blob/1d0feb68fb5ed82ed82c06f9724ecc86f73d83ae/nmdc_runtime/api/endpoints/users.py#L78)
|
|
53
53
|
endpoint. The endpoint code receives the requesting user model via the `get_current_active_user`
|
|
54
54
|
dependency, and it uses the `check_can_create_user` function to verify that the requester can
|
|
55
|
-
administer the "nmdc-runtime-useradmin" site. If not, a `403 Forbidden`
|
|
55
|
+
administer the "nmdc-runtime-useradmin" site. If not, a `403 Forbidden` exception is raised.
|
|
56
56
|
Otherwise, the endpoint logic continues for the authorized user.
|
|
57
57
|
|
|
58
58
|
To add a site ID to an existing user's `site_admin` list, this must currently be done manually at
|
|
@@ -36,7 +36,7 @@ In order to make sure the schema, database, and NMDC Runtime API are in sync we
|
|
|
36
36
|
|
|
37
37
|
Here is a summary of the process:
|
|
38
38
|
|
|
39
|
-
1. [NMDC Schema](https://github.com/microbiomedata/nmdc-schema) repo releases new version. All releases must include a migration script (even if it is null / empty) to run against MongoDB. See [ADR 007](https://github.com/microbiomedata/
|
|
39
|
+
1. [NMDC Schema](https://github.com/microbiomedata/nmdc-schema) repo releases new version. All releases must include a migration script (even if it is null / empty) to run against MongoDB. See [ADR 007](https://github.com/microbiomedata/issues/blob/main/decisions/0007-mongo-migration-scripts.md)
|
|
40
40
|
2. Submit/Merge a PR with updated schema version and any related code changes.
|
|
41
41
|
3. Build a new NMDC-runtime image so that it is ready to be deployed (See above).
|
|
42
42
|
4. Database (Mongo) is switched to read-only mode to prevent inconsistencies.
|