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.

Files changed (511) hide show
  1. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.dockerignore +0 -1
  2. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.env.example +2 -0
  3. nmdc_runtime-1.0.10/.github/workflows/build-and-release-to-spin.yml +92 -0
  4. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.gitignore +3 -1
  5. nmdc_runtime-1.0.10/.gitpod.Dockerfile +7 -0
  6. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.gitpod.yml +4 -3
  7. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/Makefile +11 -14
  8. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/PKG-INFO +1 -1
  9. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/release-process.md +10 -6
  10. nmdc_runtime-1.0.10/nersc-sshproxy.sh +353 -0
  11. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/metadata.py +14 -2
  12. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/util.py +4 -1
  13. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/find.py +50 -30
  14. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/metadata.py +0 -9
  15. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/nmdcschema.py +7 -0
  16. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/util.py +5 -1
  17. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/base.py +26 -1
  18. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/scripts/missing_neon_soils_ecosystem_data.py +2 -14
  19. nmdc_runtime-1.0.10/nmdc_runtime/site/changesheets/scripts/neon_soils_add_ncbi_ids.py +210 -0
  20. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/resources.py +44 -7
  21. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/templates/search.html +11 -8
  22. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/util.py +81 -18
  23. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/PKG-INFO +1 -1
  24. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/SOURCES.txt +5 -3
  25. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/dev.txt +4 -9
  26. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/main.in +1 -0
  27. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/main.txt +30 -47
  28. nmdc_runtime-1.0.10/tests/unit/core_util.py +21 -0
  29. nmdc_runtime-1.0.9/.github/workflows/build-and-push-docker-images.yml +0 -45
  30. nmdc_runtime-1.0.9/.github/workflows/release-to-spin.yml +0 -55
  31. nmdc_runtime-1.0.9/docker-build.sh +0 -78
  32. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.env.test +0 -0
  33. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.github/workflows/mkdocs.yml +0 -0
  34. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.github/workflows/python-app.yml +0 -0
  35. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.github/workflows/release-to-pypi.yml +0 -0
  36. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/.nvmrc +0 -0
  37. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/LICENSE +0 -0
  38. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/README.md +0 -0
  39. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/RELEASES.md +0 -0
  40. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow/__init__.py +0 -0
  41. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow/spec.py +0 -0
  42. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/__init__.py +0 -0
  43. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/core.py +0 -0
  44. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/spec.py +0 -0
  45. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/components/nmdc_runtime/workflow_execution_activity/store.py +0 -0
  46. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/.env.example +0 -0
  47. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/GOLDs5levelEcosystemClassificationPaths.xlsx +0 -0
  48. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/biosamples.json +0 -0
  49. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/console_queries.dev +0 -0
  50. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/docker-compose.yml +0 -0
  51. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/envo.owl +0 -0
  52. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/indexing.ipynb +0 -0
  53. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_discovery/po.owl +0 -0
  54. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/__init__.py +0 -0
  55. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/main.ipynb +0 -0
  56. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/main.py +0 -0
  57. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/.gitignore +0 -0
  58. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/.mongo.yaml.example +0 -0
  59. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/.notebook.env.example +0 -0
  60. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/helpers.py +0 -0
  61. {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
  62. {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
  63. {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
  64. {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
  65. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/demo/metadata_migration/notebooks/requirements.txt +0 -0
  66. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docker-compose.test.yml +0 -0
  67. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docker-compose.yml +0 -0
  68. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/admin.md +0 -0
  69. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/contributing-docs.md +0 -0
  70. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/draft.md +0 -0
  71. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/explanation/domain-vision-statement.md +0 -0
  72. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/explanation/identifiers.md +0 -0
  73. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/explanation/journeys.md +0 -0
  74. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/author-changesheets.md +0 -0
  75. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/claim-and-run-jobs.md +0 -0
  76. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/create-triggers.md +0 -0
  77. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/improving-search-api.md +0 -0
  78. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/jobs/gold-translation-etl.md +0 -0
  79. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/howto-guides/update-sensors-ops.md +0 -0
  80. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-button.png +0 -0
  81. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-client-id.png +0 -0
  82. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-close-modal.png +0 -0
  83. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/auth-username.png +0 -0
  84. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagit-apply-changesheet-job.png +0 -0
  85. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-gold-job.png +0 -0
  86. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-gold-launchpad.png +0 -0
  87. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-gold-overview.png +0 -0
  88. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-translation-repo-jobs.png +0 -0
  89. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/dagster-workspace-repo-loaded.png +0 -0
  90. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/job-triggering.png +0 -0
  91. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/list-from-collection-filter.png +0 -0
  92. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/list-from-collection-page-token.png +0 -0
  93. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/list-from-collection.png +0 -0
  94. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/metadata-in-dagit-runs.png +0 -0
  95. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/metadata-in-put-types.png +0 -0
  96. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/nmdc-runtime-federation.png +0 -0
  97. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/rancher-nmdc-runtime-dev-workloads.png +0 -0
  98. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-copy-paste-execute.png +0 -0
  99. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-get-one-valid.png +0 -0
  100. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-response.png +0 -0
  101. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json-try-it-out.png +0 -0
  102. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/img/validate-json.png +0 -0
  103. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/index.md +0 -0
  104. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/nb/get_data.ipynb +0 -0
  105. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/nb/queue_and_trigger_data_jobs.ipynb +0 -0
  106. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/nb/wf_automation.ipynb +0 -0
  107. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/stylesheets/extra.css +0 -0
  108. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/tutorials/auth.md +0 -0
  109. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/tutorials/json.md +0 -0
  110. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs/tutorials/metadata-in.md +0 -0
  111. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/api-resource-diagram.md +0 -0
  112. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/api-resource-layout.md +0 -0
  113. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/nmdc-runtime-api-resource-diagram.png +0 -0
  114. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/nmdc-wfe.ttl +0 -0
  115. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/redoc-static.html +0 -0
  116. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/spec.md +0 -0
  117. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/design/workflow-automation.md +0 -0
  118. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/docs_prev/index.html +0 -0
  119. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/flake.lock +0 -0
  120. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/flake.nix +0 -0
  121. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/github_secrets_to_dotenv.sh +0 -0
  122. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/guix-manifest.scm +0 -0
  123. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/Makefile +0 -0
  124. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/README.md +0 -0
  125. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/__init__.py +0 -0
  126. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/Froze_Core_2015_S2_0_10_7_Metab.json +0 -0
  127. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/MAGs_activity.json +0 -0
  128. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/biosample_test.json +0 -0
  129. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/changesheet-ex-01-screenshot.png +0 -0
  130. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/changesheet-ex-01.csv +0 -0
  131. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/emsl_data_object_test.json +0 -0
  132. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/emsl_project_test.json +0 -0
  133. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/feature-set.json +0 -0
  134. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/ftms_nom_data_products.json +0 -0
  135. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/functional-annotation.json +0 -0
  136. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/gcms_metabolomics_data_products.json +0 -0
  137. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/gold_project_test.json +0 -0
  138. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/img_mg_annotation_data_objects.json +0 -0
  139. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/img_mg_annotation_objects.json +0 -0
  140. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/metagenome_annotation_activity.json +0 -0
  141. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/mg_assembly_activities_test.json +0 -0
  142. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/mg_assembly_data_objects_test.json +0 -0
  143. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/migs-template-cedar.schema.json +0 -0
  144. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/nom_analysis_activity.json +0 -0
  145. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/readQC_activities_test.json +0 -0
  146. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/readQC_data_objects_test.json +0 -0
  147. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/read_based_analysis_activity.json +0 -0
  148. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/examples/study_test.json +0 -0
  149. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/images/nmdc-etl-workflow.drawio +0 -0
  150. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/images/nmdc-etl-workflow.png +0 -0
  151. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/images/nmdc-etl-workflow.svg +0 -0
  152. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/Description_MIxS_Packages_v5.docx +0 -0
  153. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/GOLD-Paths-to-MIxS-ENVO-triad-mapping.xlsx +0 -0
  154. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSair_20180621_GOLD_Mapping_04132020.xlsx +0 -0
  155. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSbuiltenv_20180621_GOLD_Mapping_04172020.xlsx +0 -0
  156. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShostassoc_20180621_GOLD_Mapping.xlsx +0 -0
  157. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanassoc_20180621_GOLD_Mapping_04142020.xlsx +0 -0
  158. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumangut_20180621_GOLD_Mapping_04152020.xlsx +0 -0
  159. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanoral_20180621_GOLD_Mapping_04152020.xlsx +0 -0
  160. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanskin_20180621_GOLD_Mapping_04162020.xlsx +0 -0
  161. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShumanvaginal_20180621_GOLD_04162020.xlsx +0 -0
  162. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShydrocarbCores_20180621_Mapping_GOLD.xlsx +0 -0
  163. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxShydrocarbfs_20180621_v5_GOLD_Mapping.xlsx +0 -0
  164. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSmatbiofilm_20180621_v5_GOLD_Mapping.xlsx +0 -0
  165. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSmisc_20180621_GOLD_Mapping.xlsx +0 -0
  166. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSplantassoc_20180621_v5_GOLD_Mapping.xlsx +0 -0
  167. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSsediment_20180621_GOLD_Mapping_04102020.xlsx +0 -0
  168. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSsoil_20180621_GOLD_Mapping_04102020.xlsx +0 -0
  169. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSwastesludge_20180621_GOLD_Mapping_Apr-10.xlsx +0 -0
  170. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/MIxSwater_20180621_GOLD_Mapping_04122020.xlsx +0 -0
  171. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/Makefile +0 -0
  172. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/README.md +0 -0
  173. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/mixs_v4.xlsx +0 -0
  174. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/mapping-files/mixs_v5.xlsx +0 -0
  175. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/202106_curation_updates.ipynb +0 -0
  176. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/202106_workflow_execution_demo.ipynb +0 -0
  177. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/202109_metadata_ingest.ipynb +0 -0
  178. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/NMDC-GOLD-data-counts.ipynb +0 -0
  179. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/README.md +0 -0
  180. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/archive/generate-gold-sample-json.ipynb +0 -0
  181. {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
  182. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/changesheets-example.ipynb +0 -0
  183. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/changesheets-testing.ipynb +0 -0
  184. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-array-item-nested-attributes.tsv +0 -0
  185. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-insert.tsv +0 -0
  186. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-remove-item.tsv +0 -0
  187. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-remove-property.tsv +0 -0
  188. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-replace.tsv +0 -0
  189. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-update-pi-websites.tsv +0 -0
  190. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-with-separator1.tsv +0 -0
  191. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-without-separator1.tsv +0 -0
  192. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-without-separator2.tsv +0 -0
  193. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/changesheet-without-separator3.tsv +0 -0
  194. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/study-data1.json +0 -0
  195. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/study-data2.json +0 -0
  196. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/data/study-data3.json +0 -0
  197. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ensure_biosample_set_study_id.ipynb +0 -0
  198. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ghissue_252_253_linked_samples.ipynb +0 -0
  199. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ghissue_255.ipynb +0 -0
  200. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/ghissue_272.ipynb +0 -0
  201. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/gold-biosample-null-value-analysis.ipynb +0 -0
  202. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/gold_ids_to_igsns.ipynb +0 -0
  203. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/EMSL-data-translation.png +0 -0
  204. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/GOLD-data-objects-translation.png +0 -0
  205. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/GOLD-study-project-biosample-translation.png +0 -0
  206. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/images/NMDC-jupyter-translation-workflow.png +0 -0
  207. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/metaP_stegen.ipynb +0 -0
  208. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/metadata_db_admin.ipynb +0 -0
  209. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/mongo_etl_demo.ipynb +0 -0
  210. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/FICUS-projects-merged.owl +0 -0
  211. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/FICUS-projects-merged.owl.zip +0 -0
  212. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/FICUS-projects-translation.owl +0 -0
  213. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/catalog-v001.xml +0 -0
  214. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.json +0 -0
  215. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.json.zip +0 -0
  216. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl +0 -0
  217. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl.zip +0 -0
  218. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/gold-dataset-translation.owl +0 -0
  219. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/biosample.json +0 -0
  220. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/data_objects.json +0 -0
  221. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/omics_processing.json +0 -0
  222. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json/study.json +0 -0
  223. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-01.zip +0 -0
  224. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-05.zip +0 -0
  225. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-06.zip +0 -0
  226. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-12.zip +0 -0
  227. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-18.zip +0 -0
  228. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/nmdc-json_2020-02-19.zip +0 -0
  229. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test-full.txt.zip +0 -0
  230. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test.json +0 -0
  231. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test.txt +0 -0
  232. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/schema-test.txt.zip +0 -0
  233. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/temp.txt +0 -0
  234. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/biosample.json +0 -0
  235. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/data_object.json +0 -0
  236. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/project.json +0 -0
  237. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-five-biosamples/study.json +0 -0
  238. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/biosample.json +0 -0
  239. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/emsl_data_objects.json +0 -0
  240. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/emsl_omics_processing.json +0 -0
  241. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/faa_fna_fastq_data_objects.json +0 -0
  242. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/gold_omics_processing.json +0 -0
  243. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/gold_study.json +0 -0
  244. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline/nmdc-02.json +0 -0
  245. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/output/test-pipeline.zip +0 -0
  246. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-changesheet-with-separator.ipynb +0 -0
  247. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-changesheet-without-separator.ipynb +0 -0
  248. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-output.ipynb +0 -0
  249. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-pipeline-scratch.ipynb +0 -0
  250. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-pipeline-temp.ipynb +0 -0
  251. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test-pipeline.ipynb +0 -0
  252. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test.json +0 -0
  253. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/test.txt +0 -0
  254. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translate-EMSL-data.ipynb +0 -0
  255. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translate-GOLD-data-objects.ipynb +0 -0
  256. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translate-GOLD-study-project-biosample.ipynb +0 -0
  257. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/notebooks/translation-pipeline.ipynb +0 -0
  258. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/__init__.py +0 -0
  259. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/__init__.py +0 -0
  260. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/align_nmdc_datatypes.py +0 -0
  261. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/execute_etl_pipeline.py +0 -0
  262. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/fix_omics_processing_json.py +0 -0
  263. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/__init__.py +0 -0
  264. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/data_operations.py +0 -0
  265. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/extract_nmdc_data.py +0 -0
  266. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/load_nmdc_data.py +0 -0
  267. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/nmdc_data_source.yaml +0 -0
  268. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/nmdc_dataframes.py +0 -0
  269. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/nmdc_etl_class.py +0 -0
  270. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/lib/transform_nmdc_data.py +0 -0
  271. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/mandatory_mixs_terms.py +0 -0
  272. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/mandatory_mixs_terms.py.org +0 -0
  273. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/bin/validate_json.py +0 -0
  274. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2020-23-12-brodie-Gs0135149-soil-metadata.csv +0 -0
  275. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-02-03-stegen_biosample_linking_update.csv +0 -0
  276. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-02-04-brodie_biosample_linking_update.csv +0 -0
  277. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-02-04-stegen_biosample_template.json +0 -0
  278. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/2021-07-02-study-changes.csv +0 -0
  279. {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
  280. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/EMSL_FICUS_project_process_data_export.xlsx +0 -0
  281. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/EMSL_Hess_Stegen_Blanchard_DatasetToMetagenomeMapping.tsv +0 -0
  282. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/EMSL_biosample_matches.tsv +0 -0
  283. {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
  284. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD-soil-mixs-envo-mappings.tsv +0 -0
  285. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD-to-mixs-map.tsv +0 -0
  286. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD_Ecosystem_Classification_Paths_10152019.xlsx +0 -0
  287. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/GOLD_ecosystem_classification_paths.xlsx +0 -0
  288. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/JGI-EMSL-FICUS-proposals.fnl.tsv +0 -0
  289. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/NMDC-GOLD-Fields.xlsx +0 -0
  290. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/README.md +0 -0
  291. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/__init__.py +0 -0
  292. {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
  293. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/Hess_metaproteomic_analysis_activities.json +0 -0
  294. {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
  295. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/Stegen_metaproteomic_analysis_activities.json +0 -0
  296. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_activities.json +0 -0
  297. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_data_objects.json +0 -0
  298. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_activities.json +0 -0
  299. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_data_objects.json +0 -0
  300. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/readQC_activities.json +0 -0
  301. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/aim-2-workflows/readQC_data_objects.json +0 -0
  302. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/all_gold_fields.xlsx +0 -0
  303. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/ficus_project_faa.tsv +0 -0
  304. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/ficus_project_fastq.tsv +0 -0
  305. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/ficus_project_fna.tsv +0 -0
  306. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/mixs_v5.xlsx +0 -0
  307. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/nmdc-version2.zip +0 -0
  308. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/metadata-translation/src/data/nmdc-version5.zip +0 -0
  309. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/mkdocs.yml +0 -0
  310. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/mkdocs_overrides/partials/source.html +0 -0
  311. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/mongoKeyFile +0 -0
  312. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc-wfe.html +0 -0
  313. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/__init__.py +0 -0
  314. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/analytics.py +0 -0
  315. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/__init__.py +0 -0
  316. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/capabilities.py +0 -0
  317. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/object_types.py +0 -0
  318. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/triggers.py +0 -0
  319. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/boot/workflows.py +0 -0
  320. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/__init__.py +0 -0
  321. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/auth.py +0 -0
  322. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/core/idgen.py +0 -0
  323. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/__init__.py +0 -0
  324. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/mongo.py +0 -0
  325. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/s3.py +0 -0
  326. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/db/terminus.py +0 -0
  327. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/__init__.py +0 -0
  328. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/capabilities.py +0 -0
  329. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/ids.py +0 -0
  330. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/jobs.py +0 -0
  331. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/object_types.py +0 -0
  332. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/objects.py +0 -0
  333. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/operations.py +0 -0
  334. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/queries.py +0 -0
  335. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/runs.py +0 -0
  336. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/search.py +0 -0
  337. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/sites.py +0 -0
  338. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/triggers.py +0 -0
  339. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/users.py +0 -0
  340. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/endpoints/workflows.py +0 -0
  341. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/entrypoint.sh +0 -0
  342. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/main.py +0 -0
  343. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/__init__.py +0 -0
  344. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/capability.py +0 -0
  345. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/id.py +0 -0
  346. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/job.py +0 -0
  347. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/metadata.py +0 -0
  348. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/minter.py +0 -0
  349. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/nmdc_schema.py +0 -0
  350. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/object.py +0 -0
  351. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/object_type.py +0 -0
  352. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/operation.py +0 -0
  353. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/query.py +0 -0
  354. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/run.py +0 -0
  355. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/site.py +0 -0
  356. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/trigger.py +0 -0
  357. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/user.py +0 -0
  358. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/util.py +0 -0
  359. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/models/workflow.py +0 -0
  360. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/models/ingest.py +0 -0
  361. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/models/users.py +0 -0
  362. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/models/workflow_execution_activity.py +0 -0
  363. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/outputs.py +0 -0
  364. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/router.py +0 -0
  365. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/users.py +0 -0
  366. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/workflows/__init__.py +0 -0
  367. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/workflows/activities/router.py +0 -0
  368. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/api/v1/workflows/activities.py +0 -0
  369. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/client/__init__.py +0 -0
  370. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/containers.py +0 -0
  371. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/__init__.py +0 -0
  372. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/db/Database.py +0 -0
  373. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/db/__init__.py +0 -0
  374. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/exceptions/__init__.py +0 -0
  375. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/exceptions/base.py +0 -0
  376. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/core/exceptions/token.py +0 -0
  377. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/dagster.Dockerfile +0 -0
  378. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/__init__.py +0 -0
  379. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/__init__.py +0 -0
  380. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/queriesInterface.py +0 -0
  381. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/userSchema.py +0 -0
  382. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/domain/users/userService.py +0 -0
  383. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/fastapi.Dockerfile +0 -0
  384. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/__init__.py +0 -0
  385. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/__init__.py +0 -0
  386. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/db.py +0 -0
  387. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/__init__.py +0 -0
  388. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/db.py +0 -0
  389. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/models/__init__.py +0 -0
  390. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/impl/mongo/models/user.py +0 -0
  391. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/models/__init__.py +0 -0
  392. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/infrastructure/database/models/user.py +0 -0
  393. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/__init__.py +0 -0
  394. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/extract_nmdc_data.py +0 -0
  395. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/load_nmdc_data.py +0 -0
  396. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/nmdc_data_source.yaml +0 -0
  397. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/nmdc_dataframes.py +0 -0
  398. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/nmdc_etl_class.py +0 -0
  399. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/lib/transform_nmdc_data.py +0 -0
  400. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/main.py +0 -0
  401. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/__init__.py +0 -0
  402. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/adapters/__init__.py +0 -0
  403. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/adapters/repository.py +0 -0
  404. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/bootstrap.py +0 -0
  405. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/config.py +0 -0
  406. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/domain/__init__.py +0 -0
  407. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/domain/model.py +0 -0
  408. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/entrypoints/__init__.py +0 -0
  409. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/entrypoints/fastapi_app.py +0 -0
  410. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/minter/nmdc.schema.json +0 -0
  411. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/__init__.py +0 -0
  412. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/__init__.py +0 -0
  413. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/nmdcdb_mongodump.py +0 -0
  414. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/nmdcdb_mongoexport.py +0 -0
  415. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/backup/nmdcdb_mongoimport.py +0 -0
  416. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/__init__.py +0 -0
  417. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/changesheets/data/OmicsProcessing-to-catted-Biosamples.tsv +0 -0
  418. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/dagster.yaml +0 -0
  419. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/drsobjects/__init__.py +0 -0
  420. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/drsobjects/ingest.py +0 -0
  421. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/drsobjects/registration.py +0 -0
  422. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/entrypoint-daemon.sh +0 -0
  423. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/entrypoint-dagit-readonly.sh +0 -0
  424. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/entrypoint-dagit.sh +0 -0
  425. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/export/__init__.py +0 -0
  426. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/export/study_metadata.py +0 -0
  427. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/graphs.py +0 -0
  428. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/normalization/__init__.py +0 -0
  429. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/normalization/gold.py +0 -0
  430. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/ops.py +0 -0
  431. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/repository.py +0 -0
  432. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/.TDB +0 -0
  433. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/__init__.py +0 -0
  434. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/config.json +0 -0
  435. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/generate.py +0 -0
  436. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/ingest.py +0 -0
  437. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/nmdc.schema.terminusdb.json +0 -0
  438. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/terminusdb/schema.py +0 -0
  439. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/__init__.py +0 -0
  440. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/emsl.py +0 -0
  441. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/gold.py +0 -0
  442. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/gold_translator.py +0 -0
  443. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/jgi.py +0 -0
  444. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/neon_translator.py +0 -0
  445. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/submission_portal_translator.py +0 -0
  446. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/translator.py +0 -0
  447. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/translation/util.py +0 -0
  448. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/util.py +0 -0
  449. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/__init__.py +0 -0
  450. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/emsl.py +0 -0
  451. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/gold.py +0 -0
  452. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/jgi.py +0 -0
  453. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/validation/util.py +0 -0
  454. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/site/workspace.yaml +0 -0
  455. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/templates/pipeline_search.html +0 -0
  456. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime/test.Dockerfile +0 -0
  457. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/dependency_links.txt +0 -0
  458. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/entry_points.txt +0 -0
  459. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/nmdc_runtime.egg-info/top_level.txt +0 -0
  460. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/requirements/dev.in +0 -0
  461. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/setup.cfg +0 -0
  462. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/setup.py +0 -0
  463. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tasks.py +0 -0
  464. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/terminusdb +0 -0
  465. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/__init__.py +0 -0
  466. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/conftest.py +0 -0
  467. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/e2e/test_minter_api.py +0 -0
  468. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_bsm-11-5nhz3402.json +0 -0
  469. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_bsm-12-7mysck21.json +0 -0
  470. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_dobj-11-000n1286.json +0 -0
  471. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/nmdc_sty-11-pzmd0x14.json +0 -0
  472. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/files/test_changesheet_update_one_ph.tsv +0 -0
  473. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/integration/test_minter_repository.py +0 -0
  474. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/mongodump-nmdc-testdb.sh +0 -0
  475. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/mongorestore-nmdc-testdb.sh +0 -0
  476. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/nmdcdb.test.archive.gz +0 -0
  477. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/__init__.py +0 -0
  478. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/test_db_mongo.py +0 -0
  479. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/test_endpoints.py +0 -0
  480. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/test_metadata.py +0 -0
  481. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_api/util.py +0 -0
  482. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/__init__.py +0 -0
  483. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/conftest.py +0 -0
  484. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_gold_translator.py +0 -0
  485. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_gold_translator_data.yaml +0 -0
  486. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_integrity.py +0 -0
  487. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_neon_data_translator.py +0 -0
  488. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_submission_portal_translator.py +0 -0
  489. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_data/test_submission_portal_translator_data.yaml +0 -0
  490. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/__init__.py +0 -0
  491. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/ensure_jobs.py +0 -0
  492. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/test_hello.py +0 -0
  493. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_graphs/test_submission_portal_graphs.py +0 -0
  494. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_normalization/__init__.py +0 -0
  495. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_normalization/test_gold.py +0 -0
  496. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/__init__.py +0 -0
  497. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_data_api_ops.py +0 -0
  498. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_get_csv_rows_from_url.py +0 -0
  499. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_gold_api_ops.py +0 -0
  500. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_ops/test_hello.py +0 -0
  501. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/test_util.py +0 -0
  502. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests/unit/test_minter_model.py +0 -0
  503. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/__init__.py +0 -0
  504. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/domain/__init__.py +0 -0
  505. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/domain/service/__init__.py +0 -0
  506. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tests2/domain/service/test_user_service.py +0 -0
  507. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/tmp.json +0 -0
  508. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/util/mongodump-nmdc.sh +0 -0
  509. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/util/mongorestore-nmdc.sh +0 -0
  510. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/wait-for-it.sh +0 -0
  511. {nmdc_runtime-1.0.9 → nmdc_runtime-1.0.10}/workspace.toml +0 -0
@@ -2,7 +2,6 @@
2
2
  .idea
3
3
  docker-compose.yml
4
4
  .dockerignore
5
- docker-build.sh
6
5
  deployment
7
6
  .eggs
8
7
  .pytest_cache
@@ -35,3 +35,5 @@ NMDC_PORTAL_API_BASE_URL=https://data-dev.microbiomedata.org/
35
35
 
36
36
  NEON_API_TOKEN=y
37
37
  NEON_API_BASE_URL=https://data.neonscience.org/api/v0
38
+
39
+ NERSC_USERNAME=replaceme
@@ -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 }}
@@ -163,4 +163,6 @@ tests/nmdcdb/
163
163
  neon_cache.sqlite
164
164
 
165
165
  # output of changesheet generation
166
- nmdc_runtime/site/changesheets/changesheets_output/
166
+ nmdc_runtime/site/changesheets/changesheets_output/
167
+
168
+ mdb-nmdc-dev.tar.gz
@@ -0,0 +1,7 @@
1
+ FROM gitpod/workspace-full
2
+
3
+ RUN wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2204-x86_64-100.9.3.tgz
4
+
5
+ RUN tar -zxvf mongodb-database-tools-*.tgz
6
+
7
+ RUN sudo cp mongodb-database-tools-*/bin/* /usr/local/bin/
@@ -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 up-dev
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 ~/nersc-sshproxy.sh # https://docs.nersc.gov/connect/mfa/#sshproxy
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-nmdcdb-lite-archive:
90
- wget https://portal.nersc.gov/project/m3408/meta/mongodumps/nmdcdb.lite.archive.gz
91
- mongorestore --host localhost:27018 --username admin --password root --drop --gzip \
92
- --archive=nmdcdb.lite.archive.gz
93
- rm nmdcdb.lite.archive.gz
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
- fastapi-docker dagster-docker publish docs
96
+ publish docs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nmdc_runtime
3
- Version: 1.0.9
3
+ Version: 1.0.10
4
4
  Summary: A runtime system for NMDC data management and orchestration
5
5
  Home-page: https://github.com/microbiomedata/nmdc-runtime
6
6
  Author: Donny Winston
@@ -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 Github Actions
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. Add a summary for the release to `RELEASES.md`. You can make an edit and push to the `main`
22
- branch [via GitHub](https://github.com/microbiomedata/nmdc-runtime/blob/main/RELEASES.md). This will
23
- trigger two GitHub actions in sequence to
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
- - [build and push updated Docker images](https://github.com/microbiomedata/nmdc-runtime/blob/main/.github/workflows/build-and-push-docker-images.yml) for the API server and for the NMDC Runtime site's Dagster daemon and Dagit dashboard, and
27
+ Once the GitHub Release has been created, two GitHub Actions will be triggered which:
26
28
 
27
- - [deploy the new images to Spin](https://github.com/microbiomedata/nmdc-runtime/blob/main/.github/workflows/release-to-spin.yml).
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, collection_name_to_class_name
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
- class_name = class_name_dict[collection_name_to_class_name[collection_name]]
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.