zenml-nightly 0.71.0.dev20250107__py3-none-any.whl → 0.71.0.dev20250111__py3-none-any.whl

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.
Files changed (143) hide show
  1. zenml/VERSION +1 -1
  2. zenml/cli/base.py +1 -1
  3. zenml/cli/formatter.py +1 -1
  4. zenml/cli/integration.py +1 -1
  5. zenml/cli/model_registry.py +1 -2
  6. zenml/cli/secret.py +1 -2
  7. zenml/cli/service_connectors.py +1 -1
  8. zenml/cli/stack.py +2 -3
  9. zenml/cli/stack_components.py +4 -6
  10. zenml/cli/text_utils.py +1 -1
  11. zenml/cli/utils.py +4 -5
  12. zenml/client.py +1 -4
  13. zenml/constants.py +1 -0
  14. zenml/entrypoints/step_entrypoint_configuration.py +15 -0
  15. zenml/integrations/azure/__init__.py +1 -1
  16. zenml/integrations/azure/azureml_utils.py +1 -1
  17. zenml/integrations/azure/orchestrators/azureml_orchestrator_entrypoint_config.py +0 -5
  18. zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +3 -3
  19. zenml/integrations/databricks/orchestrators/databricks_orchestrator.py +1 -3
  20. zenml/integrations/evidently/metrics.py +2 -2
  21. zenml/integrations/evidently/tests.py +2 -2
  22. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +3 -3
  23. zenml/integrations/github/plugins/event_sources/github_webhook_event_source.py +3 -3
  24. zenml/integrations/s3/utils.py +1 -2
  25. zenml/logger.py +1 -1
  26. zenml/models/v2/base/scoped.py +37 -34
  27. zenml/models/v2/core/artifact.py +86 -2
  28. zenml/models/v2/core/model.py +81 -2
  29. zenml/models/v2/core/pipeline.py +15 -12
  30. zenml/models/v2/core/pipeline_run.py +2 -0
  31. zenml/services/container/container_service.py +1 -1
  32. zenml/stack/stack_component.py +1 -1
  33. zenml/utils/deprecation_utils.py +6 -6
  34. zenml/utils/filesync_model.py +3 -3
  35. zenml/utils/function_utils.py +1 -1
  36. zenml/utils/pipeline_docker_image_builder.py +1 -1
  37. zenml/zen_server/auth.py +2 -5
  38. zenml/zen_server/dashboard/assets/{404-Cqu3EDCm.js → 404-Dfq64Boz.js} +1 -1
  39. zenml/zen_server/dashboard/assets/{@reactflow-D2Y7BWwz.js → @reactflow-BUNIMFeC.js} +1 -1
  40. zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-BHd71pVS.js → AlertDialogDropdownItem-B73Vs10T.js} +1 -1
  41. zenml/zen_server/dashboard/assets/{CodeSnippet-DIonwetW.js → CodeSnippet-DIJRT2NT.js} +1 -1
  42. zenml/zen_server/dashboard/assets/{CollapsibleCard-CDnC97pB.js → CollapsibleCard-BzUHGZOU.js} +1 -1
  43. zenml/zen_server/dashboard/assets/{Commands-BVEXKAOj.js → Commands-BEGyld4c.js} +1 -1
  44. zenml/zen_server/dashboard/assets/{ComponentBadge-CrRvovox.js → ComponentBadge-xyKiek1s.js} +1 -1
  45. zenml/zen_server/dashboard/assets/{CopyButton-B6wGAhQv.js → CopyButton-DhW-mapu.js} +1 -1
  46. zenml/zen_server/dashboard/assets/{CsvVizualization-CjcT7LMm.js → CsvVizualization-D8oazBiE.js} +1 -1
  47. zenml/zen_server/dashboard/assets/{DeleteAlertDialog-D2ELtM2W.js → DeleteAlertDialog-WkSIIgfy.js} +1 -1
  48. zenml/zen_server/dashboard/assets/{DialogItem-DXIMhBgU.js → DialogItem-Bgroeg29.js} +1 -1
  49. zenml/zen_server/dashboard/assets/{Error-B8uUfTpL.js → Error-CY5tlu17.js} +1 -1
  50. zenml/zen_server/dashboard/assets/{ExecutionStatus-ibAdY-dG.js → ExecutionStatus-G8mjIaeA.js} +1 -1
  51. zenml/zen_server/dashboard/assets/{Helpbox-BfAfhKHw.js → Helpbox-Bb1ed--O.js} +1 -1
  52. zenml/zen_server/dashboard/assets/{Infobox-M_SMOu96.js → Infobox-Da6-76M2.js} +1 -1
  53. zenml/zen_server/dashboard/assets/{InlineAvatar-DBA0a0-a.js → InlineAvatar-DqnZaBNq.js} +1 -1
  54. zenml/zen_server/dashboard/assets/{NestedCollapsible-DpgmEFKw.js → NestedCollapsible-aK5ojKoF.js} +1 -1
  55. zenml/zen_server/dashboard/assets/{Partials-D_ldD9if.js → Partials-CqZp5NMX.js} +1 -1
  56. zenml/zen_server/dashboard/assets/{ProBadge-DQbfFotM.js → ProBadge-B4tRUYve.js} +1 -1
  57. zenml/zen_server/dashboard/assets/{ProCta-Bcpb4rcY.js → ProCta-CZuP29Qz.js} +1 -1
  58. zenml/zen_server/dashboard/assets/{ProviderIcon-BZpgPigN.js → ProviderIcon-Bd7GUQ1_.js} +1 -1
  59. zenml/zen_server/dashboard/assets/{ProviderRadio-DWPnMuQ1.js → ProviderRadio-mstdqzsS.js} +1 -1
  60. zenml/zen_server/dashboard/assets/{RunSelector-DgRGaAc6.js → RunSelector-CsruSB4i.js} +1 -1
  61. zenml/zen_server/dashboard/assets/{RunsBody-KecfSkjY.js → RunsBody-DxxtWVYz.js} +1 -1
  62. zenml/zen_server/dashboard/assets/{SearchField-n-ILHnaP.js → SearchField-D6tPxyqw.js} +1 -1
  63. zenml/zen_server/dashboard/assets/{SecretTooltip-B8MrX5yu.js → SecretTooltip-CLzJIYW_.js} +1 -1
  64. zenml/zen_server/dashboard/assets/{SetPassword-B_IVq_wg.js → SetPassword-Yn50ooBC.js} +1 -1
  65. zenml/zen_server/dashboard/assets/{StackList-TWPBYnkF.js → StackList-U537qoYd.js} +1 -1
  66. zenml/zen_server/dashboard/assets/{Tabs-Rg857zmd.js → Tabs-CNv-eTYM.js} +1 -1
  67. zenml/zen_server/dashboard/assets/{Tick-COg4A-xo.js → Tick-jEIevzVf.js} +1 -1
  68. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-C6Aj3hm6.js → UpdatePasswordSchemas-C16GW-kX.js} +1 -1
  69. zenml/zen_server/dashboard/assets/{UsageReason-BTLbx7w4.js → UsageReason-Bf2tzhv1.js} +1 -1
  70. zenml/zen_server/dashboard/assets/{WizardFooter-BCAj69Vj.js → WizardFooter-D6i-AP1K.js} +1 -1
  71. zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-DMXkDrV2.js → all-pipeline-runs-query-DUti43aF.js} +1 -1
  72. zenml/zen_server/dashboard/assets/{create-stack-HfdbhLs4.js → create-stack-Ch2WPs9U.js} +1 -1
  73. zenml/zen_server/dashboard/assets/{delete-run-DZ4hIXff.js → delete-run-Byf9hTjA.js} +1 -1
  74. zenml/zen_server/dashboard/assets/{form-schemas-B0AVEd9b.js → form-schemas-BZqKBPBF.js} +1 -1
  75. zenml/zen_server/dashboard/assets/{index-FO-p0GU7.js → index-CE0aQlv8.js} +3 -3
  76. zenml/zen_server/dashboard/assets/{index-DScjfBRb.js → index-CtdYkjUi.js} +1 -1
  77. zenml/zen_server/dashboard/assets/{index-DPqSWjug.js → index-CyBKZcpO.js} +1 -1
  78. zenml/zen_server/dashboard/assets/{index-I3bKUGUj.js → index-v6gQjDEo.js} +1 -1
  79. zenml/zen_server/dashboard/assets/{login-mutation-BQeo4wTY.js → login-mutation-DNDVp_2H.js} +1 -1
  80. zenml/zen_server/dashboard/assets/{not-found-gAJ5aDdR.js → not-found-Bmup4ctE.js} +1 -1
  81. zenml/zen_server/dashboard/assets/{page-I3nKFGie.js → page--XLMzHrn.js} +1 -1
  82. zenml/zen_server/dashboard/assets/{page-DO1UcqPX.js → page-ANYGfEUL.js} +1 -1
  83. zenml/zen_server/dashboard/assets/{page-AUwiQ14W.js → page-B5Sr8pib.js} +1 -1
  84. zenml/zen_server/dashboard/assets/{page-CcQr8CPP.js → page-BC27C_OI.js} +1 -1
  85. zenml/zen_server/dashboard/assets/{page-zaMqB_ao.js → page-BNxYrN0q.js} +1 -1
  86. zenml/zen_server/dashboard/assets/{page-CiYxgZP_.js → page-BYJfqgLN.js} +1 -1
  87. zenml/zen_server/dashboard/assets/{page-h_Stveon.js → page-B_0XkV48.js} +1 -1
  88. zenml/zen_server/dashboard/assets/{page-R5dx3xGF.js → page-BrmJp1Wt.js} +1 -1
  89. zenml/zen_server/dashboard/assets/page-C2nU3Gxn.js +1 -0
  90. zenml/zen_server/dashboard/assets/{page-Dk32IeZm.js → page-C70wZtV2.js} +1 -1
  91. zenml/zen_server/dashboard/assets/{page-CWxT5K5J.js → page-CHRn1fQm.js} +1 -1
  92. zenml/zen_server/dashboard/assets/{page-M0w-n6vn.js → page-CWr96ZKN.js} +1 -1
  93. zenml/zen_server/dashboard/assets/{page-Ce4Hrjnr.js → page-CXAbSyp9.js} +1 -1
  94. zenml/zen_server/dashboard/assets/{page-D8ObrbH8.js → page-CaeI9ptC.js} +1 -1
  95. zenml/zen_server/dashboard/assets/{page-B_Apk3xg.js → page-Cc8ZEuj4.js} +1 -1
  96. zenml/zen_server/dashboard/assets/{page-BxL4qD4_.js → page-CltCNL0T.js} +1 -1
  97. zenml/zen_server/dashboard/assets/{page-D4wdonLm.js → page-CmlYj7Nl.js} +1 -1
  98. zenml/zen_server/dashboard/assets/{page-DFuAUGt4.js → page-D6Ev5P8V.js} +1 -1
  99. zenml/zen_server/dashboard/assets/{page-u_-ZXBKb.js → page-D9Oh05fl.js} +1 -1
  100. zenml/zen_server/dashboard/assets/{page-DRYXdL5o.js → page-DGlm1RVc.js} +1 -1
  101. zenml/zen_server/dashboard/assets/{page-r8XK5vR7.js → page-DN4BVIOL.js} +1 -1
  102. zenml/zen_server/dashboard/assets/{page-DYEquBC2.js → page-Dif8CWyZ.js} +1 -1
  103. zenml/zen_server/dashboard/assets/{page-BdowiCbr.js → page-DlIi5ThM.js} +1 -1
  104. zenml/zen_server/dashboard/assets/{page-9Y9-gig0.js → page-DoW7YxTu.js} +1 -1
  105. zenml/zen_server/dashboard/assets/{page-BKZYc2Zv.js → page-Dth9X1Ih.js} +1 -1
  106. zenml/zen_server/dashboard/assets/{page-bT5pOvcB.js → page-DweqqCkF.js} +1 -1
  107. zenml/zen_server/dashboard/assets/{page-CXuQufSe.js → page-DyOJ_pq3.js} +1 -1
  108. zenml/zen_server/dashboard/assets/{page-DGazBpuP.js → page-Hn8q9iJZ.js} +1 -1
  109. zenml/zen_server/dashboard/assets/{page-hUqK889I.js → page-IhckKFnD.js} +1 -1
  110. zenml/zen_server/dashboard/assets/{page-BU9FG4sR.js → page-LyZ_l8vR.js} +1 -1
  111. zenml/zen_server/dashboard/assets/{page-Cldq1mpe.js → page-PamGpk0j.js} +1 -1
  112. zenml/zen_server/dashboard/assets/page-PxOWfKgF.js +2 -0
  113. zenml/zen_server/dashboard/assets/{persist-DAUi_3za.js → persist-DeXRG61d.js} +1 -1
  114. zenml/zen_server/dashboard/assets/{persist-AppN1B0J.js → persist-vP0-Xl4f.js} +1 -1
  115. zenml/zen_server/dashboard/assets/{service-BqqeXLEe.js → service-DH_oUqQj.js} +1 -1
  116. zenml/zen_server/dashboard/assets/{sharedSchema-uXN9FLLk.js → sharedSchema-Bw1_Wa7l.js} +1 -1
  117. zenml/zen_server/dashboard/assets/{stack-detail-query-XfZBiBP2.js → stack-detail-query-B_0R_fd6.js} +1 -1
  118. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-BWmgVJwA.js → update-server-settings-mutation-D9qYhfaN.js} +1 -1
  119. zenml/zen_server/dashboard/assets/{url-BLwMbzES.js → url-Dh93fvh0.js} +1 -1
  120. zenml/zen_server/dashboard/index.html +3 -3
  121. zenml/zen_server/deploy/deployer.py +1 -1
  122. zenml/zen_server/rbac/rbac_sql_zen_store.py +3 -1
  123. zenml/zen_server/routers/webhook_endpoints.py +1 -2
  124. zenml/zen_stores/migrations/utils.py +1 -2
  125. zenml/zen_stores/migrations/versions/5330ba58bf20_rename_tables_and_foreign_keys.py +7 -9
  126. zenml/zen_stores/rest_zen_store.py +1 -1
  127. zenml/zen_stores/schemas/artifact_schemas.py +19 -19
  128. zenml/zen_stores/schemas/model_schemas.py +19 -19
  129. zenml/zen_stores/schemas/pipeline_run_schemas.py +18 -19
  130. zenml/zen_stores/schemas/pipeline_schemas.py +7 -5
  131. zenml/zen_stores/schemas/run_metadata_schemas.py +1 -45
  132. zenml/zen_stores/schemas/run_template_schemas.py +7 -5
  133. zenml/zen_stores/schemas/step_run_schemas.py +6 -8
  134. zenml/zen_stores/schemas/tag_schemas.py +5 -41
  135. zenml/zen_stores/schemas/utils.py +11 -12
  136. zenml/zen_stores/sql_zen_store.py +9 -3
  137. {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/METADATA +2 -2
  138. {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/RECORD +141 -141
  139. zenml/zen_server/dashboard/assets/page-B6XU7yYT.js +0 -2
  140. zenml/zen_server/dashboard/assets/page-Bg8OjTRe.js +0 -1
  141. {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/LICENSE +0 -0
  142. {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/WHEEL +0 -0
  143. {zenml_nightly-0.71.0.dev20250107.dist-info → zenml_nightly-0.71.0.dev20250111.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
1
- import{k as n,F as i,p as o,q as u}from"./index-FO-p0GU7.js";import{b as c}from"./@tanstack-DT5WLu9C.js";async function p(e){const r=o(u.settings),t=await n(r,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const a=await t.json().then(s=>Array.isArray(s.detail)?s.detail[1]:s.detail).catch(()=>"Failed to update Server Settings");throw new i({status:t.status,statusText:t.statusText,message:a})}return t.json()}function f(e){return c({mutationFn:async r=>p(r),...e})}export{f as u};
1
+ import{k as n,F as i,p as o,q as u}from"./index-CE0aQlv8.js";import{b as c}from"./@tanstack-DT5WLu9C.js";async function p(e){const r=o(u.settings),t=await n(r,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const a=await t.json().then(s=>Array.isArray(s.detail)?s.detail[1]:s.detail).catch(()=>"Failed to update Server Settings");throw new i({status:t.status,statusText:t.statusText,message:a})}return t.json()}function f(e){return c({mutationFn:async r=>p(r),...e})}export{f as u};
@@ -1 +1 @@
1
- import{z as i}from"./index-FO-p0GU7.js";function m(t){return new URLSearchParams(Object.entries(t).filter(([n,e])=>e!=null).reduce((n,[e,a])=>(n.append(e,a),n),new URLSearchParams))}const r=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,s=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function o(t){return t=String(t),t==="null"||t.length===0||t==="about:blank"?"about:blank":t.match(r)||t.match(s)?t:`unsafe:${t}`}function f(t="about:blank"){return o(String(t).trim())}const c=i.string().url();function p(t){return c.safeParse(t).success}export{p as i,m as o,f as s,c as u};
1
+ import{z as i}from"./index-CE0aQlv8.js";function m(t){return new URLSearchParams(Object.entries(t).filter(([n,e])=>e!=null).reduce((n,[e,a])=>(n.append(e,a),n),new URLSearchParams))}const r=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,s=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function o(t){return t=String(t),t==="null"||t.length===0||t==="about:blank"?"about:blank":t.match(r)||t.match(s)?t:`unsafe:${t}`}function f(t="about:blank"){return o(String(t).trim())}const c=i.string().url();function p(t){return c.safeParse(t).success}export{p as i,m as o,f as s,c as u};
@@ -5,14 +5,14 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/favicon.ico" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>ZenML Dashboard</title>
8
- <script type="module" crossorigin src="/assets/index-FO-p0GU7.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-CE0aQlv8.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/@radix-DeK6qiuw.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/@tanstack-DT5WLu9C.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/@react-router-B3Z5rLr2.js">
12
- <link rel="modulepreload" crossorigin href="/assets/@reactflow-D2Y7BWwz.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/@reactflow-BUNIMFeC.js">
13
13
  <link rel="stylesheet" crossorigin href="/assets/@reactflow-C26Olbza.css">
14
14
  <link rel="stylesheet" crossorigin href="/assets/index-DXvT1_Um.css">
15
- <link rel="prefetch" href="/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2"><link rel="prefetch" href="/assets/inter-greek-ext-400-normal-Bput3-QP.woff2"><link rel="prefetch" href="/assets/inter-vietnamese-400-normal-DMkecbls.woff2"><link rel="prefetch" href="/assets/inter-greek-400-normal-DxZsaF_h.woff2"><link rel="prefetch" href="/assets/inter-latin-400-normal-BOOGhInR.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-400-normal-hnt3BR84.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2"><link rel="prefetch" href="/assets/inter-greek-ext-500-normal-B6guLgqG.woff2"><link rel="prefetch" href="/assets/inter-greek-500-normal-CeQXL5ds.woff2"><link rel="prefetch" href="/assets/inter-vietnamese-500-normal-DOriooB6.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2"><link rel="prefetch" href="/assets/inter-latin-500-normal-D2bGa7uu.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-600-normal-BGBWG807.woff2"><link rel="prefetch" href="/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2"><link rel="prefetch" href="/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2"><link rel="prefetch" href="/assets/inter-greek-600-normal-Dhlb-90d.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-600-normal-BnYJhD27.woff2"><link rel="prefetch" href="/assets/inter-latin-600-normal-D273HNI0.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff"><link rel="prefetch" href="/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff"><link rel="prefetch" href="/assets/inter-greek-ext-400-normal-DCpCPQOf.woff"><link rel="prefetch" href="/assets/inter-vietnamese-400-normal-BUNmGMP1.woff"><link rel="prefetch" href="/assets/inter-greek-400-normal-BZzXV7-1.woff"><link rel="prefetch" href="/assets/inter-latin-400-normal-gitzw0hO.woff"><link rel="prefetch" href="/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff"><link rel="prefetch" href="/assets/inter-latin-ext-400-normal-C1t-h-pH.woff"><link rel="prefetch" href="/assets/inter-greek-ext-500-normal-M2hEX8vc.woff"><link rel="prefetch" href="/assets/inter-cyrillic-500-normal-DH2hs3aW.woff"><link rel="prefetch" href="/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff"><link rel="prefetch" href="/assets/inter-greek-500-normal-d_eO-yCQ.woff"><link rel="prefetch" href="/assets/inter-latin-ext-500-normal-UMdmhHu2.woff"><link rel="prefetch" href="/assets/inter-latin-500-normal-deR1Tlfd.woff"><link rel="prefetch" href="/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff"><link rel="prefetch" href="/assets/inter-greek-ext-600-normal-C9WLioJ8.woff"><link rel="prefetch" href="/assets/inter-cyrillic-600-normal-BuzJQFbW.woff"><link rel="prefetch" href="/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff"><link rel="prefetch" href="/assets/inter-greek-600-normal-CwicyhtI.woff"><link rel="prefetch" href="/assets/inter-latin-ext-600-normal-CAF0vJDd.woff"><link rel="prefetch" href="/assets/inter-latin-600-normal-B5cFAncS.woff"><link rel="prefetch" href="/assets/cloud-squares-DeRLMopf.svg"><link rel="prefetch" href="/assets/acp-DOsXjFc7.webp"><link rel="prefetch" href="/assets/mcp-Cb1aMeoq.webp"><link rel="prefetch" href="/assets/settings_preview-0JLrRgHP.webp"><link rel="prefetch" href="/assets/upgrade-form-CwRHBuXB.webp"><link rel="prefetch" href="/assets/connectors-video-C9qY4syJ.svg"><link rel="prefetch" href="/assets/repos-video-D8kpu60k.svg"><link rel="prefetch" href="/assets/adam-e-y0WnB_.webp"><link rel="prefetch" href="/assets/alex-DcCuDHPg.webp"><link rel="prefetch" href="/assets/baris-C0ZrZ10g.webp"><link rel="prefetch" href="/assets/hamza-NKKOZz1I.webp"><link rel="prefetch" href="/assets/stefan-B08Ftbba.webp"><link rel="prefetch" href="/assets/tour-cover-BYfeen6M.webp"><link rel="prefetch" href="/assets/templates-1S_8WeSK.webp"><link rel="prefetch" href="/assets/flyte-Cj-xy_8I.svg"><link rel="prefetch" href="/assets/metaflow-weOkWNyT.svg"><link rel="prefetch" href="/assets/CodeSnippet-Bbx6fIb6.css"><link rel="prefetch" href="/assets/page-CiYxgZP_.js"><link rel="prefetch" href="/assets/page-DYEquBC2.js"><link rel="prefetch" href="/assets/page-bT5pOvcB.js"><link rel="prefetch" href="/assets/page-h_Stveon.js"><link rel="prefetch" href="/assets/page-CcQr8CPP.js"><link rel="prefetch" href="/assets/SetPassword-B_IVq_wg.js"><link rel="prefetch" href="/assets/login-mutation-BQeo4wTY.js"><link rel="prefetch" href="/assets/page-Dk32IeZm.js"><link rel="prefetch" href="/assets/page-zaMqB_ao.js"><link rel="prefetch" href="/assets/page-B6XU7yYT.js"><link rel="prefetch" href="/assets/not-found-gAJ5aDdR.js"><link rel="prefetch" href="/assets/page-BU9FG4sR.js"><link rel="prefetch" href="/assets/page-R5dx3xGF.js"><link rel="prefetch" href="/assets/PasswordChecker-B0nadgh6.js"><link rel="prefetch" href="/assets/tick-circle-BEX_Tp4v.js"><link rel="prefetch" href="/assets/page-BxL4qD4_.js"><link rel="prefetch" href="/assets/page-BdowiCbr.js"><link rel="prefetch" href="/assets/page-u_-ZXBKb.js"><link rel="prefetch" href="/assets/docker-BdA9vrnW.js"><link rel="prefetch" href="/assets/page-r8XK5vR7.js"><link rel="prefetch" href="/assets/Commands-BVEXKAOj.js"><link rel="prefetch" href="/assets/page-Cldq1mpe.js"><link rel="prefetch" href="/assets/code-snippets-CqONne41.js"><link rel="prefetch" href="/assets/page-hUqK889I.js"><link rel="prefetch" href="/assets/SecretTooltip-B8MrX5yu.js"><link rel="prefetch" href="/assets/page-M0w-n6vn.js"><link rel="prefetch" href="/assets/update-server-settings-mutation-BWmgVJwA.js"><link rel="prefetch" href="/assets/page-9Y9-gig0.js"><link rel="prefetch" href="/assets/page-CXuQufSe.js"><link rel="prefetch" href="/assets/dates-3pMLCNrD.js"><link rel="prefetch" href="/assets/key-icon-aH-QIa5R.js"><link rel="prefetch" href="/assets/service-BqqeXLEe.js"><link rel="prefetch" href="/assets/page-B_Apk3xg.js"><link rel="prefetch" href="/assets/page-Bg8OjTRe.js"><link rel="prefetch" href="/assets/RunsBody-KecfSkjY.js"><link rel="prefetch" href="/assets/RunSelector-DgRGaAc6.js"><link rel="prefetch" href="/assets/delete-run-DZ4hIXff.js"><link rel="prefetch" href="/assets/DeleteAlertDialog-D2ELtM2W.js"><link rel="prefetch" href="/assets/Tabs-Rg857zmd.js"><link rel="prefetch" href="/assets/all-pipeline-runs-query-DMXkDrV2.js"><link rel="prefetch" href="/assets/NestedCollapsible-DpgmEFKw.js"><link rel="prefetch" href="/assets/ExecutionStatus-ibAdY-dG.js"><link rel="prefetch" href="/assets/page-D8ObrbH8.js"><link rel="prefetch" href="/assets/StackList-TWPBYnkF.js"><link rel="prefetch" href="/assets/DialogItem-DXIMhBgU.js"><link rel="prefetch" href="/assets/AlertDialogDropdownItem-BHd71pVS.js"><link rel="prefetch" href="/assets/CollapsibleCard-CDnC97pB.js"><link rel="prefetch" href="/assets/CopyButton-B6wGAhQv.js"><link rel="prefetch" href="/assets/refresh-BjOeWlEq.js"><link rel="prefetch" href="/assets/SearchField-n-ILHnaP.js"><link rel="prefetch" href="/assets/page-Ce4Hrjnr.js"><link rel="prefetch" href="/assets/code-browser-CUFUIHfp.js"><link rel="prefetch" href="/assets/page-D4wdonLm.js"><link rel="prefetch" href="/assets/page-AUwiQ14W.js"><link rel="prefetch" href="/assets/index-DPqSWjug.js"><link rel="prefetch" href="/assets/index-I3bKUGUj.js"><link rel="prefetch" href="/assets/InlineAvatar-DBA0a0-a.js"><link rel="prefetch" href="/assets/DisplayDate-CDMUcQHS.js"><link rel="prefetch" href="/assets/index-Uu49AX48.js"><link rel="prefetch" href="/assets/page-BKZYc2Zv.js"><link rel="prefetch" href="/assets/Lock-CYYy18Mm.js"><link rel="prefetch" href="/assets/components-Br2ezRib.js"><link rel="prefetch" href="/assets/trash-arLUMWMS.js"><link rel="prefetch" href="/assets/dots-horizontal-otGBOSDJ.js"><link rel="prefetch" href="/assets/create-stack-HfdbhLs4.js"><link rel="prefetch" href="/assets/page-DGazBpuP.js"><link rel="prefetch" href="/assets/persist-AppN1B0J.js"><link rel="prefetch" href="/assets/Partials-D_ldD9if.js"><link rel="prefetch" href="/assets/link-external-b9AXw_sW.js"><link rel="prefetch" href="/assets/logs-WMSM52RF.js"><link rel="prefetch" href="/assets/NumberBox-Dtp3J6g5.js"><link rel="prefetch" href="/assets/Infobox-M_SMOu96.js"><link rel="prefetch" href="/assets/WizardFooter-BCAj69Vj.js"><link rel="prefetch" href="/assets/ProviderRadio-DWPnMuQ1.js"><link rel="prefetch" href="/assets/persist-DAUi_3za.js"><link rel="prefetch" href="/assets/ComponentBadge-CrRvovox.js"><link rel="prefetch" href="/assets/ProviderIcon-BZpgPigN.js"><link rel="prefetch" href="/assets/sharedSchema-uXN9FLLk.js"><link rel="prefetch" href="/assets/index-DScjfBRb.js"><link rel="prefetch" href="/assets/stack-detail-query-XfZBiBP2.js"><link rel="prefetch" href="/assets/layout-BtHBmE4w.js"><link rel="prefetch" href="/assets/page-CWxT5K5J.js"><link rel="prefetch" href="/assets/Error-B8uUfTpL.js"><link rel="prefetch" href="/assets/page-DO1UcqPX.js"><link rel="prefetch" href="/assets/page-I3nKFGie.js"><link rel="prefetch" href="/assets/ProBadge-DQbfFotM.js"><link rel="prefetch" href="/assets/ProCta-Bcpb4rcY.js"><link rel="prefetch" href="/assets/login-command-CkqxPtV3.js"><link rel="prefetch" href="/assets/CodeSnippet-DIonwetW.js"><link rel="prefetch" href="/assets/copy-C8XQA2Ug.js"><link rel="prefetch" href="/assets/zod-BwEbpOxH.js"><link rel="prefetch" href="/assets/index.esm-Dy6Z9Ung.js"><link rel="prefetch" href="/assets/check-DloQpStc.js"><link rel="prefetch" href="/assets/check-circle-jNbX5-sR.js"><link rel="prefetch" href="/assets/form-schemas-B0AVEd9b.js"><link rel="prefetch" href="/assets/EmptyState-BzdlCwp3.js"><link rel="prefetch" href="/assets/UsageReason-BTLbx7w4.js"><link rel="prefetch" href="/assets/url-BLwMbzES.js"><link rel="prefetch" href="/assets/gcp-CFtm4BA7.js"><link rel="prefetch" href="/assets/kubernetes-B2wmAJ1d.js"><link rel="prefetch" href="/assets/rocket-DjT2cDvG.js"><link rel="prefetch" href="/assets/UpdatePasswordSchemas-C6Aj3hm6.js"><link rel="prefetch" href="/assets/chevron-right-double-D7ojK9Co.js"><link rel="prefetch" href="/assets/plus-tf1V2hTJ.js"><link rel="prefetch" href="/assets/chevron-down-6JyMkfjR.js"><link rel="prefetch" href="/assets/Helpbox-BfAfhKHw.js"><link rel="prefetch" href="/assets/help-Cc9bBIJH.js"><link rel="prefetch" href="/assets/Tick-COg4A-xo.js"><link rel="prefetch" href="/assets/package-C6uypY4h.js"><link rel="prefetch" href="/assets/page-DFuAUGt4.js"><link rel="prefetch" href="/assets/page-DRYXdL5o.js"><link rel="prefetch" href="/assets/404-Cqu3EDCm.js"><link rel="prefetch" href="/assets/CsvVizualization-CjcT7LMm.js"><link rel="prefetch" href="/assets/MarkdownVisualization-ylXaAxev.js"></head>
15
+ <link rel="prefetch" href="/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2"><link rel="prefetch" href="/assets/inter-greek-ext-400-normal-Bput3-QP.woff2"><link rel="prefetch" href="/assets/inter-greek-400-normal-DxZsaF_h.woff2"><link rel="prefetch" href="/assets/inter-vietnamese-400-normal-DMkecbls.woff2"><link rel="prefetch" href="/assets/inter-latin-400-normal-BOOGhInR.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-400-normal-hnt3BR84.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2"><link rel="prefetch" href="/assets/inter-greek-ext-500-normal-B6guLgqG.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2"><link rel="prefetch" href="/assets/inter-greek-500-normal-CeQXL5ds.woff2"><link rel="prefetch" href="/assets/inter-vietnamese-500-normal-DOriooB6.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2"><link rel="prefetch" href="/assets/inter-latin-500-normal-D2bGa7uu.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2"><link rel="prefetch" href="/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-600-normal-BGBWG807.woff2"><link rel="prefetch" href="/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2"><link rel="prefetch" href="/assets/inter-greek-600-normal-Dhlb-90d.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-600-normal-BnYJhD27.woff2"><link rel="prefetch" href="/assets/inter-latin-600-normal-D273HNI0.woff2"><link rel="prefetch" href="/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff"><link rel="prefetch" href="/assets/inter-greek-400-normal-BZzXV7-1.woff"><link rel="prefetch" href="/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff"><link rel="prefetch" href="/assets/inter-greek-ext-400-normal-DCpCPQOf.woff"><link rel="prefetch" href="/assets/inter-vietnamese-400-normal-BUNmGMP1.woff"><link rel="prefetch" href="/assets/inter-latin-400-normal-gitzw0hO.woff"><link rel="prefetch" href="/assets/inter-latin-ext-400-normal-C1t-h-pH.woff"><link rel="prefetch" href="/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff"><link rel="prefetch" href="/assets/inter-greek-ext-500-normal-M2hEX8vc.woff"><link rel="prefetch" href="/assets/inter-cyrillic-500-normal-DH2hs3aW.woff"><link rel="prefetch" href="/assets/inter-greek-500-normal-d_eO-yCQ.woff"><link rel="prefetch" href="/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff"><link rel="prefetch" href="/assets/inter-latin-ext-500-normal-UMdmhHu2.woff"><link rel="prefetch" href="/assets/inter-latin-500-normal-deR1Tlfd.woff"><link rel="prefetch" href="/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff"><link rel="prefetch" href="/assets/inter-greek-ext-600-normal-C9WLioJ8.woff"><link rel="prefetch" href="/assets/inter-cyrillic-600-normal-BuzJQFbW.woff"><link rel="prefetch" href="/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff"><link rel="prefetch" href="/assets/inter-greek-600-normal-CwicyhtI.woff"><link rel="prefetch" href="/assets/inter-latin-ext-600-normal-CAF0vJDd.woff"><link rel="prefetch" href="/assets/inter-latin-600-normal-B5cFAncS.woff"><link rel="prefetch" href="/assets/cloud-squares-DeRLMopf.svg"><link rel="prefetch" href="/assets/acp-DOsXjFc7.webp"><link rel="prefetch" href="/assets/mcp-Cb1aMeoq.webp"><link rel="prefetch" href="/assets/settings_preview-0JLrRgHP.webp"><link rel="prefetch" href="/assets/upgrade-form-CwRHBuXB.webp"><link rel="prefetch" href="/assets/connectors-video-C9qY4syJ.svg"><link rel="prefetch" href="/assets/repos-video-D8kpu60k.svg"><link rel="prefetch" href="/assets/tour-cover-BYfeen6M.webp"><link rel="prefetch" href="/assets/templates-1S_8WeSK.webp"><link rel="prefetch" href="/assets/adam-e-y0WnB_.webp"><link rel="prefetch" href="/assets/alex-DcCuDHPg.webp"><link rel="prefetch" href="/assets/baris-C0ZrZ10g.webp"><link rel="prefetch" href="/assets/hamza-NKKOZz1I.webp"><link rel="prefetch" href="/assets/stefan-B08Ftbba.webp"><link rel="prefetch" href="/assets/flyte-Cj-xy_8I.svg"><link rel="prefetch" href="/assets/metaflow-weOkWNyT.svg"><link rel="prefetch" href="/assets/CodeSnippet-Bbx6fIb6.css"><link rel="prefetch" href="/assets/page-BYJfqgLN.js"><link rel="prefetch" href="/assets/page-Dif8CWyZ.js"><link rel="prefetch" href="/assets/page-DweqqCkF.js"><link rel="prefetch" href="/assets/page-B_0XkV48.js"><link rel="prefetch" href="/assets/page-BC27C_OI.js"><link rel="prefetch" href="/assets/SetPassword-Yn50ooBC.js"><link rel="prefetch" href="/assets/login-mutation-DNDVp_2H.js"><link rel="prefetch" href="/assets/page-C70wZtV2.js"><link rel="prefetch" href="/assets/page-BNxYrN0q.js"><link rel="prefetch" href="/assets/page-PxOWfKgF.js"><link rel="prefetch" href="/assets/not-found-Bmup4ctE.js"><link rel="prefetch" href="/assets/page-LyZ_l8vR.js"><link rel="prefetch" href="/assets/page-BrmJp1Wt.js"><link rel="prefetch" href="/assets/PasswordChecker-B0nadgh6.js"><link rel="prefetch" href="/assets/tick-circle-BEX_Tp4v.js"><link rel="prefetch" href="/assets/page-CltCNL0T.js"><link rel="prefetch" href="/assets/page-DlIi5ThM.js"><link rel="prefetch" href="/assets/page-D9Oh05fl.js"><link rel="prefetch" href="/assets/docker-BdA9vrnW.js"><link rel="prefetch" href="/assets/page-DN4BVIOL.js"><link rel="prefetch" href="/assets/Commands-BEGyld4c.js"><link rel="prefetch" href="/assets/page-PamGpk0j.js"><link rel="prefetch" href="/assets/code-snippets-CqONne41.js"><link rel="prefetch" href="/assets/page-IhckKFnD.js"><link rel="prefetch" href="/assets/SecretTooltip-CLzJIYW_.js"><link rel="prefetch" href="/assets/page-CWr96ZKN.js"><link rel="prefetch" href="/assets/update-server-settings-mutation-D9qYhfaN.js"><link rel="prefetch" href="/assets/page-DoW7YxTu.js"><link rel="prefetch" href="/assets/page-DyOJ_pq3.js"><link rel="prefetch" href="/assets/dates-3pMLCNrD.js"><link rel="prefetch" href="/assets/key-icon-aH-QIa5R.js"><link rel="prefetch" href="/assets/service-DH_oUqQj.js"><link rel="prefetch" href="/assets/page-Cc8ZEuj4.js"><link rel="prefetch" href="/assets/page-C2nU3Gxn.js"><link rel="prefetch" href="/assets/RunsBody-DxxtWVYz.js"><link rel="prefetch" href="/assets/RunSelector-CsruSB4i.js"><link rel="prefetch" href="/assets/delete-run-Byf9hTjA.js"><link rel="prefetch" href="/assets/DeleteAlertDialog-WkSIIgfy.js"><link rel="prefetch" href="/assets/Tabs-CNv-eTYM.js"><link rel="prefetch" href="/assets/all-pipeline-runs-query-DUti43aF.js"><link rel="prefetch" href="/assets/NestedCollapsible-aK5ojKoF.js"><link rel="prefetch" href="/assets/ExecutionStatus-G8mjIaeA.js"><link rel="prefetch" href="/assets/page-CaeI9ptC.js"><link rel="prefetch" href="/assets/StackList-U537qoYd.js"><link rel="prefetch" href="/assets/DialogItem-Bgroeg29.js"><link rel="prefetch" href="/assets/AlertDialogDropdownItem-B73Vs10T.js"><link rel="prefetch" href="/assets/CollapsibleCard-BzUHGZOU.js"><link rel="prefetch" href="/assets/CopyButton-DhW-mapu.js"><link rel="prefetch" href="/assets/refresh-BjOeWlEq.js"><link rel="prefetch" href="/assets/SearchField-D6tPxyqw.js"><link rel="prefetch" href="/assets/page-CXAbSyp9.js"><link rel="prefetch" href="/assets/code-browser-CUFUIHfp.js"><link rel="prefetch" href="/assets/page-CmlYj7Nl.js"><link rel="prefetch" href="/assets/page-B5Sr8pib.js"><link rel="prefetch" href="/assets/index-CyBKZcpO.js"><link rel="prefetch" href="/assets/index-v6gQjDEo.js"><link rel="prefetch" href="/assets/InlineAvatar-DqnZaBNq.js"><link rel="prefetch" href="/assets/DisplayDate-CDMUcQHS.js"><link rel="prefetch" href="/assets/index-Uu49AX48.js"><link rel="prefetch" href="/assets/page-Dth9X1Ih.js"><link rel="prefetch" href="/assets/Lock-CYYy18Mm.js"><link rel="prefetch" href="/assets/components-Br2ezRib.js"><link rel="prefetch" href="/assets/trash-arLUMWMS.js"><link rel="prefetch" href="/assets/dots-horizontal-otGBOSDJ.js"><link rel="prefetch" href="/assets/create-stack-Ch2WPs9U.js"><link rel="prefetch" href="/assets/page-Hn8q9iJZ.js"><link rel="prefetch" href="/assets/persist-vP0-Xl4f.js"><link rel="prefetch" href="/assets/Partials-CqZp5NMX.js"><link rel="prefetch" href="/assets/link-external-b9AXw_sW.js"><link rel="prefetch" href="/assets/logs-WMSM52RF.js"><link rel="prefetch" href="/assets/NumberBox-Dtp3J6g5.js"><link rel="prefetch" href="/assets/Infobox-Da6-76M2.js"><link rel="prefetch" href="/assets/WizardFooter-D6i-AP1K.js"><link rel="prefetch" href="/assets/ProviderRadio-mstdqzsS.js"><link rel="prefetch" href="/assets/persist-DeXRG61d.js"><link rel="prefetch" href="/assets/ComponentBadge-xyKiek1s.js"><link rel="prefetch" href="/assets/ProviderIcon-Bd7GUQ1_.js"><link rel="prefetch" href="/assets/sharedSchema-Bw1_Wa7l.js"><link rel="prefetch" href="/assets/index-CtdYkjUi.js"><link rel="prefetch" href="/assets/stack-detail-query-B_0R_fd6.js"><link rel="prefetch" href="/assets/layout-BtHBmE4w.js"><link rel="prefetch" href="/assets/page-CHRn1fQm.js"><link rel="prefetch" href="/assets/Error-CY5tlu17.js"><link rel="prefetch" href="/assets/page-ANYGfEUL.js"><link rel="prefetch" href="/assets/page--XLMzHrn.js"><link rel="prefetch" href="/assets/ProBadge-B4tRUYve.js"><link rel="prefetch" href="/assets/ProCta-CZuP29Qz.js"><link rel="prefetch" href="/assets/login-command-CkqxPtV3.js"><link rel="prefetch" href="/assets/CodeSnippet-DIJRT2NT.js"><link rel="prefetch" href="/assets/copy-C8XQA2Ug.js"><link rel="prefetch" href="/assets/zod-BwEbpOxH.js"><link rel="prefetch" href="/assets/index.esm-Dy6Z9Ung.js"><link rel="prefetch" href="/assets/check-DloQpStc.js"><link rel="prefetch" href="/assets/check-circle-jNbX5-sR.js"><link rel="prefetch" href="/assets/form-schemas-BZqKBPBF.js"><link rel="prefetch" href="/assets/EmptyState-BzdlCwp3.js"><link rel="prefetch" href="/assets/UsageReason-Bf2tzhv1.js"><link rel="prefetch" href="/assets/url-Dh93fvh0.js"><link rel="prefetch" href="/assets/gcp-CFtm4BA7.js"><link rel="prefetch" href="/assets/kubernetes-B2wmAJ1d.js"><link rel="prefetch" href="/assets/rocket-DjT2cDvG.js"><link rel="prefetch" href="/assets/UpdatePasswordSchemas-C16GW-kX.js"><link rel="prefetch" href="/assets/chevron-right-double-D7ojK9Co.js"><link rel="prefetch" href="/assets/plus-tf1V2hTJ.js"><link rel="prefetch" href="/assets/chevron-down-6JyMkfjR.js"><link rel="prefetch" href="/assets/Helpbox-Bb1ed--O.js"><link rel="prefetch" href="/assets/help-Cc9bBIJH.js"><link rel="prefetch" href="/assets/Tick-jEIevzVf.js"><link rel="prefetch" href="/assets/package-C6uypY4h.js"><link rel="prefetch" href="/assets/page-D6Ev5P8V.js"><link rel="prefetch" href="/assets/page-DGlm1RVc.js"><link rel="prefetch" href="/assets/404-Dfq64Boz.js"><link rel="prefetch" href="/assets/CsvVizualization-D8oazBiE.js"><link rel="prefetch" href="/assets/MarkdownVisualization-ylXaAxev.js"></head>
16
16
  <body>
17
17
  <div id="root"></div>
18
18
  </body>
@@ -331,7 +331,7 @@ class LocalServerDeployer(metaclass=SingletonMetaClass):
331
331
  provider = self.get_provider(server.config.provider)
332
332
 
333
333
  logger.info(
334
- f"Fetching logs from the local {provider_name} ZenML " f"server..."
334
+ f"Fetching logs from the local {provider_name} ZenML server..."
335
335
  )
336
336
  return provider.get_server_logs(
337
337
  server.config, follow=follow, tail=tail
@@ -153,7 +153,9 @@ class RBACSqlZenStore(SqlZenStore):
153
153
 
154
154
  if allow_creation:
155
155
  created, model_version_response = (
156
- super()._get_or_create_model_version(model_version_request, producer_run_id=producer_run_id)
156
+ super()._get_or_create_model_version(
157
+ model_version_request, producer_run_id=producer_run_id
158
+ )
157
159
  )
158
160
  else:
159
161
  try:
@@ -88,8 +88,7 @@ def webhook(
88
88
  f"'{event_source_id}'."
89
89
  )
90
90
  raise AuthorizationException( # TODO: Are we sure about this error message?
91
- f"No webhook is registered at "
92
- f"'{router.prefix}/{event_source_id}'"
91
+ f"No webhook is registered at '{router.prefix}/{event_source_id}'"
93
92
  )
94
93
  if not event_source.is_active:
95
94
  raise WebhookInactiveError(f"Webhook {event_source_id} is inactive.")
@@ -725,8 +725,7 @@ class MigrationUtils(BaseModel):
725
725
  self._copy_database(backup_engine, self.engine)
726
726
 
727
727
  logger.debug(
728
- f"Database restored from the `{backup_db_name}` "
729
- "backup database."
728
+ f"Database restored from the `{backup_db_name}` backup database."
730
729
  )
731
730
 
732
731
  model_config = ConfigDict(arbitrary_types_allowed=True)
@@ -87,15 +87,13 @@ def _create_fk_constraint(
87
87
  )
88
88
 
89
89
 
90
- def _get_changes() -> (
91
- Tuple[
92
- List[str],
93
- List[str],
94
- List[str],
95
- List[Tuple[str, str, str, str, str]],
96
- List[Tuple[str, str, str, str, str]],
97
- ]
98
- ):
90
+ def _get_changes() -> Tuple[
91
+ List[str],
92
+ List[str],
93
+ List[str],
94
+ List[Tuple[str, str, str, str, str]],
95
+ List[Tuple[str, str, str, str, str]],
96
+ ]:
99
97
  """Define the data that should be changed in the schema.
100
98
 
101
99
  Returns:
@@ -2726,7 +2726,7 @@ class RestZenStore(BaseZenStore):
2726
2726
  )
2727
2727
  except (ValueError, AuthorizationException) as e:
2728
2728
  logger.error(
2729
- f'Failed to fetch {resource_type or "available"} '
2729
+ f"Failed to fetch {resource_type or 'available'} "
2730
2730
  f"resources from service connector {connector.name}/"
2731
2731
  f"{connector.id}: {e}"
2732
2732
  )
@@ -59,10 +59,8 @@ if TYPE_CHECKING:
59
59
  from zenml.zen_stores.schemas.model_schemas import (
60
60
  ModelVersionArtifactSchema,
61
61
  )
62
- from zenml.zen_stores.schemas.run_metadata_schemas import (
63
- RunMetadataResourceSchema,
64
- )
65
- from zenml.zen_stores.schemas.tag_schemas import TagResourceSchema
62
+ from zenml.zen_stores.schemas.run_metadata_schemas import RunMetadataSchema
63
+ from zenml.zen_stores.schemas.tag_schemas import TagSchema
66
64
 
67
65
 
68
66
  class ArtifactSchema(NamedSchema, table=True):
@@ -82,11 +80,12 @@ class ArtifactSchema(NamedSchema, table=True):
82
80
  back_populates="artifact",
83
81
  sa_relationship_kwargs={"cascade": "delete"},
84
82
  )
85
- tags: List["TagResourceSchema"] = Relationship(
86
- back_populates="artifact",
83
+ tags: List["TagSchema"] = Relationship(
87
84
  sa_relationship_kwargs=dict(
88
- primaryjoin=f"and_(TagResourceSchema.resource_type=='{TaggableResourceTypes.ARTIFACT.value}', foreign(TagResourceSchema.resource_id)==ArtifactSchema.id)",
89
- cascade="delete",
85
+ primaryjoin=f"and_(foreign(TagResourceSchema.resource_type)=='{TaggableResourceTypes.ARTIFACT.value}', foreign(TagResourceSchema.resource_id)==ArtifactSchema.id)",
86
+ secondary="tag_resource",
87
+ secondaryjoin="TagSchema.id == foreign(TagResourceSchema.tag_id)",
88
+ order_by="TagSchema.name",
90
89
  overlaps="tags",
91
90
  ),
92
91
  )
@@ -136,7 +135,7 @@ class ArtifactSchema(NamedSchema, table=True):
136
135
  body = ArtifactResponseBody(
137
136
  created=self.created,
138
137
  updated=self.updated,
139
- tags=[t.tag.to_model() for t in self.tags],
138
+ tags=[tag.to_model() for tag in self.tags],
140
139
  latest_version_name=latest_name,
141
140
  latest_version_id=latest_id,
142
141
  )
@@ -192,11 +191,12 @@ class ArtifactVersionSchema(BaseSchema, RunMetadataInterface, table=True):
192
191
  uri: str = Field(sa_column=Column(TEXT, nullable=False))
193
192
  materializer: str = Field(sa_column=Column(TEXT, nullable=False))
194
193
  data_type: str = Field(sa_column=Column(TEXT, nullable=False))
195
- tags: List["TagResourceSchema"] = Relationship(
196
- back_populates="artifact_version",
194
+ tags: List["TagSchema"] = Relationship(
197
195
  sa_relationship_kwargs=dict(
198
- primaryjoin=f"and_(TagResourceSchema.resource_type=='{TaggableResourceTypes.ARTIFACT_VERSION.value}', foreign(TagResourceSchema.resource_id)==ArtifactVersionSchema.id)",
199
- cascade="delete",
196
+ primaryjoin=f"and_(foreign(TagResourceSchema.resource_type)=='{TaggableResourceTypes.ARTIFACT_VERSION.value}', foreign(TagResourceSchema.resource_id)==ArtifactVersionSchema.id)",
197
+ secondary="tag_resource",
198
+ secondaryjoin="TagSchema.id == foreign(TagResourceSchema.tag_id)",
199
+ order_by="TagSchema.name",
200
200
  overlaps="tags",
201
201
  ),
202
202
  )
@@ -244,12 +244,12 @@ class ArtifactVersionSchema(BaseSchema, RunMetadataInterface, table=True):
244
244
  workspace: "WorkspaceSchema" = Relationship(
245
245
  back_populates="artifact_versions"
246
246
  )
247
- run_metadata_resources: List["RunMetadataResourceSchema"] = Relationship(
248
- back_populates="artifact_versions",
247
+ run_metadata: List["RunMetadataSchema"] = Relationship(
249
248
  sa_relationship_kwargs=dict(
250
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.ARTIFACT_VERSION.value}', foreign(RunMetadataResourceSchema.resource_id)==ArtifactVersionSchema.id)",
251
- cascade="delete",
252
- overlaps="run_metadata_resources",
249
+ secondary="run_metadata_resource",
250
+ primaryjoin=f"and_(foreign(RunMetadataResourceSchema.resource_type)=='{MetadataResourceTypes.ARTIFACT_VERSION.value}', foreign(RunMetadataResourceSchema.resource_id)==ArtifactVersionSchema.id)",
251
+ secondaryjoin="RunMetadataSchema.id==foreign(RunMetadataResourceSchema.run_metadata_id)",
252
+ overlaps="run_metadata",
253
253
  ),
254
254
  )
255
255
  output_of_step_runs: List["StepRunOutputArtifactSchema"] = Relationship(
@@ -365,7 +365,7 @@ class ArtifactVersionSchema(BaseSchema, RunMetadataInterface, table=True):
365
365
  data_type=data_type,
366
366
  created=self.created,
367
367
  updated=self.updated,
368
- tags=[t.tag.to_model() for t in self.tags],
368
+ tags=[tag.to_model() for tag in self.tags],
369
369
  producer_pipeline_run_id=producer_pipeline_run_id,
370
370
  save_type=ArtifactSaveType(self.save_type),
371
371
  artifact_store_id=self.artifact_store_id,
@@ -56,11 +56,9 @@ from zenml.zen_stores.schemas.artifact_schemas import ArtifactVersionSchema
56
56
  from zenml.zen_stores.schemas.base_schemas import BaseSchema, NamedSchema
57
57
  from zenml.zen_stores.schemas.constants import MODEL_VERSION_TABLENAME
58
58
  from zenml.zen_stores.schemas.pipeline_run_schemas import PipelineRunSchema
59
- from zenml.zen_stores.schemas.run_metadata_schemas import (
60
- RunMetadataResourceSchema,
61
- )
59
+ from zenml.zen_stores.schemas.run_metadata_schemas import RunMetadataSchema
62
60
  from zenml.zen_stores.schemas.schema_utils import build_foreign_key_field
63
- from zenml.zen_stores.schemas.tag_schemas import TagResourceSchema
61
+ from zenml.zen_stores.schemas.tag_schemas import TagSchema
64
62
  from zenml.zen_stores.schemas.user_schemas import UserSchema
65
63
  from zenml.zen_stores.schemas.utils import (
66
64
  RunMetadataInterface,
@@ -114,11 +112,12 @@ class ModelSchema(NamedSchema, table=True):
114
112
  save_models_to_registry: bool = Field(
115
113
  sa_column=Column(BOOLEAN, nullable=False)
116
114
  )
117
- tags: List["TagResourceSchema"] = Relationship(
118
- back_populates="model",
115
+ tags: List["TagSchema"] = Relationship(
119
116
  sa_relationship_kwargs=dict(
120
- primaryjoin=f"and_(TagResourceSchema.resource_type=='{TaggableResourceTypes.MODEL.value}', foreign(TagResourceSchema.resource_id)==ModelSchema.id)",
121
- cascade="delete",
117
+ primaryjoin=f"and_(foreign(TagResourceSchema.resource_type)=='{TaggableResourceTypes.MODEL.value}', foreign(TagResourceSchema.resource_id)==ModelSchema.id)",
118
+ secondary="tag_resource",
119
+ secondaryjoin="TagSchema.id == foreign(TagResourceSchema.tag_id)",
120
+ order_by="TagSchema.name",
122
121
  overlaps="tags",
123
122
  ),
124
123
  )
@@ -168,7 +167,7 @@ class ModelSchema(NamedSchema, table=True):
168
167
  Returns:
169
168
  The created `ModelResponse`.
170
169
  """
171
- tags = [t.tag.to_model() for t in self.tags]
170
+ tags = [tag.to_model() for tag in self.tags]
172
171
 
173
172
  if self.model_versions:
174
173
  version_numbers = [mv.number for mv in self.model_versions]
@@ -299,11 +298,12 @@ class ModelVersionSchema(NamedSchema, RunMetadataInterface, table=True):
299
298
  back_populates="model_version",
300
299
  sa_relationship_kwargs={"cascade": "delete"},
301
300
  )
302
- tags: List["TagResourceSchema"] = Relationship(
303
- back_populates="model_version",
301
+ tags: List["TagSchema"] = Relationship(
304
302
  sa_relationship_kwargs=dict(
305
- primaryjoin=f"and_(TagResourceSchema.resource_type=='{TaggableResourceTypes.MODEL_VERSION.value}', foreign(TagResourceSchema.resource_id)==ModelVersionSchema.id)",
306
- cascade="delete",
303
+ primaryjoin=f"and_(foreign(TagResourceSchema.resource_type)=='{TaggableResourceTypes.MODEL_VERSION.value}', foreign(TagResourceSchema.resource_id)==ModelVersionSchema.id)",
304
+ secondary="tag_resource",
305
+ secondaryjoin="TagSchema.id == foreign(TagResourceSchema.tag_id)",
306
+ order_by="TagSchema.name",
307
307
  overlaps="tags",
308
308
  ),
309
309
  )
@@ -316,12 +316,12 @@ class ModelVersionSchema(NamedSchema, RunMetadataInterface, table=True):
316
316
  description: str = Field(sa_column=Column(TEXT, nullable=True))
317
317
  stage: str = Field(sa_column=Column(TEXT, nullable=True))
318
318
 
319
- run_metadata_resources: List["RunMetadataResourceSchema"] = Relationship(
320
- back_populates="model_versions",
319
+ run_metadata: List["RunMetadataSchema"] = Relationship(
321
320
  sa_relationship_kwargs=dict(
322
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.MODEL_VERSION.value}', foreign(RunMetadataResourceSchema.resource_id)==ModelVersionSchema.id)",
323
- cascade="delete",
324
- overlaps="run_metadata_resources",
321
+ secondary="run_metadata_resource",
322
+ primaryjoin=f"and_(foreign(RunMetadataResourceSchema.resource_type)=='{MetadataResourceTypes.MODEL_VERSION.value}', foreign(RunMetadataResourceSchema.resource_id)==ModelVersionSchema.id)",
323
+ secondaryjoin="RunMetadataSchema.id==foreign(RunMetadataResourceSchema.run_metadata_id)",
324
+ overlaps="run_metadata",
325
325
  ),
326
326
  )
327
327
  pipeline_runs: List["PipelineRunSchema"] = Relationship(
@@ -471,7 +471,7 @@ class ModelVersionSchema(NamedSchema, RunMetadataInterface, table=True):
471
471
  data_artifact_ids=data_artifact_ids,
472
472
  deployment_artifact_ids=deployment_artifact_ids,
473
473
  pipeline_run_ids=pipeline_run_ids,
474
- tags=[t.tag.to_model() for t in self.tags],
474
+ tags=[tag.to_model() for tag in self.tags],
475
475
  )
476
476
 
477
477
  return ModelVersionResponse(
@@ -58,12 +58,10 @@ if TYPE_CHECKING:
58
58
  ModelVersionPipelineRunSchema,
59
59
  ModelVersionSchema,
60
60
  )
61
- from zenml.zen_stores.schemas.run_metadata_schemas import (
62
- RunMetadataResourceSchema,
63
- )
61
+ from zenml.zen_stores.schemas.run_metadata_schemas import RunMetadataSchema
64
62
  from zenml.zen_stores.schemas.service_schemas import ServiceSchema
65
63
  from zenml.zen_stores.schemas.step_run_schemas import StepRunSchema
66
- from zenml.zen_stores.schemas.tag_schemas import TagResourceSchema
64
+ from zenml.zen_stores.schemas.tag_schemas import TagSchema
67
65
 
68
66
 
69
67
  class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
@@ -140,12 +138,12 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
140
138
  )
141
139
  workspace: "WorkspaceSchema" = Relationship(back_populates="runs")
142
140
  user: Optional["UserSchema"] = Relationship(back_populates="runs")
143
- run_metadata_resources: List["RunMetadataResourceSchema"] = Relationship(
144
- back_populates="pipeline_runs",
141
+ run_metadata: List["RunMetadataSchema"] = Relationship(
145
142
  sa_relationship_kwargs=dict(
146
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.PIPELINE_RUN.value}', foreign(RunMetadataResourceSchema.resource_id)==PipelineRunSchema.id)",
147
- cascade="delete",
148
- overlaps="run_metadata_resources",
143
+ secondary="run_metadata_resource",
144
+ primaryjoin=f"and_(foreign(RunMetadataResourceSchema.resource_type)=='{MetadataResourceTypes.PIPELINE_RUN.value}', foreign(RunMetadataResourceSchema.resource_id)==PipelineRunSchema.id)",
145
+ secondaryjoin="RunMetadataSchema.id==foreign(RunMetadataResourceSchema.run_metadata_id)",
146
+ overlaps="run_metadata",
149
147
  ),
150
148
  )
151
149
  logs: Optional["LogsSchema"] = Relationship(
@@ -215,10 +213,12 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
215
213
  services: List["ServiceSchema"] = Relationship(
216
214
  back_populates="pipeline_run",
217
215
  )
218
- tags: List["TagResourceSchema"] = Relationship(
216
+ tags: List["TagSchema"] = Relationship(
219
217
  sa_relationship_kwargs=dict(
220
- primaryjoin=f"and_(TagResourceSchema.resource_type=='{TaggableResourceTypes.PIPELINE_RUN.value}', foreign(TagResourceSchema.resource_id)==PipelineRunSchema.id)",
221
- cascade="delete",
218
+ primaryjoin=f"and_(foreign(TagResourceSchema.resource_type)=='{TaggableResourceTypes.PIPELINE_RUN.value}', foreign(TagResourceSchema.resource_id)==PipelineRunSchema.id)",
219
+ secondary="tag_resource",
220
+ secondaryjoin="TagSchema.id == foreign(TagResourceSchema.tag_id)",
221
+ order_by="TagSchema.name",
222
222
  overlaps="tags",
223
223
  ),
224
224
  )
@@ -291,12 +291,6 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
291
291
  Raises:
292
292
  RuntimeError: if the model creation fails.
293
293
  """
294
- orchestrator_environment = (
295
- json.loads(self.orchestrator_environment)
296
- if self.orchestrator_environment
297
- else {}
298
- )
299
-
300
294
  if self.deployment is not None:
301
295
  deployment = self.deployment.to_model(include_metadata=True)
302
296
 
@@ -377,6 +371,11 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
377
371
  # in the response -> We need to reset the metadata here
378
372
  step.metadata = None
379
373
 
374
+ orchestrator_environment = (
375
+ json.loads(self.orchestrator_environment)
376
+ if self.orchestrator_environment
377
+ else {}
378
+ )
380
379
  metadata = PipelineRunResponseMetadata(
381
380
  workspace=self.workspace.to_model(),
382
381
  run_metadata=self.fetch_metadata(),
@@ -405,7 +404,7 @@ class PipelineRunSchema(NamedSchema, RunMetadataInterface, table=True):
405
404
 
406
405
  resources = PipelineRunResponseResources(
407
406
  model_version=model_version,
408
- tags=[t.tag.to_model() for t in self.tags],
407
+ tags=[tag.to_model() for tag in self.tags],
409
408
  )
410
409
 
411
410
  return PipelineRunResponse(
@@ -43,7 +43,7 @@ if TYPE_CHECKING:
43
43
  )
44
44
  from zenml.zen_stores.schemas.pipeline_run_schemas import PipelineRunSchema
45
45
  from zenml.zen_stores.schemas.schedule_schema import ScheduleSchema
46
- from zenml.zen_stores.schemas.tag_schemas import TagResourceSchema
46
+ from zenml.zen_stores.schemas.tag_schemas import TagSchema
47
47
 
48
48
 
49
49
  class PipelineSchema(NamedSchema, table=True):
@@ -95,10 +95,12 @@ class PipelineSchema(NamedSchema, table=True):
95
95
  deployments: List["PipelineDeploymentSchema"] = Relationship(
96
96
  back_populates="pipeline",
97
97
  )
98
- tags: List["TagResourceSchema"] = Relationship(
98
+ tags: List["TagSchema"] = Relationship(
99
99
  sa_relationship_kwargs=dict(
100
- primaryjoin=f"and_(TagResourceSchema.resource_type=='{TaggableResourceTypes.PIPELINE.value}', foreign(TagResourceSchema.resource_id)==PipelineSchema.id)",
101
- cascade="delete",
100
+ primaryjoin=f"and_(foreign(TagResourceSchema.resource_type)=='{TaggableResourceTypes.PIPELINE.value}', foreign(TagResourceSchema.resource_id)==PipelineSchema.id)",
101
+ secondary="tag_resource",
102
+ secondaryjoin="TagSchema.id == foreign(TagResourceSchema.tag_id)",
103
+ order_by="TagSchema.name",
102
104
  overlaps="tags",
103
105
  ),
104
106
  )
@@ -162,7 +164,7 @@ class PipelineSchema(NamedSchema, table=True):
162
164
  latest_run_user=latest_run_user.to_model()
163
165
  if latest_run_user
164
166
  else None,
165
- tags=[t.tag.to_model() for t in self.tags],
167
+ tags=[tag.to_model() for tag in self.tags],
166
168
  )
167
169
 
168
170
  return PipelineResponse(
@@ -13,13 +13,12 @@
13
13
  # permissions and limitations under the License.
14
14
  """SQLModel implementation of pipeline run metadata tables."""
15
15
 
16
- from typing import TYPE_CHECKING, List, Optional
16
+ from typing import Optional
17
17
  from uuid import UUID, uuid4
18
18
 
19
19
  from sqlalchemy import TEXT, VARCHAR, Column
20
20
  from sqlmodel import Field, Relationship, SQLModel
21
21
 
22
- from zenml.enums import MetadataResourceTypes
23
22
  from zenml.zen_stores.schemas.base_schemas import BaseSchema
24
23
  from zenml.zen_stores.schemas.component_schemas import StackComponentSchema
25
24
  from zenml.zen_stores.schemas.schema_utils import build_foreign_key_field
@@ -27,22 +26,12 @@ from zenml.zen_stores.schemas.step_run_schemas import StepRunSchema
27
26
  from zenml.zen_stores.schemas.user_schemas import UserSchema
28
27
  from zenml.zen_stores.schemas.workspace_schemas import WorkspaceSchema
29
28
 
30
- if TYPE_CHECKING:
31
- from zenml.zen_stores.schemas.artifact_schemas import ArtifactVersionSchema
32
- from zenml.zen_stores.schemas.model_schemas import ModelVersionSchema
33
- from zenml.zen_stores.schemas.pipeline_run_schemas import PipelineRunSchema
34
-
35
29
 
36
30
  class RunMetadataSchema(BaseSchema, table=True):
37
31
  """SQL Model for run metadata."""
38
32
 
39
33
  __tablename__ = "run_metadata"
40
34
 
41
- # Relationship to link to resources
42
- resources: List["RunMetadataResourceSchema"] = Relationship(
43
- back_populates="run_metadata",
44
- sa_relationship_kwargs={"cascade": "delete"},
45
- )
46
35
  stack_component_id: Optional[UUID] = build_foreign_key_field(
47
36
  source=__tablename__,
48
37
  target=StackComponentSchema.__tablename__,
@@ -105,36 +94,3 @@ class RunMetadataResourceSchema(SQLModel, table=True):
105
94
  ondelete="CASCADE",
106
95
  nullable=False,
107
96
  )
108
-
109
- # Relationship back to the base metadata table
110
- run_metadata: RunMetadataSchema = Relationship(back_populates="resources")
111
-
112
- # Relationship to link specific resource types
113
- pipeline_runs: List["PipelineRunSchema"] = Relationship(
114
- back_populates="run_metadata_resources",
115
- sa_relationship_kwargs=dict(
116
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.PIPELINE_RUN.value}', foreign(RunMetadataResourceSchema.resource_id)==PipelineRunSchema.id)",
117
- overlaps="run_metadata_resources,step_runs,artifact_versions,model_versions",
118
- ),
119
- )
120
- step_runs: List["StepRunSchema"] = Relationship(
121
- back_populates="run_metadata_resources",
122
- sa_relationship_kwargs=dict(
123
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.STEP_RUN.value}', foreign(RunMetadataResourceSchema.resource_id)==StepRunSchema.id)",
124
- overlaps="run_metadata_resources,pipeline_runs,artifact_versions,model_versions",
125
- ),
126
- )
127
- artifact_versions: List["ArtifactVersionSchema"] = Relationship(
128
- back_populates="run_metadata_resources",
129
- sa_relationship_kwargs=dict(
130
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.ARTIFACT_VERSION.value}', foreign(RunMetadataResourceSchema.resource_id)==ArtifactVersionSchema.id)",
131
- overlaps="run_metadata_resources,pipeline_runs,step_runs,model_versions",
132
- ),
133
- )
134
- model_versions: List["ModelVersionSchema"] = Relationship(
135
- back_populates="run_metadata_resources",
136
- sa_relationship_kwargs=dict(
137
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.MODEL_VERSION.value}', foreign(RunMetadataResourceSchema.resource_id)==ModelVersionSchema.id)",
138
- overlaps="run_metadata_resources,pipeline_runs,step_runs,artifact_versions",
139
- ),
140
- )
@@ -41,7 +41,7 @@ if TYPE_CHECKING:
41
41
  PipelineDeploymentSchema,
42
42
  )
43
43
  from zenml.zen_stores.schemas.pipeline_run_schemas import PipelineRunSchema
44
- from zenml.zen_stores.schemas.tag_schemas import TagResourceSchema
44
+ from zenml.zen_stores.schemas.tag_schemas import TagSchema
45
45
 
46
46
 
47
47
  class RunTemplateSchema(BaseSchema, table=True):
@@ -110,10 +110,12 @@ class RunTemplateSchema(BaseSchema, table=True):
110
110
  }
111
111
  )
112
112
 
113
- tags: List["TagResourceSchema"] = Relationship(
113
+ tags: List["TagSchema"] = Relationship(
114
114
  sa_relationship_kwargs=dict(
115
- primaryjoin=f"and_(TagResourceSchema.resource_type=='{TaggableResourceTypes.RUN_TEMPLATE.value}', foreign(TagResourceSchema.resource_id)==RunTemplateSchema.id)",
116
- cascade="delete",
115
+ primaryjoin=f"and_(foreign(TagResourceSchema.resource_type)=='{TaggableResourceTypes.RUN_TEMPLATE.value}', foreign(TagResourceSchema.resource_id)==RunTemplateSchema.id)",
116
+ secondary="tag_resource",
117
+ secondaryjoin="TagSchema.id == foreign(TagResourceSchema.tag_id)",
118
+ order_by="TagSchema.name",
117
119
  overlaps="tags",
118
120
  ),
119
121
  )
@@ -253,7 +255,7 @@ class RunTemplateSchema(BaseSchema, table=True):
253
255
  pipeline=pipeline,
254
256
  build=build,
255
257
  code_reference=code_reference,
256
- tags=[t.tag.to_model() for t in self.tags],
258
+ tags=[tag.to_model() for tag in self.tags],
257
259
  )
258
260
 
259
261
  return RunTemplateResponse(
@@ -58,9 +58,7 @@ if TYPE_CHECKING:
58
58
  from zenml.zen_stores.schemas.artifact_schemas import ArtifactVersionSchema
59
59
  from zenml.zen_stores.schemas.logs_schemas import LogsSchema
60
60
  from zenml.zen_stores.schemas.model_schemas import ModelVersionSchema
61
- from zenml.zen_stores.schemas.run_metadata_schemas import (
62
- RunMetadataResourceSchema,
63
- )
61
+ from zenml.zen_stores.schemas.run_metadata_schemas import RunMetadataSchema
64
62
 
65
63
 
66
64
  class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
@@ -150,12 +148,12 @@ class StepRunSchema(NamedSchema, RunMetadataInterface, table=True):
150
148
  deployment: Optional["PipelineDeploymentSchema"] = Relationship(
151
149
  back_populates="step_runs"
152
150
  )
153
- run_metadata_resources: List["RunMetadataResourceSchema"] = Relationship(
154
- back_populates="step_runs",
151
+ run_metadata: List["RunMetadataSchema"] = Relationship(
155
152
  sa_relationship_kwargs=dict(
156
- primaryjoin=f"and_(RunMetadataResourceSchema.resource_type=='{MetadataResourceTypes.STEP_RUN.value}', foreign(RunMetadataResourceSchema.resource_id)==StepRunSchema.id)",
157
- cascade="delete",
158
- overlaps="run_metadata_resources",
153
+ secondary="run_metadata_resource",
154
+ primaryjoin=f"and_(foreign(RunMetadataResourceSchema.resource_type)=='{MetadataResourceTypes.STEP_RUN.value}', foreign(RunMetadataResourceSchema.resource_id)==StepRunSchema.id)",
155
+ secondaryjoin="RunMetadataSchema.id==foreign(RunMetadataResourceSchema.run_metadata_id)",
156
+ overlaps="run_metadata",
159
157
  ),
160
158
  )
161
159
  input_artifacts: List["StepRunInputArtifactSchema"] = Relationship(