// 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. Home
  2. Installation Guide
  3. Getting Started
  4. Quick Start Cheatsheet
  5. Setup Quick Start
  6. Setup System Guide
  7. Quick Start (Full)
  8. Prerequisites
  9. Installation Steps
  10. First Deployment
  11. Verification
  12. Platform Service Configuration
  13. System Overview
  14. Architecture Overview
  15. Design Principles
  16. Integration Patterns
  17. Orchestrator Integration Model
  18. Multi-Repo Architecture
  19. Multi-Repo Strategy
  20. Database and Config Architecture
  21. Ecosystem Integration
  22. Package and Loader System
  23. Nickel vs KCL Comparison
  24. Nickel Executable Examples
  25. Orchestrator Info
  26. Orchestrator Auth Integration
  27. Repo Dist Analysis
  28. TypeDialog Nickel Integration
  29. ADR-001: Project Structure
  30. ADR-002: Distribution Strategy
  31. ADR-003: Workspace Isolation
  32. ADR-004: Hybrid Architecture
  33. ADR-005: Extension Framework
  34. ADR-006: Provisioning CLI Refactoring
  35. ADR-007: KMS Simplification
  36. ADR-008: Cedar Authorization
  37. ADR-009: Security System Complete
  38. ADR-010: Configuration Format Strategy
  39. ADR-011: Nickel Migration
  40. ADR-012: Nushell Nickel Plugin CLI Wrapper
  41. REST API
  42. WebSocket
  43. Extensions
  44. SDKs
  45. Integration Examples
  46. Provider API
  47. NuShell API
  48. Path Resolution
  49. Extension Development
  50. Infrastructure-Specific Extensions
  51. Quick Provider Guide
  52. Command Handler Guide
  53. Configuration
  54. Workflow
  55. Integration
  56. Build System
  57. Extensions
  58. Distribution Process
  59. Implementation Guide
  60. TaskServ Developer Guide
  61. TaskServ Quick Guide
  62. Project Structure
  63. Provider Agnostic Architecture
  64. Ctrl-C Implementation Notes
  65. Auth Metadata Guide
  66. Migration Guide
  67. KMS Simplification
  68. Migration Example
  69. Glossary
  70. Provider Distribution Guide
  71. TaskServ Categorization
  72. Extension Registry
  73. MCP Server
  74. TypeDialog Platform Config Guide
  75. Platform Deployment Guide
  76. Service Management Guide
  77. Monitoring & Alerting Setup
  78. Service Management Quick Reference
  79. CoreDNS Guide
  80. Backup Recovery
  81. Deployment
  82. Monitoring
  83. Production Readiness Checklist
  84. Break Glass Training Guide
  85. Cedar Policies Production Guide
  86. MFA Admin Setup Guide
  87. Orchestrator
  88. Orchestrator System
  89. Control Center
  90. Installer
  91. Installer System
  92. Provisioning Server
  93. Infrastructure Management
  94. Infrastructure from Code Guide
  95. Batch Workflow System
  96. CLI Architecture
  97. Configuration System
  98. Workspace Setup
  99. Workspace Switching Guide
  100. Workspace Switching System
  101. CLI Reference
  102. Workspace Config Architecture
  103. Dynamic Secrets Guide
  104. Mode System Guide
  105. Workspace Guide
  106. Workspace Enforcement Guide
  107. Workspace Infra Reference
  108. Workspace Config Commands
  109. Config Rendering Guide
  110. Configuration
  111. Authentication Layer Guide
  112. Config Encryption Guide
  113. Security System
  114. RustyVault KMS Guide
  115. SecretumVault KMS Guide
  116. SSH Temporal Keys User Guide
  117. Plugin Integration Guide
  118. NuShell Plugins Guide
  119. NuShell Plugins System
  120. Plugin Usage Guide
  121. Secrets Management Guide
  122. Auth Quick Reference
  123. Config Encryption Quick Reference
  124. KMS Service
  125. Gitea Integration Guide
  126. Service Mesh Ingress Guide
  127. OCI Registry Guide
  128. Integrations Quick Start
  129. Secrets Service Layer Complete
  130. OCI Registry Platform
  131. Test Environment Guide
  132. Test Environment Usage
  133. Test Environment System
  134. TaskServ Validation Guide
  135. Troubleshooting Guide
  136. From Scratch
  137. Update Infrastructure
  138. Customize Infrastructure
  139. Extension Development Quickstart
  140. Guide System
  141. Workspace Generation Quick Reference
  142. Master Index
  143. Platform Operations Cheatsheet
  144. General Commands
  145. JustFile Recipes
  146. OCI Registry
  147. Sudo Password Handling
  148. Config Validation
  149. Workspace Config Architecture
'; // 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);