// Populate the sidebar // // This is a script, and not included directly in the page, to control the total size of the book. // The TOC contains an entry for each page, so if each page includes a copy of the TOC, // the total size of the page becomes O(n**2). class MDBookSidebarScrollbox extends HTMLElement { constructor() { super(); } connectedCallback() { this.innerHTML = '
  1. Introduction
  2. Getting Started
  3. Getting Started
  4. Prerequisites
  5. Installation
  6. Quick Start
  7. First Deployment
  8. Verification
  9. Setup & Configuration
  10. Setup Overview
  11. Initial Setup
  12. Workspace Setup
  13. Configuration Management
  14. User Guides
  15. Guides Overview
  16. From Scratch Guide
  17. Workspace Management
  18. Multi-Cloud Deployment
  19. Custom Extensions
  20. Disaster Recovery
  21. Infrastructure as Code
  22. Infrastructure Overview
  23. Nickel Guide
  24. Configuration System
  25. Schemas Reference
  26. Providers
  27. Task Services
  28. Clusters
  29. Batch Workflows
  30. Version Management
  31. Platform Features
  32. Features Overview
  33. Workspace Management
  34. CLI Architecture
  35. Configuration System
  36. Batch Workflows
  37. Orchestrator
  38. Interactive Guides
  39. Test Environment
  40. Platform Installer
  41. Security System
  42. Version Management
  43. Nushell Plugins
  44. Multilingual Support
  45. Operations
  46. Operations Overview
  47. Deployment Modes
  48. Service Management
  49. Monitoring
  50. Backup & Recovery
  51. Upgrade
  52. Troubleshooting
  53. Platform Health
  54. Security
  55. Security Overview
  56. Authentication
  57. Authorization
  58. Multi-Factor Authentication
  59. Audit Logging
  60. KMS Guide
  61. Secrets Management
  62. SecretumVault Guide
  63. Encryption
  64. Secure Communication
  65. Certificate Management
  66. Compliance
  67. Security Testing
  68. Development
  69. Development Overview
  70. Extension Development
  71. Provider Development
  72. Plugin Development
  73. API Guide
  74. Build System
  75. Testing
  76. Contributing
  77. API Reference
  78. API Overview
  79. REST API
  80. CLI Commands
  81. Nushell Libraries
  82. Orchestrator API
  83. Control Center API
  84. Examples
  85. Architecture
  86. Architecture Overview
  87. System Overview
  88. Design Principles
  89. Component Architecture
  90. Integration Patterns
  91. ADRs
  92. Examples
  93. Examples Overview
  94. Basic Setup
  95. Multi-Cloud
  96. Kubernetes Deployment
  97. Custom Workflows
  98. Security Examples
  99. Troubleshooting
  100. Troubleshooting Overview
  101. Common Issues
  102. Debug Guide
  103. Logs Analysis
  104. Getting Help
  105. AI & Machine Learning
  106. AI Overview
  107. AI Architecture
  108. TypeDialog Integration
  109. AI Service Crate
  110. RAG & Knowledge Base
  111. Natural Language Infrastructure
'; // Set the current, active page, and reveal it if it's hidden let current_page = document.location.href.toString().split("#")[0].split("?")[0]; if (current_page.endsWith("/")) { current_page += "index.html"; } var links = Array.prototype.slice.call(this.querySelectorAll("a")); var l = links.length; for (var i = 0; i < l; ++i) { var link = links[i]; var href = link.getAttribute("href"); if (href && !href.startsWith("#") && !/^(?:[a-z+]+:)?\/\//.test(href)) { link.href = path_to_root + href; } // The "index" page is supposed to alias the first chapter in the book. if (link.href === current_page || (i === 0 && path_to_root === "" && current_page.endsWith("/index.html"))) { link.classList.add("active"); var parent = link.parentElement; if (parent && parent.classList.contains("chapter-item")) { parent.classList.add("expanded"); } while (parent) { if (parent.tagName === "LI" && parent.previousElementSibling) { if (parent.previousElementSibling.classList.contains("chapter-item")) { parent.previousElementSibling.classList.add("expanded"); } } parent = parent.parentElement; } } } // Track and set sidebar scroll position this.addEventListener('click', function(e) { if (e.target.tagName === 'A') { sessionStorage.setItem('sidebar-scroll', this.scrollTop); } }, { passive: true }); var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll'); sessionStorage.removeItem('sidebar-scroll'); if (sidebarScrollTop) { // preserve sidebar scroll position when navigating via links within sidebar this.scrollTop = sidebarScrollTop; } else { // scroll sidebar to current active section when navigating via "next/previous chapter" buttons var activeSection = document.querySelector('#sidebar .active'); if (activeSection) { activeSection.scrollIntoView({ block: 'center' }); } } // Toggle buttons var sidebarAnchorToggles = document.querySelectorAll('#sidebar a.toggle'); function toggleSection(ev) { ev.currentTarget.parentElement.classList.toggle('expanded'); } Array.from(sidebarAnchorToggles).forEach(function (el) { el.addEventListener('click', toggleSection); }); } } window.customElements.define("mdbook-sidebar-scrollbox", MDBookSidebarScrollbox);