zenml-nightly 0.84.2.dev20250826__py3-none-any.whl → 0.84.3.dev20250828__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 (121) hide show
  1. zenml/VERSION +1 -1
  2. zenml/cli/login.py +30 -19
  3. zenml/cli/server.py +6 -10
  4. zenml/login/credentials.py +27 -0
  5. zenml/login/credentials_store.py +80 -80
  6. zenml/login/pro/client.py +74 -54
  7. zenml/login/pro/utils.py +1 -3
  8. zenml/utils/package_utils.py +1 -1
  9. zenml/zen_server/dashboard/assets/{404-CMbwR10f.js → 404-JcbBcNWG.js} +1 -1
  10. zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-BpLj419i.js → AlertDialogDropdownItem-DuTp8JFP.js} +1 -1
  11. zenml/zen_server/dashboard/assets/{ButtonGroup-DVhzbQxV.js → ButtonGroup-B9_gfcC-.js} +1 -1
  12. zenml/zen_server/dashboard/assets/{CodeSnippet-B7Wd4R8u.js → CodeSnippet-D7OZMz7I.js} +1 -1
  13. zenml/zen_server/dashboard/assets/{CollapsibleCard-DSZzbjx5.js → CollapsibleCard-Aqd_AiGn.js} +1 -1
  14. zenml/zen_server/dashboard/assets/{ComponentBadge-MVT08kBV.js → ComponentBadge-BVRb7wgm.js} +1 -1
  15. zenml/zen_server/dashboard/assets/{ComponentIcon-C9AY8usJ.js → ComponentIcon-CWDJZO4Q.js} +1 -1
  16. zenml/zen_server/dashboard/assets/{DeleteAlertDialog-CzhTVQaC.js → DeleteAlertDialog-C5z9RupH.js} +1 -1
  17. zenml/zen_server/dashboard/assets/{DialogItem-DD_7v3UY.js → DialogItem-Ce3ugDgT.js} +1 -1
  18. zenml/zen_server/dashboard/assets/{Error-Cakgjexo.js → Error-BGej6F2q.js} +1 -1
  19. zenml/zen_server/dashboard/assets/{ExecutionStatus-CQbWovhV.js → ExecutionStatus-BhDlfndt.js} +1 -1
  20. zenml/zen_server/dashboard/assets/{Helpbox-7FZpmsHB.js → Helpbox-CQjyNo0n.js} +1 -1
  21. zenml/zen_server/dashboard/assets/{Infobox-DnduZjNU.js → Infobox-CXOIY92f.js} +1 -1
  22. zenml/zen_server/dashboard/assets/{LeftSideMenu-D5UEs4vB.js → LeftSideMenu-DGICatl7.js} +1 -1
  23. zenml/zen_server/dashboard/assets/{NestedCollapsible-0yviIfaA.js → NestedCollapsible-DmryIMwk.js} +1 -1
  24. zenml/zen_server/dashboard/assets/{NumberBox-C2Pju4PR.js → NumberBox-7OIA56xe.js} +1 -1
  25. zenml/zen_server/dashboard/assets/{Pagination-C1sE5Nzn.js → Pagination-CVYIgR9l.js} +1 -1
  26. zenml/zen_server/dashboard/assets/{Partials-DosysQMU.js → Partials-NicibWrh.js} +1 -1
  27. zenml/zen_server/dashboard/assets/{ProCta-CUkpV3PJ.js → ProCta-DspRnbtD.js} +1 -1
  28. zenml/zen_server/dashboard/assets/{ProviderIcon-aQjTuTRX.js → ProviderIcon-DwKsXziU.js} +1 -1
  29. zenml/zen_server/dashboard/assets/{ProviderRadio-C6pLVNxC.js → ProviderRadio-BixXi4GC.js} +1 -1
  30. zenml/zen_server/dashboard/assets/{RunsBody-CZAiSxYK.js → RunsBody-BSOSIxRG.js} +1 -1
  31. zenml/zen_server/dashboard/assets/{SearchField-Byv1PtST.js → SearchField-BbwrusMV.js} +1 -1
  32. zenml/zen_server/dashboard/assets/{SecretTooltip-CErfhVgF.js → SecretTooltip-BsFul9Oe.js} +1 -1
  33. zenml/zen_server/dashboard/assets/{SetPassword-C4OH-cn1.js → SetPassword-D-V7D0OR.js} +1 -1
  34. zenml/zen_server/dashboard/assets/{SheetHeader-Bb3v9rha.js → SheetHeader-xumE4haD.js} +1 -1
  35. zenml/zen_server/dashboard/assets/{StackComponentList-D85oab98.js → StackComponentList-CLnkE6-6.js} +1 -1
  36. zenml/zen_server/dashboard/assets/{StackList-DSAjbVb5.js → StackList-DhsbaNva.js} +1 -1
  37. zenml/zen_server/dashboard/assets/{Tabs-2uwqXsdL.js → Tabs-CkY3GwhK.js} +1 -1
  38. zenml/zen_server/dashboard/assets/{Tick-BQ7_xDBl.js → Tick-Bo7jwBjb.js} +1 -1
  39. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DNkYgzN6.js → UpdatePasswordSchemas-BP4hg95A.js} +1 -1
  40. zenml/zen_server/dashboard/assets/{Wizard-2FIi8JNY.js → Wizard-0nbnAM1R.js} +1 -1
  41. zenml/zen_server/dashboard/assets/{WizardFooter-DQEnlDmZ.js → WizardFooter-CLPi4VBo.js} +1 -1
  42. zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-CdvWtiAY.js → all-pipeline-runs-query-mPYeJsKz.js} +1 -1
  43. zenml/zen_server/dashboard/assets/{bulk-delete-wdObjfps.js → bulk-delete-Bgf_MsSj.js} +1 -1
  44. zenml/zen_server/dashboard/assets/{configuration-form-BbcNBQTO.js → configuration-form-Bnyw4-V5.js} +1 -1
  45. zenml/zen_server/dashboard/assets/{constants-DfvsDtcH.js → constants-Ddhz1mpL.js} +1 -1
  46. zenml/zen_server/dashboard/assets/{create-stack-D4Sf7QpF.js → create-stack-BpTy7-E4.js} +1 -1
  47. zenml/zen_server/dashboard/assets/{delete-run-XSre8ru-.js → delete-run-MHYb1wuH.js} +1 -1
  48. zenml/zen_server/dashboard/assets/form-VRON3-kT.js +1 -0
  49. zenml/zen_server/dashboard/assets/{form-schemas-BjWDRvGd.js → form-schemas-CpTCEVoG.js} +1 -1
  50. zenml/zen_server/dashboard/assets/{index-BYHxFvoG.js → index-BYCBKUXk.js} +1 -1
  51. zenml/zen_server/dashboard/assets/{index-CO6UN3UX.js → index-Ci5z7q6x.js} +2 -2
  52. zenml/zen_server/dashboard/assets/{index-d_QrPL-8.js → index-D_-iUPTg.js} +1 -1
  53. zenml/zen_server/dashboard/assets/{index-BYzR7YrM.js → index-rnWXXblA.js} +1 -1
  54. zenml/zen_server/dashboard/assets/{layout-Cyc-V16c.js → layout-DhFllShI.js} +1 -1
  55. zenml/zen_server/dashboard/assets/{login-mutation-CDgTlQBD.js → login-mutation-DOxF97JV.js} +1 -1
  56. zenml/zen_server/dashboard/assets/{page-Bncp08FW.js → page-62MHYKGv.js} +1 -1
  57. zenml/zen_server/dashboard/assets/{page-CMvcoaSZ.js → page-6YPAQ0BU.js} +1 -1
  58. zenml/zen_server/dashboard/assets/{page-CEHZzQ1Q.js → page-8ZbMMHB-.js} +1 -1
  59. zenml/zen_server/dashboard/assets/{page-D654xHWd.js → page-AWVW_lra.js} +1 -1
  60. zenml/zen_server/dashboard/assets/{page-BnZEAhNn.js → page-B1rTgWkQ.js} +1 -1
  61. zenml/zen_server/dashboard/assets/{page-BbsvGfyi.js → page-B5YCjh4t.js} +1 -1
  62. zenml/zen_server/dashboard/assets/{page-DgOEl3Bc.js → page-BDawWKR9.js} +1 -1
  63. zenml/zen_server/dashboard/assets/{page-DOnAInjC.js → page-BFzVhfws.js} +1 -1
  64. zenml/zen_server/dashboard/assets/page-BaQw51KO.js +1 -0
  65. zenml/zen_server/dashboard/assets/{page-C4Jnp1qP.js → page-Bh4TFAum.js} +1 -1
  66. zenml/zen_server/dashboard/assets/{page-CGtll3Jk.js → page-BjuIRasU.js} +1 -1
  67. zenml/zen_server/dashboard/assets/{page-43SWdz4k.js → page-BoQ_Wheb.js} +1 -1
  68. zenml/zen_server/dashboard/assets/{page-Du6bFZTS.js → page-Bs6NTqHo.js} +1 -1
  69. zenml/zen_server/dashboard/assets/{page-B4QBxV0B.js → page-Bsiqb0ZN.js} +1 -1
  70. zenml/zen_server/dashboard/assets/{page-AOVMuHDc.js → page-C09_xoEs.js} +1 -1
  71. zenml/zen_server/dashboard/assets/{page-O5xnz_nW.js → page-CI0U7nE4.js} +1 -1
  72. zenml/zen_server/dashboard/assets/{page-C9IsnFid.js → page-CId8DuKX.js} +1 -1
  73. zenml/zen_server/dashboard/assets/{page-CzDjN1wE.js → page-CJSSCJ58.js} +1 -1
  74. zenml/zen_server/dashboard/assets/{page-B8ict_cR.js → page-CJXxkmGx.js} +1 -1
  75. zenml/zen_server/dashboard/assets/{page-DgblJuXC.js → page-CS3tgRFg.js} +1 -1
  76. zenml/zen_server/dashboard/assets/page-Cd8VCEYG.js +1 -0
  77. zenml/zen_server/dashboard/assets/{page-DsFXol8x.js → page-CicaAxfg.js} +1 -1
  78. zenml/zen_server/dashboard/assets/page-CkFIY_Cg.js +1 -0
  79. zenml/zen_server/dashboard/assets/{page-BnAMyQZb.js → page-CkX3R4er.js} +1 -1
  80. zenml/zen_server/dashboard/assets/{page-DerIbaqa.js → page-Cu-ZYOrj.js} +1 -1
  81. zenml/zen_server/dashboard/assets/page-CyID6Sp5.js +1 -0
  82. zenml/zen_server/dashboard/assets/{page-DZ5hcS1o.js → page-D0Z9wEBf.js} +1 -1
  83. zenml/zen_server/dashboard/assets/{page-hX7NkNdA.js → page-D83H0IPX.js} +1 -1
  84. zenml/zen_server/dashboard/assets/{page-DgSu4pTE.js → page-DAF5ySum.js} +1 -1
  85. zenml/zen_server/dashboard/assets/{page-ClqRvz_V.js → page-DMiWibIV.js} +1 -1
  86. zenml/zen_server/dashboard/assets/{page-Bi4I23Hs.js → page-DMtUDzEY.js} +1 -1
  87. zenml/zen_server/dashboard/assets/{page-BDre_qCO.js → page-DNLxVFH7.js} +1 -1
  88. zenml/zen_server/dashboard/assets/{page-DLrYW-Dn.js → page-Dfaj9bx6.js} +1 -1
  89. zenml/zen_server/dashboard/assets/{page-DznxxpKA.js → page-DhlhT_XT.js} +1 -1
  90. zenml/zen_server/dashboard/assets/{page-CKPkbOoE.js → page-DqXw1YhM.js} +1 -1
  91. zenml/zen_server/dashboard/assets/{page-E9Mx9_rn.js → page-DtjangP-.js} +1 -1
  92. zenml/zen_server/dashboard/assets/{page-DQncGJeH.js → page-GJ63jkFi.js} +1 -1
  93. zenml/zen_server/dashboard/assets/{page-DSn1Jcvs.js → page-RtFcujP8.js} +1 -1
  94. zenml/zen_server/dashboard/assets/{page-HrebZOAM.js → page-T1JEtrlC.js} +1 -1
  95. zenml/zen_server/dashboard/assets/{page-DQzNmXk3.js → page-cS5O9iLC.js} +1 -1
  96. zenml/zen_server/dashboard/assets/{page-Dpw-xP4q.js → page-s1bm6Xid.js} +1 -1
  97. zenml/zen_server/dashboard/assets/{persist-Dkbp9MFP.js → persist-C98EYq5I.js} +1 -1
  98. zenml/zen_server/dashboard/assets/{persist-B3Hb8HDW.js → persist-FuiGbvJD.js} +1 -1
  99. zenml/zen_server/dashboard/assets/{primary-role-CjkpP9fL.js → primary-role-Bsu7s76U.js} +1 -1
  100. zenml/zen_server/dashboard/assets/{resource-tyes-list-CugyWUAE.js → resource-tyes-list-C7I0VL8e.js} +1 -1
  101. zenml/zen_server/dashboard/assets/{resource-type-tooltip-V-zdiLKz.js → resource-type-tooltip-2vjL6Wh9.js} +1 -1
  102. zenml/zen_server/dashboard/assets/{service-FjqYTmBw.js → service-BPdLzxxT.js} +1 -1
  103. zenml/zen_server/dashboard/assets/{service-connectors-nF4-OXB9.js → service-connectors-BkE8Ol4i.js} +1 -1
  104. zenml/zen_server/dashboard/assets/{sharedSchema-Br1JPr8d.js → sharedSchema-CKFbjwmg.js} +1 -1
  105. zenml/zen_server/dashboard/assets/{stack-detail-query-DnyMCdVE.js → stack-detail-query-JsrqFo3U.js} +1 -1
  106. zenml/zen_server/dashboard/assets/{update-current-user-mutation-B3Dpv3u6.js → update-current-user-mutation-C4CPf7vG.js} +1 -1
  107. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-s7tlHN8s.js → update-server-settings-mutation-BYfIU-xU.js} +1 -1
  108. zenml/zen_server/dashboard/index.html +2 -2
  109. zenml/zen_server/routers/service_accounts_endpoints.py +24 -0
  110. zenml/zen_stores/migrations/versions/0.84.3_release.py +23 -0
  111. zenml/zen_stores/rest_zen_store.py +16 -5
  112. {zenml_nightly-0.84.2.dev20250826.dist-info → zenml_nightly-0.84.3.dev20250828.dist-info}/METADATA +2 -2
  113. {zenml_nightly-0.84.2.dev20250826.dist-info → zenml_nightly-0.84.3.dev20250828.dist-info}/RECORD +116 -115
  114. zenml/zen_server/dashboard/assets/form-C1jJgRy1.js +0 -1
  115. zenml/zen_server/dashboard/assets/page-1DXG7hp8.js +0 -1
  116. zenml/zen_server/dashboard/assets/page-C7Z2sDHE.js +0 -1
  117. zenml/zen_server/dashboard/assets/page-C8t9qLdV.js +0 -1
  118. zenml/zen_server/dashboard/assets/page-CVwTAlzd.js +0 -1
  119. {zenml_nightly-0.84.2.dev20250826.dist-info → zenml_nightly-0.84.3.dev20250828.dist-info}/LICENSE +0 -0
  120. {zenml_nightly-0.84.2.dev20250826.dist-info → zenml_nightly-0.84.3.dev20250828.dist-info}/WHEEL +0 -0
  121. {zenml_nightly-0.84.2.dev20250826.dist-info → zenml_nightly-0.84.3.dev20250828.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
1
- import{r as c,j as n}from"./@radix-B1sy0Lhr.js";import{w as l,R as f,U as d,V as h,T as m,W as x,a6 as u}from"./index-CO6UN3UX.js";function p(t){const s=new Date(`${t}Z`),e=new Date;if(s<e)return"Expired";const a=s.getTime()-e.getTime(),r=Math.floor(a/(1e3*60*60*24)),i=Math.floor(a%(1e3*60*60*24)/(1e3*60*60)),o=Math.floor(a%(1e3*60*60)/(1e3*60));return r>0?`in ${r} ${r===1?"day":"days"}`:i>0?`in ${i} ${i===1?"hour":"hours"}`:o>0?`in ${o} ${o===1?"minute":"minutes"}`:"in less than a minute"}function T({expires:t}){const[s,e]=c.useState("");return c.useEffect(()=>{e(p(t))},[t]),s==="Expired"?n.jsxs("div",{className:"flex items-center space-x-0.5 text-theme-text-warning",children:[n.jsx(l,{className:"size-3 shrink-0 fill-theme-text-warning"}),n.jsx("span",{children:"Expired"})]}):n.jsx("div",{children:s})}function j({connector:t}){var e;const s=((e=t.body)==null?void 0:e.resource_id)||"Multiple";return n.jsx(f,{children:n.jsxs(d,{children:[n.jsx(h,{className:"max-w-full truncate",children:n.jsx(m,{size:"sm",rounded:!1,emphasis:"minimal",className:"block w-fit max-w-full gap-0.5 truncate text-theme-text-primary",color:"grey",children:s})}),n.jsx(x,{children:s})]})})}function M(t){var r,i;const s=((r=t.body)==null?void 0:r.resource_types)??[],e=(i=t.body)==null?void 0:i.connector_type;return u(e)?[]:((e==null?void 0:e.resource_types)??[]).filter(o=>s.includes(o.resource_type))}function w(t){var r,i;const s=((r=t.body)==null?void 0:r.auth_method)||"",e=(i=t.body)==null?void 0:i.connector_type;return u(e)?void 0:((e==null?void 0:e.auth_methods)??[]).find(o=>o.auth_method===s)}export{T as E,j as R,w as a,M as e};
1
+ import{r as c,j as n}from"./@radix-B1sy0Lhr.js";import{w as l,R as f,U as d,V as h,T as m,W as x,a6 as u}from"./index-Ci5z7q6x.js";function p(t){const s=new Date(`${t}Z`),e=new Date;if(s<e)return"Expired";const a=s.getTime()-e.getTime(),r=Math.floor(a/(1e3*60*60*24)),i=Math.floor(a%(1e3*60*60*24)/(1e3*60*60)),o=Math.floor(a%(1e3*60*60)/(1e3*60));return r>0?`in ${r} ${r===1?"day":"days"}`:i>0?`in ${i} ${i===1?"hour":"hours"}`:o>0?`in ${o} ${o===1?"minute":"minutes"}`:"in less than a minute"}function T({expires:t}){const[s,e]=c.useState("");return c.useEffect(()=>{e(p(t))},[t]),s==="Expired"?n.jsxs("div",{className:"flex items-center space-x-0.5 text-theme-text-warning",children:[n.jsx(l,{className:"size-3 shrink-0 fill-theme-text-warning"}),n.jsx("span",{children:"Expired"})]}):n.jsx("div",{children:s})}function j({connector:t}){var e;const s=((e=t.body)==null?void 0:e.resource_id)||"Multiple";return n.jsx(f,{children:n.jsxs(d,{children:[n.jsx(h,{className:"max-w-full truncate",children:n.jsx(m,{size:"sm",rounded:!1,emphasis:"minimal",className:"block w-fit max-w-full gap-0.5 truncate text-theme-text-primary",color:"grey",children:s})}),n.jsx(x,{children:s})]})})}function M(t){var r,i;const s=((r=t.body)==null?void 0:r.resource_types)??[],e=(i=t.body)==null?void 0:i.connector_type;return u(e)?[]:((e==null?void 0:e.resource_types)??[]).filter(o=>s.includes(o.resource_type))}function w(t){var r,i;const s=((r=t.body)==null?void 0:r.auth_method)||"",e=(i=t.body)==null?void 0:i.connector_type;return u(e)?void 0:((e==null?void 0:e.auth_methods)??[]).find(o=>o.auth_method===s)}export{T as E,j as R,w as a,M as e};
@@ -1 +1 @@
1
- import{f as t}from"./index-BYHxFvoG.js";import{A as e}from"./index.es-CZMSrR6z.js";import{z as s}from"./index-CO6UN3UX.js";const m=e(async a=>(await t({name:a})).total===0,500),o=s.string().trim().min(1,"Stack name is required").max(255,"Stack name must be less than 255 characters").refine(a=>m(a),"Stack name is already in use");export{o as s};
1
+ import{f as t}from"./index-BYCBKUXk.js";import{A as e}from"./index.es-CZMSrR6z.js";import{z as s}from"./index-Ci5z7q6x.js";const m=e(async a=>(await t({name:a})).total===0,500),o=s.string().trim().min(1,"Stack name is required").max(255,"Stack name must be less than 255 characters").refine(a=>m(a),"Stack name is already in use");export{o as s};
@@ -1 +1 @@
1
- import{x as a,F as r,_ as n,G as o,H as u}from"./index-CO6UN3UX.js";import{b as i}from"./@tanstack-Dwlisomv.js";function c({stackId:t}){return["stacks",t]}async function f({stackId:t}){const s=r(u.stacks.detail(t)),e=await a(s,{method:"GET",headers:{"Content-Type":"application/json"}});if(e.status===404&&n(),!e.ok)throw new o({message:`Error while fetching stack ${t}`,status:e.status,statusText:e.statusText});return e.json()}function y(t,s){return i({queryKey:c(t),queryFn:()=>f(t),...s})}export{f,y as u};
1
+ import{x as a,F as r,_ as n,G as o,H as u}from"./index-Ci5z7q6x.js";import{b as i}from"./@tanstack-Dwlisomv.js";function c({stackId:t}){return["stacks",t]}async function f({stackId:t}){const s=r(u.stacks.detail(t)),e=await a(s,{method:"GET",headers:{"Content-Type":"application/json"}});if(e.status===404&&n(),!e.ok)throw new o({message:`Error while fetching stack ${t}`,status:e.status,statusText:e.statusText});return e.json()}function y(t,s){return i({queryKey:c(t),queryFn:()=>f(t),...s})}export{f,y as u};
@@ -1 +1 @@
1
- import{x as n,F as o,G as i,H as u}from"./index-CO6UN3UX.js";import{c}from"./@tanstack-Dwlisomv.js";async function p(r){const e=o(u.currentUser),t=await n(e,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok){const s=await t.json().then(a=>Array.isArray(a.detail)?a.detail[1]:a.detail).catch(()=>"Failed to update User");throw new i({status:t.status,statusText:t.statusText,message:s})}return t.json()}function f(r){return c({mutationFn:async e=>p(e),...r})}export{f as u};
1
+ import{x as n,F as o,G as i,H as u}from"./index-Ci5z7q6x.js";import{c}from"./@tanstack-Dwlisomv.js";async function p(r){const e=o(u.currentUser),t=await n(e,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!t.ok){const s=await t.json().then(a=>Array.isArray(a.detail)?a.detail[1]:a.detail).catch(()=>"Failed to update User");throw new i({status:t.status,statusText:t.statusText,message:s})}return t.json()}function f(r){return c({mutationFn:async e=>p(e),...r})}export{f as u};
@@ -1 +1 @@
1
- import{x as n,F as i,G as o,H as u}from"./index-CO6UN3UX.js";import{c}from"./@tanstack-Dwlisomv.js";async function p(e){const r=i(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 o({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{x as n,F as i,G as o,H as u}from"./index-Ci5z7q6x.js";import{c}from"./@tanstack-Dwlisomv.js";async function p(e){const r=i(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 o({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};
@@ -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-CO6UN3UX.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-Ci5z7q6x.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/@radix-B1sy0Lhr.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/@tanstack-Dwlisomv.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/@react-router-CHjLNlgw.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/@reactflow-gbyyU3kq.js">
13
13
  <link rel="stylesheet" crossorigin href="/assets/@reactflow-Fd0xVSp_.css">
14
14
  <link rel="stylesheet" crossorigin href="/assets/index-n_sn2ITN.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-greek-400-normal-DxZsaF_h.woff2"><link rel="prefetch" href="/assets/inter-vietnamese-400-normal-DMkecbls.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-400-normal-hnt3BR84.woff2"><link rel="prefetch" href="/assets/inter-latin-400-normal-BOOGhInR.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-600-normal-Dhlb-90d.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-latin-600-normal-D273HNI0.woff2"><link rel="prefetch" href="/assets/inter-latin-ext-600-normal-BnYJhD27.woff2"><link rel="prefetch" href="/assets/gradient_bg-BH8t8fi6.webp"><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-greek-400-normal-BZzXV7-1.woff"><link rel="prefetch" href="/assets/inter-vietnamese-400-normal-BUNmGMP1.woff"><link rel="prefetch" href="/assets/inter-latin-ext-400-normal-C1t-h-pH.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-cyrillic-500-normal-DH2hs3aW.woff"><link rel="prefetch" href="/assets/inter-greek-ext-500-normal-M2hEX8vc.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-500-normal-deR1Tlfd.woff"><link rel="prefetch" href="/assets/inter-latin-ext-500-normal-UMdmhHu2.woff"><link rel="prefetch" href="/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff"><link rel="prefetch" href="/assets/inter-cyrillic-600-normal-BuzJQFbW.woff"><link rel="prefetch" href="/assets/inter-greek-ext-600-normal-C9WLioJ8.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-600-normal-B5cFAncS.woff"><link rel="prefetch" href="/assets/inter-latin-ext-600-normal-CAF0vJDd.woff"><link rel="prefetch" href="/assets/mcp-Cb1aMeoq.webp"><link rel="prefetch" href="/assets/acp-DOsXjFc7.webp"><link rel="prefetch" href="/assets/upgrade-form-CwRHBuXB.webp"><link rel="prefetch" href="/assets/repos-video-D8kpu60k.svg"><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/elk-worker.min-BdOC9sib.js"><link rel="prefetch" href="/assets/connectivity-4UKGMYnr.webp"><link rel="prefetch" href="/assets/CodeSnippet-CK5CxKct.css"><link rel="prefetch" href="/assets/page-DerIbaqa.js"><link rel="prefetch" href="/assets/page-Dpw-xP4q.js"><link rel="prefetch" href="/assets/page-DznxxpKA.js"><link rel="prefetch" href="/assets/page-DgblJuXC.js"><link rel="prefetch" href="/assets/page-CMvcoaSZ.js"><link rel="prefetch" href="/assets/SetPassword-C4OH-cn1.js"><link rel="prefetch" href="/assets/login-mutation-CDgTlQBD.js"><link rel="prefetch" href="/assets/page-C4Jnp1qP.js"><link rel="prefetch" href="/assets/index-BYzR7YrM.js"><link rel="prefetch" href="/assets/page-BDre_qCO.js"><link rel="prefetch" href="/assets/page-BbsvGfyi.js"><link rel="prefetch" href="/assets/index-B4ZeIaPd.js"><link rel="prefetch" href="/assets/page-DsFXol8x.js"><link rel="prefetch" href="/assets/page-DZ5hcS1o.js"><link rel="prefetch" href="/assets/PasswordChecker-DOPLfvg7.js"><link rel="prefetch" href="/assets/layout-Cyc-V16c.js"><link rel="prefetch" href="/assets/page-DSn1Jcvs.js"><link rel="prefetch" href="/assets/page-CEHZzQ1Q.js"><link rel="prefetch" href="/assets/page-DOnAInjC.js"><link rel="prefetch" href="/assets/page-1DXG7hp8.js"><link rel="prefetch" href="/assets/page-D654xHWd.js"><link rel="prefetch" href="/assets/icon--Tp6obFZ.js"><link rel="prefetch" href="/assets/page-HrebZOAM.js"><link rel="prefetch" href="/assets/resource-type-tooltip-V-zdiLKz.js"><link rel="prefetch" href="/assets/resource-tyes-list-CugyWUAE.js"><link rel="prefetch" href="/assets/service-connectors-nF4-OXB9.js"><link rel="prefetch" href="/assets/page-DQncGJeH.js"><link rel="prefetch" href="/assets/page-C9IsnFid.js"><link rel="prefetch" href="/assets/react-error-boundary.esm-DgOYA0wh.js"><link rel="prefetch" href="/assets/page-Bi4I23Hs.js"><link rel="prefetch" href="/assets/code-snippets-CqONne41.js"><link rel="prefetch" href="/assets/page-DgSu4pTE.js"><link rel="prefetch" href="/assets/SecretTooltip-CErfhVgF.js"><link rel="prefetch" href="/assets/page-BnZEAhNn.js"><link rel="prefetch" href="/assets/update-server-settings-mutation-s7tlHN8s.js"><link rel="prefetch" href="/assets/page-DQzNmXk3.js"><link rel="prefetch" href="/assets/page-Du6bFZTS.js"><link rel="prefetch" href="/assets/dates-Buh6SMo7.js"><link rel="prefetch" href="/assets/key-icon-BiV171aI.js"><link rel="prefetch" href="/assets/service-FjqYTmBw.js"><link rel="prefetch" href="/assets/page-E9Mx9_rn.js"><link rel="prefetch" href="/assets/pipeline-CDJSAXrb.js"><link rel="prefetch" href="/assets/page-C7Z2sDHE.js"><link rel="prefetch" href="/assets/page-CKPkbOoE.js"><link rel="prefetch" href="/assets/page-C8t9qLdV.js"><link rel="prefetch" href="/assets/StackComponentList-D85oab98.js"><link rel="prefetch" href="/assets/expand-full-C8p_0jQv.js"><link rel="prefetch" href="/assets/page-CVwTAlzd.js"><link rel="prefetch" href="/assets/RunsBody-CZAiSxYK.js"><link rel="prefetch" href="/assets/ButtonGroup-DVhzbQxV.js"><link rel="prefetch" href="/assets/delete-run-XSre8ru-.js"><link rel="prefetch" href="/assets/Tabs-2uwqXsdL.js"><link rel="prefetch" href="/assets/NestedCollapsible-0yviIfaA.js"><link rel="prefetch" href="/assets/all-pipeline-runs-query-CdvWtiAY.js"><link rel="prefetch" href="/assets/ExecutionStatus-CQbWovhV.js"><link rel="prefetch" href="/assets/bulk-delete-wdObjfps.js"><link rel="prefetch" href="/assets/DeleteAlertDialog-CzhTVQaC.js"><link rel="prefetch" href="/assets/page-CGtll3Jk.js"><link rel="prefetch" href="/assets/page-43SWdz4k.js"><link rel="prefetch" href="/assets/check-circle-CG6XAdk-.js"><link rel="prefetch" href="/assets/file-text-TdPXNd7s.js"><link rel="prefetch" href="/assets/mail-DBJRSzyu.js"><link rel="prefetch" href="/assets/chevron-down-Bl7WwQAL.js"><link rel="prefetch" href="/assets/Tick-BQ7_xDBl.js"><link rel="prefetch" href="/assets/check-C9Nye5lR.js"><link rel="prefetch" href="/assets/CodeSnippet-B7Wd4R8u.js"><link rel="prefetch" href="/assets/Helpbox-7FZpmsHB.js"><link rel="prefetch" href="/assets/SheetHeader-Bb3v9rha.js"><link rel="prefetch" href="/assets/help-CRPfbPTO.js"><link rel="prefetch" href="/assets/chevron-right-double-CbMG1dOM.js"><link rel="prefetch" href="/assets/zod-D48zuELD.js"><link rel="prefetch" href="/assets/index.esm-SBF9nn_P.js"><link rel="prefetch" href="/assets/ProCta-CUkpV3PJ.js"><link rel="prefetch" href="/assets/form-schemas-BjWDRvGd.js"><link rel="prefetch" href="/assets/EmptyState-BMA34iVR.js"><link rel="prefetch" href="/assets/primary-role-CjkpP9fL.js"><link rel="prefetch" href="/assets/bar-chart-square-check-_m-oYysN.js"><link rel="prefetch" href="/assets/dataflow-2-BLkaTH0Q.js"><link rel="prefetch" href="/assets/credit-card-DfBA6dBb.js"><link rel="prefetch" href="/assets/eye-BXcQevds.js"><link rel="prefetch" href="/assets/layout-GIiNvS10.js"><link rel="prefetch" href="/assets/message-chat-square-C3CRCQvD.js"><link rel="prefetch" href="/assets/slash-circle-B0xMh8q6.js"><link rel="prefetch" href="/assets/transform-S7omcvTm.js"><link rel="prefetch" href="/assets/UpdatePasswordSchemas-DNkYgzN6.js"><link rel="prefetch" href="/assets/refresh-C8BXS3Fb.js"><link rel="prefetch" href="/assets/Pagination-C1sE5Nzn.js"><link rel="prefetch" href="/assets/SearchField-Byv1PtST.js"><link rel="prefetch" href="/assets/index-g7wOyc86.js"><link rel="prefetch" href="/assets/terminal-C2tAF2XG.js"><link rel="prefetch" href="/assets/trash-D9LA4VFD.js"><link rel="prefetch" href="/assets/AlertDialogDropdownItem-BpLj419i.js"><link rel="prefetch" href="/assets/DisplayDate-57lUNS79.js"><link rel="prefetch" href="/assets/info-CI2szPUG.js"><link rel="prefetch" href="/assets/logs-lNLbZqHL.js"><link rel="prefetch" href="/assets/plus-DOrkJCmy.js"><link rel="prefetch" href="/assets/stack-detail-query-DnyMCdVE.js"><link rel="prefetch" href="/assets/Error-Cakgjexo.js"><link rel="prefetch" href="/assets/ComponentIcon-C9AY8usJ.js"><link rel="prefetch" href="/assets/arrow-left-BFB2mgJo.js"><link rel="prefetch" href="/assets/code-browser-CzWvJ4S6.js"><link rel="prefetch" href="/assets/CollapsibleCard-DSZzbjx5.js"><link rel="prefetch" href="/assets/Infobox-DnduZjNU.js"><link rel="prefetch" href="/assets/ComponentBadge-MVT08kBV.js"><link rel="prefetch" href="/assets/terminal-square-C2tAF2XG.js"><link rel="prefetch" href="/assets/update-current-user-mutation-B3Dpv3u6.js"><link rel="prefetch" href="/assets/index-BYHxFvoG.js"><link rel="prefetch" href="/assets/LeftSideMenu-D5UEs4vB.js"><link rel="prefetch" href="/assets/Wizard-2FIi8JNY.js"><link rel="prefetch" href="/assets/form-C1jJgRy1.js"><link rel="prefetch" href="/assets/Lock-u8WOoTTd.js"><link rel="prefetch" href="/assets/package-pR4bbXJp.js"><link rel="prefetch" href="/assets/index.es-CZMSrR6z.js"><link rel="prefetch" href="/assets/clock-BnPvxp3D.js"><link rel="prefetch" href="/assets/DialogItem-DD_7v3UY.js"><link rel="prefetch" href="/assets/StackList-DSAjbVb5.js"><link rel="prefetch" href="/assets/components-Br2ezRib.js"><link rel="prefetch" href="/assets/NumberBox-C2Pju4PR.js"><link rel="prefetch" href="/assets/configuration-form-BbcNBQTO.js"><link rel="prefetch" href="/assets/constants-DfvsDtcH.js"><link rel="prefetch" href="/assets/index-d_QrPL-8.js"><link rel="prefetch" href="/assets/page-AOVMuHDc.js"><link rel="prefetch" href="/assets/persist-Dkbp9MFP.js"><link rel="prefetch" href="/assets/persist-B3Hb8HDW.js"><link rel="prefetch" href="/assets/sharedSchema-Br1JPr8d.js"><link rel="prefetch" href="/assets/page-B8ict_cR.js"><link rel="prefetch" href="/assets/ProviderIcon-aQjTuTRX.js"><link rel="prefetch" href="/assets/page-DLrYW-Dn.js"><link rel="prefetch" href="/assets/Partials-DosysQMU.js"><link rel="prefetch" href="/assets/ProviderRadio-C6pLVNxC.js"><link rel="prefetch" href="/assets/page-BnAMyQZb.js"><link rel="prefetch" href="/assets/create-stack-D4Sf7QpF.js"><link rel="prefetch" href="/assets/page-Bncp08FW.js"><link rel="prefetch" href="/assets/WizardFooter-DQEnlDmZ.js"><link rel="prefetch" href="/assets/page-ClqRvz_V.js"><link rel="prefetch" href="/assets/page-CzDjN1wE.js"><link rel="prefetch" href="/assets/page-O5xnz_nW.js"><link rel="prefetch" href="/assets/page-hX7NkNdA.js"><link rel="prefetch" href="/assets/page-DgOEl3Bc.js"><link rel="prefetch" href="/assets/page-B4QBxV0B.js"><link rel="prefetch" href="/assets/404-CMbwR10f.js"></head>
15
+ <link rel="prefetch" href="/assets/gradient_bg-BH8t8fi6.webp"><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-cyrillic-ext-400-normal-Dc4VJyIJ.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-ext-400-normal-hnt3BR84.woff2"><link rel="prefetch" href="/assets/inter-latin-400-normal-BOOGhInR.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-600-normal-Dhlb-90d.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-latin-ext-600-normal-BnYJhD27.woff2"><link rel="prefetch" href="/assets/inter-latin-600-normal-D273HNI0.woff2"><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-cyrillic-ext-400-normal-BPnxn4xp.woff"><link rel="prefetch" href="/assets/inter-greek-400-normal-BZzXV7-1.woff"><link rel="prefetch" href="/assets/inter-vietnamese-400-normal-BUNmGMP1.woff"><link rel="prefetch" href="/assets/inter-latin-ext-400-normal-C1t-h-pH.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-cyrillic-500-normal-DH2hs3aW.woff"><link rel="prefetch" href="/assets/inter-greek-ext-500-normal-M2hEX8vc.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-cyrillic-600-normal-BuzJQFbW.woff"><link rel="prefetch" href="/assets/inter-greek-600-normal-CwicyhtI.woff"><link rel="prefetch" href="/assets/inter-greek-ext-600-normal-C9WLioJ8.woff"><link rel="prefetch" href="/assets/inter-vietnamese-600-normal-Cm6aH8_k.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/acp-DOsXjFc7.webp"><link rel="prefetch" href="/assets/mcp-Cb1aMeoq.webp"><link rel="prefetch" href="/assets/upgrade-form-CwRHBuXB.webp"><link rel="prefetch" href="/assets/repos-video-D8kpu60k.svg"><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/elk-worker.min-BdOC9sib.js"><link rel="prefetch" href="/assets/connectivity-4UKGMYnr.webp"><link rel="prefetch" href="/assets/CodeSnippet-CK5CxKct.css"><link rel="prefetch" href="/assets/page-Cu-ZYOrj.js"><link rel="prefetch" href="/assets/page-s1bm6Xid.js"><link rel="prefetch" href="/assets/page-DhlhT_XT.js"><link rel="prefetch" href="/assets/page-CS3tgRFg.js"><link rel="prefetch" href="/assets/page-6YPAQ0BU.js"><link rel="prefetch" href="/assets/SetPassword-D-V7D0OR.js"><link rel="prefetch" href="/assets/login-mutation-DOxF97JV.js"><link rel="prefetch" href="/assets/page-Bh4TFAum.js"><link rel="prefetch" href="/assets/index-rnWXXblA.js"><link rel="prefetch" href="/assets/page-DNLxVFH7.js"><link rel="prefetch" href="/assets/page-B5YCjh4t.js"><link rel="prefetch" href="/assets/index-B4ZeIaPd.js"><link rel="prefetch" href="/assets/page-CicaAxfg.js"><link rel="prefetch" href="/assets/page-D0Z9wEBf.js"><link rel="prefetch" href="/assets/PasswordChecker-DOPLfvg7.js"><link rel="prefetch" href="/assets/layout-DhFllShI.js"><link rel="prefetch" href="/assets/page-RtFcujP8.js"><link rel="prefetch" href="/assets/page-8ZbMMHB-.js"><link rel="prefetch" href="/assets/page-BFzVhfws.js"><link rel="prefetch" href="/assets/page-CyID6Sp5.js"><link rel="prefetch" href="/assets/page-AWVW_lra.js"><link rel="prefetch" href="/assets/icon--Tp6obFZ.js"><link rel="prefetch" href="/assets/page-T1JEtrlC.js"><link rel="prefetch" href="/assets/resource-type-tooltip-2vjL6Wh9.js"><link rel="prefetch" href="/assets/resource-tyes-list-C7I0VL8e.js"><link rel="prefetch" href="/assets/service-connectors-BkE8Ol4i.js"><link rel="prefetch" href="/assets/page-GJ63jkFi.js"><link rel="prefetch" href="/assets/page-CId8DuKX.js"><link rel="prefetch" href="/assets/react-error-boundary.esm-DgOYA0wh.js"><link rel="prefetch" href="/assets/page-DMtUDzEY.js"><link rel="prefetch" href="/assets/code-snippets-CqONne41.js"><link rel="prefetch" href="/assets/page-DAF5ySum.js"><link rel="prefetch" href="/assets/SecretTooltip-BsFul9Oe.js"><link rel="prefetch" href="/assets/page-B1rTgWkQ.js"><link rel="prefetch" href="/assets/update-server-settings-mutation-BYfIU-xU.js"><link rel="prefetch" href="/assets/page-cS5O9iLC.js"><link rel="prefetch" href="/assets/page-Bs6NTqHo.js"><link rel="prefetch" href="/assets/dates-Buh6SMo7.js"><link rel="prefetch" href="/assets/key-icon-BiV171aI.js"><link rel="prefetch" href="/assets/service-BPdLzxxT.js"><link rel="prefetch" href="/assets/page-DtjangP-.js"><link rel="prefetch" href="/assets/pipeline-CDJSAXrb.js"><link rel="prefetch" href="/assets/page-Cd8VCEYG.js"><link rel="prefetch" href="/assets/page-DqXw1YhM.js"><link rel="prefetch" href="/assets/page-CkFIY_Cg.js"><link rel="prefetch" href="/assets/StackComponentList-CLnkE6-6.js"><link rel="prefetch" href="/assets/expand-full-C8p_0jQv.js"><link rel="prefetch" href="/assets/page-BaQw51KO.js"><link rel="prefetch" href="/assets/RunsBody-BSOSIxRG.js"><link rel="prefetch" href="/assets/ButtonGroup-B9_gfcC-.js"><link rel="prefetch" href="/assets/delete-run-MHYb1wuH.js"><link rel="prefetch" href="/assets/Tabs-CkY3GwhK.js"><link rel="prefetch" href="/assets/NestedCollapsible-DmryIMwk.js"><link rel="prefetch" href="/assets/all-pipeline-runs-query-mPYeJsKz.js"><link rel="prefetch" href="/assets/ExecutionStatus-BhDlfndt.js"><link rel="prefetch" href="/assets/bulk-delete-Bgf_MsSj.js"><link rel="prefetch" href="/assets/DeleteAlertDialog-C5z9RupH.js"><link rel="prefetch" href="/assets/page-BjuIRasU.js"><link rel="prefetch" href="/assets/page-BoQ_Wheb.js"><link rel="prefetch" href="/assets/check-circle-CG6XAdk-.js"><link rel="prefetch" href="/assets/file-text-TdPXNd7s.js"><link rel="prefetch" href="/assets/mail-DBJRSzyu.js"><link rel="prefetch" href="/assets/chevron-down-Bl7WwQAL.js"><link rel="prefetch" href="/assets/Tick-Bo7jwBjb.js"><link rel="prefetch" href="/assets/check-C9Nye5lR.js"><link rel="prefetch" href="/assets/CodeSnippet-D7OZMz7I.js"><link rel="prefetch" href="/assets/Helpbox-CQjyNo0n.js"><link rel="prefetch" href="/assets/SheetHeader-xumE4haD.js"><link rel="prefetch" href="/assets/help-CRPfbPTO.js"><link rel="prefetch" href="/assets/chevron-right-double-CbMG1dOM.js"><link rel="prefetch" href="/assets/zod-D48zuELD.js"><link rel="prefetch" href="/assets/index.esm-SBF9nn_P.js"><link rel="prefetch" href="/assets/ProCta-DspRnbtD.js"><link rel="prefetch" href="/assets/form-schemas-CpTCEVoG.js"><link rel="prefetch" href="/assets/EmptyState-BMA34iVR.js"><link rel="prefetch" href="/assets/primary-role-Bsu7s76U.js"><link rel="prefetch" href="/assets/bar-chart-square-check-_m-oYysN.js"><link rel="prefetch" href="/assets/dataflow-2-BLkaTH0Q.js"><link rel="prefetch" href="/assets/credit-card-DfBA6dBb.js"><link rel="prefetch" href="/assets/eye-BXcQevds.js"><link rel="prefetch" href="/assets/layout-GIiNvS10.js"><link rel="prefetch" href="/assets/message-chat-square-C3CRCQvD.js"><link rel="prefetch" href="/assets/slash-circle-B0xMh8q6.js"><link rel="prefetch" href="/assets/transform-S7omcvTm.js"><link rel="prefetch" href="/assets/UpdatePasswordSchemas-BP4hg95A.js"><link rel="prefetch" href="/assets/refresh-C8BXS3Fb.js"><link rel="prefetch" href="/assets/Pagination-CVYIgR9l.js"><link rel="prefetch" href="/assets/SearchField-BbwrusMV.js"><link rel="prefetch" href="/assets/index-g7wOyc86.js"><link rel="prefetch" href="/assets/terminal-C2tAF2XG.js"><link rel="prefetch" href="/assets/trash-D9LA4VFD.js"><link rel="prefetch" href="/assets/AlertDialogDropdownItem-DuTp8JFP.js"><link rel="prefetch" href="/assets/DisplayDate-57lUNS79.js"><link rel="prefetch" href="/assets/info-CI2szPUG.js"><link rel="prefetch" href="/assets/logs-lNLbZqHL.js"><link rel="prefetch" href="/assets/plus-DOrkJCmy.js"><link rel="prefetch" href="/assets/stack-detail-query-JsrqFo3U.js"><link rel="prefetch" href="/assets/Error-BGej6F2q.js"><link rel="prefetch" href="/assets/ComponentIcon-CWDJZO4Q.js"><link rel="prefetch" href="/assets/arrow-left-BFB2mgJo.js"><link rel="prefetch" href="/assets/code-browser-CzWvJ4S6.js"><link rel="prefetch" href="/assets/CollapsibleCard-Aqd_AiGn.js"><link rel="prefetch" href="/assets/Infobox-CXOIY92f.js"><link rel="prefetch" href="/assets/ComponentBadge-BVRb7wgm.js"><link rel="prefetch" href="/assets/terminal-square-C2tAF2XG.js"><link rel="prefetch" href="/assets/update-current-user-mutation-C4CPf7vG.js"><link rel="prefetch" href="/assets/index-BYCBKUXk.js"><link rel="prefetch" href="/assets/LeftSideMenu-DGICatl7.js"><link rel="prefetch" href="/assets/Wizard-0nbnAM1R.js"><link rel="prefetch" href="/assets/form-VRON3-kT.js"><link rel="prefetch" href="/assets/Lock-u8WOoTTd.js"><link rel="prefetch" href="/assets/package-pR4bbXJp.js"><link rel="prefetch" href="/assets/index.es-CZMSrR6z.js"><link rel="prefetch" href="/assets/clock-BnPvxp3D.js"><link rel="prefetch" href="/assets/DialogItem-Ce3ugDgT.js"><link rel="prefetch" href="/assets/StackList-DhsbaNva.js"><link rel="prefetch" href="/assets/components-Br2ezRib.js"><link rel="prefetch" href="/assets/NumberBox-7OIA56xe.js"><link rel="prefetch" href="/assets/configuration-form-Bnyw4-V5.js"><link rel="prefetch" href="/assets/constants-Ddhz1mpL.js"><link rel="prefetch" href="/assets/index-D_-iUPTg.js"><link rel="prefetch" href="/assets/page-C09_xoEs.js"><link rel="prefetch" href="/assets/persist-C98EYq5I.js"><link rel="prefetch" href="/assets/persist-FuiGbvJD.js"><link rel="prefetch" href="/assets/sharedSchema-CKFbjwmg.js"><link rel="prefetch" href="/assets/page-CJXxkmGx.js"><link rel="prefetch" href="/assets/ProviderIcon-DwKsXziU.js"><link rel="prefetch" href="/assets/page-Dfaj9bx6.js"><link rel="prefetch" href="/assets/Partials-NicibWrh.js"><link rel="prefetch" href="/assets/ProviderRadio-BixXi4GC.js"><link rel="prefetch" href="/assets/page-CkX3R4er.js"><link rel="prefetch" href="/assets/create-stack-BpTy7-E4.js"><link rel="prefetch" href="/assets/page-62MHYKGv.js"><link rel="prefetch" href="/assets/WizardFooter-CLPi4VBo.js"><link rel="prefetch" href="/assets/page-DMiWibIV.js"><link rel="prefetch" href="/assets/page-CJSSCJ58.js"><link rel="prefetch" href="/assets/page-CI0U7nE4.js"><link rel="prefetch" href="/assets/page-D83H0IPX.js"><link rel="prefetch" href="/assets/page-BDawWKR9.js"><link rel="prefetch" href="/assets/page-Bsiqb0ZN.js"><link rel="prefetch" href="/assets/404-JcbBcNWG.js"></head>
16
16
  <body>
17
17
  <div id="root"></div>
18
18
  </body>
@@ -26,6 +26,7 @@ from zenml.constants import (
26
26
  VERSION_1,
27
27
  )
28
28
  from zenml.exceptions import IllegalOperationError
29
+ from zenml.logger import get_logger
29
30
  from zenml.models import (
30
31
  APIKeyFilter,
31
32
  APIKeyRequest,
@@ -38,6 +39,7 @@ from zenml.models import (
38
39
  ServiceAccountResponse,
39
40
  ServiceAccountUpdate,
40
41
  )
42
+ from zenml.models.v2.misc.server_models import ServerDeploymentType
41
43
  from zenml.zen_server.auth import AuthContext, authorize
42
44
  from zenml.zen_server.exceptions import error_response
43
45
  from zenml.zen_server.rbac.endpoint_utils import (
@@ -56,12 +58,29 @@ from zenml.zen_server.utils import (
56
58
  zen_store,
57
59
  )
58
60
 
61
+ logger = get_logger(__name__)
62
+
59
63
  router = APIRouter(
60
64
  prefix=API + VERSION_1 + SERVICE_ACCOUNTS,
61
65
  tags=["service_accounts", "api_keys"],
62
66
  responses={401: error_response},
63
67
  )
64
68
 
69
+
70
+ def _raise_deprecated_pro_service_accounts() -> None:
71
+ """Logs a warning if Pro workspace level service accounts are used."""
72
+ from zenml.config.server_config import ServerConfiguration
73
+
74
+ config = ServerConfiguration.get_server_config()
75
+ if config.deployment_type == ServerDeploymentType.CLOUD:
76
+ logger.warning(
77
+ "ZenML Pro workspace level service accounts and API keys are "
78
+ "deprecated and will be removed in a future version. Please use "
79
+ "ZenML Pro organization level service accounts and API keys "
80
+ "instead (see https://docs.zenml.io/pro/core-concepts/service-accounts)."
81
+ )
82
+
83
+
65
84
  # ----------------
66
85
  # Service Accounts
67
86
  # ----------------
@@ -88,6 +107,7 @@ def create_service_account(
88
107
  Returns:
89
108
  The created service account.
90
109
  """
110
+ _raise_deprecated_pro_service_accounts()
91
111
  return verify_permissions_and_create_entity(
92
112
  request_model=service_account,
93
113
  create_method=zen_store().create_service_account,
@@ -179,6 +199,7 @@ def update_service_account(
179
199
  IllegalOperationError: If the service account was created via external
180
200
  authentication.
181
201
  """
202
+ _raise_deprecated_pro_service_accounts()
182
203
  service_account = zen_store().get_service_account(
183
204
  service_account_name_or_id, hydrate=True
184
205
  )
@@ -267,6 +288,7 @@ def create_api_key(
267
288
  api_key=api_key,
268
289
  )
269
290
 
291
+ _raise_deprecated_pro_service_accounts()
270
292
  service_account = zen_store().get_service_account(service_account_id)
271
293
 
272
294
  if service_account.external_user_id is not None:
@@ -375,6 +397,7 @@ def update_api_key(
375
397
  IllegalOperationError: If the service account was created via external
376
398
  authentication.
377
399
  """
400
+ _raise_deprecated_pro_service_accounts()
378
401
  service_account = zen_store().get_service_account(service_account_id)
379
402
 
380
403
  if service_account.external_user_id is not None:
@@ -420,6 +443,7 @@ def rotate_api_key(
420
443
  IllegalOperationError: If the service account was created via external
421
444
  authentication.
422
445
  """
446
+ _raise_deprecated_pro_service_accounts()
423
447
  service_account = zen_store().get_service_account(service_account_id)
424
448
 
425
449
  if service_account.external_user_id is not None:
@@ -0,0 +1,23 @@
1
+ """Release [0.84.3].
2
+
3
+ Revision ID: 0.84.3
4
+ Revises: 0.84.2
5
+ Create Date: 2025-08-27 08:07:15.302516
6
+
7
+ """
8
+
9
+ # revision identifiers, used by Alembic.
10
+ revision = "0.84.3"
11
+ down_revision = "0.84.2"
12
+ branch_labels = None
13
+ depends_on = None
14
+
15
+
16
+ def upgrade() -> None:
17
+ """Upgrade database schema and/or data, creating a new revision."""
18
+ pass
19
+
20
+
21
+ def downgrade() -> None:
22
+ """Downgrade database schema and/or data back to the previous revision."""
23
+ pass
@@ -128,6 +128,7 @@ from zenml.io import fileio
128
128
  from zenml.logger import get_logger
129
129
  from zenml.login.credentials import APIToken
130
130
  from zenml.login.credentials_store import get_credentials_store
131
+ from zenml.login.pro.client import ZenMLProClient
131
132
  from zenml.login.pro.constants import ZENML_PRO_API_URL
132
133
  from zenml.login.pro.utils import (
133
134
  get_troubleshooting_instructions,
@@ -420,7 +421,12 @@ class RestZenStoreConfiguration(StoreConfiguration):
420
421
 
421
422
  if api_key := data.pop("api_key", None):
422
423
  credentials_store = get_credentials_store()
423
- credentials_store.set_api_key(url, api_key)
424
+ if api_key.startswith("ZENPROKEY_"):
425
+ credentials_store.set_api_key(
426
+ ZENML_PRO_API_URL, api_key, is_zenml_pro=True
427
+ )
428
+ else:
429
+ credentials_store.set_api_key(url, api_key)
424
430
 
425
431
  return data
426
432
 
@@ -4184,17 +4190,22 @@ class RestZenStore(BaseZenStore):
4184
4190
  if not pro_api_url:
4185
4191
  pro_api_url = ZENML_PRO_API_URL
4186
4192
 
4187
- pro_token = credentials_store.get_pro_token(
4188
- pro_api_url, allow_expired=True
4193
+ pro_credentials = credentials_store.get_pro_credentials(
4194
+ pro_api_url
4189
4195
  )
4190
- if not pro_token:
4196
+ if not pro_credentials:
4191
4197
  raise CredentialsNotValid(
4192
4198
  "You need to be logged in to ZenML Pro in order to "
4193
4199
  f"access the ZenML Pro server '{self.url}'. Please run "
4194
4200
  "'zenml login' to log in or choose a different server."
4195
4201
  )
4196
4202
 
4197
- elif pro_token.expired:
4203
+ elif pro_credentials.has_valid_token:
4204
+ assert pro_credentials.api_token is not None
4205
+ pro_token = pro_credentials.api_token
4206
+ elif pro_credentials.can_refresh_token:
4207
+ pro_token = ZenMLProClient(pro_api_url).authenticate()
4208
+ else:
4198
4209
  raise CredentialsNotValid(
4199
4210
  "Your ZenML Pro login session has expired. "
4200
4211
  "Please log in again using 'zenml login'."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zenml-nightly
3
- Version: 0.84.2.dev20250826
3
+ Version: 0.84.3.dev20250828
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  License: Apache-2.0
6
6
  Keywords: machine learning,production,pipeline,mlops,devops
@@ -54,7 +54,7 @@ Requires-Dist: azure-storage-blob (>=12.0.0) ; extra == "connectors-azure"
54
54
  Requires-Dist: bandit (>=1.7.5,<2.0.0) ; extra == "dev"
55
55
  Requires-Dist: bcrypt (==4.0.1)
56
56
  Requires-Dist: boto3 (>=1.16.0) ; extra == "secrets-aws" or extra == "connectors-aws"
57
- Requires-Dist: click (>=8.0.1,<8.1.8)
57
+ Requires-Dist: click (>=8.0.1,<=8.2.1)
58
58
  Requires-Dist: cloudpickle (>=2.0.0,<3)
59
59
  Requires-Dist: copier (>=8.1.0) ; extra == "templates"
60
60
  Requires-Dist: coverage[toml] (>=5.5,<6.0) ; extra == "dev"