nmdc-runtime 1.0.9__tar.gz → 1.0.10__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.0.9 → nmdc_runtime-1.0.10}/.dockerignore +0 -1
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.env.example +2 -0
- nmdc_runtime-1.0.10/.github/workflows/build-and-release-to-spin.yml +92 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.gitignore +3 -1
- nmdc_runtime-1.0.10/.gitpod.Dockerfile +7 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.gitpod.yml +4 -3
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/Makefile +11 -14
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/PKG-INFO +1 -1
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/release-process.md +10 -6
- nmdc_runtime-1.0.10/nersc-sshproxy.sh +353 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/metadata.py +14 -2
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/util.py +4 -1
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/find.py +50 -30
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/metadata.py +0 -9
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/nmdcschema.py +7 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/util.py +5 -1
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/base.py +26 -1
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/scripts/missing_neon_soils_ecosystem_data.py +2 -14
- nmdc_runtime-1.0.10/nmdc_runtime/site/changesheets/scripts/neon_soils_add_ncbi_ids.py +210 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/resources.py +44 -7
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/templates/search.html +11 -8
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/util.py +81 -18
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/PKG-INFO +1 -1
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/SOURCES.txt +5 -3
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/dev.txt +4 -9
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/main.in +1 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/main.txt +30 -47
- nmdc_runtime-1.0.10/tests/unit/core_util.py +21 -0
- nmdc_runtime-1.0.9/.github/workflows/build-and-push-docker-images.yml +0 -45
- nmdc_runtime-1.0.9/.github/workflows/release-to-spin.yml +0 -55
- nmdc_runtime-1.0.9/docker-build.sh +0 -78
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.env.test +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.github/workflows/mkdocs.yml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.github/workflows/python-app.yml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.github/workflows/release-to-pypi.yml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.nvmrc +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/LICENSE +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/README.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/RELEASES.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow/spec.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/core.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/spec.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/store.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/.env.example +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/GOLDs5levelEcosystemClassificationPaths.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/biosamples.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/console_queries.dev +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/docker-compose.yml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/envo.owl +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/indexing.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/po.owl +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/main.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/main.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/.gitignore +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/.mongo.yaml.example +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/.notebook.env.example +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/helpers.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/migrate_7_7_2_to_7_8_0.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/migrate_7_8_0_to_8_0_0.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/migrate_8_0_0_to_8_1_2.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/migrate_8_1_2_to_9_0_4.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/requirements.txt +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docker-compose.test.yml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docker-compose.yml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/admin.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/contributing-docs.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/draft.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/explanation/domain-vision-statement.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/explanation/identifiers.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/explanation/journeys.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/author-changesheets.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/claim-and-run-jobs.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/create-triggers.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/improving-search-api.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/jobs/gold-translation-etl.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/update-sensors-ops.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-button.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-client-id.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-close-modal.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-username.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagit-apply-changesheet-job.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-gold-job.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-gold-launchpad.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-gold-overview.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-repo-jobs.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-workspace-repo-loaded.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/job-triggering.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/list-from-collection-filter.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/list-from-collection-page-token.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/list-from-collection.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/metadata-in-dagit-runs.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/metadata-in-put-types.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/nmdc-runtime-federation.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/rancher-nmdc-runtime-dev-workloads.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-copy-paste-execute.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-get-one-valid.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-response.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-try-it-out.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/index.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/nb/get_data.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/nb/queue_and_trigger_data_jobs.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/nb/wf_automation.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/stylesheets/extra.css +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/tutorials/auth.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/tutorials/json.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/tutorials/metadata-in.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/api-resource-diagram.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/api-resource-layout.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/nmdc-runtime-api-resource-diagram.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/nmdc-wfe.ttl +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/redoc-static.html +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/spec.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/workflow-automation.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/index.html +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/flake.lock +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/flake.nix +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/github_secrets_to_dotenv.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/guix-manifest.scm +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/Makefile +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/README.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/Froze_Core_2015_S2_0_10_7_Metab.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/MAGs_activity.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/biosample_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/changesheet-ex-01-screenshot.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/changesheet-ex-01.csv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/emsl_data_object_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/emsl_project_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/feature-set.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/ftms_nom_data_products.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/functional-annotation.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/gcms_metabolomics_data_products.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/gold_project_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/img_mg_annotation_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/img_mg_annotation_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/metagenome_annotation_activity.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/mg_assembly_activities_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/mg_assembly_data_objects_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/migs-template-cedar.schema.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/nom_analysis_activity.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/readQC_activities_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/readQC_data_objects_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/read_based_analysis_activity.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/study_test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/images/nmdc-etl-workflow.drawio +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/images/nmdc-etl-workflow.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/images/nmdc-etl-workflow.svg +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/Description_MIxS_Packages_v5.docx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/GOLD-Paths-to-MIxS-ENVO-triad-mapping.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSair_20180621_GOLD_Mapping_04132020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSbuiltenv_20180621_GOLD_Mapping_04172020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShostassoc_20180621_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanassoc_20180621_GOLD_Mapping_04142020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumangut_20180621_GOLD_Mapping_04152020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanoral_20180621_GOLD_Mapping_04152020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanskin_20180621_GOLD_Mapping_04162020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanvaginal_20180621_GOLD_04162020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShydrocarbCores_20180621_Mapping_GOLD.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShydrocarbfs_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSmatbiofilm_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSmisc_20180621_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSplantassoc_20180621_v5_GOLD_Mapping.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSsediment_20180621_GOLD_Mapping_04102020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSsoil_20180621_GOLD_Mapping_04102020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSwastesludge_20180621_GOLD_Mapping_Apr-10.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSwater_20180621_GOLD_Mapping_04122020.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/Makefile +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/README.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/mixs_v4.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/mixs_v5.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/202106_curation_updates.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/202106_workflow_execution_demo.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/202109_metadata_ingest.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/NMDC-GOLD-data-counts.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/README.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/archive/generate-gold-sample-json.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/archive/translate-30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/changesheets-example.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/changesheets-testing.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-array-item-nested-attributes.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-insert.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-remove-item.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-remove-property.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-replace.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-update-pi-websites.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-with-separator1.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-without-separator1.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-without-separator2.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-without-separator3.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/study-data1.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/study-data2.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/study-data3.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ensure_biosample_set_study_id.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ghissue_252_253_linked_samples.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ghissue_255.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ghissue_272.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/gold-biosample-null-value-analysis.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/gold_ids_to_igsns.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/EMSL-data-translation.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/GOLD-data-objects-translation.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/GOLD-study-project-biosample-translation.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/NMDC-jupyter-translation-workflow.png +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/metaP_stegen.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/metadata_db_admin.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/mongo_etl_demo.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/FICUS-projects-merged.owl +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/FICUS-projects-merged.owl.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/FICUS-projects-translation.owl +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/catalog-v001.xml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.json.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-dataset-translation.owl +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/biosample.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/omics_processing.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/study.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-01.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-05.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-06.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-12.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-18.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-19.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test-full.txt.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test.txt +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test.txt.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/temp.txt +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/biosample.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/data_object.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/project.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/study.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/biosample.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/emsl_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/emsl_omics_processing.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/faa_fna_fastq_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/gold_omics_processing.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/gold_study.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/nmdc-02.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-changesheet-with-separator.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-changesheet-without-separator.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-output.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-pipeline-scratch.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-pipeline-temp.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-pipeline.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test.txt +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translate-EMSL-data.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translate-GOLD-data-objects.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translate-GOLD-study-project-biosample.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translation-pipeline.ipynb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/align_nmdc_datatypes.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/execute_etl_pipeline.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/fix_omics_processing_json.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/data_operations.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/extract_nmdc_data.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/load_nmdc_data.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/nmdc_data_source.yaml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/nmdc_dataframes.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/nmdc_etl_class.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/transform_nmdc_data.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/mandatory_mixs_terms.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/mandatory_mixs_terms.py.org +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/validate_json.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2020-23-12-brodie-Gs0135149-soil-metadata.csv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-02-03-stegen_biosample_linking_update.csv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-02-04-brodie_biosample_linking_update.csv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-02-04-stegen_biosample_template.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-07-02-study-changes.csv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/EMSL_FICUS_project_process_data_export.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/EMSL_Hess_Stegen_Blanchard_DatasetToMetagenomeMapping.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/EMSL_biosample_matches.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/FICUS - JGI-EMSL Proposal - Gold Study - ID mapping and PI.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD-soil-mixs-envo-mappings.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD-to-mixs-map.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD_Ecosystem_Classification_Paths_10152019.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD_ecosystem_classification_paths.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/JGI-EMSL-FICUS-proposals.fnl.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/NMDC-GOLD-Fields.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/README.md +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/Hess_emsl_analysis_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/Hess_metaproteomic_analysis_activities.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/Stegen_emsl_analysis_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/Stegen_metaproteomic_analysis_activities.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_activities.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_activities.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/readQC_activities.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/readQC_data_objects.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/all_gold_fields.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/ficus_project_faa.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/ficus_project_fastq.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/ficus_project_fna.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/mixs_v5.xlsx +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/nmdc-version2.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/nmdc-version5.zip +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/mkdocs.yml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/mkdocs_overrides/partials/source.html +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/mongoKeyFile +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc-wfe.html +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/analytics.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/capabilities.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/object_types.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/triggers.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/workflows.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/auth.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/idgen.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/mongo.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/s3.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/terminus.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/capabilities.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/ids.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/jobs.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/object_types.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/objects.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/operations.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/queries.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/runs.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/search.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/sites.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/triggers.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/users.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/workflows.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/entrypoint.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/main.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/capability.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/id.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/job.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/metadata.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/minter.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/nmdc_schema.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/object.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/object_type.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/operation.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/query.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/run.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/site.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/trigger.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/user.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/util.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/workflow.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/models/ingest.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/models/users.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/models/workflow_execution_activity.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/outputs.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/router.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/users.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/workflows/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/workflows/activities/router.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/workflows/activities.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/client/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/containers.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/db/Database.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/db/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/exceptions/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/exceptions/base.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/exceptions/token.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/dagster.Dockerfile +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/queriesInterface.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/userSchema.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/userService.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/fastapi.Dockerfile +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/db.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/db.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/models/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/models/user.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/models/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/models/user.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/extract_nmdc_data.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/load_nmdc_data.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/nmdc_data_source.yaml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/nmdc_dataframes.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/nmdc_etl_class.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/transform_nmdc_data.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/main.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/adapters/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/adapters/repository.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/bootstrap.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/config.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/domain/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/domain/model.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/entrypoints/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/entrypoints/fastapi_app.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/nmdc.schema.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/nmdcdb_mongodump.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/nmdcdb_mongoexport.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/nmdcdb_mongoimport.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/data/OmicsProcessing-to-catted-Biosamples.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/dagster.yaml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/drsobjects/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/drsobjects/ingest.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/drsobjects/registration.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/entrypoint-daemon.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/entrypoint-dagit-readonly.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/entrypoint-dagit.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/export/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/export/study_metadata.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/graphs.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/normalization/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/normalization/gold.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/ops.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/repository.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/.TDB +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/config.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/generate.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/ingest.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/nmdc.schema.terminusdb.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/schema.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/emsl.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/gold.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/gold_translator.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/jgi.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/neon_translator.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/submission_portal_translator.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/translator.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/util.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/util.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/emsl.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/gold.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/jgi.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/util.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/workspace.yaml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/templates/pipeline_search.html +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/test.Dockerfile +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/dependency_links.txt +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/entry_points.txt +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/top_level.txt +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/dev.in +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/setup.cfg +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/setup.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tasks.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/terminusdb +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/conftest.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/e2e/test_minter_api.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_bsm-11-5nhz3402.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_bsm-12-7mysck21.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_dobj-11-000n1286.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_sty-11-pzmd0x14.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/test_changesheet_update_one_ph.tsv +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/integration/test_minter_repository.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/mongodump-nmdc-testdb.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/mongorestore-nmdc-testdb.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/nmdcdb.test.archive.gz +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/test_db_mongo.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/test_endpoints.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/test_metadata.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/util.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/conftest.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_gold_translator.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_gold_translator_data.yaml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_integrity.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_neon_data_translator.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_submission_portal_translator.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_submission_portal_translator_data.yaml +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/ensure_jobs.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/test_hello.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/test_submission_portal_graphs.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_normalization/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_normalization/test_gold.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_data_api_ops.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_get_csv_rows_from_url.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_gold_api_ops.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_hello.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_util.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/unit/test_minter_model.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/domain/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/domain/service/__init__.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/domain/service/test_user_service.py +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tmp.json +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/util/mongodump-nmdc.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/util/mongorestore-nmdc.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/wait-for-it.sh +0 -0
- {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/workspace.toml +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
name: Build Docker images and release to Spin
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- 'v*'
|
|
9
|
+
paths:
|
|
10
|
+
- '.github/workflows/build-and-release-to-spin.yml'
|
|
11
|
+
- 'Makefile'
|
|
12
|
+
- '**.Dockerfile'
|
|
13
|
+
- '**.py'
|
|
14
|
+
- 'requirements/main.txt'
|
|
15
|
+
|
|
16
|
+
env:
|
|
17
|
+
# We don't want to do certain steps if this is running in a fork
|
|
18
|
+
IS_ORIGINAL_REPO: ${{ github.repository == 'microbiomedata/nmdc-runtime' }}
|
|
19
|
+
|
|
20
|
+
# Used to determine if we add the special `prod` Docker image tag
|
|
21
|
+
IS_PROD_RELEASE: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
|
22
|
+
|
|
23
|
+
# Used when sending redeploy action requests to Rancher
|
|
24
|
+
RANCHER_NAMESPACE: ${{ startsWith(github.ref, 'refs/tags/v') && 'nmdc' || 'nmdc-dev' }}
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
build:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
|
|
30
|
+
strategy:
|
|
31
|
+
matrix:
|
|
32
|
+
image: [ fastapi, dagster ]
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- name: Checkout
|
|
36
|
+
uses: actions/checkout@v4
|
|
37
|
+
with:
|
|
38
|
+
# history for all branches and tags is needed for setuptools-scm (part of build and push step)
|
|
39
|
+
fetch-depth: 0
|
|
40
|
+
|
|
41
|
+
- name: Set up QEMU
|
|
42
|
+
uses: docker/setup-qemu-action@v3
|
|
43
|
+
|
|
44
|
+
- name: Set up Docker Buildx
|
|
45
|
+
uses: docker/setup-buildx-action@v3
|
|
46
|
+
|
|
47
|
+
- name: Docker meta
|
|
48
|
+
id: meta
|
|
49
|
+
uses: docker/metadata-action@v5
|
|
50
|
+
with:
|
|
51
|
+
images: |
|
|
52
|
+
microbiomedata/nmdc-runtime-${{ matrix.image }}
|
|
53
|
+
flavor: |
|
|
54
|
+
latest=false
|
|
55
|
+
tags: |
|
|
56
|
+
type=ref,event=branch
|
|
57
|
+
type=semver,pattern={{version}}
|
|
58
|
+
type=raw,value=prod,enable=${{ env.IS_PROD_RELEASE }}
|
|
59
|
+
|
|
60
|
+
- name: Login to DockerHub
|
|
61
|
+
uses: docker/login-action@v3
|
|
62
|
+
with:
|
|
63
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
64
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
65
|
+
|
|
66
|
+
- name: Build and push
|
|
67
|
+
uses: docker/build-push-action@v5
|
|
68
|
+
with:
|
|
69
|
+
context: .
|
|
70
|
+
push: ${{ env.IS_ORIGINAL_REPO }}
|
|
71
|
+
file: nmdc_runtime/${{ matrix.image }}.Dockerfile
|
|
72
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
73
|
+
labels: ${{ steps.meta.outputs.labels }}
|
|
74
|
+
|
|
75
|
+
release:
|
|
76
|
+
needs: build
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
runs-on: ubuntu-latest
|
|
80
|
+
|
|
81
|
+
strategy:
|
|
82
|
+
matrix:
|
|
83
|
+
deployment: [ runtime-api, dagster-dagit, dagster-daemon ]
|
|
84
|
+
|
|
85
|
+
steps:
|
|
86
|
+
- name: Redeploy ${{ env.RANCHER_NAMESPACE }}:${{ matrix.deployment }}
|
|
87
|
+
if: ${{ env.IS_ORIGINAL_REPO }}
|
|
88
|
+
uses: fjogeleit/http-request-action@v1
|
|
89
|
+
with:
|
|
90
|
+
url: ${{ secrets.RANCHER_URL }}/v3/project/${{ secrets.RANCHER_CONTEXT }}/workloads/deployment:${{ env.RANCHER_NAMESPACE }}:${{ matrix.deployment }}?action=redeploy
|
|
91
|
+
method: POST
|
|
92
|
+
bearerToken: ${{ secrets.RANCHER_TOKEN }}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
# and commit this file to your remote git repository to share the goodness with others.
|
|
4
4
|
|
|
5
5
|
# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart
|
|
6
|
-
|
|
6
|
+
image:
|
|
7
|
+
file: .gitpod.Dockerfile
|
|
7
8
|
tasks:
|
|
8
9
|
- name: Start Dev on Fresh Gitpod
|
|
9
10
|
before: cp .env.example .env
|
|
10
|
-
init: make
|
|
11
|
-
command: docker-compose logs -f fastapi
|
|
11
|
+
init: docker compose up mongo --detach && make mongorestore-nmdc-dev
|
|
12
|
+
command: make up-dev && docker-compose logs -f fastapi
|
|
@@ -57,15 +57,9 @@ down-test:
|
|
|
57
57
|
follow-fastapi:
|
|
58
58
|
docker-compose logs fastapi -f
|
|
59
59
|
|
|
60
|
-
fastapi-docker:
|
|
61
|
-
./docker-build.sh microbiomedata/nmdc-runtime-fastapi nmdc_runtime/fastapi.Dockerfile
|
|
62
|
-
|
|
63
60
|
fastapi-deploy-spin:
|
|
64
61
|
rancher kubectl rollout restart deployment/runtime-fastapi --namespace=nmdc-dev
|
|
65
62
|
|
|
66
|
-
dagster-docker:
|
|
67
|
-
./docker-build.sh microbiomedata/nmdc-runtime-dagster nmdc_runtime/dagster.Dockerfile
|
|
68
|
-
|
|
69
63
|
dagster-deploy-spin:
|
|
70
64
|
rancher kubectl rollout restart deployment/dagit --namespace=nmdc-dev
|
|
71
65
|
rancher kubectl rollout restart deployment/dagster-daemon --namespace=nmdc-dev
|
|
@@ -77,23 +71,26 @@ docs-dev:
|
|
|
77
71
|
mkdocs serve -a localhost:8080
|
|
78
72
|
|
|
79
73
|
nersc-sshproxy:
|
|
80
|
-
bash
|
|
74
|
+
bash ./nersc-sshproxy.sh -u ${NERSC_USERNAME} # https://docs.nersc.gov/connect/mfa/#sshproxy
|
|
81
75
|
|
|
82
76
|
nersc-mongo-tunnels:
|
|
83
77
|
ssh -L27072:mongo-loadbalancer.nmdc.production.svc.spin.nersc.org:27017 \
|
|
84
78
|
-L28082:mongo-loadbalancer.nmdc-dev.development.svc.spin.nersc.org:27017 \
|
|
85
79
|
-L27092:mongo-loadbalancer.nmdc-dev.production.svc.spin.nersc.org:27017 \
|
|
86
80
|
-o ServerAliveInterval=60 \
|
|
87
|
-
dtn02.nersc.gov
|
|
81
|
+
${NERSC_USERNAME}@dtn02.nersc.gov
|
|
88
82
|
|
|
89
|
-
mongorestore-
|
|
90
|
-
wget https://portal.nersc.gov/
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
83
|
+
mongorestore-nmdc-dev:
|
|
84
|
+
wget https://portal.nersc.gov/cfs/m3408/meta/mongodumps/mdb-nmdc-dev.tar.gz
|
|
85
|
+
tar zxvf mdb-nmdc-dev.tar.gz
|
|
86
|
+
rm -rf nmdc/._* # Not sure why ._* files are extracted.
|
|
87
|
+
mongorestore -h localhost:27018 -u admin -p root --authenticationDatabase=admin \
|
|
88
|
+
--drop --gzip -d nmdc nmdc
|
|
89
|
+
rm -rf nmdc/
|
|
90
|
+
rm mdb-nmdc-dev.tar.gz
|
|
94
91
|
|
|
95
92
|
quick-blade:
|
|
96
93
|
python -c "from nmdc_runtime.api.core.idgen import generate_id; print(f'nmdc:nt-11-{generate_id(length=8, split_every=0)}')"
|
|
97
94
|
|
|
98
95
|
.PHONY: init update-deps update up-dev down-dev follow-fastapi \
|
|
99
|
-
|
|
96
|
+
publish docs
|
|
@@ -15,16 +15,20 @@ released? Here's how.
|
|
|
15
15
|
[our python-app.yml GitHub
|
|
16
16
|
action](https://github.com/microbiomedata/nmdc-runtime/blob/main/.github/workflows/python-app.yml),
|
|
17
17
|
which is triggered automatically when a change to any Python file in the repository is pushed to the
|
|
18
|
-
`main` branch, or to a Pull Request. You can monitor the status of
|
|
18
|
+
`main` branch, or to a Pull Request. You can monitor the status of GitHub Actions
|
|
19
19
|
[here](https://github.com/microbiomedata/nmdc-runtime/actions).
|
|
20
20
|
|
|
21
|
-
2.
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
2. Create a new [GitHub Release](https://github.com/microbiomedata/nmdc-runtime/releases). When creating the new release:
|
|
22
|
+
- Use the "Choose a tag" dropdown to **create a new tag** by typing in a tag name which does not exist yet.
|
|
23
|
+
- The new tag name should start with `v` and be followed by a [semantic version number](https://semver.org/), for example `v3.0.2`.
|
|
24
|
+
- If the last published version is `vX.Y.Z`, the next release number should be `vX.Y.{Z+1}` for a patch release (bux fixes and refactoring), `vX.{Y+1}.0` for a minor release (new functionality that is backwards-compatible), or `v{X+1}.0.0` for a major release (new functionality that may be backwards-incompatible).
|
|
25
|
+
- You may leave the "Release title" input blank. If it is blank the release title will be populated with the tag name.
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
Once the GitHub Release has been created, two GitHub Actions will be triggered which:
|
|
26
28
|
|
|
27
|
-
- [
|
|
29
|
+
- [build Docker images and deploy them to Spin](https://github.com/microbiomedata/nmdc-runtime/blob/main/.github/workflows/build-and-release-to-spin.yml) for the API server and for the NMDC Runtime site's Dagster daemon and Dagit dashboard.
|
|
30
|
+
|
|
31
|
+
- [build a Python package and publish it to PyPI](https://github.com/microbiomedata/nmdc-runtime/blob/main/.github/workflows/release-to-pypi.yml).
|
|
28
32
|
|
|
29
33
|
|
|
30
34
|
## Data Releases
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# SSH Proxy (sshproxy), Copyright (c) 2019, The Regents of the University of California,
|
|
5
|
+
# through Lawrence Berkeley National Laboratory (subject to receipt of any required
|
|
6
|
+
# approvals from the U.S. Dept. of Energy). All rights reserved.
|
|
7
|
+
#
|
|
8
|
+
# If you have questions about your rights to use or distribute this software,
|
|
9
|
+
# please contact Berkeley Lab's Intellectual Property Office at IPO@lbl.gov.
|
|
10
|
+
#
|
|
11
|
+
# NOTICE. This Software was developed under funding from the U.S. Department of Energy
|
|
12
|
+
# and the U.S. Government consequently retains certain rights. As such, the U.S.
|
|
13
|
+
# Government has been granted for itself and others acting on its behalf a paid-up,
|
|
14
|
+
# nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute
|
|
15
|
+
# copies to the public, prepare derivative works, and perform publicly and display
|
|
16
|
+
# publicly, and to permit other to do so.
|
|
17
|
+
#
|
|
18
|
+
# See LICENSE for full text.
|
|
19
|
+
|
|
20
|
+
progname=$(basename $0)
|
|
21
|
+
version="1.1.0"
|
|
22
|
+
|
|
23
|
+
# Save tty state for trap function below
|
|
24
|
+
original_tty_state=$(stty -g)
|
|
25
|
+
|
|
26
|
+
tmpkey=''
|
|
27
|
+
tmpcert=''
|
|
28
|
+
tmppub=''
|
|
29
|
+
pw=''
|
|
30
|
+
|
|
31
|
+
# Default values
|
|
32
|
+
id=nersc # Name of key file
|
|
33
|
+
user=$USER # Username
|
|
34
|
+
sshdir=~/.ssh # SSH directory
|
|
35
|
+
scope="default" # Default scope
|
|
36
|
+
url="https://sshproxy.nersc.gov" # hostname for reaching proxy
|
|
37
|
+
|
|
38
|
+
#############
|
|
39
|
+
# Functions
|
|
40
|
+
#############
|
|
41
|
+
|
|
42
|
+
# Error(error string, ...)
|
|
43
|
+
#
|
|
44
|
+
# prints out error string. Joins multiple arguments with ": "
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
Error () {
|
|
48
|
+
|
|
49
|
+
# Slightly complicated print statement so that output consists of
|
|
50
|
+
# arguments joined with ": "
|
|
51
|
+
|
|
52
|
+
printf "$progname: %s" "$1" 1>&2
|
|
53
|
+
shift
|
|
54
|
+
printf ': %s' "$@" 1>&2
|
|
55
|
+
printf "\n" 1>&2
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
# Bail(exit code, error string, ...)
|
|
59
|
+
#
|
|
60
|
+
# prints out error string and exits with given exit code
|
|
61
|
+
|
|
62
|
+
Bail () {
|
|
63
|
+
# get exit code
|
|
64
|
+
exitcode=$1
|
|
65
|
+
shift
|
|
66
|
+
|
|
67
|
+
Error "$@"
|
|
68
|
+
|
|
69
|
+
# restore terminal to original state, in case we're interrupted
|
|
70
|
+
# while reading password
|
|
71
|
+
|
|
72
|
+
stty $original_tty_state
|
|
73
|
+
|
|
74
|
+
# Go bye-bye
|
|
75
|
+
exit $exitcode
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
# Cleanup()
|
|
80
|
+
#
|
|
81
|
+
# Cleans up temp files on exit
|
|
82
|
+
|
|
83
|
+
Cleanup () {
|
|
84
|
+
for f in "$tmpkey" "$tmpcert" "$tmppub"
|
|
85
|
+
do
|
|
86
|
+
if [[ "$f" != "" && -e "$f" ]]; then
|
|
87
|
+
/bin/rm -f "$f"
|
|
88
|
+
fi
|
|
89
|
+
done
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# Abort ()
|
|
93
|
+
#
|
|
94
|
+
# Trap on errors otherwise unhandled, does cleanup and exit(1)
|
|
95
|
+
|
|
96
|
+
Abort () {
|
|
97
|
+
Bail 255 "Exited on interrupt/error"
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
Usage () {
|
|
102
|
+
|
|
103
|
+
if [[ $# -ne 0 ]]; then
|
|
104
|
+
printf "$progname: %s\n\n", "$*"
|
|
105
|
+
fi
|
|
106
|
+
printf "Usage: $progname [-u <user>] [-o <filename>] [-s <scope>] [-c <account>] [-p] [-a] [-x <proxy-url>] [-U <server URL>] [-v] [-h]\n"
|
|
107
|
+
|
|
108
|
+
printf "\n"
|
|
109
|
+
printf "\t -u <user>\tSpecify remote (NERSC) username\n"
|
|
110
|
+
printf "\t\t\t(default: $user)\n"
|
|
111
|
+
printf "\t -o <filename>\tSpecify pathname for private key\n"
|
|
112
|
+
printf "\t\t\t(default: $sshdir/$id)\n"
|
|
113
|
+
printf "\t -s <scope>\tSpecify scope (default: '$scope')\n"
|
|
114
|
+
printf "\t -p\t\tGet keys in PuTTY compatible (ppk) format\n"
|
|
115
|
+
printf "\t -a\t\tAdd key to ssh-agent (with expiration)\n"
|
|
116
|
+
printf "\t -c <account>\tSpecify a collaboration account (no default)\n"
|
|
117
|
+
printf "\t -x <URL>\tUse socks proxy to connect to sshproxy server.\n"
|
|
118
|
+
printf "\t\t\t(format: <protocol>://<host>[:port], see curl manpage\n"
|
|
119
|
+
printf "\t\t\tsection on "--proxy" for details)\n"
|
|
120
|
+
printf "\t -U <URL>\tSpecify alternate URL for sshproxy server\n"
|
|
121
|
+
printf "\t\t\t(generally only used for testing purposes)\n"
|
|
122
|
+
printf "\t -v \t\tPrint version number and exit\n"
|
|
123
|
+
printf "\t -h \t\tPrint this usage message and exit\n"
|
|
124
|
+
printf "\n"
|
|
125
|
+
|
|
126
|
+
exit 0
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
#############
|
|
130
|
+
# Actual code starts here...
|
|
131
|
+
#############
|
|
132
|
+
|
|
133
|
+
# Make sure we cleanup on exit
|
|
134
|
+
|
|
135
|
+
trap Cleanup exit
|
|
136
|
+
trap Abort int kill term hup pipe abrt
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
# for command-line arguments. In reality, not all of these get used,
|
|
140
|
+
# but here for completeness
|
|
141
|
+
opt_scope='' # -s
|
|
142
|
+
opt_url='' # -U
|
|
143
|
+
opt_user='' # -u
|
|
144
|
+
opt_out='' # -o
|
|
145
|
+
opt_agent=0 # -a
|
|
146
|
+
opt_version='' # -v
|
|
147
|
+
opt_putty='' # -p
|
|
148
|
+
opt_socks='' # -x
|
|
149
|
+
|
|
150
|
+
# Process getopts. See Usage() above for description of arguments
|
|
151
|
+
|
|
152
|
+
while getopts "aphvs:k:U:u:o:x:c:" opt; do
|
|
153
|
+
case ${opt} in
|
|
154
|
+
|
|
155
|
+
h )
|
|
156
|
+
Usage
|
|
157
|
+
;;
|
|
158
|
+
v )
|
|
159
|
+
printf "$progname v$version\n"
|
|
160
|
+
exit 0
|
|
161
|
+
;;
|
|
162
|
+
|
|
163
|
+
s )
|
|
164
|
+
opt_scope=$OPTARG
|
|
165
|
+
scope=$opt_scope
|
|
166
|
+
;;
|
|
167
|
+
|
|
168
|
+
U )
|
|
169
|
+
url=$OPTARG
|
|
170
|
+
;;
|
|
171
|
+
|
|
172
|
+
u )
|
|
173
|
+
user=$OPTARG
|
|
174
|
+
;;
|
|
175
|
+
|
|
176
|
+
o )
|
|
177
|
+
opt_out=$OPTARG
|
|
178
|
+
;;
|
|
179
|
+
a )
|
|
180
|
+
opt_agent=1
|
|
181
|
+
;;
|
|
182
|
+
p )
|
|
183
|
+
opt_putty="?putty"
|
|
184
|
+
;;
|
|
185
|
+
|
|
186
|
+
x )
|
|
187
|
+
opt_socks="--proxy $OPTARG"
|
|
188
|
+
;;
|
|
189
|
+
c )
|
|
190
|
+
opt_collab=$OPTARG
|
|
191
|
+
;;
|
|
192
|
+
|
|
193
|
+
\? )
|
|
194
|
+
Usage "Unknown argument"
|
|
195
|
+
;;
|
|
196
|
+
|
|
197
|
+
: )
|
|
198
|
+
Usage "Invalid option: $OPTARG requires an argument"
|
|
199
|
+
;;
|
|
200
|
+
|
|
201
|
+
esac
|
|
202
|
+
done
|
|
203
|
+
|
|
204
|
+
# If user has specified a keyfile, then use that.
|
|
205
|
+
# Otherwise, if user has specified a scope, use that for the keyfile name
|
|
206
|
+
# And if it's the default, then use the "id" defined above ("nersc")
|
|
207
|
+
data=''
|
|
208
|
+
if [[ "$opt_collab" != "" ]] ; then
|
|
209
|
+
if [[ "$opt_scope" == "" ]] ; then
|
|
210
|
+
scope="collab"
|
|
211
|
+
opt_scope=$opt_collab
|
|
212
|
+
fi
|
|
213
|
+
data='{"target_user": "'$opt_collab'"}'
|
|
214
|
+
fi
|
|
215
|
+
|
|
216
|
+
if [[ $opt_out != "" ]]; then
|
|
217
|
+
idfile=$opt_out
|
|
218
|
+
elif [[ "$opt_scope" != "" ]]; then
|
|
219
|
+
idfile="$sshdir/$opt_scope"
|
|
220
|
+
else
|
|
221
|
+
idfile="$sshdir/$id"
|
|
222
|
+
fi
|
|
223
|
+
|
|
224
|
+
certfile="$idfile-cert.pub"
|
|
225
|
+
pubfile="$idfile.pub"
|
|
226
|
+
|
|
227
|
+
# Have user enter password+OTP. Curl can do this, but does not
|
|
228
|
+
# provide any control over the prompt
|
|
229
|
+
#
|
|
230
|
+
# N.B. INPWPROMPT variable is used in Bail() above for when password
|
|
231
|
+
# prompt is interrupted by ctrl-c. Otherwise terminal gets left in
|
|
232
|
+
# a weird state.
|
|
233
|
+
|
|
234
|
+
read -r -p "Enter the password+OTP for ${user}: " -s pw
|
|
235
|
+
|
|
236
|
+
# read -p doesn't output a newline after entry
|
|
237
|
+
printf "\n"
|
|
238
|
+
|
|
239
|
+
# Make temp files. We want them in the same target directory as the
|
|
240
|
+
# final keys
|
|
241
|
+
|
|
242
|
+
tmpdir=$(dirname $idfile)
|
|
243
|
+
tmpdir="$tmpdir"
|
|
244
|
+
tmpkey="$(mktemp $tmpdir/key.XXXXXX)"
|
|
245
|
+
tmpcert="$(mktemp $tmpdir/cert.XXXXXX)"
|
|
246
|
+
tmppub="$(mktemp $tmpdir/pub.XXXXXX)"
|
|
247
|
+
|
|
248
|
+
# And get the key/cert
|
|
249
|
+
curl -s -S -X POST $opt_socks $url/create_pair/$scope/$opt_putty \
|
|
250
|
+
-d "$data" -o $tmpkey -K - <<< "-u \"${user}:${pw}\""
|
|
251
|
+
|
|
252
|
+
# Check for error
|
|
253
|
+
err=$?
|
|
254
|
+
if [[ $err -ne 0 ]] ; then
|
|
255
|
+
Bail 1 "Failed." "Curl returned" $err
|
|
256
|
+
fi
|
|
257
|
+
|
|
258
|
+
# Get the first line of the file to check for errors from the
|
|
259
|
+
# server
|
|
260
|
+
|
|
261
|
+
read x < $tmpkey
|
|
262
|
+
|
|
263
|
+
# Check whether password failed
|
|
264
|
+
|
|
265
|
+
if [[ "$x" =~ "Authentication failed. Failed login" ]]; then
|
|
266
|
+
Error "The sshproxy server said: $x"
|
|
267
|
+
Bail 2 "This usually means you did not enter the correct password or OTP"
|
|
268
|
+
fi
|
|
269
|
+
|
|
270
|
+
# Check whether the file appears to contain a valid key
|
|
271
|
+
|
|
272
|
+
if [[ "$x" == "PuTTY-User-Key-File-2: ssh-rsa" ]]; then
|
|
273
|
+
mv $tmpkey $idfile.ppk
|
|
274
|
+
printf "Successfully obtained PuTTY Key file %s\n" "$idfile.ppk"
|
|
275
|
+
exit
|
|
276
|
+
fi
|
|
277
|
+
|
|
278
|
+
if [[ "$x" != "-----BEGIN RSA PRIVATE KEY-----" ]]; then
|
|
279
|
+
Error "Did not get in a proper ssh private key. Output was:"
|
|
280
|
+
cat $tmpkey 1>&2
|
|
281
|
+
Bail 3 "Hopefully that's informative"
|
|
282
|
+
fi
|
|
283
|
+
|
|
284
|
+
# The private key and certificate are all in one file.
|
|
285
|
+
# Extract the cert into its own file, and move into place
|
|
286
|
+
|
|
287
|
+
grep ssh-rsa $tmpkey > $tmpcert \
|
|
288
|
+
&& ssh-keygen -y -f $tmpkey > $tmppub \
|
|
289
|
+
&& chmod 600 $tmpkey* \
|
|
290
|
+
&& /bin/mv $tmpkey $idfile \
|
|
291
|
+
&& /bin/mv $tmppub $pubfile \
|
|
292
|
+
&& /bin/mv $tmpcert $certfile
|
|
293
|
+
|
|
294
|
+
if [[ $? -ne 0 ]]; then
|
|
295
|
+
Bail 4 "An error occured after successfully downloading keys (!!!)"
|
|
296
|
+
fi
|
|
297
|
+
|
|
298
|
+
# A few shenanigans to clean up line formatting
|
|
299
|
+
valid=$(ssh-keygen -L -f $certfile | grep Valid)
|
|
300
|
+
shopt -s extglob
|
|
301
|
+
valid=${valid/+( )/}
|
|
302
|
+
valid=${valid/Valid/valid}
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
if [[ $opt_agent -ne 0 ]]; then
|
|
306
|
+
# extract expiration date from "valid" line (above)
|
|
307
|
+
expiry=${valid/valid*to /}
|
|
308
|
+
|
|
309
|
+
distro=$(uname)
|
|
310
|
+
dateError=0
|
|
311
|
+
|
|
312
|
+
case $distro in
|
|
313
|
+
Darwin|*BSD*)
|
|
314
|
+
# Convert the date to epoch
|
|
315
|
+
expepoch=$(date -j -f '%FT%T' $expiry +%s)
|
|
316
|
+
|
|
317
|
+
# get current epoch time
|
|
318
|
+
epoch=$(date -j +%s)
|
|
319
|
+
;;
|
|
320
|
+
|
|
321
|
+
Linux|GNU|CYGWIN*)
|
|
322
|
+
# Convert the date to epoch
|
|
323
|
+
expepoch=$(date -d $expiry +%s)
|
|
324
|
+
|
|
325
|
+
# get current epoch time
|
|
326
|
+
epoch=$(date +%s)
|
|
327
|
+
;;
|
|
328
|
+
|
|
329
|
+
*)
|
|
330
|
+
Error "Unrecognized OS; I don't know how to convert a date to epoch time"
|
|
331
|
+
dateError=1
|
|
332
|
+
;;
|
|
333
|
+
esac
|
|
334
|
+
|
|
335
|
+
# compute the interval between expiration and now
|
|
336
|
+
# (minus one second just to be sure)
|
|
337
|
+
interval=$(( $expepoch - $epoch - 1 ))
|
|
338
|
+
|
|
339
|
+
# add the interval to ssh-agent
|
|
340
|
+
if [[ $dateError -gt 0 ]]; then
|
|
341
|
+
Error "Can't add key to ssh-agent."
|
|
342
|
+
elif [[ $interval -gt 0 ]]; then
|
|
343
|
+
ssh-add -t $interval $idfile
|
|
344
|
+
else
|
|
345
|
+
Error "cert $certfile is either expired or otherwise invalid. Expiration read as: $expiry"
|
|
346
|
+
fi
|
|
347
|
+
|
|
348
|
+
fi
|
|
349
|
+
|
|
350
|
+
# And give the user some feedback
|
|
351
|
+
printf "Successfully obtained ssh key %s\n" "$idfile"
|
|
352
|
+
|
|
353
|
+
printf "Key $idfile is %s\n" "$valid"
|
|
@@ -20,7 +20,7 @@ from starlette import status
|
|
|
20
20
|
from toolz.dicttoolz import dissoc, assoc_in, get_in
|
|
21
21
|
|
|
22
22
|
from nmdc_runtime.api.models.metadata import ChangesheetIn
|
|
23
|
-
from nmdc_runtime.util import get_nmdc_jsonschema_dict,
|
|
23
|
+
from nmdc_runtime.util import get_nmdc_jsonschema_dict, collection_name_to_class_names
|
|
24
24
|
|
|
25
25
|
# custom named tuple to hold path property information
|
|
26
26
|
SchemaPathProperties = namedtuple(
|
|
@@ -169,7 +169,14 @@ def load_changesheet(
|
|
|
169
169
|
class_name = data["type"].split(":")[-1]
|
|
170
170
|
class_name = class_name_dict[class_name]
|
|
171
171
|
else:
|
|
172
|
-
|
|
172
|
+
class_names = collection_name_to_class_names[collection_name]
|
|
173
|
+
if len(class_names) > 1:
|
|
174
|
+
raise ValueError(
|
|
175
|
+
"cannot unambiguously infer class of document"
|
|
176
|
+
f" with `id` {id_} in collection {collection_name}."
|
|
177
|
+
" Please ensure explicit `type` is present in document."
|
|
178
|
+
)
|
|
179
|
+
class_name = class_name_dict[class_names[0]]
|
|
173
180
|
|
|
174
181
|
# set class name for id
|
|
175
182
|
df["linkml_class"] = class_name
|
|
@@ -733,6 +740,11 @@ def _validate_changesheet(df_change: pd.DataFrame, mdb: MongoDatabase):
|
|
|
733
740
|
for result in results_of_updates:
|
|
734
741
|
if len(result.get("validation_errors", [])) > 0:
|
|
735
742
|
validation_errors.append(result["validation_errors"])
|
|
743
|
+
if (
|
|
744
|
+
len(write_errors := result.get("update_info", {}).get("writeErrors", {}))
|
|
745
|
+
> 0
|
|
746
|
+
):
|
|
747
|
+
validation_errors.append(write_errors)
|
|
736
748
|
|
|
737
749
|
if validation_errors:
|
|
738
750
|
raise HTTPException(
|
|
@@ -28,10 +28,13 @@ def hash_from_str(s: str, algo="sha256") -> str:
|
|
|
28
28
|
return getattr(hashlib, algo)(s.encode("utf-8")).hexdigest()
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
def sha256hash_from_file(file_path: str):
|
|
31
|
+
def sha256hash_from_file(file_path: str, timestamp: str):
|
|
32
32
|
# https://stackoverflow.com/a/55542529
|
|
33
33
|
h = hashlib.sha256()
|
|
34
34
|
|
|
35
|
+
timestamp_bytes = timestamp.encode("utf-8")
|
|
36
|
+
h.update(timestamp_bytes)
|
|
37
|
+
|
|
35
38
|
with open(file_path, "rb") as file:
|
|
36
39
|
while True:
|
|
37
40
|
# Reading is buffered, so we can read smaller chunks.
|