nmdc-runtime 1.4.0__tar.gz → 1.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nmdc-runtime might be problematic. Click here for more details.

Files changed (525) hide show
  1. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/python-app.yml +1 -1
  2. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.gitignore +5 -1
  3. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/Makefile +1 -2
  4. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/PKG-INFO +1 -1
  5. nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/bookkeeper.py +127 -0
  6. nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/manual_test_bookkeeper.py +186 -0
  7. nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/migrate_10_0_0_to_10_1_4.ipynb +575 -0
  8. nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/migrate_A_B_C_to_X_Y_Z.ipynb +548 -0
  9. nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/stakeholders.md +31 -0
  10. nmdc_runtime-1.4.1/demo/metadata_migration/notebooks/test_helpers.py +78 -0
  11. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docker-compose.test.yml +2 -0
  12. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/metadata.py +3 -3
  13. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/objects.py +6 -0
  14. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/workflows.py +3 -6
  15. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/main.py +7 -1
  16. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/models/workflow_execution_activity.py +1 -0
  17. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/users.py +1 -0
  18. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/workflows/activities/router.py +1 -0
  19. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/workflows/activities.py +1 -4
  20. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/db.py +1 -0
  21. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/models/user.py +1 -0
  22. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/export/study_metadata.py +1 -0
  23. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/emsl.py +1 -0
  24. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/jgi.py +1 -0
  25. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/neon_soil_translator.py +5 -5
  26. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/emsl.py +1 -0
  27. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/gold.py +1 -0
  28. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/jgi.py +1 -0
  29. nmdc_runtime-1.4.1/nmdc_runtime/static/favicon.ico +0 -0
  30. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/PKG-INFO +1 -1
  31. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/SOURCES.txt +7 -0
  32. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/dev.txt +22 -20
  33. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/main.in +2 -2
  34. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/main.txt +108 -123
  35. nmdc_runtime-1.4.1/tests/mongorestore-nmdc-testdb.sh +6 -0
  36. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/test_endpoints.py +8 -0
  37. nmdc_runtime-1.4.0/tests/mongorestore-nmdc-testdb.sh +0 -6
  38. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.dockerignore +0 -0
  39. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.env.example +0 -0
  40. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.env.test +0 -0
  41. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/pull_request_template.md +0 -0
  42. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/build-and-release-to-spin.yml +0 -0
  43. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/lint.yml +0 -0
  44. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/mkdocs.yml +0 -0
  45. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.github/workflows/release-to-pypi.yml +0 -0
  46. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.gitpod.Dockerfile +0 -0
  47. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.gitpod.yml +0 -0
  48. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/.nvmrc +0 -0
  49. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/LICENSE +0 -0
  50. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/README.md +0 -0
  51. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/RELEASES.md +0 -0
  52. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow/__init__.py +0 -0
  53. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow/spec.py +0 -0
  54. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/__init__.py +0 -0
  55. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/core.py +0 -0
  56. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/spec.py +0 -0
  57. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/components/nmdc_runtime/workflow_execution_activity/store.py +0 -0
  58. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/.env.example +0 -0
  59. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/GOLDs5levelEcosystemClassificationPaths.xlsx +0 -0
  60. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/biosamples.json +0 -0
  61. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/console_queries.dev +0 -0
  62. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/docker-compose.yml +0 -0
  63. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/envo.owl +0 -0
  64. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/indexing.ipynb +0 -0
  65. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_discovery/po.owl +0 -0
  66. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/__init__.py +0 -0
  67. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/main.ipynb +0 -0
  68. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/main.py +0 -0
  69. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/.gitignore +0 -0
  70. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/.mongo.yaml.example +0 -0
  71. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/.notebook.env.example +0 -0
  72. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/helpers.py +0 -0
  73. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_7_7_2_to_7_8_0.ipynb +0 -0
  74. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_7_8_0_to_8_0_0.ipynb +0 -0
  75. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_8_0_0_to_8_1_2.ipynb +0 -0
  76. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_8_1_2_to_9_0_4.ipynb +0 -0
  77. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_9_0_4_to_9_1_0.ipynb +0 -0
  78. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_9_1_0_to_9_2_0.ipynb +0 -0
  79. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/migrate_9_3_2_to_10_0_0.ipynb +0 -0
  80. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/demo/metadata_migration/notebooks/requirements.txt +0 -0
  81. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docker-compose.yml +0 -0
  82. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/admin.md +0 -0
  83. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/contributing-docs.md +0 -0
  84. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/draft.md +0 -0
  85. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/explanation/domain-vision-statement.md +0 -0
  86. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/explanation/identifiers.md +0 -0
  87. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/explanation/journeys.md +0 -0
  88. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/author-changesheets.md +0 -0
  89. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/claim-and-run-jobs.md +0 -0
  90. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/create-triggers.md +0 -0
  91. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/improving-search-api.md +0 -0
  92. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/jobs/gold-translation-etl.md +0 -0
  93. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/release-process.md +0 -0
  94. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/howto-guides/update-sensors-ops.md +0 -0
  95. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-button.png +0 -0
  96. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-client-id.png +0 -0
  97. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-close-modal.png +0 -0
  98. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/auth-username.png +0 -0
  99. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagit-apply-changesheet-job.png +0 -0
  100. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-gold-job.png +0 -0
  101. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-gold-launchpad.png +0 -0
  102. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-gold-overview.png +0 -0
  103. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-translation-repo-jobs.png +0 -0
  104. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/dagster-workspace-repo-loaded.png +0 -0
  105. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/job-triggering.png +0 -0
  106. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/list-from-collection-filter.png +0 -0
  107. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/list-from-collection-page-token.png +0 -0
  108. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/list-from-collection.png +0 -0
  109. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/metadata-in-dagit-runs.png +0 -0
  110. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/metadata-in-put-types.png +0 -0
  111. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/nmdc-runtime-federation.png +0 -0
  112. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/rancher-nmdc-runtime-dev-workloads.png +0 -0
  113. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-copy-paste-execute.png +0 -0
  114. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-get-one-valid.png +0 -0
  115. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-response.png +0 -0
  116. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json-try-it-out.png +0 -0
  117. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/img/validate-json.png +0 -0
  118. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/index.md +0 -0
  119. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/nb/get_data.ipynb +0 -0
  120. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/nb/queue_and_trigger_data_jobs.ipynb +0 -0
  121. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/nb/wf_automation.ipynb +0 -0
  122. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/stylesheets/extra.css +0 -0
  123. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/tutorials/auth.md +0 -0
  124. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/tutorials/json.md +0 -0
  125. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs/tutorials/metadata-in.md +0 -0
  126. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/api-resource-diagram.md +0 -0
  127. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/api-resource-layout.md +0 -0
  128. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/nmdc-runtime-api-resource-diagram.png +0 -0
  129. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/nmdc-wfe.ttl +0 -0
  130. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/redoc-static.html +0 -0
  131. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/spec.md +0 -0
  132. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/design/workflow-automation.md +0 -0
  133. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/docs_prev/index.html +0 -0
  134. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/flake.lock +0 -0
  135. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/flake.nix +0 -0
  136. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/github_secrets_to_dotenv.sh +0 -0
  137. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/guix-manifest.scm +0 -0
  138. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/Makefile +0 -0
  139. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/README.md +0 -0
  140. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/__init__.py +0 -0
  141. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/Froze_Core_2015_S2_0_10_7_Metab.json +0 -0
  142. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/MAGs_activity.json +0 -0
  143. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/biosample_test.json +0 -0
  144. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/changesheet-ex-01-screenshot.png +0 -0
  145. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/changesheet-ex-01.csv +0 -0
  146. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/emsl_data_object_test.json +0 -0
  147. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/emsl_project_test.json +0 -0
  148. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/feature-set.json +0 -0
  149. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/ftms_nom_data_products.json +0 -0
  150. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/functional-annotation.json +0 -0
  151. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/gcms_metabolomics_data_products.json +0 -0
  152. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/gold_project_test.json +0 -0
  153. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/img_mg_annotation_data_objects.json +0 -0
  154. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/img_mg_annotation_objects.json +0 -0
  155. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/metagenome_annotation_activity.json +0 -0
  156. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/mg_assembly_activities_test.json +0 -0
  157. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/mg_assembly_data_objects_test.json +0 -0
  158. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/migs-template-cedar.schema.json +0 -0
  159. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/nom_analysis_activity.json +0 -0
  160. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/readQC_activities_test.json +0 -0
  161. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/readQC_data_objects_test.json +0 -0
  162. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/read_based_analysis_activity.json +0 -0
  163. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/examples/study_test.json +0 -0
  164. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/images/nmdc-etl-workflow.drawio +0 -0
  165. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/images/nmdc-etl-workflow.png +0 -0
  166. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/images/nmdc-etl-workflow.svg +0 -0
  167. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/Description_MIxS_Packages_v5.docx +0 -0
  168. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/GOLD-Paths-to-MIxS-ENVO-triad-mapping.xlsx +0 -0
  169. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSair_20180621_GOLD_Mapping_04132020.xlsx +0 -0
  170. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSbuiltenv_20180621_GOLD_Mapping_04172020.xlsx +0 -0
  171. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShostassoc_20180621_GOLD_Mapping.xlsx +0 -0
  172. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanassoc_20180621_GOLD_Mapping_04142020.xlsx +0 -0
  173. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumangut_20180621_GOLD_Mapping_04152020.xlsx +0 -0
  174. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanoral_20180621_GOLD_Mapping_04152020.xlsx +0 -0
  175. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanskin_20180621_GOLD_Mapping_04162020.xlsx +0 -0
  176. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShumanvaginal_20180621_GOLD_04162020.xlsx +0 -0
  177. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShydrocarbCores_20180621_Mapping_GOLD.xlsx +0 -0
  178. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxShydrocarbfs_20180621_v5_GOLD_Mapping.xlsx +0 -0
  179. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSmatbiofilm_20180621_v5_GOLD_Mapping.xlsx +0 -0
  180. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSmisc_20180621_GOLD_Mapping.xlsx +0 -0
  181. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSplantassoc_20180621_v5_GOLD_Mapping.xlsx +0 -0
  182. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSsediment_20180621_GOLD_Mapping_04102020.xlsx +0 -0
  183. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSsoil_20180621_GOLD_Mapping_04102020.xlsx +0 -0
  184. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSwastesludge_20180621_GOLD_Mapping_Apr-10.xlsx +0 -0
  185. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/MIxSwater_20180621_GOLD_Mapping_04122020.xlsx +0 -0
  186. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/Makefile +0 -0
  187. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/README.md +0 -0
  188. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/mixs_v4.xlsx +0 -0
  189. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/mapping-files/mixs_v5.xlsx +0 -0
  190. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/202106_curation_updates.ipynb +0 -0
  191. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/202106_workflow_execution_demo.ipynb +0 -0
  192. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/202109_metadata_ingest.ipynb +0 -0
  193. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/NMDC-GOLD-data-counts.ipynb +0 -0
  194. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/README.md +0 -0
  195. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/archive/generate-gold-sample-json.ipynb +0 -0
  196. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/archive/translate-30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.ipynb +0 -0
  197. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/changesheets-example.ipynb +0 -0
  198. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/changesheets-testing.ipynb +0 -0
  199. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-array-item-nested-attributes.tsv +0 -0
  200. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-insert.tsv +0 -0
  201. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-remove-item.tsv +0 -0
  202. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-remove-property.tsv +0 -0
  203. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-replace.tsv +0 -0
  204. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-update-pi-websites.tsv +0 -0
  205. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-with-separator1.tsv +0 -0
  206. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-without-separator1.tsv +0 -0
  207. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-without-separator2.tsv +0 -0
  208. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/changesheet-without-separator3.tsv +0 -0
  209. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/study-data1.json +0 -0
  210. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/study-data2.json +0 -0
  211. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/data/study-data3.json +0 -0
  212. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ensure_biosample_set_study_id.ipynb +0 -0
  213. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ghissue_252_253_linked_samples.ipynb +0 -0
  214. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ghissue_255.ipynb +0 -0
  215. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/ghissue_272.ipynb +0 -0
  216. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/gold-biosample-null-value-analysis.ipynb +0 -0
  217. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/gold_ids_to_igsns.ipynb +0 -0
  218. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/EMSL-data-translation.png +0 -0
  219. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/GOLD-data-objects-translation.png +0 -0
  220. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/GOLD-study-project-biosample-translation.png +0 -0
  221. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/images/NMDC-jupyter-translation-workflow.png +0 -0
  222. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/metaP_stegen.ipynb +0 -0
  223. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/metadata_db_admin.ipynb +0 -0
  224. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/mongo_etl_demo.ipynb +0 -0
  225. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/FICUS-projects-merged.owl +0 -0
  226. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/FICUS-projects-merged.owl.zip +0 -0
  227. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/FICUS-projects-translation.owl +0 -0
  228. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/catalog-v001.xml +0 -0
  229. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.json +0 -0
  230. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.json.zip +0 -0
  231. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl +0 -0
  232. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-classification-paths-translation.owl.zip +0 -0
  233. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/gold-dataset-translation.owl +0 -0
  234. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/biosample.json +0 -0
  235. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/data_objects.json +0 -0
  236. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/omics_processing.json +0 -0
  237. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json/study.json +0 -0
  238. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-01.zip +0 -0
  239. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-05.zip +0 -0
  240. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-06.zip +0 -0
  241. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-12.zip +0 -0
  242. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-18.zip +0 -0
  243. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/nmdc-json_2020-02-19.zip +0 -0
  244. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test-full.txt.zip +0 -0
  245. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test.json +0 -0
  246. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test.txt +0 -0
  247. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/schema-test.txt.zip +0 -0
  248. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/temp.txt +0 -0
  249. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/biosample.json +0 -0
  250. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/data_object.json +0 -0
  251. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/project.json +0 -0
  252. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-five-biosamples/study.json +0 -0
  253. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/biosample.json +0 -0
  254. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/emsl_data_objects.json +0 -0
  255. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/emsl_omics_processing.json +0 -0
  256. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/faa_fna_fastq_data_objects.json +0 -0
  257. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/gold_omics_processing.json +0 -0
  258. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/gold_study.json +0 -0
  259. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline/nmdc-02.json +0 -0
  260. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/output/test-pipeline.zip +0 -0
  261. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-changesheet-with-separator.ipynb +0 -0
  262. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-changesheet-without-separator.ipynb +0 -0
  263. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-output.ipynb +0 -0
  264. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-pipeline-scratch.ipynb +0 -0
  265. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-pipeline-temp.ipynb +0 -0
  266. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test-pipeline.ipynb +0 -0
  267. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test.json +0 -0
  268. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/test.txt +0 -0
  269. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translate-EMSL-data.ipynb +0 -0
  270. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translate-GOLD-data-objects.ipynb +0 -0
  271. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translate-GOLD-study-project-biosample.ipynb +0 -0
  272. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/notebooks/translation-pipeline.ipynb +0 -0
  273. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/__init__.py +0 -0
  274. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/__init__.py +0 -0
  275. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/align_nmdc_datatypes.py +0 -0
  276. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/execute_etl_pipeline.py +0 -0
  277. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/fix_omics_processing_json.py +0 -0
  278. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/__init__.py +0 -0
  279. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/data_operations.py +0 -0
  280. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/extract_nmdc_data.py +0 -0
  281. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/load_nmdc_data.py +0 -0
  282. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/nmdc_data_source.yaml +0 -0
  283. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/nmdc_dataframes.py +0 -0
  284. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/nmdc_etl_class.py +0 -0
  285. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/lib/transform_nmdc_data.py +0 -0
  286. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/mandatory_mixs_terms.py +0 -0
  287. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/mandatory_mixs_terms.py.org +0 -0
  288. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/bin/validate_json.py +0 -0
  289. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2020-23-12-brodie-Gs0135149-soil-metadata.csv +0 -0
  290. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-02-03-stegen_biosample_linking_update.csv +0 -0
  291. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-02-04-brodie_biosample_linking_update.csv +0 -0
  292. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-02-04-stegen_biosample_template.json +0 -0
  293. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/2021-07-02-study-changes.csv +0 -0
  294. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/30_FICUS_Proposals_Metadata_4_Emiley_Chris_11082019.xlsx +0 -0
  295. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/EMSL_FICUS_project_process_data_export.xlsx +0 -0
  296. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/EMSL_Hess_Stegen_Blanchard_DatasetToMetagenomeMapping.tsv +0 -0
  297. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/EMSL_biosample_matches.tsv +0 -0
  298. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/FICUS - JGI-EMSL Proposal - Gold Study - ID mapping and PI.xlsx +0 -0
  299. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD-soil-mixs-envo-mappings.tsv +0 -0
  300. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD-to-mixs-map.tsv +0 -0
  301. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD_Ecosystem_Classification_Paths_10152019.xlsx +0 -0
  302. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/GOLD_ecosystem_classification_paths.xlsx +0 -0
  303. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/JGI-EMSL-FICUS-proposals.fnl.tsv +0 -0
  304. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/NMDC-GOLD-Fields.xlsx +0 -0
  305. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/README.md +0 -0
  306. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/__init__.py +0 -0
  307. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Hess_emsl_analysis_data_objects.json +0 -0
  308. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Hess_metaproteomic_analysis_activities.json +0 -0
  309. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Stegen_emsl_analysis_data_objects.json +0 -0
  310. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/Stegen_metaproteomic_analysis_activities.json +0 -0
  311. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_activities.json +0 -0
  312. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_annotation_data_objects.json +0 -0
  313. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_activities.json +0 -0
  314. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/metagenome_assembly_data_objects.json +0 -0
  315. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/readQC_activities.json +0 -0
  316. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/aim-2-workflows/readQC_data_objects.json +0 -0
  317. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/all_gold_fields.xlsx +0 -0
  318. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/ficus_project_faa.tsv +0 -0
  319. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/ficus_project_fastq.tsv +0 -0
  320. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/ficus_project_fna.tsv +0 -0
  321. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/mixs_v5.xlsx +0 -0
  322. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/nmdc-version2.zip +0 -0
  323. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/metadata-translation/src/data/nmdc-version5.zip +0 -0
  324. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/mkdocs.yml +0 -0
  325. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/mkdocs_overrides/partials/source.html +0 -0
  326. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/mongoKeyFile +0 -0
  327. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nersc-sshproxy.sh +0 -0
  328. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc-wfe.html +0 -0
  329. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/__init__.py +0 -0
  330. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/analytics.py +0 -0
  331. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/__init__.py +0 -0
  332. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/capabilities.py +0 -0
  333. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/object_types.py +0 -0
  334. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/triggers.py +0 -0
  335. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/boot/workflows.py +0 -0
  336. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/__init__.py +0 -0
  337. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/auth.py +0 -0
  338. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/idgen.py +0 -0
  339. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/core/util.py +0 -0
  340. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/__init__.py +0 -0
  341. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/mongo.py +0 -0
  342. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/s3.py +0 -0
  343. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/db/terminus.py +0 -0
  344. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/__init__.py +0 -0
  345. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/capabilities.py +0 -0
  346. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/find.py +0 -0
  347. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/ids.py +0 -0
  348. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/jobs.py +0 -0
  349. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/metadata.py +0 -0
  350. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/nmdcschema.py +0 -0
  351. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/object_types.py +0 -0
  352. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/operations.py +0 -0
  353. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/queries.py +0 -0
  354. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/runs.py +0 -0
  355. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/search.py +0 -0
  356. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/sites.py +0 -0
  357. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/triggers.py +0 -0
  358. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/users.py +0 -0
  359. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/endpoints/util.py +0 -0
  360. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/entrypoint.sh +0 -0
  361. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/__init__.py +0 -0
  362. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/capability.py +0 -0
  363. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/id.py +0 -0
  364. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/job.py +0 -0
  365. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/metadata.py +0 -0
  366. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/minter.py +0 -0
  367. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/nmdc_schema.py +0 -0
  368. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/object.py +0 -0
  369. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/object_type.py +0 -0
  370. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/operation.py +0 -0
  371. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/query.py +0 -0
  372. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/run.py +0 -0
  373. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/site.py +0 -0
  374. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/trigger.py +0 -0
  375. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/user.py +0 -0
  376. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/util.py +0 -0
  377. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/models/workflow.py +0 -0
  378. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/models/ingest.py +0 -0
  379. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/models/users.py +0 -0
  380. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/outputs.py +0 -0
  381. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/router.py +0 -0
  382. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/api/v1/workflows/__init__.py +0 -0
  383. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/client/__init__.py +0 -0
  384. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/containers.py +0 -0
  385. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/__init__.py +0 -0
  386. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/db/Database.py +0 -0
  387. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/db/__init__.py +0 -0
  388. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/exceptions/__init__.py +0 -0
  389. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/exceptions/base.py +0 -0
  390. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/core/exceptions/token.py +0 -0
  391. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/dagster.Dockerfile +0 -0
  392. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/__init__.py +0 -0
  393. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/__init__.py +0 -0
  394. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/queriesInterface.py +0 -0
  395. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/userSchema.py +0 -0
  396. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/domain/users/userService.py +0 -0
  397. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/fastapi.Dockerfile +0 -0
  398. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/__init__.py +0 -0
  399. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/__init__.py +0 -0
  400. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/db.py +0 -0
  401. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/__init__.py +0 -0
  402. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/impl/mongo/models/__init__.py +0 -0
  403. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/models/__init__.py +0 -0
  404. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/infrastructure/database/models/user.py +0 -0
  405. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/__init__.py +0 -0
  406. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/extract_nmdc_data.py +0 -0
  407. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/load_nmdc_data.py +0 -0
  408. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/nmdc_data_source.yaml +0 -0
  409. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/nmdc_dataframes.py +0 -0
  410. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/nmdc_etl_class.py +0 -0
  411. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/lib/transform_nmdc_data.py +0 -0
  412. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/main.py +0 -0
  413. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/__init__.py +0 -0
  414. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/adapters/__init__.py +0 -0
  415. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/adapters/repository.py +0 -0
  416. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/bootstrap.py +0 -0
  417. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/config.py +0 -0
  418. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/domain/__init__.py +0 -0
  419. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/domain/model.py +0 -0
  420. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/entrypoints/__init__.py +0 -0
  421. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/entrypoints/fastapi_app.py +0 -0
  422. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/minter/nmdc.schema.json +0 -0
  423. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/__init__.py +0 -0
  424. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/__init__.py +0 -0
  425. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/nmdcdb_mongodump.py +0 -0
  426. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/nmdcdb_mongoexport.py +0 -0
  427. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/backup/nmdcdb_mongoimport.py +0 -0
  428. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/__init__.py +0 -0
  429. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/base.py +0 -0
  430. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/data/OmicsProcessing-to-catted-Biosamples.tsv +0 -0
  431. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/scripts/missing_neon_soils_ecosystem_data.py +0 -0
  432. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/changesheets/scripts/neon_soils_add_ncbi_ids.py +0 -0
  433. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/dagster.yaml +0 -0
  434. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/drsobjects/__init__.py +0 -0
  435. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/drsobjects/ingest.py +0 -0
  436. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/drsobjects/registration.py +0 -0
  437. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/entrypoint-daemon.sh +0 -0
  438. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/entrypoint-dagit-readonly.sh +0 -0
  439. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/entrypoint-dagit.sh +0 -0
  440. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/export/__init__.py +0 -0
  441. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/graphs.py +0 -0
  442. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/normalization/__init__.py +0 -0
  443. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/normalization/gold.py +0 -0
  444. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/ops.py +0 -0
  445. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/repository.py +0 -0
  446. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/resources.py +0 -0
  447. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/.TDB +0 -0
  448. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/__init__.py +0 -0
  449. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/config.json +0 -0
  450. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/generate.py +0 -0
  451. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/ingest.py +0 -0
  452. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/nmdc.schema.terminusdb.json +0 -0
  453. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/terminusdb/schema.py +0 -0
  454. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/__init__.py +0 -0
  455. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/gold.py +0 -0
  456. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/gold_translator.py +0 -0
  457. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/neon_benthic_translator.py +0 -0
  458. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/neon_utils.py +0 -0
  459. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/submission_portal_translator.py +0 -0
  460. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/translator.py +0 -0
  461. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/translation/util.py +0 -0
  462. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/util.py +0 -0
  463. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/__init__.py +0 -0
  464. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/validation/util.py +0 -0
  465. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/site/workspace.yaml +0 -0
  466. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/static/ORCIDiD_icon128x128.png +0 -0
  467. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/templates/pipeline_search.html +0 -0
  468. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/templates/search.html +0 -0
  469. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/test.Dockerfile +0 -0
  470. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime/util.py +0 -0
  471. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/dependency_links.txt +0 -0
  472. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/entry_points.txt +0 -0
  473. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/nmdc_runtime.egg-info/top_level.txt +0 -0
  474. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/requirements/dev.in +0 -0
  475. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/setup.cfg +0 -0
  476. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/setup.py +0 -0
  477. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tasks.py +0 -0
  478. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/terminusdb +0 -0
  479. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/__init__.py +0 -0
  480. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/conftest.py +0 -0
  481. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/e2e/test_minter_api.py +0 -0
  482. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_bsm-11-5nhz3402.json +0 -0
  483. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_bsm-12-7mysck21.json +0 -0
  484. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_dobj-11-000n1286.json +0 -0
  485. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/nmdc_sty-11-pzmd0x14.json +0 -0
  486. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/files/test_changesheet_update_one_ph.tsv +0 -0
  487. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/integration/test_minter_repository.py +0 -0
  488. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/mongodump-nmdc-testdb.sh +0 -0
  489. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/nmdcdb.test.archive.gz +0 -0
  490. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/__init__.py +0 -0
  491. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/test_db_mongo.py +0 -0
  492. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/test_metadata.py +0 -0
  493. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_api/util.py +0 -0
  494. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/__init__.py +0 -0
  495. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/conftest.py +0 -0
  496. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_gold_translator.py +0 -0
  497. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_gold_translator_data.yaml +0 -0
  498. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_integrity.py +0 -0
  499. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_neon_benthic_data_translator.py +0 -0
  500. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_neon_soil_data_translator.py +0 -0
  501. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_submission_portal_translator.py +0 -0
  502. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_data/test_submission_portal_translator_data.yaml +0 -0
  503. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/__init__.py +0 -0
  504. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/ensure_jobs.py +0 -0
  505. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/test_hello.py +0 -0
  506. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_graphs/test_submission_portal_graphs.py +0 -0
  507. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_normalization/__init__.py +0 -0
  508. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_normalization/test_gold.py +0 -0
  509. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/__init__.py +0 -0
  510. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_data_api_ops.py +0 -0
  511. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_get_csv_rows_from_url.py +0 -0
  512. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_gold_api_ops.py +0 -0
  513. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_ops/test_hello.py +0 -0
  514. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/test_util.py +0 -0
  515. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/unit/core_util.py +0 -0
  516. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests/unit/test_minter_model.py +0 -0
  517. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/__init__.py +0 -0
  518. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/domain/__init__.py +0 -0
  519. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/domain/service/__init__.py +0 -0
  520. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tests2/domain/service/test_user_service.py +0 -0
  521. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/tmp.json +0 -0
  522. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/util/mongodump-nmdc.sh +0 -0
  523. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/util/mongorestore-nmdc.sh +0 -0
  524. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/wait-for-it.sh +0 -0
  525. {nmdc_runtime-1.4.0 → nmdc_runtime-1.4.1}/workspace.toml +0 -0
@@ -39,4 +39,4 @@ jobs:
39
39
  - name: Test with pytest
40
40
  run: |
41
41
  make up-test
42
- make test-run
42
+ make test
@@ -168,4 +168,8 @@ nmdc_runtime/site/changesheets/changesheets_output/
168
168
  mdb-nmdc-dev.tar.gz
169
169
 
170
170
  # superceded by .github/workflows/build-and-release-to-spin.yml
171
- docker-build.sh
171
+ docker-build.sh
172
+
173
+ neon.db
174
+ neon_api_cache.sqlite
175
+ nmdc-db.nt.gz
@@ -29,8 +29,7 @@ up-test:
29
29
  up --build --force-recreate --detach --remove-orphans
30
30
 
31
31
  test-build:
32
- docker compose --file docker-compose.test.yml \
33
- up test --build --force-recreate --detach --remove-orphans
32
+ docker compose --file docker-compose.test.yml build test
34
33
 
35
34
  test-dbinit:
36
35
  docker compose --file docker-compose.test.yml \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nmdc_runtime
3
- Version: 1.4.0
3
+ Version: 1.4.1
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
@@ -0,0 +1,127 @@
1
+ from typing import Optional
2
+ from enum import Enum
3
+ from datetime import datetime
4
+
5
+ from pymongo import MongoClient
6
+ from nmdc_schema.migrators.migrator_base import MigratorBase
7
+
8
+
9
+ class MigrationEvent(str, Enum):
10
+ r"""
11
+ Enumeration of all migration events that can be recorded.
12
+ Reference: https://docs.python.org/3.10/library/enum.html#others
13
+
14
+ >>> MigrationEvent.MIGRATION_COMPLETED.value
15
+ 'MIGRATION_COMPLETED'
16
+ >>> MigrationEvent.MIGRATION_STARTED.value
17
+ 'MIGRATION_STARTED'
18
+ """
19
+
20
+ MIGRATION_STARTED = "MIGRATION_STARTED"
21
+ MIGRATION_COMPLETED = "MIGRATION_COMPLETED"
22
+
23
+
24
+ class Bookkeeper:
25
+ r"""
26
+ A class you can use to record migration-related events in a Mongo database.
27
+ """
28
+
29
+ def __init__(
30
+ self,
31
+ mongo_client: MongoClient,
32
+ database_name: str = "nmdc",
33
+ collection_name: str = "_migration_events",
34
+ view_name: str = "_migration_latest_schema_version",
35
+ ):
36
+ self.database_name = database_name
37
+ self.collection_name = collection_name
38
+ self.view_name = view_name
39
+
40
+ # Store references to the database and collection.
41
+ self.db = mongo_client[self.database_name]
42
+ self.collection = self.db.get_collection(self.collection_name)
43
+
44
+ # Ensure the MongoDB view that indicates the current schema version, exists.
45
+ self.ensure_current_schema_version_view_exists()
46
+
47
+ @staticmethod
48
+ def get_current_timestamp() -> str:
49
+ r"""Returns an ISO 8601 timestamp (string) representing the current time in UTC."""
50
+ utc_now = datetime.utcnow()
51
+ iso_utc_now = utc_now.isoformat()
52
+ return iso_utc_now # e.g. "2024-02-21T04:31:03.115107"
53
+
54
+ def record_migration_event(
55
+ self,
56
+ migrator: MigratorBase,
57
+ event: MigrationEvent,
58
+ to_schema_version: Optional[str] = None,
59
+ ) -> None:
60
+ r"""
61
+ Records a migration event in the collection.
62
+
63
+ The `to_schema_version` parameter is independent of the `migrator` parameter because, even though the migrator
64
+ does have a `.get_destination_version()` method, the string returned by that method is the one defined when the
65
+ migrator was _written_, which is sometimes more generic than the one used for data validation when the migrator
66
+ is _run_ (e.g. "1.2" as opposed to "1.2.3"). So, this method provides a means by which the calling code can,
67
+ optionally, specify a more precise version identifier.
68
+ """
69
+
70
+ # If a custom schema version identifier was specified, use that; otherwise, use the one built into the migrator.
71
+ to_schema_version_str = migrator.get_destination_version()
72
+ if to_schema_version is not None:
73
+ to_schema_version_str = to_schema_version
74
+
75
+ document = dict(
76
+ created_at=self.get_current_timestamp(),
77
+ event=event.value,
78
+ from_schema_version=migrator.get_origin_version(),
79
+ to_schema_version=to_schema_version_str,
80
+ migrator_module=migrator.__module__, # name of the Python module in which the `Migrator` class is defined
81
+ )
82
+ self.collection.insert_one(document)
83
+
84
+ def ensure_current_schema_version_view_exists(self) -> None:
85
+ r"""
86
+ Ensures the MongoDB view that indicates the current schema version, exists.
87
+
88
+ References:
89
+ - https://www.mongodb.com/community/forums/t/is-there-anyway-to-create-view-using-python/161363/2
90
+ - https://www.mongodb.com/docs/manual/reference/method/db.createView/#mongodb-method-db.createView
91
+ - https://pymongo.readthedocs.io/en/stable/api/pymongo/database.html#pymongo.database.Database.create_collection
92
+ """
93
+ if (
94
+ self.view_name not in self.db.list_collection_names()
95
+ ): # returns list of names of both collections and views
96
+ agg_pipeline = [
97
+ # Sort the documents so the most recent one is first.
98
+ {"$sort": {"created_at": -1}},
99
+ # Only preserve the first document.
100
+ {"$limit": 1},
101
+ # Derive a simplified document for the view.
102
+ # Examples: `{ "schema_version": "1.2.3" }` or `{ "schema_version": null }`
103
+ {
104
+ "$project": {
105
+ "_id": 0, # omit the `_id` field
106
+ "schema_version": { # add this field based upon the migration status
107
+ "$cond": {
108
+ "if": {
109
+ "$eq": [
110
+ "$event",
111
+ MigrationEvent.MIGRATION_COMPLETED.value,
112
+ ]
113
+ },
114
+ "then": "$to_schema_version", # database conforms to this version of the NMDC Schema
115
+ "else": None, # database doesn't necessarily conform to any version of the NMDC Schema
116
+ }
117
+ },
118
+ }
119
+ },
120
+ ]
121
+ self.db.create_collection(
122
+ name=self.view_name,
123
+ viewOn=self.collection_name,
124
+ pipeline=agg_pipeline,
125
+ check_exists=True, # only create the view if it doesn't already exist
126
+ comment="The version of the NMDC Schema to which the database conforms.",
127
+ )
@@ -0,0 +1,186 @@
1
+ # Note: This module's name starts with `manual_test_` instead of `test_` to signify that its author (currently) expects
2
+ # people to run it manually as opposed to via automated test infrastructure. Its author chose that route after a
3
+ # GitHub Actions workflow that runs tests in `test_` modules kept failing due to a database access issue.
4
+
5
+ from typing import Optional
6
+ import unittest
7
+ import re
8
+ import os
9
+ from datetime import datetime, timedelta
10
+
11
+ from pymongo import MongoClient, timeout
12
+ from pymongo.database import Database
13
+ from nmdc_schema.migrators.migrator_base import MigratorBase
14
+
15
+ from demo.metadata_migration.notebooks.bookkeeper import Bookkeeper, MigrationEvent
16
+
17
+ # Consume environment variables.
18
+ MONGO_HOST: str = os.getenv("MONGO_HOST", "localhost")
19
+ MONGO_USER: Optional[str] = os.getenv("MONGO_USERNAME", None)
20
+ MONGO_PASS: Optional[str] = os.getenv("MONGO_PASSWORD", None)
21
+ MONGO_DATABASE_NAME: str = os.getenv("MONGO_TEST_DBNAME", "test-migration-bookkeeper")
22
+
23
+ MONGO_TIMEOUT_DURATION: int = 3 # seconds
24
+
25
+
26
+ class FakeMigrator(MigratorBase):
27
+ _to_version = "A.B.C"
28
+ _from_version = "X.Y.Z"
29
+
30
+ def upgrade(self):
31
+ pass
32
+
33
+
34
+ class TestBookkeeper(unittest.TestCase):
35
+ r"""
36
+ Tests targeting the `Bookkeeper` class.
37
+
38
+ You can format this file like this:
39
+ $ python -m black demo/metadata_migration/notebooks/manual_test_bookkeeper.py
40
+
41
+ You can start up a containerized MongoDB server like this:
42
+ $ docker run --rm --detach --name mongo-test-migration-bookkeeper -p 27017:27017 mongo
43
+
44
+ One that's running, other containers will be able to access it via:
45
+ - host.docker.internal:27017
46
+
47
+ You can run these tests like this:
48
+ $ python -m unittest -v demo/metadata_migration/notebooks/manual_test_bookkeeper.py
49
+
50
+ Reference: https://docs.python.org/3/library/unittest.html#basic-example
51
+ """
52
+
53
+ mongo_client: Optional[MongoClient] = None
54
+ db: Optional[Database] = None
55
+
56
+ def setUp(self) -> None:
57
+ r"""
58
+ Connects to the MongoDB server and gets a reference to the database.
59
+
60
+ Note: This function runs before each test starts.
61
+ """
62
+
63
+ # Connect to the MongoDB server and store a reference to the connection.
64
+ self.mongo_client = MongoClient(
65
+ host=MONGO_HOST,
66
+ username=MONGO_USER,
67
+ password=MONGO_PASS,
68
+ )
69
+ with timeout(MONGO_TIMEOUT_DURATION):
70
+ # Try connecting to the database server.
71
+ _ = self.mongo_client.server_info()
72
+ db = self.mongo_client[MONGO_DATABASE_NAME]
73
+
74
+ # Ensure the database contains no collections.
75
+ if len(db.list_collection_names()):
76
+ raise KeyError(f"Database is not empty: {MONGO_DATABASE_NAME}")
77
+
78
+ # Store a reference to the database.
79
+ self.db = db
80
+
81
+ def tearDown(self) -> None:
82
+ r"""
83
+ Drops all collections in the database and closes the connection to the MongoDB server.
84
+
85
+ Note: This function runs after each test finishes.
86
+ """
87
+
88
+ # Drop all collections in the database.
89
+ for collection_name in self.db.list_collection_names():
90
+ self.db.drop_collection(collection_name)
91
+
92
+ # Close the connection to the server.
93
+ self.mongo_client.close()
94
+
95
+ def test_get_current_timestamp(self):
96
+ pattern = r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}$"
97
+ ts_str = Bookkeeper.get_current_timestamp()
98
+
99
+ # Verify the timestamp is a string having a valid format.
100
+ self.assertIsInstance(ts_str, str)
101
+ self.assertTrue(re.match(pattern, ts_str))
102
+
103
+ # Verify the moment represented by the timestamp was within the past minute.
104
+ ts = datetime.fromisoformat(ts_str)
105
+ now_ts = datetime.now()
106
+ time_difference = now_ts - ts
107
+ self.assertLess(time_difference, timedelta(minutes=1))
108
+
109
+ def test_init_method(self):
110
+ # Confirm the view does not exist yet.
111
+ view_name = "test_view"
112
+ self.assertFalse(view_name in self.db.list_collection_names())
113
+
114
+ # Instantiate the class-under-test.
115
+ _ = Bookkeeper(
116
+ mongo_client=self.mongo_client,
117
+ database_name=MONGO_DATABASE_NAME,
118
+ view_name=view_name,
119
+ )
120
+
121
+ # Confirm the view exists now.
122
+ self.assertTrue(view_name in self.db.list_collection_names())
123
+
124
+ def test_record_migration_event(self):
125
+ # Instantiate a bookkeeper.
126
+ bk = Bookkeeper(
127
+ mongo_client=self.mongo_client,
128
+ database_name=MONGO_DATABASE_NAME,
129
+ )
130
+
131
+ # Verify the collection is empty.
132
+ collection = self.db.get_collection(bk.collection_name)
133
+ self.assertTrue(collection.count_documents({}) == 0)
134
+
135
+ # Record a "migration started" event.
136
+ migrator = FakeMigrator()
137
+ bk.record_migration_event(
138
+ migrator=migrator, event=MigrationEvent.MIGRATION_STARTED
139
+ )
140
+
141
+ # Verify the migration event was recorded.
142
+ self.assertTrue(collection.count_documents({}) == 1)
143
+ doc = collection.find({})[0]
144
+ self.assertIsInstance(doc["created_at"], str)
145
+ self.assertIsInstance(doc["event"], str)
146
+ self.assertEqual(doc["event"], MigrationEvent.MIGRATION_STARTED)
147
+ self.assertIsInstance(doc["from_schema_version"], str)
148
+ self.assertEqual(doc["from_schema_version"], migrator.get_origin_version())
149
+ self.assertIsInstance(doc["to_schema_version"], str)
150
+ self.assertEqual(doc["to_schema_version"], migrator.get_destination_version())
151
+ self.assertIsInstance(doc["migrator_module"], str)
152
+
153
+ # Verify the document in the view says the schema version is `null`.
154
+ # Note: That's what I expect, since no "migration complete" events have been recorded yet.
155
+ view = self.db.get_collection(bk.view_name)
156
+ self.assertTrue(view.count_documents({}) == 1)
157
+ view_doc = view.find({})[0]
158
+ self.assertIsNone(view_doc["schema_version"])
159
+
160
+ # Record a "migration completed" event.
161
+ bk.record_migration_event(
162
+ migrator=migrator, event=MigrationEvent.MIGRATION_COMPLETED
163
+ )
164
+
165
+ # Verify the migration event was recorded.
166
+ self.assertTrue(collection.count_documents({}) == 2)
167
+
168
+ # Verify the document in the view says the schema version matches the one recorded.
169
+ view = self.db.get_collection(bk.view_name)
170
+ self.assertTrue(view.count_documents({}) == 1)
171
+ view_doc = view.find({})[0]
172
+ self.assertEqual(view_doc["schema_version"], migrator.get_destination_version())
173
+
174
+ # Finally, record another "migration started" event.
175
+ bk.record_migration_event(
176
+ migrator=migrator, event=MigrationEvent.MIGRATION_STARTED
177
+ )
178
+
179
+ # Confirm the document in the view once again says the schema version is `null`.
180
+ self.assertTrue(view.count_documents({}) == 1)
181
+ view_doc = view.find({})[0]
182
+ self.assertIsNone(view_doc["schema_version"])
183
+
184
+
185
+ if __name__ == "__main__":
186
+ unittest.main()