{"version":1,"pages":[{"id":"PiTtCjHq1ktBVwbnPCpG","title":"Welcome to ZenML","pathname":"/","siteSpaceId":"sitesp_0rctS","icon":"torii-gate","description":"Discover resources to build, deploy, and scale your ML pipelines with ZenML.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Getting Started"}]},{"id":"lpgWv22IC6LbJoGXPEEj","title":"Installation","pathname":"/getting-started/installation","siteSpaceId":"sitesp_0rctS","icon":"cauldron","description":"Installing ZenML and getting started.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Getting Started"}]},{"id":"hMvaw3pJYHjAQ2mQuRGb","title":"Hello World","pathname":"/getting-started/hello-world","siteSpaceId":"sitesp_0rctS","icon":"hand-wave","description":"Your first ML pipeline with ZenML - from local development to cloud deployment in minutes.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Getting Started"}]},{"id":"n83LrjZfR8pJN6yCHzRW","title":"Your First AI Pipeline","pathname":"/getting-started/your-first-ai-pipeline","siteSpaceId":"sitesp_0rctS","icon":"rocket","description":"Choose your path and build your first pipeline with ZenML in minutes.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Getting Started"}]},{"id":"dqJCRirgIppcDn5SRAnu","title":"Core Concepts","pathname":"/getting-started/core-concepts","siteSpaceId":"sitesp_0rctS","icon":"lightbulb","description":"Discovering the core concepts behind ZenML.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Getting Started"}]},{"id":"3jWasvWDbN8OLQMbHsEr","title":"System Architecture","pathname":"/getting-started/system-architectures","siteSpaceId":"sitesp_0rctS","icon":"building-columns","description":"Different variations of the ZenML architecture depending on your needs.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Getting Started"}]},{"id":"AQVLWvuxiXKmfHJnkwnf","title":"Deploy","pathname":"/deploying-zenml/deploying-zenml","siteSpaceId":"sitesp_0rctS","icon":"rocket-launch","description":"Why do we need to deploy ZenML?","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"}]},{"id":"UjlFvcqv6kAeMZQKQLVF","title":"Deploy with Docker","pathname":"/deploying-zenml/deploying-zenml/deploy-with-docker","siteSpaceId":"sitesp_0rctS","description":"Deploying ZenML in a Docker container.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"}]},{"id":"bxQvlzr5MAUROsUnWdUR","title":"Deploy with Helm","pathname":"/deploying-zenml/deploying-zenml/deploy-with-helm","siteSpaceId":"sitesp_0rctS","description":"Deploying ZenML in a Kubernetes cluster with Helm.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"}]},{"id":"WqaJ1zBTVMO986m5Cd5G","title":"Migrate to Gateway API","pathname":"/deploying-zenml/deploying-zenml/deploy-with-helm/migrate-to-gateway-api","siteSpaceId":"sitesp_0rctS","description":"Migrate ZenML Helm deployments from Ingress to Kubernetes Gateway API.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"},{"label":"Deploy with Helm"}]},{"id":"ETA8TToFaUeSGVISttsv","title":"Deploy using HuggingFace Spaces","pathname":"/deploying-zenml/deploying-zenml/deploy-using-huggingface-spaces","siteSpaceId":"sitesp_0rctS","description":"Deploying ZenML to Huggingface Spaces.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"}]},{"id":"yf1EjsDJanSALcs9kEdl","title":"Deploy with custom images","pathname":"/deploying-zenml/deploying-zenml/deploy-with-custom-image","siteSpaceId":"sitesp_0rctS","description":"Deploying ZenML with custom Docker images.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"}]},{"id":"h9bi1lpt7AsSSHnUVrlS","title":"Secret management","pathname":"/deploying-zenml/deploying-zenml/secret-management","siteSpaceId":"sitesp_0rctS","description":"Configuring the secrets store.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"}]},{"id":"LoIhWUYR5MiPPXP4IS4z","title":"Custom secret stores","pathname":"/deploying-zenml/deploying-zenml/custom-secret-stores","siteSpaceId":"sitesp_0rctS","description":"Learning how to develop a custom secret store.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"}]},{"id":"n3ZO03gHMuqDbhntQvFX","title":"Live event streaming","pathname":"/deploying-zenml/deploying-zenml/live-event-streaming","siteSpaceId":"sitesp_0rctS","description":"Enable live event streaming on the ZenML server and consume the HTTP/SSE feed.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Deploy","icon":"rocket-launch"}]},{"id":"mHsPTgIluw5jzbwYlroY","title":"Connect","pathname":"/deploying-zenml/connecting-to-zenml","siteSpaceId":"sitesp_0rctS","icon":"globe-pointer","description":"Various means of connecting to ZenML.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"}]},{"id":"iHDZreKTT0sUjtyDQsVY","title":"with your User (interactive)","pathname":"/deploying-zenml/connecting-to-zenml/connect-in-with-your-user-interactive","siteSpaceId":"sitesp_0rctS","description":"Connect to the ZenML server using the ZenML CLI and the web based login.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Connect","icon":"globe-pointer"}]},{"id":"3MKKRHAhKL0HYtloMGMt","title":"with your User (programmatic)","pathname":"/deploying-zenml/connecting-to-zenml/connect-with-a-pat","siteSpaceId":"sitesp_0rctS","description":"Connect to the ZenML server using a Personal Access Token.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Connect","icon":"globe-pointer"}]},{"id":"svaEB5w9svWGQsfDg1wf","title":"with a Service Account","pathname":"/deploying-zenml/connecting-to-zenml/connect-with-a-service-account","siteSpaceId":"sitesp_0rctS","description":"Connect to the ZenML server using a service account and an API key.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Connect","icon":"globe-pointer"}]},{"id":"m3mKA3HiJbFAL5QPR0D2","title":"Manage","pathname":"/deploying-zenml/upgrade-zenml-server","siteSpaceId":"sitesp_0rctS","icon":"circle-arrow-up","description":"Learn how to upgrade your server to a new version of ZenML for the different deployment options.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"}]},{"id":"QSlBkpMj7bANbLtrHWBV","title":"Best practices for upgrading","pathname":"/deploying-zenml/upgrade-zenml-server/best-practices-upgrading-zenml","siteSpaceId":"sitesp_0rctS","description":"Simple, step-by-step guide for keeping your ZenML workspaces (servers) up to date without breaking your teams.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"}]},{"id":"POfuH99d9qT2ryrW7DUE","title":"Using ZenML server in production","pathname":"/deploying-zenml/upgrade-zenml-server/using-zenml-server-in-prod","siteSpaceId":"sitesp_0rctS","description":"Learn about best practices for using ZenML server in production environments.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"}]},{"id":"QiqtrSi31mIa7e0fZwZX","title":"Troubleshoot your ZenML server","pathname":"/deploying-zenml/upgrade-zenml-server/troubleshoot-your-deployed-server","siteSpaceId":"sitesp_0rctS","description":"Troubleshooting tips for your ZenML deployment","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"}]},{"id":"t31FSwn1NEkQT35rYxhY","title":"Migration guide","pathname":"/deploying-zenml/upgrade-zenml-server/migration-guide","siteSpaceId":"sitesp_0rctS","description":"How to migrate your ZenML code to the newest version.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"}]},{"id":"XeyQ2orC0RSBQmElFbfq","title":"Migration guide 0.13.2 → 0.20.0","pathname":"/deploying-zenml/upgrade-zenml-server/migration-guide/migration-zero-twenty","siteSpaceId":"sitesp_0rctS","description":"How to migrate from ZenML <=0.13.2 to 0.20.0.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"},{"label":"Migration guide"}]},{"id":"2uXw0rQwRTC7agzLWOH6","title":"Migration guide 0.23.0 → 0.30.0","pathname":"/deploying-zenml/upgrade-zenml-server/migration-guide/migration-zero-thirty","siteSpaceId":"sitesp_0rctS","description":"How to migrate from ZenML 0.20.0-0.23.0 to 0.30.0-0.39.1.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"},{"label":"Migration guide"}]},{"id":"UZbKaxA0WZzQI659NQWm","title":"Migration guide 0.39.1 → 0.41.0","pathname":"/deploying-zenml/upgrade-zenml-server/migration-guide/migration-zero-forty","siteSpaceId":"sitesp_0rctS","description":"How to migrate your ZenML pipelines and steps from version <=0.39.1 to 0.41.0.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"},{"label":"Migration guide"}]},{"id":"fcUOZ3bnhwoDcCGL8xHc","title":"Migration guide 0.58.2 → 0.60.0","pathname":"/deploying-zenml/upgrade-zenml-server/migration-guide/migration-zero-sixty","siteSpaceId":"sitesp_0rctS","description":"How to migrate from ZenML 0.58.2 to 0.60.0 (Pydantic 2 edition).","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Deploying ZenML"},{"label":"Manage","icon":"circle-arrow-up"},{"label":"Migration guide"}]},{"id":"WXp4FRa4pzeaxgBLrW0n","title":"Steps & Pipelines","pathname":"/concepts/steps_and_pipelines","siteSpaceId":"sitesp_0rctS","icon":"arrow-progress","description":"Steps and Pipelines are the core building blocks of ZenML","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"UkRY2QeL5nKBtM2Byw8p","title":"Configuration","pathname":"/concepts/steps_and_pipelines/configuration","siteSpaceId":"sitesp_0rctS","description":"Configuring and customizing your pipeline runs.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"V5wVp7jtTghG72OsiFnA","title":"Scheduling","pathname":"/concepts/steps_and_pipelines/scheduling","siteSpaceId":"sitesp_0rctS","description":"Learn how to create, update, activate, deactivate, and delete schedules for pipelines.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"2GKqbvpmjQiI9DLFt2H1","title":"Logging","pathname":"/concepts/steps_and_pipelines/logging","siteSpaceId":"sitesp_0rctS","description":"Learn how to control and customize logging behavior in ZenML pipelines.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"Lr6t3chsEobPyrgkF1RT","title":"YAML Configuration","pathname":"/concepts/steps_and_pipelines/yaml_configuration","siteSpaceId":"sitesp_0rctS","description":"Learn how to configure ZenML pipelines using YAML configuration files.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"Sitanrr5dLJt5uSLMNTu","title":"Source Code and Imports","pathname":"/concepts/steps_and_pipelines/sources","siteSpaceId":"sitesp_0rctS","description":"Understanding source roots and source paths","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"t6PQ7fm3x7SrHAoqZ5sk","title":"Execution","pathname":"/concepts/steps_and_pipelines/execution","siteSpaceId":"sitesp_0rctS","description":"Step and pipeline execution.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"7YZmMXGIZKI1vBVpjlQL","title":"Wait for External Input","pathname":"/concepts/steps_and_pipelines/wait_resume","siteSpaceId":"sitesp_0rctS","icon":"hourglass-half","description":"Pause a dynamic pipeline for external input and resume it after the input is resolved.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"yCpgbh5rCg5nqV1XtNim","title":"Advanced Features","pathname":"/concepts/steps_and_pipelines/advanced_features","siteSpaceId":"sitesp_0rctS","description":"Advanced features and capabilities of ZenML pipelines and steps","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"3hvfl6YZAIlw0FjhscPg","title":"Dynamic Pipelines","pathname":"/concepts/steps_and_pipelines/dynamic_pipelines","siteSpaceId":"sitesp_0rctS","description":"Write dynamic pipelines","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"tZNjc8rfQx1M6YVLktNP","title":"Streaming Events","pathname":"/concepts/steps_and_pipelines/streaming_events","siteSpaceId":"sitesp_0rctS","description":"Publish live events from inside a step to subscribed clients.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Steps & Pipelines","icon":"arrow-progress"}]},{"id":"igcqaPTOHW61fR7AbvHU","title":"Artifacts","pathname":"/concepts/artifacts","siteSpaceId":"sitesp_0rctS","icon":"binary","description":"Learn how ZenML manages data artifacts, tracks versioning and lineage, and enables effective data flow between steps.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"dt8cXDYl92xHenfmpTar","title":"Materializers","pathname":"/concepts/artifacts/materializers","siteSpaceId":"sitesp_0rctS","description":"Understanding and creating materializers to handle custom data types in ZenML pipelines","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Artifacts","icon":"binary"}]},{"id":"3nKUSrjE04zNCsdc2hlL","title":"Visualizations","pathname":"/concepts/artifacts/visualizations","siteSpaceId":"sitesp_0rctS","description":"Learn how to visualize the data artifacts produced by your ZenML pipelines.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Artifacts","icon":"binary"}]},{"id":"op6ZVpIKwHTK32dzk6IZ","title":"Stack & Components","pathname":"/concepts/stack_components","siteSpaceId":"sitesp_0rctS","icon":"cubes","description":"Understanding and working with ZenML Stacks and Stack Components","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"P45ji4TeYxhWcMcYRG7L","title":"Service Connectors","pathname":"/concepts/service_connectors","siteSpaceId":"sitesp_0rctS","icon":"link","description":"Managing authentication to cloud services and resources with Service Connectors","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"v68LQxO4ukWHKy6IqHWP","title":"Pipeline Snapshots","pathname":"/concepts/snapshots","siteSpaceId":"sitesp_0rctS","icon":"print","description":"Create and run pipeline snapshots.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"6XZsAzUOP7SjOqdzDoqi","title":"Pipeline Deployments","pathname":"/concepts/deployment","siteSpaceId":"sitesp_0rctS","icon":"rocket-launch","description":"Deploy pipelines as HTTP services for real-time execution","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"rNyYUWhOPv0v5B4MnxqZ","title":"Deployment Settings","pathname":"/concepts/deployment/deployment_settings","siteSpaceId":"sitesp_0rctS","description":"Customize the pipeline deployment ASGI application with DeploymentSettings.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"},{"label":"Pipeline Deployments","icon":"rocket-launch"}]},{"id":"HrpS8YZG0eqgfwGoW1Eh","title":"Containerization","pathname":"/concepts/containerization","siteSpaceId":"sitesp_0rctS","icon":"docker","description":"Customize Docker builds to run your pipelines in isolated, well-defined environments.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"I8b1fPTVmUA6hcVsw6iS","title":"Code Repositories","pathname":"/concepts/code-repositories","siteSpaceId":"sitesp_0rctS","icon":"code-compare","description":"Tracking your code and avoiding unnecessary Docker builds by connecting your git repo.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"64m9yBDU8LRGWBdP7LJT","title":"Secrets","pathname":"/concepts/secrets","siteSpaceId":"sitesp_0rctS","icon":"user-secret","description":"Registering and using secrets.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"CElYlpRJfmn9OkSlBvPw","title":"Environment Variables","pathname":"/concepts/environment-variables","siteSpaceId":"sitesp_0rctS","icon":"globe","description":"Configuring environment variables.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"NriQHMhCNvByax82vx96","title":"Tags","pathname":"/concepts/tags","siteSpaceId":"sitesp_0rctS","icon":"tag","description":"Use tags to organize tags in ZenML.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"f7HLo3clsWGy1vESOPP2","title":"Metadata","pathname":"/concepts/metadata","siteSpaceId":"sitesp_0rctS","icon":"square-info","description":"Enrich your ML workflow with contextual information using ZenML metadata.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"lI4tMC1CZZws8pPsQOvF","title":"Models","pathname":"/concepts/models","siteSpaceId":"sitesp_0rctS","icon":"rectangle-history","description":"Managing ML models throughout their lifecycle with ZenML","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"A465T9RHtt6nuohLft8V","title":"Dashboard","pathname":"/concepts/dashboard-features","siteSpaceId":"sitesp_0rctS","icon":"gauge-high","description":"Explore the features and capabilities of the ZenML dashboard","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"glWPqNjpnnzcrPEvqNZI","title":"Templates","pathname":"/concepts/templates","siteSpaceId":"sitesp_0rctS","icon":"print","description":"Create and run templates in ZenML to standardize execution.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Concepts"}]},{"id":"rhd3VhivHWWYrnqYzXDb","title":"Community & content","pathname":"/reference/community-and-content","siteSpaceId":"sitesp_0rctS","icon":"heart","description":"All possible ways for our community to get in touch with ZenML.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Reference"}]},{"id":"Kt5EX2GvyLWIuyucyfbf","title":"Environment Variables","pathname":"/reference/environment-variables","siteSpaceId":"sitesp_0rctS","icon":"earth-africa","description":"How to control ZenML behavior with environmental variables.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Reference"}]},{"id":"ZEowe9sFEBCQ01cB9Boj","title":"LLM Tooling","pathname":"/reference/llms-txt","siteSpaceId":"sitesp_0rctS","icon":"robot","description":"LLM tooling for ZenML - MCP servers, llms.txt, and Agent Skills","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Reference"}]},{"id":"dS1rmSUa75lYBQjYbvVl","title":"FAQ","pathname":"/reference/faq","siteSpaceId":"sitesp_0rctS","icon":"circle-question","description":"Find answers to the most frequently asked questions about ZenML.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Reference"}]},{"id":"S2Efs7mVOq4ChXJM2mNK","title":"Global settings","pathname":"/reference/global-settings","siteSpaceId":"sitesp_0rctS","icon":"gear","description":"Understanding the global settings of your ZenML installation.","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Reference"}]},{"id":"ef1XomPh474GmBk8Zfjk","title":"Legacy docs","pathname":"/reference/legacy-docs","siteSpaceId":"sitesp_0rctS","icon":"user-bounty-hunter","description":"All legacy docs of ZenML","breadcrumbs":[{"label":"ZenML","icon":"torii-gate"},{"label":"Reference"}]},{"id":"vzmXwEZ1Rj6TiueRrfWT","title":"Welcome to Kitaru","pathname":"/kitaru","siteSpaceId":"sitesp_zUxJN","icon":"hand-wave","description":"The runtime layer underneath your agent stack.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Getting Started"}]},{"id":"cDb4N92M787W6Uf33vjO","title":"Installation","pathname":"/kitaru/getting-started/installation","siteSpaceId":"sitesp_zUxJN","icon":"download","description":"Install Kitaru with uv or pip","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Getting Started"}]},{"id":"knQ03wCkSkWfSSXcMRor","title":"Quickstart","pathname":"/kitaru/getting-started/quickstart","siteSpaceId":"sitesp_zUxJN","icon":"rocket","description":"Run your first durable agent flow with Kitaru","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Getting Started"}]},{"id":"RQBXLDtvODELNqqDX86n","title":"Deploy","pathname":"/kitaru/getting-started/deploy","siteSpaceId":"sitesp_zUxJN","icon":"server","description":"Move from local development to running agents in production","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Getting Started"}]},{"id":"avGnXrIi7fgY7KLr0o2L","title":"Examples","pathname":"/kitaru/getting-started/examples","siteSpaceId":"sitesp_zUxJN","icon":"code","description":"Runnable Kitaru examples — start with the Agent Harness Platform tour, or jump to a feature-focused example","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Getting Started"}]},{"id":"onZ9vHFbbtoNfWhJLOoG","title":"Troubleshooting","pathname":"/kitaru/getting-started/troubleshooting","siteSpaceId":"sitesp_zUxJN","icon":"wrench","description":"Diagnose problems and reset Kitaru state","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Getting Started"}]},{"id":"SelB9XEudY4wWN33AlIS","title":"Overview","pathname":"/kitaru/agent-harness-platform/agent-harness-platform","siteSpaceId":"sitesp_zUxJN","icon":"robot","description":"A runnable reference architecture for building an internal agent harness platform with Kitaru and PydanticAI","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"rSThyD3TdXm4RFH5F8Lw","title":"Durable Agent","pathname":"/kitaru/agent-harness-platform/01-durable-agent","siteSpaceId":"sitesp_zUxJN","icon":"bolt","description":"PydanticAI runs the agent loop. Kitaru keeps a durable record of the work that finished before a crash.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"P4g9CPgZFfzKNm9iizCj","title":"Sandbox","pathname":"/kitaru/agent-harness-platform/02-sandbox","siteSpaceId":"sitesp_zUxJN","icon":"box","description":"Run the agent's shell commands inside a Docker sandbox, so a mistaken command hits a throwaway container instead of your host.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"537zOAhufTBPZi1QCiIY","title":"Skills","pathname":"/kitaru/agent-harness-platform/03-skills","siteSpaceId":"sitesp_zUxJN","icon":"scroll","description":"Move the agent's procedure out of the system prompt and into a markdown file an operator can edit without changing code.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"Hacze8YYcQ97wEZMMq81","title":"Credential Proxy","pathname":"/kitaru/agent-harness-platform/04-credential-proxy","siteSpaceId":"sitesp_zUxJN","icon":"key","description":"A separate proxy container holds the service credentials and injects auth headers; the worker never holds them","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"3RQzJwpr40xjaOrJYrCJ","title":"Typed Services","pathname":"/kitaru/agent-harness-platform/05-typed-services","siteSpaceId":"sitesp_zUxJN","icon":"diagram-project","description":"Add exec_service for structured host-side calls (look up a record, create a ticket, publish a summary) when a shell command is the wrong shape","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"xyzdJPayJAgdCZJSjzyc","title":"Human in the Loop","pathname":"/kitaru/agent-harness-platform/06-hitl","siteSpaceId":"sitesp_zUxJN","icon":"hand","description":"ask_question, a freeform HITL tool that pauses the flow until an operator answers from any surface","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"37ueF0uDd87tpDIASOEM","title":"Production Notes","pathname":"/kitaru/agent-harness-platform/production-notes","siteSpaceId":"sitesp_zUxJN","icon":"shield-halved","description":"Which pieces of the Agent Harness Platform tour are teaching stand-ins, where each one plugs into production, and what to harden before you rely on the pattern","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Harness Platform"}]},{"id":"qw8hIFEbl4taSEvy4SNP","title":"Overview","pathname":"/kitaru/core-concepts/concepts","siteSpaceId":"sitesp_zUxJN","icon":"lightbulb","description":"The mental model behind Kitaru's durable execution primitives.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"jFEpVFR4YYhJvoEp1r9K","title":"Harness, Runtime, Platform","pathname":"/kitaru/core-concepts/harness-runtime-platform","siteSpaceId":"sitesp_zUxJN","icon":"layer-group","description":"Where Kitaru fits — and doesn't — in an agent stack.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"fpgU4WBhT9hosGDLfA42","title":"How It Works","pathname":"/kitaru/core-concepts/how-it-works","siteSpaceId":"sitesp_zUxJN","icon":"gears","description":"What runs where when you execute a Kitaru flow — server, runner, execution targets, and the contract between them.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"fRZF8ymHawJ9ME3mH2F1","title":"Flows","pathname":"/kitaru/core-concepts/flows","siteSpaceId":"sitesp_zUxJN","icon":"diagram-project","description":"Define durable execution boundaries for your AI agent workflows.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"GGPx6hQS9f4kLUpA9w0L","title":"Deployments","pathname":"/kitaru/core-concepts/deployments","siteSpaceId":"sitesp_zUxJN","icon":"rocket","description":"Version and share durable flow entrypoints for remote invocation.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"Zt6utJ6bxTsCzHn1d3At","title":"Checkpoints","pathname":"/kitaru/core-concepts/checkpoints","siteSpaceId":"sitesp_zUxJN","icon":"floppy-disk","description":"Durable work units with persistence and concurrency support.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"Reg9c1xq7a9VmWf7JrvJ","title":"Wait, Input, and Resume","pathname":"/kitaru/core-concepts/wait-and-input","siteSpaceId":"sitesp_zUxJN","icon":"hourglass-half","description":"Pause flows for human or agent input, then resume from where they left off.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"ibSSC0mR9ajxhHhbbv29","title":"Logging and Metadata","pathname":"/kitaru/core-concepts/logging","siteSpaceId":"sitesp_zUxJN","icon":"tags","description":"Attach structured data to executions and checkpoints.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Core Concepts"}]},{"id":"jfZrP31z5ehu33Ct8Ljy","title":"Configuration","pathname":"/kitaru/guides/configuration","siteSpaceId":"sitesp_zUxJN","icon":"gear","description":"Kitaru config directory, execution defaults, environment variables, and precedence","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"LIBgV6b3mvLOkdahMZZO","title":"Authentication","pathname":"/kitaru/guides/authentication","siteSpaceId":"sitesp_zUxJN","icon":"key","description":"Service accounts, API keys, and short-lived bearer tokens for Kitaru servers","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"TV5HROO5v5mMN0WAfwvo","title":"Deploy and Invoke Flows","pathname":"/kitaru/guides/deployments","siteSpaceId":"sitesp_zUxJN","icon":"rocket","description":"A practical producer-consumer guide to deploying Kitaru flows, moving tags, and invoking stable or canary routes","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"9JL1jz8yokIPcq1wr5RE","title":"Containerization","pathname":"/kitaru/guides/containerization","siteSpaceId":"sitesp_zUxJN","icon":"box","description":"How Kitaru builds and configures container images for remote execution","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"m1ms9iW3v3U2tkSxyRWm","title":"Execution Management","pathname":"/kitaru/guides/execution-management","siteSpaceId":"sitesp_zUxJN","icon":"list-check","description":"Inspect execution status, fetch runtime logs, resolve waits, and manage lifecycle actions","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"ZE1Bf5QPI7gUxHCkRWVB","title":"View Execution Runtime Logs","pathname":"/kitaru/guides/execution-logs","siteSpaceId":"sitesp_zUxJN","icon":"file-lines","description":"Retrieve execution and checkpoint runtime logs from the SDK, CLI, and MCP","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"q6fNQXnFUX6F9GxSl3GE","title":"Checkpoint Live Events","pathname":"/kitaru/guides/checkpoint-streaming","siteSpaceId":"sitesp_zUxJN","icon":"tower-broadcast","description":"Publish and watch best-effort live progress and custom events from running checkpoints","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"ieoi9kJkRqHsTAPEUquq","title":"Replay and Overrides","pathname":"/kitaru/guides/replay-and-overrides","siteSpaceId":"sitesp_zUxJN","icon":"rotate-left","description":"Replay executions from checkpoints with flow and checkpoint overrides","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"BUp6cWRuU8VUfknQKRto","title":"Wait, Input, and Resume","pathname":"/kitaru/guides/wait-and-resume","siteSpaceId":"sitesp_zUxJN","icon":"hourglass-half","description":"Suspend a flow for external input and continue the same execution","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"gZ9fn4QuMS1d9OUqDiuH","title":"Artifacts","pathname":"/kitaru/guides/artifacts","siteSpaceId":"sitesp_zUxJN","icon":"box-archive","description":"Persist named values in checkpoints and reuse them across executions","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"0QZhE1u1FEF6G1eIIr9F","title":"Error Handling","pathname":"/kitaru/guides/error-handling","siteSpaceId":"sitesp_zUxJN","icon":"triangle-exclamation","description":"Understand Kitaru exception types and failure journaling","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"wljT8fZIU4BA8fs9S8aB","title":"Tracked LLM Calls","pathname":"/kitaru/guides/llm-calls","siteSpaceId":"sitesp_zUxJN","icon":"robot","description":"Use kitaru.llm() with model aliases, transported runtime config, and optional secret-backed credentials","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"DJsLPOTXT5IAsfz7v4WZ","title":"Secrets and Model Registration","pathname":"/kitaru/guides/secrets-and-model-registration","siteSpaceId":"sitesp_zUxJN","icon":"key","description":"Store provider credentials, register a model alias, and use kitaru.llm() inside a flow","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"Yqvba9W4f7XAgvXJrP6H","title":"Secrets","pathname":"/kitaru/guides/secrets","siteSpaceId":"sitesp_zUxJN","icon":"lock","description":"Create, inspect, list, and delete centralized secrets from the Kitaru CLI and Python SDK","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"o8qO8xsDZPW4H0CEyZ8X","title":"Choose an Adapter","pathname":"/kitaru/guides/choose-an-adapter","siteSpaceId":"sitesp_zUxJN","icon":"shuffle","description":"Pick the Kitaru integration path for your existing agent harness","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Guides"}]},{"id":"bN6Rs68lJQq1HBWfG0fL","title":"Overview","pathname":"/kitaru/adapters/adapters","siteSpaceId":"sitesp_zUxJN","icon":"puzzle-piece","description":"Use Kitaru with PydanticAI, OpenAI Agents, Claude Agent SDK, Gemini Interactions, and LangGraph.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Adapters"}]},{"id":"iiOo4wYH4K6fDhJMCaJT","title":"Pydantic AI","pathname":"/kitaru/adapters/pydantic-ai","siteSpaceId":"sitesp_zUxJN","icon":"cube","description":"Make any PydanticAI agent replayable, resumable, and observable by wrapping it once with KitaruAgent","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Adapters"}]},{"id":"isuczCq30zR8fJrUKXHc","title":"OpenAI Agents","pathname":"/kitaru/adapters/openai-agents","siteSpaceId":"sitesp_zUxJN","icon":"robot","description":"Wrap an OpenAI Agents SDK Agent with KitaruRunner so calls are durable and replayable inside Kitaru flows","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Adapters"}]},{"id":"mdqsj9HOnQPI3WlO5P5X","title":"Claude Agent SDK","pathname":"/kitaru/adapters/claude-agent-sdk","siteSpaceId":"sitesp_zUxJN","icon":"comments","description":"Wrap Claude Agent SDK invocations in Kitaru checkpoints, capture session context, and replay completed Claude calls honestly","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Adapters"}]},{"id":"yr0zmdh7X1YQ6MCORZ3G","title":"Gemini Interactions","pathname":"/kitaru/adapters/gemini-interactions","siteSpaceId":"sitesp_zUxJN","icon":"gem","description":"Make Gemini Interactions API turns replayable and observable with Kitaru checkpoints, including Antigravity managed-agent runs","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Adapters"}]},{"id":"uTOehtJBlCa9iObpVLDf","title":"LangGraph","pathname":"/kitaru/adapters/langgraph","siteSpaceId":"sitesp_zUxJN","icon":"diagram-project","description":"Run LangGraph graphs inside Kitaru flows with either coarse graph-call checkpoints or granular LangChain call checkpoints","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Adapters"}]},{"id":"3nyJ8Ag5Y5mPmEV4uc0C","title":"Docker","pathname":"/kitaru/server-deployment/docker","siteSpaceId":"sitesp_zUxJN","icon":"docker","description":"Deploy the Kitaru server using Docker or Docker Compose","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Server Deployment"}]},{"id":"59D56yXD1Bnb1pInUUEm","title":"Helm","pathname":"/kitaru/server-deployment/helm","siteSpaceId":"sitesp_zUxJN","icon":"ship","description":"Deploy the Kitaru server on Kubernetes using the Kitaru Helm chart","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Server Deployment"}]},{"id":"Md0YgNiF5z5NwLEvQ5aR","title":"Overview","pathname":"/kitaru/agent-runtime-stacks/stacks","siteSpaceId":"sitesp_zUxJN","icon":"layer-group","description":"Create, inspect, switch, and delete the stacks Kitaru uses for execution","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Runtime (Stacks)"}]},{"id":"UEBAQ0eNbl2HWNqjGHNd","title":"Kubernetes Stacks","pathname":"/kitaru/agent-runtime-stacks/kubernetes-stacks","siteSpaceId":"sitesp_zUxJN","icon":"dharmachakra","description":"Create, inspect, use, and clean up Kubernetes-backed stacks in Kitaru","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Runtime (Stacks)"}]},{"id":"MHYzqWJhVXogczqJhSKO","title":"Vertex Stacks","pathname":"/kitaru/agent-runtime-stacks/vertex-stacks","siteSpaceId":"sitesp_zUxJN","icon":"google","description":"Create, inspect, and use Vertex AI-backed stacks with GCS storage","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Runtime (Stacks)"}]},{"id":"CwCoxwwFTvKf7ouLKwom","title":"SageMaker Stacks","pathname":"/kitaru/agent-runtime-stacks/sagemaker-stacks","siteSpaceId":"sitesp_zUxJN","icon":"aws","description":"Create, inspect, and use SageMaker-backed stacks with S3 storage","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Runtime (Stacks)"}]},{"id":"WbBiMlyiMSZfY3DkO7f7","title":"AzureML Stacks","pathname":"/kitaru/agent-runtime-stacks/azureml-stacks","siteSpaceId":"sitesp_zUxJN","icon":"microsoft","description":"Create, inspect, and use AzureML-backed stacks with Azure Blob storage","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Runtime (Stacks)"}]},{"id":"JMn9JuNgtpCRCMIDyW6h","title":"Log Store","pathname":"/kitaru/agent-runtime-stacks/log-store","siteSpaceId":"sitesp_zUxJN","icon":"database","description":"Set, inspect, and reset Kitaru's global runtime log-store backend","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Runtime (Stacks)"}]},{"id":"bKWyQ7nmVr76lemvYneQ","title":"MCP Server","pathname":"/kitaru/agent-native/mcp-server","siteSpaceId":"sitesp_zUxJN","icon":"plug","description":"Query and manage Kitaru executions, deployments, artifacts, stacks, and secret creation through Model Context Protocol tools","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Native"}]},{"id":"dxfY4zN6l6d8rDPipYj2","title":"Claude Code Skill","pathname":"/kitaru/agent-native/claude-code-skill","siteSpaceId":"sitesp_zUxJN","icon":"wand-magic-sparkles","description":"Install the zenml-io/kitaru-skills package for Kitaru quickstarts, workflow authoring, and adapter migrations","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Agent Native"}]},{"id":"leoVl7cgdgekehjt3GXR","title":"Contributing","pathname":"/kitaru/project/contributing","siteSpaceId":"sitesp_zUxJN","icon":"code-pull-request","description":"How to contribute to Kitaru.","breadcrumbs":[{"label":"Kitaru (AI Agents)","icon":"chess-clock-flip"},{"label":"Project"}]},{"id":"swlKJPSfb34SvIJvjVgC","title":"Overview","pathname":"/user-guides","siteSpaceId":"sitesp_Ybdlv","description":"Guides, examples and projects","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"}]},{"id":"d3v22nlU73h6GvDkQIJ5","title":"Starter guide","pathname":"/user-guides/starter-guide","siteSpaceId":"sitesp_Ybdlv","icon":"seedling","description":"Kickstart your journey into MLOps with the essentials of ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"}]},{"id":"FLPBDI5eRu03DCtsoFbF","title":"Create an ML pipeline","pathname":"/user-guides/starter-guide/create-an-ml-pipeline","siteSpaceId":"sitesp_Ybdlv","description":"Start with the basics of steps and pipelines.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Starter guide","icon":"seedling"}]},{"id":"71IzSpAsi2dCm1TxABbe","title":"Cache previous executions","pathname":"/user-guides/starter-guide/cache-previous-executions","siteSpaceId":"sitesp_Ybdlv","description":"Iterating quickly with ZenML through caching.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Starter guide","icon":"seedling"}]},{"id":"X06uyk6URg6OjP2ZkcWD","title":"Manage artifacts","pathname":"/user-guides/starter-guide/manage-artifacts","siteSpaceId":"sitesp_Ybdlv","description":"Understand and adjust how ZenML versions your data.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Starter guide","icon":"seedling"}]},{"id":"ddZc0m1bd9S0sHJH5P0d","title":"Track ML models","pathname":"/user-guides/starter-guide/track-ml-models","siteSpaceId":"sitesp_Ybdlv","description":"Creating a full picture of a ML model using the Model Control Plane","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Starter guide","icon":"seedling"}]},{"id":"4l8uXxiKzpeJirEv0iNT","title":"A starter project","pathname":"/user-guides/starter-guide/starter-project","siteSpaceId":"sitesp_Ybdlv","description":"Put your new knowledge into action with a simple starter project","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Starter guide","icon":"seedling"}]},{"id":"t8IhQrN2VDhN5dkZwVm5","title":"Production guide","pathname":"/user-guides/production-guide","siteSpaceId":"sitesp_Ybdlv","icon":"tree","description":"Level up your skills in a production setting.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"}]},{"id":"M0IIeCTRZNczEJQKmK6V","title":"Deploying ZenML","pathname":"/user-guides/production-guide/deploying-zenml","siteSpaceId":"sitesp_Ybdlv","description":"Deploying ZenML is the first step to production.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"19PFQiB7q9YdORU65Eim","title":"Understanding stacks","pathname":"/user-guides/production-guide/understand-stacks","siteSpaceId":"sitesp_Ybdlv","description":"Learning how to switch the infrastructure backend of your code.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"q4WyvHGNQkbVUGxkmqCo","title":"Connecting remote storage","pathname":"/user-guides/production-guide/remote-storage","siteSpaceId":"sitesp_Ybdlv","description":"Transitioning to remote artifact storage.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"FDGDg4uzq32jqUDro0PP","title":"Orchestrate on the cloud","pathname":"/user-guides/production-guide/cloud-orchestration","siteSpaceId":"sitesp_Ybdlv","description":"Orchestrate using cloud resources.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"hoGJnQaXAFiYluAwOTcT","title":"Configure your pipeline to add compute","pathname":"/user-guides/production-guide/configure-pipeline","siteSpaceId":"sitesp_Ybdlv","description":"Add more resources to your pipeline configuration.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"B8Sgw6Omw6Gvk6m9KvWn","title":"Configure a code repository","pathname":"/user-guides/production-guide/connect-code-repository","siteSpaceId":"sitesp_Ybdlv","description":"Connect a Git repository to ZenML to track code changes and collaborate on MLOps projects.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"ZzHZ1LiWuG0fC1zeC9D9","title":"Set up CI/CD","pathname":"/user-guides/production-guide/ci-cd","siteSpaceId":"sitesp_Ybdlv","description":"Managing the lifecycle of a ZenML pipeline with Continuous Integration and Delivery","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"bm5p8jKlu6Xe12okeL3g","title":"An end-to-end project","pathname":"/user-guides/production-guide/end-to-end","siteSpaceId":"sitesp_Ybdlv","description":"Put your new knowledge in action with an end-to-end project","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Production guide","icon":"tree"}]},{"id":"acKBOqmrDTmtiWQWZbrH","title":"LLMOps guide","pathname":"/user-guides/llmops-guide","siteSpaceId":"sitesp_Ybdlv","icon":"robot","description":"Leverage the power of LLMs in your MLOps workflows with ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"}]},{"id":"8CrI2EHrn8HvRQ8Bh3SJ","title":"RAG with ZenML","pathname":"/user-guides/llmops-guide/rag-with-zenml","siteSpaceId":"sitesp_Ybdlv","description":"RAG is a sensible way to get started with LLMs.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"}]},{"id":"ElMnS8RTrkUpXbg5dMkz","title":"RAG in 85 lines of code","pathname":"/user-guides/llmops-guide/rag-with-zenml/rag-85-loc","siteSpaceId":"sitesp_Ybdlv","description":"Learn how to implement a RAG pipeline in just 85 lines of code.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"RAG with ZenML"}]},{"id":"d5u2GBLhcAvfBRQJbvOc","title":"Understanding Retrieval-Augmented Generation (RAG)","pathname":"/user-guides/llmops-guide/rag-with-zenml/understanding-rag","siteSpaceId":"sitesp_Ybdlv","description":"Understand the Retrieval-Augmented Generation (RAG) technique and its benefits.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"RAG with ZenML"}]},{"id":"uGOlOz0GNTekHHLMZ4uq","title":"Data ingestion and preprocessing","pathname":"/user-guides/llmops-guide/rag-with-zenml/data-ingestion","siteSpaceId":"sitesp_Ybdlv","description":"Understand how to ingest and preprocess data for RAG pipelines with ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"RAG with ZenML"}]},{"id":"C1BSRQDHMYW2IMX3CRO1","title":"Embeddings generation","pathname":"/user-guides/llmops-guide/rag-with-zenml/embeddings-generation","siteSpaceId":"sitesp_Ybdlv","description":"Generate embeddings to improve retrieval performance.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"RAG with ZenML"}]},{"id":"U9iX12ccIbIVZtZerok8","title":"Storing embeddings in a vector database","pathname":"/user-guides/llmops-guide/rag-with-zenml/storing-embeddings-in-a-vector-database","siteSpaceId":"sitesp_Ybdlv","description":"Store embeddings in a vector database for efficient retrieval.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"RAG with ZenML"}]},{"id":"bGu3E0nstreOhdYz35oM","title":"Basic RAG inference pipeline","pathname":"/user-guides/llmops-guide/rag-with-zenml/basic-rag-inference-pipeline","siteSpaceId":"sitesp_Ybdlv","description":"Use your RAG components to generate responses to prompts.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"RAG with ZenML"}]},{"id":"bYqAETjf6LPzwVtb2DAr","title":"Evaluation and metrics","pathname":"/user-guides/llmops-guide/evaluation","siteSpaceId":"sitesp_Ybdlv","description":"Track how your RAG pipeline improves using evaluation and metrics.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"}]},{"id":"kBc4jybxfJGlZSmybJ3H","title":"Evaluation in 65 lines of code","pathname":"/user-guides/llmops-guide/evaluation/evaluation-in-65-loc","siteSpaceId":"sitesp_Ybdlv","description":"Learn how to implement evaluation for RAG in just 65 lines of code.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Evaluation and metrics"}]},{"id":"k1JE87HkanAhydOc5dnK","title":"Retrieval evaluation","pathname":"/user-guides/llmops-guide/evaluation/retrieval","siteSpaceId":"sitesp_Ybdlv","description":"See how the retrieval component responds to changes in the pipeline.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Evaluation and metrics"}]},{"id":"zf7nRmumWwn8qt1yzSQA","title":"Generation evaluation","pathname":"/user-guides/llmops-guide/evaluation/generation","siteSpaceId":"sitesp_Ybdlv","description":"Evaluate the generation component of your RAG pipeline.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Evaluation and metrics"}]},{"id":"8PEfbqwrwZRHBp8r7WgG","title":"Evaluation in practice","pathname":"/user-guides/llmops-guide/evaluation/evaluation-in-practice","siteSpaceId":"sitesp_Ybdlv","description":"Learn how to evaluate the performance of your RAG system in practice.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Evaluation and metrics"}]},{"id":"VVK0H2Gn1yJdS88FpdKT","title":"Reranking for better retrieval","pathname":"/user-guides/llmops-guide/reranking","siteSpaceId":"sitesp_Ybdlv","description":"Add reranking to your RAG inference for better retrieval performance.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"}]},{"id":"Ysr56ZGQKaHJ8gIY1TlI","title":"Understanding reranking","pathname":"/user-guides/llmops-guide/reranking/understanding-reranking","siteSpaceId":"sitesp_Ybdlv","description":"Understand how reranking works.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Reranking for better retrieval"}]},{"id":"F84l2ZBzYrb2zksaCLkW","title":"Implementing reranking in ZenML","pathname":"/user-guides/llmops-guide/reranking/implementing-reranking","siteSpaceId":"sitesp_Ybdlv","description":"Learn how to implement reranking in ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Reranking for better retrieval"}]},{"id":"2wS2OPCaEgL3rRxbgrcN","title":"Evaluating reranking performance","pathname":"/user-guides/llmops-guide/reranking/evaluating-reranking-performance","siteSpaceId":"sitesp_Ybdlv","description":"Evaluate the performance of your reranking model.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Reranking for better retrieval"}]},{"id":"3RAo9vUfMVtHvGiN68hp","title":"Improve retrieval by finetuning embeddings","pathname":"/user-guides/llmops-guide/finetuning-embeddings","siteSpaceId":"sitesp_Ybdlv","description":"Finetune embeddings on custom synthetic data to improve retrieval performance.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"}]},{"id":"lhKu7HLnbckHnEjtYusL","title":"Synthetic data generation","pathname":"/user-guides/llmops-guide/finetuning-embeddings/synthetic-data-generation","siteSpaceId":"sitesp_Ybdlv","description":"Generate synthetic data with distilabel to finetune embeddings.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Improve retrieval by finetuning embeddings"}]},{"id":"ETurIrkba3bE8oBcrGvo","title":"Finetuning embeddings with Sentence Transformers","pathname":"/user-guides/llmops-guide/finetuning-embeddings/finetuning-embeddings-with-sentence-transformers","siteSpaceId":"sitesp_Ybdlv","description":"Finetune embeddings with Sentence Transformers.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Improve retrieval by finetuning embeddings"}]},{"id":"O5mEGaDCz7pq4OdEke2h","title":"Evaluating finetuned embeddings","pathname":"/user-guides/llmops-guide/finetuning-embeddings/evaluating-finetuned-embeddings","siteSpaceId":"sitesp_Ybdlv","description":"Evaluate finetuned embeddings and compare to original base embeddings.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Improve retrieval by finetuning embeddings"}]},{"id":"4qCYqkdqXz4p5xmYPG82","title":"Finetuning LLMs with ZenML","pathname":"/user-guides/llmops-guide/finetuning-llms","siteSpaceId":"sitesp_Ybdlv","description":"Finetune LLMs for specific tasks or to improve performance and cost.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"}]},{"id":"AX4BbbLBW70GrU3ANMG0","title":"Finetuning in 100 lines of code","pathname":"/user-guides/llmops-guide/finetuning-llms/finetuning-100-loc","siteSpaceId":"sitesp_Ybdlv","description":"Learn how to implement an LLM fine-tuning pipeline in just 100 lines of code.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Finetuning LLMs with ZenML"}]},{"id":"rIsMxv8dcjNoPWGrXwtU","title":"Why and when to finetune LLMs","pathname":"/user-guides/llmops-guide/finetuning-llms/why-and-when-to-finetune-llms","siteSpaceId":"sitesp_Ybdlv","description":"Deciding when is the right time to finetune LLMs.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Finetuning LLMs with ZenML"}]},{"id":"T9K7QbI8LuOCZ4lrnV1J","title":"Starter choices with finetuning","pathname":"/user-guides/llmops-guide/finetuning-llms/starter-choices-for-finetuning-llms","siteSpaceId":"sitesp_Ybdlv","description":"Get started with finetuning LLMs by picking a use case and data.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Finetuning LLMs with ZenML"}]},{"id":"UPeNidMxTmpV5JB6eY6U","title":"Finetuning with 🤗 Accelerate","pathname":"/user-guides/llmops-guide/finetuning-llms/finetuning-with-accelerate","siteSpaceId":"sitesp_Ybdlv","description":"Finetuning an LLM with Accelerate and PEFT","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Finetuning LLMs with ZenML"}]},{"id":"b6pDX6OLPu5pTa8gzfeY","title":"Evaluation for finetuning","pathname":"/user-guides/llmops-guide/finetuning-llms/evaluation-for-finetuning","siteSpaceId":"sitesp_Ybdlv","description":"","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Finetuning LLMs with ZenML"}]},{"id":"Wk3NXvr8rUTcMeAqVJx4","title":"Deploying finetuned models","pathname":"/user-guides/llmops-guide/finetuning-llms/deploying-finetuned-models","siteSpaceId":"sitesp_Ybdlv","description":"","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Finetuning LLMs with ZenML"}]},{"id":"esXOGVla5XRVDo1rZS2z","title":"Next steps","pathname":"/user-guides/llmops-guide/finetuning-llms/next-steps","siteSpaceId":"sitesp_Ybdlv","description":"","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"LLMOps guide","icon":"robot"},{"label":"Finetuning LLMs with ZenML"}]},{"id":"0s0LUp5qbA272aqppbIB","title":"Managing scheduled pipelines","pathname":"/user-guides/tutorial/managing-scheduled-pipelines","siteSpaceId":"sitesp_Ybdlv","icon":"calendar","description":"A step-by-step tutorial on how to create, update, and delete scheduled   pipelines in ZenML","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"IgmceyVfNmSpbAPAXK2f","title":"Trigger pipelines from external systems","pathname":"/user-guides/tutorial/trigger-pipelines-from-external-systems","siteSpaceId":"sitesp_Ybdlv","icon":"traffic-light-go","description":"A step-by-step tutorial on effectively triggering your ZenML pipelines from external systems","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"xhTDTGSbErKI9DgABCcU","title":"Hyper-parameter tuning","pathname":"/user-guides/tutorial/hyper-parameter-tuning","siteSpaceId":"sitesp_Ybdlv","icon":"itunes-note","description":"Running a hyperparameter tuning trial with ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"dWTQahTBHP1H2cvXhDvO","title":"Inspecting past pipeline runs","pathname":"/user-guides/tutorial/fetching-pipelines","siteSpaceId":"sitesp_Ybdlv","icon":"rectangle-vertical-history","description":"Inspecting a finished pipeline run and its outputs.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"sCOibpnN8mxnN5OduB9U","title":"Replaying runs and steps","pathname":"/user-guides/tutorial/replaying-runs-steps","siteSpaceId":"sitesp_Ybdlv","icon":"rotate-right","description":"Re-run pipelines or individual steps using artifacts from a previous execution.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"IGk8bhjZAJjaLfXbQdKf","title":"Train with GPUs","pathname":"/user-guides/tutorial/distributed-training","siteSpaceId":"sitesp_Ybdlv","icon":"microchip-ai","description":"Train ZenML pipelines on GPUs and scale out with 🤗 Accelerate.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"VONCqyEAFXEwy8vfFhBi","title":"Running notebooks remotely","pathname":"/user-guides/tutorial/run-remote-notebooks","siteSpaceId":"sitesp_Ybdlv","icon":"notebook","description":"Leveraging Jupyter notebooks with ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"nEXehGQaRLDh6x2nnQ8r","title":"Managing machine learning datasets","pathname":"/user-guides/tutorial/datasets","siteSpaceId":"sitesp_Ybdlv","icon":"table","description":"Model datasets using simple abstractions.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"eR9m5XWKYmBl7a9252AY","title":"Handling big data","pathname":"/user-guides/tutorial/manage-big-data","siteSpaceId":"sitesp_Ybdlv","icon":"database","description":"Learn about how to manage big data with ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Tutorials"}]},{"id":"k7YVKCjVbyLIrcQiFmhS","title":"5-minute Quick Wins","pathname":"/user-guides/best-practices/quick-wins","siteSpaceId":"sitesp_Ybdlv","icon":"bolt","description":"5-minute Quick Wins","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"DOZ66Tbrv2IxZVcraIv1","title":"Keep Your Dashboard Clean","pathname":"/user-guides/best-practices/keep-your-dashboard-server-clean","siteSpaceId":"sitesp_Ybdlv","icon":"washing-machine","description":"Learn how to keep your pipeline runs clean during development.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"Qo86xiBcGFaensDLU7P0","title":"Configure Python environments","pathname":"/user-guides/best-practices/configure-python-environments","siteSpaceId":"sitesp_Ybdlv","icon":"python","description":"Navigating multiple development environments.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"md4TO8mO2R1e6arQMQjU","title":"Shared Components for Teams","pathname":"/user-guides/best-practices/shared-components-for-teams","siteSpaceId":"sitesp_Ybdlv","icon":"arrow-up-from-bracket","description":"Sharing code and libraries within teams.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"WG1CHN0n24bzVe71EujG","title":"Organizing Stacks Pipelines Models","pathname":"/user-guides/best-practices/organizing-pipelines-and-models","siteSpaceId":"sitesp_Ybdlv","icon":"inbox-full","description":"A step-by-step tutorial on effectively organizing your ML assets in ZenML using tags and projects","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"A669Erp4VNRH1XECa2BA","title":"Access Management","pathname":"/user-guides/best-practices/access-management","siteSpaceId":"sitesp_Ybdlv","icon":"usb-drive","description":"A guide on managing user roles and responsibilities in ZenML.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"P1uDgIWcbu5DadDNUxkQ","title":"Setting up a Project Repository","pathname":"/user-guides/best-practices/set-up-your-repository","siteSpaceId":"sitesp_Ybdlv","icon":"code","description":"Setting your team up for success with a well-architected ZenML project.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"w4VInvKfTBf52UAghE3V","title":"Infrastructure as Code with Terraform","pathname":"/user-guides/best-practices/iac","siteSpaceId":"sitesp_Ybdlv","icon":"cubes","description":"Best practices for using IaC with ZenML","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"LZqon8f0XPbBDxld16zE","title":"Creating Templates for ML Platform","pathname":"/user-guides/best-practices/project-templates","siteSpaceId":"sitesp_Ybdlv","icon":"paw","description":"Setting your team up for success with a well-architected ZenML project.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"VjzfZmE65YU3NSRSJkD5","title":"Using VS Code extension","pathname":"/user-guides/best-practices/vscode-extension","siteSpaceId":"sitesp_Ybdlv","icon":"computer-mouse","description":"Use the ZenML VSCode extension to manage your ZenML server","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"De55moGTGWA9VbSLyqxf","title":"Leveraging MCP","pathname":"/user-guides/best-practices/mcp-chat-with-server","siteSpaceId":"sitesp_Ybdlv","icon":"waveform-lines","description":"Chat with your ZenML server","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"WU9hrAxPdvvlPAAxuTu1","title":"Debugging and Solving Issues","pathname":"/user-guides/best-practices/debug-and-solve-issues","siteSpaceId":"sitesp_Ybdlv","icon":"bug","description":"A guide to debug common issues and get help.","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"lZD91XqIOffbYZlmnBP0","title":"Choosing an Orchestrator","pathname":"/user-guides/best-practices/choose-orchestration-environment","siteSpaceId":"sitesp_Ybdlv","icon":"server","description":"How to choose the right orchestration environment","breadcrumbs":[{"label":"Learn","icon":"graduation-cap"},{"label":"Best practices"}]},{"id":"JRK8SCtnUoyfvLWSbtEi","title":"Introduction","pathname":"/pro","siteSpaceId":"sitesp_saISB","description":"Learn about the ZenML Pro features and deployment scenarios.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"}]},{"id":"RPakzUU5OcIyrdnIeDVH","title":"System Architecture","pathname":"/pro/system-architecture","siteSpaceId":"sitesp_saISB","icon":"diagram-project","description":"Understanding ZenML Pro services and how they communicate.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"}]},{"id":"SRIHqX29ien2KP07tStV","title":"Scenarios","pathname":"/pro/deployments/scenarios","siteSpaceId":"sitesp_saISB","icon":"code-merge","description":"Compare ZenML Pro deployment scenarios to find the right fit for your organization.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"}]},{"id":"dCCw5FEzYk3jf13wmmWu","title":"SaaS","pathname":"/pro/deployments/scenarios/saas-deployment","siteSpaceId":"sitesp_saISB","icon":"cloud","description":"Learn about ZenML Pro SaaS deployment - the fastest way to get started with production-ready MLOps.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Scenarios","icon":"code-merge"}]},{"id":"Ordwm7itpK7wMs6DTp1W","title":"Hybrid","pathname":"/pro/deployments/scenarios/hybrid-deployment","siteSpaceId":"sitesp_saISB","icon":"building-shield","description":"Learn about ZenML Pro Hybrid SaaS deployment - balancing control with convenience for enterprise MLOps.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Scenarios","icon":"code-merge"}]},{"id":"FGwGBjTbVB9lXd1MrPQJ","title":"Self-hosted","pathname":"/pro/deployments/scenarios/self-hosted-deployment","siteSpaceId":"sitesp_saISB","icon":"shield-halved","description":"Learn about ZenML Pro Self-hosted deployment - complete control and data sovereignty for the strictest security requirements.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Scenarios","icon":"code-merge"}]},{"id":"5gsAj5INzNAHq2RBenTi","title":"Deployment Details","pathname":"/pro/deployments/deploy-details","siteSpaceId":"sitesp_saISB","icon":"sliders","description":"Reference documentation for deploying ZenML Pro components.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"}]},{"id":"QZxbSnfNOx7aFx0bBqlx","title":"Prerequisites","pathname":"/pro/deployments/deploy-details/deploy-prerequisites","siteSpaceId":"sitesp_saISB","description":"Prepare for deploying the ZenML Pro control plane and/or workspace servers in a self-hosted environment.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"}]},{"id":"5sQiuemPIVxf9f7zEsTb","title":"Control Plane","pathname":"/pro/deployments/deploy-details/control-plane","siteSpaceId":"sitesp_saISB","icon":"shield-halved","description":"Configuration reference for the ZenML Control Plane.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"}]},{"id":"TvRrAysb3aDNdyBswQAk","title":"Kubernetes with Helm","pathname":"/pro/deployments/deploy-details/control-plane/deploy-control-plane-k8s","siteSpaceId":"sitesp_saISB","description":"Deploy ZenML Pro Self-hosted on Kubernetes with Helm - complete self-hosted setup with no external dependencies.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"},{"label":"Control Plane","icon":"shield-halved"}]},{"id":"pBVgKfSOFtiVZBjR9V6B","title":"Workspace Server","pathname":"/pro/deployments/deploy-details/workspace-server","siteSpaceId":"sitesp_saISB","icon":"database","description":"Configuration reference for the ZenML Workspace Server.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"}]},{"id":"5BQHvO3nalwB19gV1za7","title":"Enroll Workspaces","pathname":"/pro/deployments/deploy-details/workspace-server/enroll-workspace","siteSpaceId":"sitesp_saISB","description":"Enroll a ZenML Pro workspace in the ZenML Pro control plane","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"},{"label":"Workspace Server","icon":"database"}]},{"id":"kRiUdYf89U2r2k5cPjt8","title":"Kubernetes with Helm","pathname":"/pro/deployments/deploy-details/workspace-server/deploy-workspace-k8s","siteSpaceId":"sitesp_saISB","description":"Deploy ZenML Pro workspaces on Kubernetes with Helm and enroll them in the ZenML Pro control plane","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"},{"label":"Workspace Server","icon":"database"}]},{"id":"u8tod6ccabiNVxTMQYcA","title":"AWS ECS","pathname":"/pro/deployments/deploy-details/workspace-server/deploy-workspace-ecs","siteSpaceId":"sitesp_saISB","description":"Deploy ZenML Pro Hybrid on AWS ECS with a managed control plane.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"},{"label":"Workspace Server","icon":"database"}]},{"id":"T6EdCpTDKKC83N6RbhPU","title":"Enable Snapshot Support","pathname":"/pro/deployments/deploy-details/workspace-server/deploy-workspace-snapshots","siteSpaceId":"sitesp_saISB","description":"Enable snapshot support for self-hosted ZenML Pro workspaces","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"},{"label":"Workspace Server","icon":"database"}]},{"id":"N46IwsuPm53frHwvNIFB","title":"Enable Event Triggers and Schedules","pathname":"/pro/deployments/deploy-details/workspace-server/deploy-workspace-event-triggers-and-schedules","siteSpaceId":"sitesp_saISB","description":"Enable ZenML Pro event triggers and schedules (scheduler and executor microservices) for self-hosted workspace servers on Kubernetes.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"},{"label":"Workspace Server","icon":"database"}]},{"id":"BaKIE4SneGjsjHG78pRK","title":"Enable Resource Pools","pathname":"/pro/deployments/deploy-details/workspace-server/deploy-workspace-resource-pools","siteSpaceId":"sitesp_saISB","description":"Enable the ZenML Pro resource pool reconciler microservice for self-hosted workspace servers on Kubernetes.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Deployments"},{"label":"Deployment Details","icon":"sliders"},{"label":"Workspace Server","icon":"database"}]},{"id":"2egozh8a9G0FAzSnM9p5","title":"Single Sign-On (SSO)","pathname":"/pro/manage/sso","siteSpaceId":"sitesp_saISB","description":"Configure Single Sign-On (SSO) authentication for ZenML Pro self-hosted deployments.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Manage"}]},{"id":"TklfmASRwqFcqtwKNcIR","title":"User Accounts","pathname":"/pro/manage/user-accounts","siteSpaceId":"sitesp_saISB","description":"Understand and manage user accounts in ZenML Pro self-hosted deployments.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Manage"}]},{"id":"cgMCeCjQWrR1X34N7qzF","title":"Upgrades and Updates","pathname":"/pro/manage/upgrades-updates","siteSpaceId":"sitesp_saISB","icon":"arrow-up-right-dots","description":"How to upgrade ZenML Pro components.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Manage"}]},{"id":"d12pBmKgOq7RyvB6VMoJ","title":"Control Plane","pathname":"/pro/manage/upgrades-updates/upgrades-control-plane","siteSpaceId":"sitesp_saISB","icon":"shield-halved","description":"How to upgrade the ZenML Control Plane.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Manage"},{"label":"Upgrades and Updates","icon":"arrow-up-right-dots"}]},{"id":"TmcdbkzP0SF1IPltBmHx","title":"Workspace Server","pathname":"/pro/manage/upgrades-updates/upgrades-workspace-server","siteSpaceId":"sitesp_saISB","icon":"database","description":"How to upgrade ZenML Workspace Servers.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Manage"},{"label":"Upgrades and Updates","icon":"arrow-up-right-dots"}]},{"id":"tvKLWhTsFWrfCDDtQNgP","title":"Hierarchy","pathname":"/pro/core-concepts/hierarchy","siteSpaceId":"sitesp_saISB","icon":"ball-pile","description":"Understanding ZenML's hierarchical structure","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"D6ibVLHAd4HlNMwV5H4z","title":"Organizations","pathname":"/pro/core-concepts/organization","siteSpaceId":"sitesp_saISB","icon":"building","description":"Manage organizations in ZenML","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"J3d65KYDKudNpt4IXtdg","title":"Workspaces","pathname":"/pro/core-concepts/workspaces","siteSpaceId":"sitesp_saISB","icon":"briefcase","description":"Learn how to use workspaces in ZenML Pro.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"zr3Za7cF7HKx0Vj5iMoS","title":"Projects","pathname":"/pro/core-concepts/projects","siteSpaceId":"sitesp_saISB","icon":"clipboard-list","description":"Managing projects in ZenML","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"8uz2ocz1oApQ4F9Lutac","title":"Teams","pathname":"/pro/core-concepts/teams","siteSpaceId":"sitesp_saISB","icon":"people-group","description":"Learn about Teams in ZenML Pro and how they can be used to manage groups of users across your organization and workspaces.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"bibKT7gFnoYL8Oczt9Ht","title":"Snapshots","pathname":"/pro/core-concepts/snapshots","siteSpaceId":"sitesp_saISB","icon":"camera","description":"Trigger pipelines from the dashboard, SDK, CLI, or REST API.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"jBZJjLW5orK53EwTnQtt","title":"Triggers","pathname":"/pro/core-concepts/triggers","siteSpaceId":"sitesp_saISB","icon":"server","description":"Trigger pipelines by schedule or event.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"W7cEFZnyDUxVN6d52ljQ","title":"Resource Pools","pathname":"/pro/core-concepts/resource-pools","siteSpaceId":"sitesp_saISB","icon":"layer-group","description":"Fair GPU and compute sharing for AI/ML teams: dependable production capacity, shared pools, idle reuse, and workspace-level quotas.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"}]},{"id":"IGkGLYGepPgyOfqr0oC3","title":"Core Concepts","pathname":"/pro/core-concepts/resource-pools/resource-pools-core-concepts","siteSpaceId":"sitesp_saISB","description":"Precise definitions for ZenML Pro resource pools, subject policies, and resource requests.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"},{"label":"Resource Pools","icon":"layer-group"}]},{"id":"Y7joYXChVVnu3ioErls1","title":"Reconciliation Process","pathname":"/pro/core-concepts/resource-pools/resource-pools-reconciliation","siteSpaceId":"sitesp_saISB","description":"How the resource pool reconciliation process works in ZenML Pro.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"},{"label":"Resource Pools","icon":"layer-group"}]},{"id":"1h7vatsI6Owmbtzs1NK4","title":"Examples","pathname":"/pro/core-concepts/resource-pools/resource-pools-examples","siteSpaceId":"sitesp_saISB","description":"Step-by-step ZenML Pro resource pool examples: pool JSON, policy JSON, ResourceSettings, and outcomes for new users.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Core Concepts"},{"label":"Resource Pools","icon":"layer-group"}]},{"id":"7DizWfU9fJ8MVlowvNlT","title":"Roles & Permissions","pathname":"/pro/access-management/roles","siteSpaceId":"sitesp_saISB","icon":"lock","description":"Learn about the different roles and permissions you can assign to your team members in ZenML Pro.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Access Management"}]},{"id":"1WkbvayvKOPAMX3lWQPr","title":"Trusted domains","pathname":"/pro/access-management/trusted-domains","siteSpaceId":"sitesp_saISB","icon":"globe","description":"Organization trusted domains in ZenML Pro — user visibility, invitations, SSO, and how operators configure them.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Access Management"}]},{"id":"KsYnBJEXrCTHVccCMXzJ","title":"Personal Access Tokens","pathname":"/pro/access-management/personal-access-tokens","siteSpaceId":"sitesp_saISB","icon":"user-lock","description":"Learn how to manage and use Personal Access Tokens.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Access Management"}]},{"id":"ptsJhvYJnMemdzAqhcA5","title":"Service Accounts","pathname":"/pro/access-management/service-accounts","siteSpaceId":"sitesp_saISB","icon":"key","description":"Learn how to manage and use service accounts and API keys .","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Access Management"}]},{"id":"roxLKImEeRB3ALB0E2qa","title":"Secrets Stores","pathname":"/pro/access-management/secrets-stores","siteSpaceId":"sitesp_saISB","icon":"lock","description":"Learn how to link your own secrets store backend to your ZenML Pro workspace.","breadcrumbs":[{"label":"ZenML Pro","icon":"star"},{"label":"Access Management"}]},{"id":"hmG9dwZOcq5aqHTOpOdk","title":"Overview","pathname":"/stacks","siteSpaceId":"sitesp_Tc7LL","description":"Overview of categories of MLOps components and third-party integrations.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"}]},{"id":"wBLeBIzA2bWnXdMMm8uc","title":"Integrations","pathname":"/stacks/integrations","siteSpaceId":"sitesp_Tc7LL","icon":"box-archive","description":"","breadcrumbs":[{"label":"Stacks","icon":"layer-group"}]},{"id":"gbJRPmvUA0bO8GzbSCZw","title":"Orchestrators","pathname":"/stacks/stack-components/orchestrators","siteSpaceId":"sitesp_Tc7LL","icon":"train-track","description":"Orchestrating the execution of ML pipelines.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"Qi1tAZ4kqKbd5HTIpVuj","title":"Local Orchestrator","pathname":"/stacks/stack-components/orchestrators/local","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run locally.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"33rT9tPML3Qoymwmuxbo","title":"Local Docker Orchestrator","pathname":"/stacks/stack-components/orchestrators/local-docker","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run in Docker.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"TrEbN7ZP3UGM6dFViKLU","title":"Kubeflow Orchestrator","pathname":"/stacks/stack-components/orchestrators/kubeflow","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Kubeflow.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"mTahB0d57mBdvtjv5dx2","title":"Kubernetes Orchestrator","pathname":"/stacks/stack-components/orchestrators/kubernetes","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Kubernetes clusters.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"viV3k1yEs5uD6OkyKyLU","title":"Google Cloud VertexAI Orchestrator","pathname":"/stacks/stack-components/orchestrators/vertex","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Vertex AI.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"975jY2RQ6R0wlLxeLgiE","title":"AWS Sagemaker Orchestrator","pathname":"/stacks/stack-components/orchestrators/sagemaker","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Amazon Sagemaker.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"hW9lNDbllP2h8B1Usa4f","title":"AzureML Orchestrator","pathname":"/stacks/stack-components/orchestrators/azureml","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on AzureML.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"7sJWLyrsYK8A3mFbR82d","title":"Databricks Orchestrator","pathname":"/stacks/stack-components/orchestrators/databricks","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Databricks.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"NNe8mzTRncmU9fpeyy7U","title":"Tekton Orchestrator","pathname":"/stacks/stack-components/orchestrators/tekton","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Tekton.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"OMTlpGsQ5CsFd2etBmFj","title":"Airflow Orchestrator","pathname":"/stacks/stack-components/orchestrators/airflow","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Airflow.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"BhjJ5SDEQM4YNrkgg8bz","title":"Skypilot VM Orchestrator","pathname":"/stacks/stack-components/orchestrators/skypilot-vm","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on VMs using SkyPilot.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"cUmEuDrcnuf4xogMicIy","title":"HyperAI Orchestrator","pathname":"/stacks/stack-components/orchestrators/hyperai","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on HyperAI.ai instances.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"RhB7iN9YSxHzt1OmqGWi","title":"Lightning AI Orchestrator","pathname":"/stacks/stack-components/orchestrators/lightning","siteSpaceId":"sitesp_Tc7LL","description":"Orchestrating your pipelines to run on Lightning AI.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"T0l20i66wz9vjS2yyanI","title":"Develop a custom orchestrator","pathname":"/stacks/stack-components/orchestrators/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom orchestrator.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Orchestrators","icon":"train-track"}]},{"id":"DAMHnJMwirQZtsTfqvvL","title":"Deployers","pathname":"/stacks/stack-components/deployers","siteSpaceId":"sitesp_Tc7LL","icon":"rocket-launch","description":"Deploy pipelines as HTTP services for real-time execution","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"1LFl8xq2zUACmR5NINBE","title":"Local Deployer","pathname":"/stacks/stack-components/deployers/local","siteSpaceId":"sitesp_Tc7LL","description":"Deploying pipelines on your local machine as background processes.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Deployers","icon":"rocket-launch"}]},{"id":"WsXFrUDdPtWSEdJpTw6t","title":"Docker Deployer","pathname":"/stacks/stack-components/deployers/docker","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your pipelines locally with Docker.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Deployers","icon":"rocket-launch"}]},{"id":"4Y3c61BY240gpTzIX6ob","title":"Kubernetes Deployer","pathname":"/stacks/stack-components/deployers/kubernetes","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your pipelines to Kubernetes clusters.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Deployers","icon":"rocket-launch"}]},{"id":"wMTW5LvsV5PbcYIeprkv","title":"AWS App Runner Deployer","pathname":"/stacks/stack-components/deployers/aws-app-runner","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your pipelines to AWS App Runner.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Deployers","icon":"rocket-launch"}]},{"id":"G5ew9zwd1VvjaLPogf7g","title":"GCP Cloud Run Deployer","pathname":"/stacks/stack-components/deployers/gcp-cloud-run","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your pipelines to GCP Cloud Run.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Deployers","icon":"rocket-launch"}]},{"id":"yQxxXkuH4djTufcy1xr0","title":"Hugging Face Deployer","pathname":"/stacks/stack-components/deployers/huggingface","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your pipelines to Hugging Face Spaces.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Deployers","icon":"rocket-launch"}]},{"id":"jvdRCSTEt47rvvDKYkzZ","title":"Artifact Stores","pathname":"/stacks/stack-components/artifact-stores","siteSpaceId":"sitesp_Tc7LL","icon":"folder-closed","description":"Setting up a persistent storage for your artifacts.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"Z6DubCTERufJEln7I5K0","title":"Local Artifact Store","pathname":"/stacks/stack-components/artifact-stores/local","siteSpaceId":"sitesp_Tc7LL","description":"Storing artifacts on your local filesystem.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Artifact Stores","icon":"folder-closed"}]},{"id":"XgrzRytcryOZhrgAu1V8","title":"Amazon Simple Cloud Storage (S3)","pathname":"/stacks/stack-components/artifact-stores/s3","siteSpaceId":"sitesp_Tc7LL","description":"Storing artifacts in an AWS S3 bucket.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Artifact Stores","icon":"folder-closed"}]},{"id":"qr20PWVLtOSg9V6ULA8t","title":"Google Cloud Storage (GCS)","pathname":"/stacks/stack-components/artifact-stores/gcp","siteSpaceId":"sitesp_Tc7LL","description":"Storing artifacts using GCP Cloud Storage.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Artifact Stores","icon":"folder-closed"}]},{"id":"Afyotk4hMPywjYMYszxp","title":"Azure Blob Storage","pathname":"/stacks/stack-components/artifact-stores/azure","siteSpaceId":"sitesp_Tc7LL","description":"Storing artifacts using Azure Blob Storage","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Artifact Stores","icon":"folder-closed"}]},{"id":"ezfbo3SLV1n2muVCSvV0","title":"Alibaba Cloud OSS","pathname":"/stacks/stack-components/artifact-stores/alibaba-oss","siteSpaceId":"sitesp_Tc7LL","description":"Storing artifacts in Alibaba Cloud Object Storage Service (OSS).","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Artifact Stores","icon":"folder-closed"}]},{"id":"S7Ae6KPAqVwzjE0aKAxj","title":"MinIO","pathname":"/stacks/stack-components/artifact-stores/minio","siteSpaceId":"sitesp_Tc7LL","description":"Storing artifacts in MinIO object storage.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Artifact Stores","icon":"folder-closed"}]},{"id":"1rHMZW3Eij5qTDqwp150","title":"Develop a custom artifact store","pathname":"/stacks/stack-components/artifact-stores/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom artifact store.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Artifact Stores","icon":"folder-closed"}]},{"id":"3n9AhpilYCU8m2dAgY8R","title":"Container Registries","pathname":"/stacks/stack-components/container-registries","siteSpaceId":"sitesp_Tc7LL","icon":"box","description":"Setting up a storage for Docker images.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"rG3yLBvwFdSXoNtIYg3r","title":"Default Container Registry","pathname":"/stacks/stack-components/container-registries/default","siteSpaceId":"sitesp_Tc7LL","description":"Storing container images locally.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Container Registries","icon":"box"}]},{"id":"23Pu3PdiinoO6242y23Y","title":"DockerHub","pathname":"/stacks/stack-components/container-registries/dockerhub","siteSpaceId":"sitesp_Tc7LL","description":"Storing container images in DockerHub.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Container Registries","icon":"box"}]},{"id":"044HNAx6fpwvCq2U0Pg8","title":"Amazon Elastic Container Registry (ECR)","pathname":"/stacks/stack-components/container-registries/aws","siteSpaceId":"sitesp_Tc7LL","description":"Storing container images in Amazon ECR.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Container Registries","icon":"box"}]},{"id":"jcnfx1aO5Wsl3s8QFI5q","title":"Google Cloud Container Registry","pathname":"/stacks/stack-components/container-registries/gcp","siteSpaceId":"sitesp_Tc7LL","description":"Storing container images in GCP.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Container Registries","icon":"box"}]},{"id":"IIls4JmgYlb0A6ujUBa0","title":"Azure Container Registry","pathname":"/stacks/stack-components/container-registries/azure","siteSpaceId":"sitesp_Tc7LL","description":"Storing container images in Azure.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Container Registries","icon":"box"}]},{"id":"JvPBArYo4sYDOwJpswQE","title":"GitHub Container Registry","pathname":"/stacks/stack-components/container-registries/github","siteSpaceId":"sitesp_Tc7LL","description":"Storing container images in GitHub.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Container Registries","icon":"box"}]},{"id":"SntMF04tAyulaZSf0WmQ","title":"Develop a custom container registry","pathname":"/stacks/stack-components/container-registries/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom container registry.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Container Registries","icon":"box"}]},{"id":"xJYnma2zaJ4ssfflfuxv","title":"Log Stores","pathname":"/stacks/stack-components/log-stores","siteSpaceId":"sitesp_Tc7LL","icon":"file-lines","description":"Storing and retrieving logs from your ML pipelines.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"vIhD6tHZgGhOJOoRmDSG","title":"Artifact Log Store","pathname":"/stacks/stack-components/log-stores/artifact","siteSpaceId":"sitesp_Tc7LL","description":"Storing logs in your artifact store.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Log Stores","icon":"file-lines"}]},{"id":"Hp6tOYelXowTelpyQFgt","title":"OpenTelemetry Log Store","pathname":"/stacks/stack-components/log-stores/otel","siteSpaceId":"sitesp_Tc7LL","description":"Exporting logs to any OpenTelemetry-compatible backend.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Log Stores","icon":"file-lines"}]},{"id":"FiNqZ4LLacugALLr2o7C","title":"Datadog Log Store","pathname":"/stacks/stack-components/log-stores/datadog","siteSpaceId":"sitesp_Tc7LL","description":"Exporting logs to Datadog's log management platform.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Log Stores","icon":"file-lines"}]},{"id":"EmHlDlaAhPB5Baj2yb2N","title":"Develop a Custom Log Store","pathname":"/stacks/stack-components/log-stores/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom log store.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Log Stores","icon":"file-lines"}]},{"id":"cCYgYvMRXztNT6UL2UCe","title":"Step Operators","pathname":"/stacks/stack-components/step-operators","siteSpaceId":"sitesp_Tc7LL","icon":"arrow-progress","description":"Executing individual steps in specialized environments.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"LrGfvHfEElMWvCDn9oFF","title":"Amazon SageMaker","pathname":"/stacks/stack-components/step-operators/sagemaker","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps in SageMaker.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"E0Zt5MUQ9XQrVCHsyJUg","title":"AzureML","pathname":"/stacks/stack-components/step-operators/azureml","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps in AzureML.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"MQM3LnZNNSU2FvgI08U6","title":"Databricks","pathname":"/stacks/stack-components/step-operators/databricks","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps on Databricks.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"apBRfEo0ZkYxF3h9qn2y","title":"Google Cloud VertexAI","pathname":"/stacks/stack-components/step-operators/vertex","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps in Vertex AI.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"iQ2FDnHdOsDdpbBOHL6u","title":"Kubernetes","pathname":"/stacks/stack-components/step-operators/kubernetes","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps in Kubernetes Pods.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"OgWO1lh88eIbfipyOeLo","title":"Run:AI","pathname":"/stacks/stack-components/step-operators/runai","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps on Run:AI clusters with fractional GPU support.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"sMgNKYwu5vBwTTQzHHcu","title":"Modal","pathname":"/stacks/stack-components/step-operators/modal","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps in Modal.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"7vd2ZTMAaWQWMTSFHOoi","title":"Spark","pathname":"/stacks/stack-components/step-operators/spark-kubernetes","siteSpaceId":"sitesp_Tc7LL","description":"Executing individual steps on Spark","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"bqFD1H5SekXNEUFDtHr3","title":"Develop a Custom Step Operator","pathname":"/stacks/stack-components/step-operators/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom step operator.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Step Operators","icon":"arrow-progress"}]},{"id":"sbeQMpbNqwKAQp3DjMGO","title":"Experiment Trackers","pathname":"/stacks/stack-components/experiment-trackers","siteSpaceId":"sitesp_Tc7LL","icon":"clipboard","description":"Logging and visualizing ML experiments.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"OGDYQVfUwDuFGhrZxhft","title":"Comet","pathname":"/stacks/stack-components/experiment-trackers/comet","siteSpaceId":"sitesp_Tc7LL","description":"Logging and visualizing experiments with Comet.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Experiment Trackers","icon":"clipboard"}]},{"id":"vuxco0oseqFmE7FD4GY0","title":"MLflow","pathname":"/stacks/stack-components/experiment-trackers/mlflow","siteSpaceId":"sitesp_Tc7LL","description":"Logging and visualizing experiments with MLflow.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Experiment Trackers","icon":"clipboard"}]},{"id":"cVKe0UYSahQpg5R82OHI","title":"Neptune","pathname":"/stacks/stack-components/experiment-trackers/neptune","siteSpaceId":"sitesp_Tc7LL","description":"Logging and visualizing experiments with neptune.ai","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Experiment Trackers","icon":"clipboard"}]},{"id":"CPSTLW4Utrs7tRNTcYst","title":"Weights & Biases","pathname":"/stacks/stack-components/experiment-trackers/wandb","siteSpaceId":"sitesp_Tc7LL","description":"Logging and visualizing experiments with Weights & Biases.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Experiment Trackers","icon":"clipboard"}]},{"id":"saq9S5zqSHhl2gIO47WA","title":"Google Cloud VertexAI Experiment Tracker","pathname":"/stacks/stack-components/experiment-trackers/vertexai","siteSpaceId":"sitesp_Tc7LL","description":"Logging and visualizing experiments with Vertex AI Experiment Tracker.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Experiment Trackers","icon":"clipboard"}]},{"id":"DfAz6HevpV3FDphxOwsu","title":"Develop a custom experiment tracker","pathname":"/stacks/stack-components/experiment-trackers/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom experiment tracker.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Experiment Trackers","icon":"clipboard"}]},{"id":"BIy2GOMPgBIxc6HtGZS4","title":"Image Builders","pathname":"/stacks/stack-components/image-builders","siteSpaceId":"sitesp_Tc7LL","icon":"box-open","description":"Building container images for your ML workflow.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"2NuyD88u8luEfbOZGcPj","title":"Local Image Builder","pathname":"/stacks/stack-components/image-builders/local","siteSpaceId":"sitesp_Tc7LL","description":"Building container images locally.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Image Builders","icon":"box-open"}]},{"id":"9bpovQ6JWAM6ObNsaVMz","title":"Kaniko Image Builder","pathname":"/stacks/stack-components/image-builders/kaniko","siteSpaceId":"sitesp_Tc7LL","description":"Building container images with Kaniko.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Image Builders","icon":"box-open"}]},{"id":"qkY8L6VyjTyLGkJAQ1Fu","title":"AWS Image Builder","pathname":"/stacks/stack-components/image-builders/aws","siteSpaceId":"sitesp_Tc7LL","description":"Building container images with AWS CodeBuild","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Image Builders","icon":"box-open"}]},{"id":"SZA6smG2OZJgbxo3moEK","title":"Google Cloud Image Builder","pathname":"/stacks/stack-components/image-builders/gcp","siteSpaceId":"sitesp_Tc7LL","description":"Building container images with Google Cloud Build","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Image Builders","icon":"box-open"}]},{"id":"VbcEvfZPUzuVWvodRtGu","title":"Develop a Custom Image Builder","pathname":"/stacks/stack-components/image-builders/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom image builder.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Image Builders","icon":"box-open"}]},{"id":"PQEsUVbQSjxlijDewOIs","title":"Alerters","pathname":"/stacks/stack-components/alerters","siteSpaceId":"sitesp_Tc7LL","icon":"message-exclamation","description":"Sending automated alerts to chat services.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"HBaSifGbHKmGmzNkqVwN","title":"Discord Alerter","pathname":"/stacks/stack-components/alerters/discord","siteSpaceId":"sitesp_Tc7LL","description":"Sending automated alerts to a Discord channel.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Alerters","icon":"message-exclamation"}]},{"id":"dVxUsjSIzvgwoeJxlncK","title":"Slack Alerter","pathname":"/stacks/stack-components/alerters/slack","siteSpaceId":"sitesp_Tc7LL","description":"Sending automated alerts to a Slack channel.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Alerters","icon":"message-exclamation"}]},{"id":"G7nJWfCp53Niu1aWgHuM","title":"Develop a Custom Alerter","pathname":"/stacks/stack-components/alerters/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom alerter.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Alerters","icon":"message-exclamation"}]},{"id":"muEBhvmG58XAwInpppAV","title":"Annotators","pathname":"/stacks/stack-components/annotators","siteSpaceId":"sitesp_Tc7LL","icon":"expand","description":"Annotating the data in your workflow.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"rt5HLyYtCiDdrWFho08J","title":"Argilla","pathname":"/stacks/stack-components/annotators/argilla","siteSpaceId":"sitesp_Tc7LL","description":"Annotating data using Argilla.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Annotators","icon":"expand"}]},{"id":"l5KcW4iQUt6j0hZLDM3d","title":"Label Studio","pathname":"/stacks/stack-components/annotators/label-studio","siteSpaceId":"sitesp_Tc7LL","description":"Annotating data using Label Studio.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Annotators","icon":"expand"}]},{"id":"8Hni109PhALsMvTiAytX","title":"Pigeon","pathname":"/stacks/stack-components/annotators/pigeon","siteSpaceId":"sitesp_Tc7LL","description":"Annotating data using Pigeon.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Annotators","icon":"expand"}]},{"id":"Qg6ejgk66hx8Jtq2OpQJ","title":"Prodigy","pathname":"/stacks/stack-components/annotators/prodigy","siteSpaceId":"sitesp_Tc7LL","description":"Annotating data using Prodigy.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Annotators","icon":"expand"}]},{"id":"vGo9KcJ5nIJkQnJEK1j6","title":"Develop a Custom Annotator","pathname":"/stacks/stack-components/annotators/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom annotator.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Annotators","icon":"expand"}]},{"id":"YgFvGiChWwYfCxOFP7Yg","title":"Data Validators","pathname":"/stacks/stack-components/data-validators","siteSpaceId":"sitesp_Tc7LL","icon":"chart-column","description":"How to enhance and maintain the quality of your data and the performance of your models with data profiling and validation","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"XHl4EPuU8RPIAk9f4gjg","title":"Great Expectations","pathname":"/stacks/stack-components/data-validators/great-expectations","siteSpaceId":"sitesp_Tc7LL","description":"How to use Great Expectations to run data quality checks in your pipelines and document the results","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Data Validators","icon":"chart-column"}]},{"id":"eVXrdak2HAG8uzlt7bJZ","title":"Deepchecks","pathname":"/stacks/stack-components/data-validators/deepchecks","siteSpaceId":"sitesp_Tc7LL","description":"How to test the data and models used in your pipelines with Deepchecks test suites","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Data Validators","icon":"chart-column"}]},{"id":"j2rSB9NSojU6gJc676q5","title":"Evidently","pathname":"/stacks/stack-components/data-validators/evidently","siteSpaceId":"sitesp_Tc7LL","description":"How to keep your data quality in check and guard against data and model drift with Evidently profiling","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Data Validators","icon":"chart-column"}]},{"id":"BDsxU27zfCoCF2Qb781u","title":"Whylogs","pathname":"/stacks/stack-components/data-validators/whylogs","siteSpaceId":"sitesp_Tc7LL","description":"How to collect and visualize statistics to track changes in your pipelines' data with whylogs/WhyLabs profiling.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Data Validators","icon":"chart-column"}]},{"id":"gtuzYiEXlqNb9axVqNEs","title":"Develop a custom data validator","pathname":"/stacks/stack-components/data-validators/custom","siteSpaceId":"sitesp_Tc7LL","description":"How to develop a custom data validator","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Data Validators","icon":"chart-column"}]},{"id":"WKqlTqJHEd9ZFO7cr7fj","title":"Feature Stores","pathname":"/stacks/stack-components/feature-stores","siteSpaceId":"sitesp_Tc7LL","icon":"database","description":"Managing data in feature stores.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"d5WZcj5nAwwc2fzbs8jz","title":"Feast","pathname":"/stacks/stack-components/feature-stores/feast","siteSpaceId":"sitesp_Tc7LL","description":"Managing data in Feast feature stores.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Feature Stores","icon":"database"}]},{"id":"iuhafWtbzgcj7G91RxzV","title":"Develop a Custom Feature Store","pathname":"/stacks/stack-components/feature-stores/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom feature store.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Feature Stores","icon":"database"}]},{"id":"f7psBMdCL87MFCmU8y91","title":"Model Deployers","pathname":"/stacks/stack-components/model-deployers","siteSpaceId":"sitesp_Tc7LL","icon":"rocket","description":"Deploying your models and serve real-time predictions.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"biuWECfkpwbI4oz5HGyG","title":"MLflow","pathname":"/stacks/stack-components/model-deployers/mlflow","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your models locally with MLflow.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Deployers","icon":"rocket"}]},{"id":"HT06gVXvOGllMGeiG6On","title":"Seldon","pathname":"/stacks/stack-components/model-deployers/seldon","siteSpaceId":"sitesp_Tc7LL","description":"Deploying models to Kubernetes with Seldon Core.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Deployers","icon":"rocket"}]},{"id":"ncQOPFwS1BLK2MIzbbHe","title":"BentoML","pathname":"/stacks/stack-components/model-deployers/bentoml","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your models locally with BentoML.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Deployers","icon":"rocket"}]},{"id":"BDZJTIxESgidbYYQw9N0","title":"Hugging Face","pathname":"/stacks/stack-components/model-deployers/huggingface","siteSpaceId":"sitesp_Tc7LL","description":"Deploying models to Huggingface Inference Endpoints with Hugging Face :hugging_face:.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Deployers","icon":"rocket"}]},{"id":"HFdORHSLB5GC3khVNOiy","title":"Databricks","pathname":"/stacks/stack-components/model-deployers/databricks","siteSpaceId":"sitesp_Tc7LL","description":"Deploying models to Databricks Inference Endpoints with Databricks","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Deployers","icon":"rocket"}]},{"id":"jlmyNhPzcn5P5O2mYHBf","title":"vLLM","pathname":"/stacks/stack-components/model-deployers/vllm","siteSpaceId":"sitesp_Tc7LL","description":"Deploying your LLM locally with vLLM.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Deployers","icon":"rocket"}]},{"id":"ds8uv2DmEMgNWsPv7ux7","title":"Develop a Custom Model Deployer","pathname":"/stacks/stack-components/model-deployers/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom model deployer.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Deployers","icon":"rocket"}]},{"id":"Hb9u6IV2nABQjKcueOf2","title":"Model Registries","pathname":"/stacks/stack-components/model-registries","siteSpaceId":"sitesp_Tc7LL","icon":"table-rows","description":"Tracking and managing ML models.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"}]},{"id":"DoG1q5ty1Efcwf7yKg2O","title":"MLflow Model Registry","pathname":"/stacks/stack-components/model-registries/mlflow","siteSpaceId":"sitesp_Tc7LL","description":"Managing MLFlow logged models and artifacts","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Registries","icon":"table-rows"}]},{"id":"kqmmtnn0mKdaxL4ZyKpT","title":"Develop a Custom Model Registry","pathname":"/stacks/stack-components/model-registries/custom","siteSpaceId":"sitesp_Tc7LL","description":"Learning how to develop a custom model registry.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Stack Components"},{"label":"Model Registries","icon":"table-rows"}]},{"id":"zbzGUj7Ul5cFsCwEuNiM","title":"Introduction","pathname":"/stacks/service-connectors/auth-management","siteSpaceId":"sitesp_Tc7LL","icon":"plug","description":"Connect your ZenML deployment to a cloud provider and other infrastructure services and resources.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"}]},{"id":"knIF5CIMUwMPmpFP0vYp","title":"Complete guide","pathname":"/stacks/service-connectors/service-connectors-guide","siteSpaceId":"sitesp_Tc7LL","icon":"book","description":"The complete guide to managing Service Connectors and connecting ZenML to external resources.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"}]},{"id":"Ld14ts3rmlIhHcjbjm29","title":"Best practices","pathname":"/stacks/service-connectors/best-security-practices","siteSpaceId":"sitesp_Tc7LL","icon":"star","description":"Best practices concerning the various authentication methods implemented by Service Connectors.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"}]},{"id":"hd5tDNzJZiByJk2UnP2N","title":"Connector Types","pathname":"/stacks/service-connectors/connector-types","siteSpaceId":"sitesp_Tc7LL","icon":"album-collection","description":"","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"}]},{"id":"kk96TzERCSxiRz2LmaiL","title":"Docker Service Connector","pathname":"/stacks/service-connectors/connector-types/docker-service-connector","siteSpaceId":"sitesp_Tc7LL","description":"Configuring Docker Service Connectors to connect ZenML to Docker container registries.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"},{"label":"Connector Types","icon":"album-collection"}]},{"id":"ja9NRavn6RbNUsZUNMab","title":"Kubernetes Service Connector","pathname":"/stacks/service-connectors/connector-types/kubernetes-service-connector","siteSpaceId":"sitesp_Tc7LL","description":"Configuring Kubernetes Service Connectors to connect ZenML to Kubernetes clusters.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"},{"label":"Connector Types","icon":"album-collection"}]},{"id":"7GFvzSFJrUfBELAVMCSa","title":"AWS Service Connector","pathname":"/stacks/service-connectors/connector-types/aws-service-connector","siteSpaceId":"sitesp_Tc7LL","description":"Configuring AWS Service Connectors to connect ZenML to AWS resources like S3 buckets, EKS Kubernetes clusters and ECR container registries.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"},{"label":"Connector Types","icon":"album-collection"}]},{"id":"mmFG8TBBbPVpfIOLSWdi","title":"GCP Service Connector","pathname":"/stacks/service-connectors/connector-types/gcp-service-connector","siteSpaceId":"sitesp_Tc7LL","description":"Configuring GCP Service Connectors to connect ZenML to GCP resources such as GCS buckets, GKE Kubernetes clusters, and GCR container registries.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"},{"label":"Connector Types","icon":"album-collection"}]},{"id":"On8lH58oRGsliMjOZKiI","title":"Azure Service Connector","pathname":"/stacks/service-connectors/connector-types/azure-service-connector","siteSpaceId":"sitesp_Tc7LL","description":"Configuring Azure Service Connectors to connect ZenML to Azure resources such as Blob storage buckets, AKS Kubernetes clusters, and ACR container registries.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"},{"label":"Connector Types","icon":"album-collection"}]},{"id":"5sVQGr6dQGtYRusBtK8k","title":"HyperAI Service Connector","pathname":"/stacks/service-connectors/connector-types/hyperai-service-connector","siteSpaceId":"sitesp_Tc7LL","description":"Configuring HyperAI Connectors to connect ZenML to HyperAI instances.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Service Connectors"},{"label":"Connector Types","icon":"album-collection"}]},{"id":"2LZ0tDAifkSbVJnfSo8w","title":"AWS","pathname":"/stacks/popular-stacks/aws-guide","siteSpaceId":"sitesp_Tc7LL","icon":"aws","description":"A simple guide to create an AWS stack to run your ZenML pipelines","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Popular Stacks"}]},{"id":"7eNgJrfmlsufb286oSLe","title":"Azure","pathname":"/stacks/popular-stacks/azure-guide","siteSpaceId":"sitesp_Tc7LL","icon":"microsoft","description":"A simple guide to create an Azure stack to run your ZenML pipelines","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Popular Stacks"}]},{"id":"Y31GpiZp8AHi8zWrHhYP","title":"GCP","pathname":"/stacks/popular-stacks/gcp-guide","siteSpaceId":"sitesp_Tc7LL","icon":"google","description":"A simple guide to quickly set up a minimal stack on GCP.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Popular Stacks"}]},{"id":"pdMlE8EPeOKVjwcr71lK","title":"Kubernetes","pathname":"/stacks/popular-stacks/kubernetes","siteSpaceId":"sitesp_Tc7LL","icon":"kubernetes","description":"Learn how to deploy ZenML pipelines on a Kubernetes cluster.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Popular Stacks"}]},{"id":"aAkBjrd9EYsV95Uzg9mB","title":"1-click Deployment","pathname":"/stacks/deployment/deploy-a-cloud-stack","siteSpaceId":"sitesp_Tc7LL","icon":"hand-back-point-up","description":"Deploy a cloud stack from scratch with a single click","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Deployment"}]},{"id":"POHPK9TB7WcBcMBpMeCp","title":"Terraform Modules","pathname":"/stacks/deployment/deploy-a-cloud-stack-with-terraform","siteSpaceId":"sitesp_Tc7LL","icon":"globe","description":"Deploy a cloud stack using Terraform","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Deployment"}]},{"id":"7lqVCOCmaRvwMstOqsS0","title":"Register a cloud stack","pathname":"/stacks/deployment/register-a-cloud-stack","siteSpaceId":"sitesp_Tc7LL","icon":"cloud","description":"Seamlessly register a cloud stack by using existing infrastructure","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Deployment"}]},{"id":"K5M8RY54PmPjREcODPQ5","title":"Infrastructure as code","pathname":"/stacks/deployment/infrastructure-as-code","siteSpaceId":"sitesp_Tc7LL","icon":"network-wired","description":"Leverage Infrastructure as Code to manage your ZenML stacks and components.","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Deployment"}]},{"id":"aedstLrkTudBPhJncfrD","title":"Custom Stack Component","pathname":"/stacks/contribute/custom-stack-component","siteSpaceId":"sitesp_Tc7LL","icon":"cube","description":"How to write a custom stack component flavor","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Contribute"}]},{"id":"hBjw9rFSGDBfLyHhiW4B","title":"Custom Integration","pathname":"/stacks/contribute/implement-a-custom-integration","siteSpaceId":"sitesp_Tc7LL","icon":"cubes","description":"Creating an external integration and contributing to ZenML","breadcrumbs":[{"label":"Stacks","icon":"layer-group"},{"label":"Contribute"}]},{"id":"jJvWlTHvo1UB2dozj4Sy","title":"Overview","pathname":"/api-reference","siteSpaceId":"sitesp_RHEsK","description":"The ZenML API provides programmatic access to ZenML services beyond what's available in the Python SDK.","breadcrumbs":[{"label":"API Reference","icon":"webhook"}]},{"id":"sQ7NKtBZv0ub153pbFSp","title":"Getting Started","pathname":"/api-reference/oss-api/getting-started","siteSpaceId":"sitesp_RHEsK","icon":"person-from-portal","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"}]},{"id":"2Dlh9xq3AsSHdoRWsYK6","title":"OSS API","pathname":"/api-reference/oss-api/oss-api","siteSpaceId":"sitesp_RHEsK","icon":"github-alt","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"}]},{"id":"FOuYQmpeoULimEkts56f","title":"Artifacts","pathname":"/api-reference/oss-api/oss-api/artifacts","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"dCFXnd8XWOoUH4QuhU0k","title":"Artifact versions","pathname":"/api-reference/oss-api/oss-api/artifact-versions","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"Hwqrsj42ZAfnkODL86oq","title":"Batch","pathname":"/api-reference/oss-api/oss-api/artifact-versions/batch","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Artifact versions"}]},{"id":"dvPRzikX5ml94wJyBjlw","title":"Visualize","pathname":"/api-reference/oss-api/oss-api/artifact-versions/visualize","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Artifact versions"}]},{"id":"QZaHFffXoFySPJoV6xFx","title":"Login","pathname":"/api-reference/oss-api/oss-api/login","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"E5bv0OlvpeyyGpjzA06M","title":"Logout","pathname":"/api-reference/oss-api/oss-api/logout","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"RWQdyIV46DDRhg5BYZ9p","title":"Device authorization","pathname":"/api-reference/oss-api/oss-api/device-authorization","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"ZtD9vFbFywmMEbEQ2X87","title":"Api token","pathname":"/api-reference/oss-api/oss-api/api-token","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"tDrm0ezvkV3Xa1JlumO1","title":"Code repositories","pathname":"/api-reference/oss-api/oss-api/code-repositories","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"qfoA5hf1Q5ajNepCpO5v","title":"Logs","pathname":"/api-reference/oss-api/oss-api/logs","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"A5vPVxXBzCStQJdQM4R8","title":"Models","pathname":"/api-reference/oss-api/oss-api/models","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"tceoaxyz2LPZO7LRF6CT","title":"Model versions","pathname":"/api-reference/oss-api/oss-api/models/model-versions","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Models"}]},{"id":"vIw0AamFjSuqBkKu8dVZ","title":"Model versions","pathname":"/api-reference/oss-api/oss-api/model-versions","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"NigEmo8GsPCFZQAjgfFT","title":"Artifacts","pathname":"/api-reference/oss-api/oss-api/model-versions/artifacts","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Model versions"}]},{"id":"l67WIh33veNSTLw4ptKV","title":"Runs","pathname":"/api-reference/oss-api/oss-api/model-versions/runs","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Model versions"}]},{"id":"nNRTaI7xaZGFdAbuQQmZ","title":"Pipelines","pathname":"/api-reference/oss-api/oss-api/pipelines","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"xPUVYiZDCd8V4yOxjUuL","title":"Runs","pathname":"/api-reference/oss-api/oss-api/pipelines/runs","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Pipelines"}]},{"id":"TCVF3Vqf6c0mj2RAoBLa","title":"Runs","pathname":"/api-reference/oss-api/oss-api/runs","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"ZQmWZgHGiXaJBt9ZLK9i","title":"Steps","pathname":"/api-reference/oss-api/oss-api/runs/steps","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Runs"}]},{"id":"GspCxHEPxRnUVKf1yl8B","title":"Pipeline configuration","pathname":"/api-reference/oss-api/oss-api/runs/pipeline-configuration","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Runs"}]},{"id":"sVyrAe0AH404UY7qwdep","title":"Status","pathname":"/api-reference/oss-api/oss-api/runs/status","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Runs"}]},{"id":"L0fMyUy7JqZknTfSAVks","title":"Refresh","pathname":"/api-reference/oss-api/oss-api/runs/refresh","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Runs"}]},{"id":"MCaPgxpKW6V2mihtpJi1","title":"Run templates","pathname":"/api-reference/oss-api/oss-api/run-templates","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"NyMc9mduiCVRWlpBgI9j","title":"Runs","pathname":"/api-reference/oss-api/oss-api/run-templates/runs","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Run templates"}]},{"id":"XykP6XznhxT17X9GiNJi","title":"Schedules","pathname":"/api-reference/oss-api/oss-api/schedules","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"pXX8Sf1KdXRlN28IYy2X","title":"Secrets","pathname":"/api-reference/oss-api/oss-api/secrets","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"lflCiYYdxNjJL0qb6vd8","title":"Info","pathname":"/api-reference/oss-api/oss-api/info","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"berf9zpv2L3IwDjlEpNb","title":"Service accounts","pathname":"/api-reference/oss-api/oss-api/service-accounts","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"S2BcsVRuPAUMf6VN0dXX","title":"Api keys","pathname":"/api-reference/oss-api/oss-api/service-accounts/api-keys","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Service accounts"}]},{"id":"aXYSGuD1PRKDblc8hITt","title":"Rotate","pathname":"/api-reference/oss-api/oss-api/service-accounts/rotate","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Service accounts"}]},{"id":"OURZicjyhBVscW1pIeAI","title":"Service connectors","pathname":"/api-reference/oss-api/oss-api/service-connectors","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"n25jREB73fXcH5vJCMHW","title":"Verify","pathname":"/api-reference/oss-api/oss-api/service-connectors/verify","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Service connectors"}]},{"id":"s7gSkrncGiYaZTiwPLEc","title":"Client","pathname":"/api-reference/oss-api/oss-api/service-connectors/client","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Service connectors"}]},{"id":"NlaUkkZ1VjhzAnajHgRa","title":"Full stack resources","pathname":"/api-reference/oss-api/oss-api/service-connectors/full-stack-resources","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Service connectors"}]},{"id":"pWHu0F7rsK9yPbAJwyQX","title":"Services","pathname":"/api-reference/oss-api/oss-api/services","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"Iz2NaH7lckbnEVvFdi0B","title":"Stacks","pathname":"/api-reference/oss-api/oss-api/stacks","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"6w8yBO8b87NiJ2Ltj9kl","title":"Components","pathname":"/api-reference/oss-api/oss-api/components","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"FvkjRIVzc1x7AkywpXyr","title":"Component types","pathname":"/api-reference/oss-api/oss-api/component-types","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"XxqPI35sKusjmbOIDJ5v","title":"Steps","pathname":"/api-reference/oss-api/oss-api/steps","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"jpr2IeJo3PF2Vs10pzIP","title":"Step configuration","pathname":"/api-reference/oss-api/oss-api/steps/step-configuration","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Steps"}]},{"id":"YLMRiMbJ8GED3GQfl1mM","title":"Status","pathname":"/api-reference/oss-api/oss-api/steps/status","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Steps"}]},{"id":"d5FGytwZnr5IP5HL9Zg2","title":"Logs","pathname":"/api-reference/oss-api/oss-api/steps/logs","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Steps"}]},{"id":"TA7KCRdDRiSyjR2XPmXZ","title":"Tags","pathname":"/api-reference/oss-api/oss-api/tags","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"UDO4RwX1ZqjyGAWDm7Jz","title":"Users","pathname":"/api-reference/oss-api/oss-api/users","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"qrDH0MV4OLt9NvhjrnXl","title":"Resource membership","pathname":"/api-reference/oss-api/oss-api/users/resource-membership","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"},{"label":"Users"}]},{"id":"B1VaRhoF76OUhyoZ0AtX","title":"Current user","pathname":"/api-reference/oss-api/oss-api/current-user","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"OSS API"},{"label":"OSS API","icon":"github-alt"}]},{"id":"CS333mYvdsw66nafILWR","title":"Getting Started","pathname":"/api-reference/pro-api/getting-started","siteSpaceId":"sitesp_RHEsK","icon":"person-from-portal","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"}]},{"id":"xAAbqQiL6SBAVbhE8gAK","title":"Pro API","pathname":"/api-reference/pro-api/pro-api","siteSpaceId":"sitesp_RHEsK","icon":"rectangle-pro","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"}]},{"id":"tV6IDraOfgjARR3aKXaU","title":"Tenants","pathname":"/api-reference/pro-api/pro-api/tenants","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"41MC7iNPrS0QdBsOuMI6","title":"Deploy","pathname":"/api-reference/pro-api/pro-api/tenants/deploy","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Tenants"}]},{"id":"5fpY38TgLWss6fbjx0Rh","title":"Deactivate","pathname":"/api-reference/pro-api/pro-api/tenants/deactivate","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Tenants"}]},{"id":"hEzZrqobaC8TH5eqXHID","title":"Members","pathname":"/api-reference/pro-api/pro-api/tenants/members","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Tenants"}]},{"id":"DmNOGkRFkh1vHo9A6WSR","title":"Tenant status","pathname":"/api-reference/pro-api/pro-api/tenant-status","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"sV9NaoPau6KjU3zWmmW5","title":"Users","pathname":"/api-reference/pro-api/pro-api/users","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"dlkkWRjPBwbEejFQy6rw","title":"Authorize server","pathname":"/api-reference/pro-api/pro-api/users/authorize-server","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Users"}]},{"id":"7TKLZLP0iCb6LfA1R78y","title":"Me","pathname":"/api-reference/pro-api/pro-api/users/me","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Users"}]},{"id":"7WGxgtEonHJtOaMPXQNc","title":"Invitations","pathname":"/api-reference/pro-api/pro-api/invitations","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"LB0rnKDUGSs0UR3bWbtO","title":"Releases","pathname":"/api-reference/pro-api/pro-api/releases","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"DhQ5r8SuoxBHyixTWYa8","title":"Devices","pathname":"/api-reference/pro-api/pro-api/devices","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"jdDx3LGae2PGyx77QI9w","title":"Verify","pathname":"/api-reference/pro-api/pro-api/devices/verify","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Devices"}]},{"id":"VdDFN6VzI2pmj7Wmjpjm","title":"Roles","pathname":"/api-reference/pro-api/pro-api/roles","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"S2vhN9l6Ubj5dANYlMa8","title":"Assignments","pathname":"/api-reference/pro-api/pro-api/roles/assignments","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Roles"}]},{"id":"RA2TJJmYLJXpn6PXbTyf","title":"Permissions","pathname":"/api-reference/pro-api/pro-api/permissions","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"Pn6J4Hm2RU6h1sdNxzLQ","title":"Teams","pathname":"/api-reference/pro-api/pro-api/teams","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"eByBPnEhYqqq6oI7MQc7","title":"Members","pathname":"/api-reference/pro-api/pro-api/teams/members","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Teams"}]},{"id":"TrYI76fuVZH5O1wdMLWr","title":"Organizations","pathname":"/api-reference/pro-api/pro-api/organizations","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"CYmaNZoisf26YPosk4fj","title":"Trial","pathname":"/api-reference/pro-api/pro-api/organizations/trial","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"wcVAeHGmjbAz5772OkhX","title":"Invitations","pathname":"/api-reference/pro-api/pro-api/organizations/invitations","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"42LS5Mpz24tbxjDelBrO","title":"Members","pathname":"/api-reference/pro-api/pro-api/organizations/members","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"qcwRk7qDUx2VBq2tg1NT","title":"Roles","pathname":"/api-reference/pro-api/pro-api/organizations/roles","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"i1XIdNfSqCpwnGhT1QBg","title":"Teams","pathname":"/api-reference/pro-api/pro-api/organizations/teams","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"yP4XKn8W6gREk1YsSpEE","title":"Tenants","pathname":"/api-reference/pro-api/pro-api/organizations/tenants","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"y6btOGXZuw0TPORPFB5t","title":"Tenant","pathname":"/api-reference/pro-api/pro-api/organizations/tenant","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"iq6y8GhJzUlvpDGiZmce","title":"Entitlement","pathname":"/api-reference/pro-api/pro-api/organizations/entitlement","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"pAeF0dvckmPSbAYs6S3z","title":"Validation","pathname":"/api-reference/pro-api/pro-api/organizations/validation","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"}]},{"id":"j6QmgZtJDX2Bhj1G5VhP","title":"Name","pathname":"/api-reference/pro-api/pro-api/organizations/validation/name","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"},{"label":"Validation"}]},{"id":"DFSqDWKcdxw6gLrTotN7","title":"Tenant name","pathname":"/api-reference/pro-api/pro-api/organizations/validation/tenant-name","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Organizations"},{"label":"Validation"}]},{"id":"ec35BK7VOYwXZRygQd5v","title":"Health","pathname":"/api-reference/pro-api/pro-api/health","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"e8xguJth8UMFtOWF6kTw","title":"Usage event","pathname":"/api-reference/pro-api/pro-api/usage-event","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"jimPlCzYjpjMXQrCaVNK","title":"Usage batch","pathname":"/api-reference/pro-api/pro-api/usage-batch","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"RVqJfxz5fkv6g6EPymkC","title":"Stigg webhook","pathname":"/api-reference/pro-api/pro-api/stigg-webhook","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"YjsXH9KZcCBmpC00qke1","title":"Auth","pathname":"/api-reference/pro-api/pro-api/auth","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"A0alBpIVBu8ZLxSsHSVn","title":"Login","pathname":"/api-reference/pro-api/pro-api/auth/login","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"6N5iKOkZiYPyuwMwjIrm","title":"Connections","pathname":"/api-reference/pro-api/pro-api/auth/connections","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"T1v2g3U9FzFxfaeENh1u","title":"Authorize","pathname":"/api-reference/pro-api/pro-api/auth/authorize","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"Lp3xdkn1ycA4B9FvuHvi","title":"Callback","pathname":"/api-reference/pro-api/pro-api/auth/callback","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"BrOsk5MQqm3NQnSqRdb2","title":"Logout","pathname":"/api-reference/pro-api/pro-api/auth/logout","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"l23CR7ABlCOBZBLGpurq","title":"Device authorization","pathname":"/api-reference/pro-api/pro-api/auth/device-authorization","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"9kclbqXXxxbKxrHmPt2U","title":"Api token","pathname":"/api-reference/pro-api/pro-api/auth/api-token","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"09VFNwj7lNIVSG4yDAAw","title":"Tenant authorization","pathname":"/api-reference/pro-api/pro-api/auth/tenant-authorization","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Auth"}]},{"id":"boowh7Hz1ZceJcO05b1l","title":"Rbac","pathname":"/api-reference/pro-api/pro-api/rbac","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"GNcHRM6i1kvwk9ogD0c2","title":"Check permissions","pathname":"/api-reference/pro-api/pro-api/rbac/check-permissions","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Rbac"}]},{"id":"zfJzRZimHhWLzsFdQswv","title":"Allowed resource ids","pathname":"/api-reference/pro-api/pro-api/rbac/allowed-resource-ids","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Rbac"}]},{"id":"ZhQBXI7NkNQsQzRHyF5B","title":"Resource members","pathname":"/api-reference/pro-api/pro-api/rbac/resource-members","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Rbac"}]},{"id":"irwJp3iEO3RY3sITRZhZ","title":"Server","pathname":"/api-reference/pro-api/pro-api/server","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"}]},{"id":"fnpuWoICH62qRcJ3Vc2j","title":"Info","pathname":"/api-reference/pro-api/pro-api/server/info","siteSpaceId":"sitesp_RHEsK","description":"","breadcrumbs":[{"label":"API Reference","icon":"webhook"},{"label":"Pro API"},{"label":"Pro API","icon":"rectangle-pro"},{"label":"Server"}]},{"id":"UFpDNSWcd1mMpHeMYIrV","title":"Overview","pathname":"/sdk-reference","siteSpaceId":"sitesp_Ankj9","description":"See docstrings for ZenML Code","breadcrumbs":[{"label":"SDK Reference","icon":"python"}]},{"id":"53crGdt8UNVxnhaDcBnD","title":"Client","pathname":"/sdk-reference/client","siteSpaceId":"sitesp_Ankj9","icon":"plug","description":"","breadcrumbs":[{"label":"SDK Reference","icon":"python"}]},{"id":"lO60igwOJQTcJ2eRA2N3","title":"Example usages","pathname":"/sdk-reference/example-usages","siteSpaceId":"sitesp_Ankj9","icon":"python","description":"Interacting with your ZenML instance through the ZenML Client.","breadcrumbs":[{"label":"SDK Reference","icon":"python"}]},{"id":"tKt3fO3OTUaRJAepipAG","title":"Overview","pathname":"/changelog","siteSpaceId":"sitesp_jxM7V","icon":"overline","description":"Stay up to date with the latest features, improvements, and fixes across ZenML OSS and ZenML Pro.","breadcrumbs":[{"label":"Changelog","icon":"memo-pad"}]},{"id":"PugU34LLUsbk6u1CnLie","title":"Server & SDK","pathname":"/changelog/server-sdk","siteSpaceId":"sitesp_jxM7V","icon":"clock-rotate-left","description":"Changelog for ZenML OSS and ZenML UI.","breadcrumbs":[{"label":"Changelog","icon":"memo-pad"}]},{"id":"M7riJ4xg1VDlEAMI9IG6","title":"Pro Control Plane","pathname":"/changelog/pro-control-plane","siteSpaceId":"sitesp_jxM7V","icon":"clock-rotate-left","description":"Changelog for ZenML Pro.","breadcrumbs":[{"label":"Changelog","icon":"memo-pad"}]}]}