nmdc-runtime 1.4.0__tar.gz → 1.4.1__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-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/python-app.yml +1 -1
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.gitignore +5 -1
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/Makefile +1 -2
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/PKG-INFO +1 -1
- nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/bookkeeper.py +127 -0
- nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/manual_test_bookkeeper.py +186 -0
- nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/migrate_10_0_0_to_10_1_4.ipynb +575 -0
- nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/migrate_A_B_C_to_X_Y_Z.ipynb +548 -0
- nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/stakeholders.md +31 -0
- nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/test_helpers.py +78 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docker-compose.test.yml +2 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/metadata.py +3 -3
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/objects.py +6 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/workflows.py +3 -6
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/main.py +7 -1
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/models/workflow_execution_activity.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/users.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/workflows/activities/router.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/workflows/activities.py +1 -4
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/db.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/models/user.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/export/study_metadata.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/emsl.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/jgi.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/neon_soil_translator.py +5 -5
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/emsl.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/gold.py +1 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/jgi.py +1 -0
- nmdc_runtime-1.4.1/nmdc_runtime/static/favicon.ico +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/PKG-INFO +1 -1
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/SOURCES.txt +7 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/dev.txt +22 -20
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/main.in +2 -2
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/main.txt +108 -123
- nmdc_runtime-1.4.1/tests/mongorestore-nmdc-testdb.sh +6 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/test_endpoints.py +8 -0
- nmdc_runtime-1.4.0/tests/mongorestore-nmdc-testdb.sh +0 -6
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.dockerignore +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.env.example +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.env.test +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/pull_request_template.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/build-and-release-to-spin.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/lint.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/mkdocs.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/release-to-pypi.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.gitpod.Dockerfile +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.gitpod.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.nvmrc +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/LICENSE +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/README.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/RELEASES.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow/spec.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/core.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/spec.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/store.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/.env.example +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/GOLDs5levelEcosystemClassificationPaths.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/biosamples.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/console_queries.dev +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/docker-compose.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/envo.owl +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/indexing.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/po.owl +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/main.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/main.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/.gitignore +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/.mongo.yaml.example +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/.notebook.env.example +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/helpers.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_7_7_2_to_7_8_0.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_7_8_0_to_8_0_0.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_8_0_0_to_8_1_2.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_8_1_2_to_9_0_4.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_9_0_4_to_9_1_0.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_9_1_0_to_9_2_0.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_9_3_2_to_10_0_0.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/requirements.txt +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docker-compose.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/admin.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/contributing-docs.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/draft.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/explanation/domain-vision-statement.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/explanation/identifiers.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/explanation/journeys.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/author-changesheets.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/claim-and-run-jobs.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/create-triggers.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/improving-search-api.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/jobs/gold-translation-etl.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/release-process.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/update-sensors-ops.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-button.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-client-id.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-close-modal.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-username.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagit-apply-changesheet-job.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-gold-job.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-gold-launchpad.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-gold-overview.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-repo-jobs.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-workspace-repo-loaded.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/job-triggering.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/list-from-collection-filter.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/list-from-collection-page-token.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/list-from-collection.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/metadata-in-dagit-runs.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/metadata-in-put-types.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/nmdc-runtime-federation.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/rancher-nmdc-runtime-dev-workloads.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-copy-paste-execute.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-get-one-valid.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-response.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-try-it-out.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/index.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/nb/get_data.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/nb/queue_and_trigger_data_jobs.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/nb/wf_automation.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/stylesheets/extra.css +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/tutorials/auth.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/tutorials/json.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/tutorials/metadata-in.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/api-resource-diagram.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/api-resource-layout.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/nmdc-runtime-api-resource-diagram.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/nmdc-wfe.ttl +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/redoc-static.html +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/spec.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/workflow-automation.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/index.html +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/flake.lock +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/flake.nix +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/github_secrets_to_dotenv.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/guix-manifest.scm +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/Makefile +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/README.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/Froze_Core_2015_S2_0_10_7_Metab.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/MAGs_activity.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/biosample_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/changesheet-ex-01-screenshot.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/changesheet-ex-01.csv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/emsl_data_object_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/emsl_project_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/feature-set.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/ftms_nom_data_products.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/functional-annotation.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/gcms_metabolomics_data_products.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/gold_project_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/img_mg_annotation_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/img_mg_annotation_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/metagenome_annotation_activity.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/mg_assembly_activities_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/mg_assembly_data_objects_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/migs-template-cedar.schema.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/nom_analysis_activity.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/readQC_activities_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/readQC_data_objects_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/read_based_analysis_activity.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/study_test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/images/nmdc-etl-workflow.drawio +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/images/nmdc-etl-workflow.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/images/nmdc-etl-workflow.svg +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/Description_MIxS_Packages_v5.docx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/GOLD-Paths-to-MIxS-ENVO-triad-mapping.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSair_20180621_GOLD_Mapping_04132020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSbuiltenv_20180621_GOLD_Mapping_04172020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShostassoc_20180621_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanassoc_20180621_GOLD_Mapping_04142020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumangut_20180621_GOLD_Mapping_04152020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanoral_20180621_GOLD_Mapping_04152020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanskin_20180621_GOLD_Mapping_04162020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanvaginal_20180621_GOLD_04162020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShydrocarbCores_20180621_Mapping_GOLD.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShydrocarbfs_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSmatbiofilm_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSmisc_20180621_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSplantassoc_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSsediment_20180621_GOLD_Mapping_04102020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSsoil_20180621_GOLD_Mapping_04102020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSwastesludge_20180621_GOLD_Mapping_Apr-10.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSwater_20180621_GOLD_Mapping_04122020.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/Makefile +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/README.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/mixs_v4.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/mixs_v5.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/202106_curation_updates.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/202106_workflow_execution_demo.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/202109_metadata_ingest.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/NMDC-GOLD-data-counts.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/README.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/archive/generate-gold-sample-json.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/archive/translate-30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/changesheets-example.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/changesheets-testing.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-array-item-nested-attributes.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-insert.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-remove-item.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-remove-property.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-replace.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-update-pi-websites.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-with-separator1.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-without-separator1.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-without-separator2.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-without-separator3.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/study-data1.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/study-data2.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/study-data3.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ensure_biosample_set_study_id.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ghissue_252_253_linked_samples.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ghissue_255.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ghissue_272.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/gold-biosample-null-value-analysis.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/gold_ids_to_igsns.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/EMSL-data-translation.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/GOLD-data-objects-translation.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/GOLD-study-project-biosample-translation.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/NMDC-jupyter-translation-workflow.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/metaP_stegen.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/metadata_db_admin.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/mongo_etl_demo.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/FICUS-projects-merged.owl +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/FICUS-projects-merged.owl.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/FICUS-projects-translation.owl +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/catalog-v001.xml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.json.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-dataset-translation.owl +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/biosample.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/omics_processing.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/study.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-01.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-05.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-06.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-12.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-18.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-19.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test-full.txt.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test.txt +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test.txt.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/temp.txt +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/biosample.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/data_object.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/project.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/study.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/biosample.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/emsl_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/emsl_omics_processing.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/faa_fna_fastq_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/gold_omics_processing.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/gold_study.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/nmdc-02.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-changesheet-with-separator.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-changesheet-without-separator.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-output.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-pipeline-scratch.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-pipeline-temp.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-pipeline.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test.txt +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translate-EMSL-data.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translate-GOLD-data-objects.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translate-GOLD-study-project-biosample.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translation-pipeline.ipynb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/align_nmdc_datatypes.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/execute_etl_pipeline.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/fix_omics_processing_json.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/data_operations.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/extract_nmdc_data.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/load_nmdc_data.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/nmdc_data_source.yaml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/nmdc_dataframes.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/nmdc_etl_class.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/transform_nmdc_data.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/mandatory_mixs_terms.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/mandatory_mixs_terms.py.org +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/validate_json.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2020-23-12-brodie-Gs0135149-soil-metadata.csv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-02-03-stegen_biosample_linking_update.csv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-02-04-brodie_biosample_linking_update.csv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-02-04-stegen_biosample_template.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-07-02-study-changes.csv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/EMSL_FICUS_project_process_data_export.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/EMSL_Hess_Stegen_Blanchard_DatasetToMetagenomeMapping.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/EMSL_biosample_matches.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/FICUS - JGI-EMSL Proposal - Gold Study - ID mapping and PI.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD-soil-mixs-envo-mappings.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD-to-mixs-map.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD_Ecosystem_Classification_Paths_10152019.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD_ecosystem_classification_paths.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/JGI-EMSL-FICUS-proposals.fnl.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/NMDC-GOLD-Fields.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/README.md +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Hess_emsl_analysis_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Hess_metaproteomic_analysis_activities.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Stegen_emsl_analysis_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Stegen_metaproteomic_analysis_activities.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_activities.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_activities.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/readQC_activities.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/readQC_data_objects.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/all_gold_fields.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/ficus_project_faa.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/ficus_project_fastq.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/ficus_project_fna.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/mixs_v5.xlsx +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/nmdc-version2.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/nmdc-version5.zip +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/mkdocs.yml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/mkdocs_overrides/partials/source.html +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/mongoKeyFile +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nersc-sshproxy.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc-wfe.html +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/analytics.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/capabilities.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/object_types.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/triggers.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/workflows.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/auth.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/idgen.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/mongo.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/s3.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/terminus.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/capabilities.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/find.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/ids.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/jobs.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/metadata.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/nmdcschema.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/object_types.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/operations.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/queries.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/runs.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/search.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/sites.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/triggers.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/users.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/entrypoint.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/capability.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/id.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/job.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/metadata.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/minter.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/nmdc_schema.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/object.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/object_type.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/operation.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/query.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/run.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/site.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/trigger.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/user.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/workflow.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/models/ingest.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/models/users.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/outputs.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/router.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/workflows/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/client/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/containers.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/db/Database.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/db/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/exceptions/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/exceptions/base.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/exceptions/token.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/dagster.Dockerfile +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/queriesInterface.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/userSchema.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/userService.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/fastapi.Dockerfile +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/db.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/models/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/models/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/models/user.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/extract_nmdc_data.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/load_nmdc_data.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/nmdc_data_source.yaml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/nmdc_dataframes.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/nmdc_etl_class.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/transform_nmdc_data.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/main.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/adapters/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/adapters/repository.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/bootstrap.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/config.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/domain/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/domain/model.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/entrypoints/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/entrypoints/fastapi_app.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/nmdc.schema.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/nmdcdb_mongodump.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/nmdcdb_mongoexport.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/nmdcdb_mongoimport.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/base.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/data/OmicsProcessing-to-catted-Biosamples.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/scripts/missing_neon_soils_ecosystem_data.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/scripts/neon_soils_add_ncbi_ids.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/dagster.yaml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/drsobjects/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/drsobjects/ingest.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/drsobjects/registration.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/entrypoint-daemon.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/entrypoint-dagit-readonly.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/entrypoint-dagit.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/export/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/graphs.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/normalization/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/normalization/gold.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/ops.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/repository.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/resources.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/.TDB +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/config.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/generate.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/ingest.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/nmdc.schema.terminusdb.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/schema.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/gold.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/gold_translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/neon_benthic_translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/neon_utils.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/submission_portal_translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/workspace.yaml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/static/ORCIDiD_icon128x128.png +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/templates/pipeline_search.html +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/templates/search.html +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/test.Dockerfile +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/dependency_links.txt +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/entry_points.txt +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/top_level.txt +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/dev.in +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/setup.cfg +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/setup.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tasks.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/terminusdb +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/conftest.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/e2e/test_minter_api.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_bsm-11-5nhz3402.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_bsm-12-7mysck21.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_dobj-11-000n1286.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_sty-11-pzmd0x14.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/test_changesheet_update_one_ph.tsv +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/integration/test_minter_repository.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/mongodump-nmdc-testdb.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/nmdcdb.test.archive.gz +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/test_db_mongo.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/test_metadata.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/conftest.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_gold_translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_gold_translator_data.yaml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_integrity.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_neon_benthic_data_translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_neon_soil_data_translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_submission_portal_translator.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_submission_portal_translator_data.yaml +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/ensure_jobs.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/test_hello.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/test_submission_portal_graphs.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_normalization/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_normalization/test_gold.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_data_api_ops.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_get_csv_rows_from_url.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_gold_api_ops.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_hello.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/unit/core_util.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/unit/test_minter_model.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/domain/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/domain/service/__init__.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/domain/service/test_user_service.py +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tmp.json +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/util/mongodump-nmdc.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/util/mongorestore-nmdc.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/wait-for-it.sh +0 -0
- {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/workspace.toml +0 -0
|
@@ -29,8 +29,7 @@ up-test:
|
|
|
29
29
|
up --build --force-recreate --detach --remove-orphans
|
|
30
30
|
|
|
31
31
|
test-build:
|
|
32
|
-
docker compose --file docker-compose.test.yml
|
|
33
|
-
up test --build --force-recreate --detach --remove-orphans
|
|
32
|
+
docker compose --file docker-compose.test.yml build test
|
|
34
33
|
|
|
35
34
|
test-dbinit:
|
|
36
35
|
docker compose --file docker-compose.test.yml \
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
|
|
5
|
+
from pymongo import MongoClient
|
|
6
|
+
from nmdc_schema.migrators.migrator_base import MigratorBase
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class MigrationEvent(str, Enum):
|
|
10
|
+
r"""
|
|
11
|
+
Enumeration of all migration events that can be recorded.
|
|
12
|
+
Reference: https://docs.python.org/3.10/library/enum.html#others
|
|
13
|
+
|
|
14
|
+
>>> MigrationEvent.MIGRATION_COMPLETED.value
|
|
15
|
+
'MIGRATION_COMPLETED'
|
|
16
|
+
>>> MigrationEvent.MIGRATION_STARTED.value
|
|
17
|
+
'MIGRATION_STARTED'
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
MIGRATION_STARTED = "MIGRATION_STARTED"
|
|
21
|
+
MIGRATION_COMPLETED = "MIGRATION_COMPLETED"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class Bookkeeper:
|
|
25
|
+
r"""
|
|
26
|
+
A class you can use to record migration-related events in a Mongo database.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
mongo_client: MongoClient,
|
|
32
|
+
database_name: str = "nmdc",
|
|
33
|
+
collection_name: str = "_migration_events",
|
|
34
|
+
view_name: str = "_migration_latest_schema_version",
|
|
35
|
+
):
|
|
36
|
+
self.database_name = database_name
|
|
37
|
+
self.collection_name = collection_name
|
|
38
|
+
self.view_name = view_name
|
|
39
|
+
|
|
40
|
+
# Store references to the database and collection.
|
|
41
|
+
self.db = mongo_client[self.database_name]
|
|
42
|
+
self.collection = self.db.get_collection(self.collection_name)
|
|
43
|
+
|
|
44
|
+
# Ensure the MongoDB view that indicates the current schema version, exists.
|
|
45
|
+
self.ensure_current_schema_version_view_exists()
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def get_current_timestamp() -> str:
|
|
49
|
+
r"""Returns an ISO 8601 timestamp (string) representing the current time in UTC."""
|
|
50
|
+
utc_now = datetime.utcnow()
|
|
51
|
+
iso_utc_now = utc_now.isoformat()
|
|
52
|
+
return iso_utc_now # e.g. "2024-02-21T04:31:03.115107"
|
|
53
|
+
|
|
54
|
+
def record_migration_event(
|
|
55
|
+
self,
|
|
56
|
+
migrator: MigratorBase,
|
|
57
|
+
event: MigrationEvent,
|
|
58
|
+
to_schema_version: Optional[str] = None,
|
|
59
|
+
) -> None:
|
|
60
|
+
r"""
|
|
61
|
+
Records a migration event in the collection.
|
|
62
|
+
|
|
63
|
+
The `to_schema_version` parameter is independent of the `migrator` parameter because, even though the migrator
|
|
64
|
+
does have a `.get_destination_version()` method, the string returned by that method is the one defined when the
|
|
65
|
+
migrator was _written_, which is sometimes more generic than the one used for data validation when the migrator
|
|
66
|
+
is _run_ (e.g. "1.2" as opposed to "1.2.3"). So, this method provides a means by which the calling code can,
|
|
67
|
+
optionally, specify a more precise version identifier.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
# If a custom schema version identifier was specified, use that; otherwise, use the one built into the migrator.
|
|
71
|
+
to_schema_version_str = migrator.get_destination_version()
|
|
72
|
+
if to_schema_version is not None:
|
|
73
|
+
to_schema_version_str = to_schema_version
|
|
74
|
+
|
|
75
|
+
document = dict(
|
|
76
|
+
created_at=self.get_current_timestamp(),
|
|
77
|
+
event=event.value,
|
|
78
|
+
from_schema_version=migrator.get_origin_version(),
|
|
79
|
+
to_schema_version=to_schema_version_str,
|
|
80
|
+
migrator_module=migrator.__module__, # name of the Python module in which the `Migrator` class is defined
|
|
81
|
+
)
|
|
82
|
+
self.collection.insert_one(document)
|
|
83
|
+
|
|
84
|
+
def ensure_current_schema_version_view_exists(self) -> None:
|
|
85
|
+
r"""
|
|
86
|
+
Ensures the MongoDB view that indicates the current schema version, exists.
|
|
87
|
+
|
|
88
|
+
References:
|
|
89
|
+
- https://www.mongodb.com/community/forums/t/is-there-anyway-to-create-view-using-python/161363/2
|
|
90
|
+
- https://www.mongodb.com/docs/manual/reference/method/db.createView/#mongodb-method-db.createView
|
|
91
|
+
- https://pymongo.readthedocs.io/en/stable/api/pymongo/database.html#pymongo.database.Database.create_collection
|
|
92
|
+
"""
|
|
93
|
+
if (
|
|
94
|
+
self.view_name not in self.db.list_collection_names()
|
|
95
|
+
): # returns list of names of both collections and views
|
|
96
|
+
agg_pipeline = [
|
|
97
|
+
# Sort the documents so the most recent one is first.
|
|
98
|
+
{"$sort": {"created_at": -1}},
|
|
99
|
+
# Only preserve the first document.
|
|
100
|
+
{"$limit": 1},
|
|
101
|
+
# Derive a simplified document for the view.
|
|
102
|
+
# Examples: `{ "schema_version": "1.2.3" }` or `{ "schema_version": null }`
|
|
103
|
+
{
|
|
104
|
+
"$project": {
|
|
105
|
+
"_id": 0, # omit the `_id` field
|
|
106
|
+
"schema_version": { # add this field based upon the migration status
|
|
107
|
+
"$cond": {
|
|
108
|
+
"if": {
|
|
109
|
+
"$eq": [
|
|
110
|
+
"$event",
|
|
111
|
+
MigrationEvent.MIGRATION_COMPLETED.value,
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"then": "$to_schema_version", # database conforms to this version of the NMDC Schema
|
|
115
|
+
"else": None, # database doesn't necessarily conform to any version of the NMDC Schema
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
]
|
|
121
|
+
self.db.create_collection(
|
|
122
|
+
name=self.view_name,
|
|
123
|
+
viewOn=self.collection_name,
|
|
124
|
+
pipeline=agg_pipeline,
|
|
125
|
+
check_exists=True, # only create the view if it doesn't already exist
|
|
126
|
+
comment="The version of the NMDC Schema to which the database conforms.",
|
|
127
|
+
)
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Note: This module's name starts with `manual_test_` instead of `test_` to signify that its author (currently) expects
|
|
2
|
+
# people to run it manually as opposed to via automated test infrastructure. Its author chose that route after a
|
|
3
|
+
# GitHub Actions workflow that runs tests in `test_` modules kept failing due to a database access issue.
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
import unittest
|
|
7
|
+
import re
|
|
8
|
+
import os
|
|
9
|
+
from datetime import datetime, timedelta
|
|
10
|
+
|
|
11
|
+
from pymongo import MongoClient, timeout
|
|
12
|
+
from pymongo.database import Database
|
|
13
|
+
from nmdc_schema.migrators.migrator_base import MigratorBase
|
|
14
|
+
|
|
15
|
+
from demo.metadata_migration.notebooks.bookkeeper import Bookkeeper, MigrationEvent
|
|
16
|
+
|
|
17
|
+
# Consume environment variables.
|
|
18
|
+
MONGO_HOST: str = os.getenv("MONGO_HOST", "localhost")
|
|
19
|
+
MONGO_USER: Optional[str] = os.getenv("MONGO_USERNAME", None)
|
|
20
|
+
MONGO_PASS: Optional[str] = os.getenv("MONGO_PASSWORD", None)
|
|
21
|
+
MONGO_DATABASE_NAME: str = os.getenv("MONGO_TEST_DBNAME", "test-migration-bookkeeper")
|
|
22
|
+
|
|
23
|
+
MONGO_TIMEOUT_DURATION: int = 3 # seconds
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class FakeMigrator(MigratorBase):
|
|
27
|
+
_to_version = "A.B.C"
|
|
28
|
+
_from_version = "X.Y.Z"
|
|
29
|
+
|
|
30
|
+
def upgrade(self):
|
|
31
|
+
pass
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class TestBookkeeper(unittest.TestCase):
|
|
35
|
+
r"""
|
|
36
|
+
Tests targeting the `Bookkeeper` class.
|
|
37
|
+
|
|
38
|
+
You can format this file like this:
|
|
39
|
+
$ python -m black demo/metadata_migration/notebooks/manual_test_bookkeeper.py
|
|
40
|
+
|
|
41
|
+
You can start up a containerized MongoDB server like this:
|
|
42
|
+
$ docker run --rm --detach --name mongo-test-migration-bookkeeper -p 27017:27017 mongo
|
|
43
|
+
|
|
44
|
+
One that's running, other containers will be able to access it via:
|
|
45
|
+
- host.docker.internal:27017
|
|
46
|
+
|
|
47
|
+
You can run these tests like this:
|
|
48
|
+
$ python -m unittest -v demo/metadata_migration/notebooks/manual_test_bookkeeper.py
|
|
49
|
+
|
|
50
|
+
Reference: https://docs.python.org/3/library/unittest.html#basic-example
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
mongo_client: Optional[MongoClient] = None
|
|
54
|
+
db: Optional[Database] = None
|
|
55
|
+
|
|
56
|
+
def setUp(self) -> None:
|
|
57
|
+
r"""
|
|
58
|
+
Connects to the MongoDB server and gets a reference to the database.
|
|
59
|
+
|
|
60
|
+
Note: This function runs before each test starts.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
# Connect to the MongoDB server and store a reference to the connection.
|
|
64
|
+
self.mongo_client = MongoClient(
|
|
65
|
+
host=MONGO_HOST,
|
|
66
|
+
username=MONGO_USER,
|
|
67
|
+
password=MONGO_PASS,
|
|
68
|
+
)
|
|
69
|
+
with timeout(MONGO_TIMEOUT_DURATION):
|
|
70
|
+
# Try connecting to the database server.
|
|
71
|
+
_ = self.mongo_client.server_info()
|
|
72
|
+
db = self.mongo_client[MONGO_DATABASE_NAME]
|
|
73
|
+
|
|
74
|
+
# Ensure the database contains no collections.
|
|
75
|
+
if len(db.list_collection_names()):
|
|
76
|
+
raise KeyError(f"Database is not empty: {MONGO_DATABASE_NAME}")
|
|
77
|
+
|
|
78
|
+
# Store a reference to the database.
|
|
79
|
+
self.db = db
|
|
80
|
+
|
|
81
|
+
def tearDown(self) -> None:
|
|
82
|
+
r"""
|
|
83
|
+
Drops all collections in the database and closes the connection to the MongoDB server.
|
|
84
|
+
|
|
85
|
+
Note: This function runs after each test finishes.
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
# Drop all collections in the database.
|
|
89
|
+
for collection_name in self.db.list_collection_names():
|
|
90
|
+
self.db.drop_collection(collection_name)
|
|
91
|
+
|
|
92
|
+
# Close the connection to the server.
|
|
93
|
+
self.mongo_client.close()
|
|
94
|
+
|
|
95
|
+
def test_get_current_timestamp(self):
|
|
96
|
+
pattern = r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}$"
|
|
97
|
+
ts_str = Bookkeeper.get_current_timestamp()
|
|
98
|
+
|
|
99
|
+
# Verify the timestamp is a string having a valid format.
|
|
100
|
+
self.assertIsInstance(ts_str, str)
|
|
101
|
+
self.assertTrue(re.match(pattern, ts_str))
|
|
102
|
+
|
|
103
|
+
# Verify the moment represented by the timestamp was within the past minute.
|
|
104
|
+
ts = datetime.fromisoformat(ts_str)
|
|
105
|
+
now_ts = datetime.now()
|
|
106
|
+
time_difference = now_ts - ts
|
|
107
|
+
self.assertLess(time_difference, timedelta(minutes=1))
|
|
108
|
+
|
|
109
|
+
def test_init_method(self):
|
|
110
|
+
# Confirm the view does not exist yet.
|
|
111
|
+
view_name = "test_view"
|
|
112
|
+
self.assertFalse(view_name in self.db.list_collection_names())
|
|
113
|
+
|
|
114
|
+
# Instantiate the class-under-test.
|
|
115
|
+
_ = Bookkeeper(
|
|
116
|
+
mongo_client=self.mongo_client,
|
|
117
|
+
database_name=MONGO_DATABASE_NAME,
|
|
118
|
+
view_name=view_name,
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
# Confirm the view exists now.
|
|
122
|
+
self.assertTrue(view_name in self.db.list_collection_names())
|
|
123
|
+
|
|
124
|
+
def test_record_migration_event(self):
|
|
125
|
+
# Instantiate a bookkeeper.
|
|
126
|
+
bk = Bookkeeper(
|
|
127
|
+
mongo_client=self.mongo_client,
|
|
128
|
+
database_name=MONGO_DATABASE_NAME,
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# Verify the collection is empty.
|
|
132
|
+
collection = self.db.get_collection(bk.collection_name)
|
|
133
|
+
self.assertTrue(collection.count_documents({}) == 0)
|
|
134
|
+
|
|
135
|
+
# Record a "migration started" event.
|
|
136
|
+
migrator = FakeMigrator()
|
|
137
|
+
bk.record_migration_event(
|
|
138
|
+
migrator=migrator, event=MigrationEvent.MIGRATION_STARTED
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
# Verify the migration event was recorded.
|
|
142
|
+
self.assertTrue(collection.count_documents({}) == 1)
|
|
143
|
+
doc = collection.find({})[0]
|
|
144
|
+
self.assertIsInstance(doc["created_at"], str)
|
|
145
|
+
self.assertIsInstance(doc["event"], str)
|
|
146
|
+
self.assertEqual(doc["event"], MigrationEvent.MIGRATION_STARTED)
|
|
147
|
+
self.assertIsInstance(doc["from_schema_version"], str)
|
|
148
|
+
self.assertEqual(doc["from_schema_version"], migrator.get_origin_version())
|
|
149
|
+
self.assertIsInstance(doc["to_schema_version"], str)
|
|
150
|
+
self.assertEqual(doc["to_schema_version"], migrator.get_destination_version())
|
|
151
|
+
self.assertIsInstance(doc["migrator_module"], str)
|
|
152
|
+
|
|
153
|
+
# Verify the document in the view says the schema version is `null`.
|
|
154
|
+
# Note: That's what I expect, since no "migration complete" events have been recorded yet.
|
|
155
|
+
view = self.db.get_collection(bk.view_name)
|
|
156
|
+
self.assertTrue(view.count_documents({}) == 1)
|
|
157
|
+
view_doc = view.find({})[0]
|
|
158
|
+
self.assertIsNone(view_doc["schema_version"])
|
|
159
|
+
|
|
160
|
+
# Record a "migration completed" event.
|
|
161
|
+
bk.record_migration_event(
|
|
162
|
+
migrator=migrator, event=MigrationEvent.MIGRATION_COMPLETED
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
# Verify the migration event was recorded.
|
|
166
|
+
self.assertTrue(collection.count_documents({}) == 2)
|
|
167
|
+
|
|
168
|
+
# Verify the document in the view says the schema version matches the one recorded.
|
|
169
|
+
view = self.db.get_collection(bk.view_name)
|
|
170
|
+
self.assertTrue(view.count_documents({}) == 1)
|
|
171
|
+
view_doc = view.find({})[0]
|
|
172
|
+
self.assertEqual(view_doc["schema_version"], migrator.get_destination_version())
|
|
173
|
+
|
|
174
|
+
# Finally, record another "migration started" event.
|
|
175
|
+
bk.record_migration_event(
|
|
176
|
+
migrator=migrator, event=MigrationEvent.MIGRATION_STARTED
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
# Confirm the document in the view once again says the schema version is `null`.
|
|
180
|
+
self.assertTrue(view.count_documents({}) == 1)
|
|
181
|
+
view_doc = view.find({})[0]
|
|
182
|
+
self.assertIsNone(view_doc["schema_version"])
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
if __name__ == "__main__":
|
|
186
|
+
unittest.main()
|