{"version":1,"pages":[{"id":"Ifb759egOCXvgax5PT5P","title":"Introduction","pathname":"/","siteSpaceId":"sitesp_vjjUr","description":"Earthly Lunar is a guardrails platform for monitoring and enforcing engineering practices across your software development lifecycle."},{"id":"7kco5HqTcPKULEgH7xST","title":"Install Lunar","pathname":"/install","siteSpaceId":"sitesp_vjjUr","description":"Overview of Lunar installation, covering Hub, CLI, CI Agent for self-hosted and managed runners, and AI skills for building plugins."},{"id":"1qpx7RM8B49wG9xdgczu","title":"Lunar Hub","pathname":"/install/hub","siteSpaceId":"sitesp_vjjUr","description":"Install and configure Lunar Hub, the central service that stores metadata, evaluates policies, and provides visibility into engineering health.","breadcrumbs":[{"label":"Install Lunar"}]},{"id":"EbSXjekDyIIh36qAIt5L","title":"Systemd","pathname":"/install/hub/systemd","siteSpaceId":"sitesp_vjjUr","description":"Run Lunar as a systemd service on Linux hosts with a sample unit file for reliable startup, restarts, and environment configuration.","breadcrumbs":[{"label":"Install Lunar"},{"label":"Lunar Hub"}]},{"id":"hc0YwqMzdXHlr6vXYno9","title":"Helm Charts","pathname":"/install/hub/helm-charts","siteSpaceId":"sitesp_vjjUr","description":"Deploy Lunar on Kubernetes using Earthly's Helm charts for production-ready, customizable, and repeatable installations.","breadcrumbs":[{"label":"Install Lunar"},{"label":"Lunar Hub"}]},{"id":"6NZ8f1it5xjpDeHWzqGI","title":"Lunar CLI","pathname":"/install/cli","siteSpaceId":"sitesp_vjjUr","description":"Install the Lunar CLI for managing configurations, inspecting components, running collectors, and testing policies locally.","breadcrumbs":[{"label":"Install Lunar"}]},{"id":"EaB66g1un2sF4lc5Y7Uj","title":"Lunar CI Agent","pathname":"/install/lunar-ci-agent","siteSpaceId":"sitesp_vjjUr","description":"","breadcrumbs":[{"label":"Install Lunar"}]},{"id":"2zNbptzqHrU0Kjgim8uS","title":"Self-Hosted Runners","pathname":"/install/lunar-ci-agent/agent-self-hosted","siteSpaceId":"sitesp_vjjUr","description":"Install the Lunar CI Agent on self-hosted runners to instrument CI/CD pipelines and collect metadata during builds, tests, scans, and deploys.","breadcrumbs":[{"label":"Install Lunar"},{"label":"Lunar CI Agent"}]},{"id":"Bsr7D4o9fA2jUQqV4GWe","title":"Managed Runners","pathname":"/install/lunar-ci-agent/agent-managed","siteSpaceId":"sitesp_vjjUr","description":"Use the Lunar CI Action to instrument GitHub-hosted and self-hosted GitHub Actions runners with the Lunar CI Agent.","breadcrumbs":[{"label":"Install Lunar"},{"label":"Lunar CI Agent"}]},{"id":"0VnQE2o6qvDSrDOVyCpK","title":"Configuration Reference","pathname":"/install/lunar-ci-agent/agent-config","siteSpaceId":"sitesp_vjjUr","description":"Reference for all environment variables that configure the Lunar CI Agent, including required settings, Docker options, and state directories.","breadcrumbs":[{"label":"Install Lunar"},{"label":"Lunar CI Agent"}]},{"id":"yjHR4sibFOiXR7Pg6Vsi","title":"Sync Config GitHub Action","pathname":"/install/github-actions","siteSpaceId":"sitesp_vjjUr","description":"Use the Lunar sync-config GitHub Action to push your config repo to Lunar Hub on every push.","breadcrumbs":[{"label":"Install Lunar"}]},{"id":"rl2FyIaBgQmCWTXGGudm","title":"AI Skills","pathname":"/install/skills","siteSpaceId":"sitesp_vjjUr","description":"Install AI agent skills for Claude Code, Codex, and Cursor to help build Lunar collectors, policies, and SQL queries.","breadcrumbs":[{"label":"Install Lunar"}]},{"id":"dFrDMxJpxQLbqtvpZ9FP","title":"Learn the basics","pathname":"/basics","siteSpaceId":"sitesp_vjjUr","description":"Walk through your first Lunar setup — populating components, defining policies, and running checks against your repositories."},{"id":"A5uBBGSyjswR9rJwePuo","title":"Key concepts","pathname":"/docs/key-concepts","siteSpaceId":"sitesp_vjjUr","description":"Overview of Lunar's core concepts — domains, components, collectors, catalogers, policies, and checks — and how they fit together.","breadcrumbs":[{"label":"Docs","emoji":"1f4d6"}]},{"id":"odBsQHW5h7O5f4wgl3nt","title":"Component JSON","pathname":"/docs/component-json","siteSpaceId":"sitesp_vjjUr","description":"How the Component JSON aggregates SDLC metadata deltas from collectors into a single object that policies evaluate against.","breadcrumbs":[{"label":"Docs","emoji":"1f4d6"}]},{"id":"NZk5wux5OZdD5ru0RsdQ","title":"Catalog JSON","pathname":"/docs/catalog-json","siteSpaceId":"sitesp_vjjUr","description":"Structure and precedence rules for the Catalog JSON, which merges domains and components from catalogers, lunar.yml, and lunar-config.yml.","breadcrumbs":[{"label":"Docs","emoji":"1f4d6"}]},{"id":"dUcvcAw7HcaGPtPDHCYm","title":"Lunar CLI Reference","pathname":"/docs/lunar-cli","siteSpaceId":"sitesp_vjjUr","description":"Complete reference for every Lunar CLI command, subcommand, flag, and environment variable across collectors, catalogers, policies, and Hub operations.","breadcrumbs":[{"label":"Docs","emoji":"1f4d6"}]},{"id":"40XCru9cQAtBh5idDb0G","title":"lunar-config.yml","pathname":"/configuration/lunar-config","siteSpaceId":"sitesp_vjjUr","description":"Reference for lunar-config.yml — the central configuration file defining hub connection, catalogers, domains, components, collectors, initiatives, and policies.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"}]},{"id":"7GuldfUhHKbChaJFY0S1","title":"About images","pathname":"/configuration/lunar-config/images","siteSpaceId":"sitesp_vjjUr","description":"Configure default container images for collectors, policies, and catalogers in lunar-config.yml, with override precedence rules.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"NtwqEf2WFd0exCTCABNM","title":"catalogers","pathname":"/configuration/lunar-config/catalogers","siteSpaceId":"sitesp_vjjUr","description":"Define the catalogers section of lunar-config.yml — scripts that synchronize domain and component metadata from external systems.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"IlfS1EowtQv7SKvoAZQu","title":"catalogers/hooks","pathname":"/configuration/lunar-config/cataloger-hooks","siteSpaceId":"sitesp_vjjUr","description":"Configure cataloger hooks in lunar-config.yml — triggers like cron schedules or repository events that determine when catalogers run.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"94nzqU2vabbBzTrmimjL","title":"domains","pathname":"/configuration/lunar-config/domains","siteSpaceId":"sitesp_vjjUr","description":"Define the domains section of lunar-config.yml — hierarchical groupings that organize related components for ownership and policy targeting.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"x8QnJwirO3PyHx29gcjF","title":"components","pathname":"/configuration/lunar-config/components","siteSpaceId":"sitesp_vjjUr","description":"Define the components section of lunar-config.yml — repositories or monorepo subdirectories that Lunar monitors with metadata and tags.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"ieclGtaBK7kqv933Efgk","title":"collectors","pathname":"/configuration/lunar-config/collectors","siteSpaceId":"sitesp_vjjUr","description":"Define the collectors section of lunar-config.yml — scripts that run on CI, code, or cron triggers to gather component metadata.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"uh35qobsrlcZYGc7jMvl","title":"collectors/hooks","pathname":"/configuration/lunar-config/collector-hooks","siteSpaceId":"sitesp_vjjUr","description":"Configure collector hooks in lunar-config.yml — triggers like CI commands, code events, or cron schedules that determine when collectors run.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"0vPmfxasRlwuMLIYYRgk","title":"initiatives","pathname":"/configuration/lunar-config/initiatives","siteSpaceId":"sitesp_vjjUr","description":"Define the initiatives section of lunar-config.yml — groupings of policies around shared goals or compliance requirements.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"HvZojisSfuJrWpapn7zW","title":"policies","pathname":"/configuration/lunar-config/policies","siteSpaceId":"sitesp_vjjUr","description":"Define the policies section of lunar-config.yml — rules that Lunar evaluates against components to enforce standards and check health.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"Uyxud9cRMJcxW4wPlO5L","title":"on (tag matching)","pathname":"/configuration/lunar-config/on","siteSpaceId":"sitesp_vjjUr","description":"Reference for the on field in lunar-config.yml — tag-matching expressions used by collectors, policies, and initiatives to target components.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"},{"label":"lunar-config.yml"}]},{"id":"VQJiCueKeQefIwLTWhPR","title":"lunar.yml","pathname":"/configuration/lunar-yml","siteSpaceId":"sitesp_vjjUr","description":"Reference for lunar.yml, the optional per-repository file that configures a single component's owner, domain, branch, tags, and CI pipelines.","breadcrumbs":[{"label":"Configuration","emoji":"1f4dd"}]},{"id":"10NXC1veS8JVmqXHnYU6","title":"Plugins configuration","pathname":"/plugin-sdks/plugins","siteSpaceId":"sitesp_vjjUr","description":"Overview of the three Lunar plugin types — catalogers, collectors, and policies — that extend the platform's capabilities.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"}]},{"id":"GC0IlqyC616h8SA6IhtY","title":"lunar-cataloger.yml","pathname":"/plugin-sdks/plugins/cataloger-plugins","siteSpaceId":"sitesp_vjjUr","description":"Reference for lunar-cataloger.yml, the manifest that defines a cataloger plugin used to sync software catalog information from external systems.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Plugins configuration"}]},{"id":"cUnLYTwM8as4zySnhoBy","title":"lunar-collector.yml","pathname":"/plugin-sdks/plugins/collector-plugins","siteSpaceId":"sitesp_vjjUr","description":"Reference for lunar-collector.yml, the manifest that defines a collector plugin used to gather live information about components from various sources.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Plugins configuration"}]},{"id":"AN8blpzgMj9lt4yBi0i1","title":"lunar-policy.yml","pathname":"/plugin-sdks/plugins/policy-plugins","siteSpaceId":"sitesp_vjjUr","description":"Reference for lunar-policy.yml, the manifest that defines a policy plugin used to evaluate the health of components against rules.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Plugins configuration"}]},{"id":"1KoTTp85rkugwTjfe4bX","title":"Bash SDK","pathname":"/plugin-sdks/bash-sdk","siteSpaceId":"sitesp_vjjUr","description":"Overview of the Lunar Bash SDK for building custom catalogers and collectors with shell scripts.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"}]},{"id":"lpjMEFIDjjuY10poj2iy","title":"Installing dependencies","pathname":"/plugin-sdks/bash-sdk/dependencies","siteSpaceId":"sitesp_vjjUr","description":"How to install dependencies for Bash collectors and catalogers using a custom Docker image or an install.sh script.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Bash SDK"}]},{"id":"87gmQFUsRpKDPMCStpUJ","title":"Cataloger","pathname":"/plugin-sdks/bash-sdk/cataloger","siteSpaceId":"sitesp_vjjUr","description":"Write Lunar catalogers in Bash — environment variables and the lunar catalog CLI commands for saving catalog data.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Bash SDK"}]},{"id":"0zBXxCHAlBYmE1JUjVod","title":"Collector","pathname":"/plugin-sdks/bash-sdk/collector","siteSpaceId":"sitesp_vjjUr","description":"Write Lunar collectors in Bash — environment variables and lunar CLI subcommands for emitting SDLC metadata from a collector script.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Bash SDK"}]},{"id":"VB0OtcHo8cvig2tgfxCb","title":"Python SDK","pathname":"/plugin-sdks/python-sdk","siteSpaceId":"sitesp_vjjUr","description":"Overview of Lunar's Python SDK for writing custom Lunar policies (with collector support coming soon).","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"}]},{"id":"8hApaMusE7i3YSObfadz","title":"Installing dependencies","pathname":"/plugin-sdks/python-sdk/dependencies","siteSpaceId":"sitesp_vjjUr","description":"How to install Python dependencies for Lunar policies, using a custom Docker image or native runtime execution.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"}]},{"id":"F6N6gQpsSDE4TiVHmdkL","title":"Collector","pathname":"/plugin-sdks/python-sdk/collector","siteSpaceId":"sitesp_vjjUr","description":"Placeholder for the upcoming Python Collector SDK used to gather component metadata in Lunar.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"}]},{"id":"q8FagXcCk9yHoHflmBqk","title":"Policy","pathname":"/plugin-sdks/python-sdk/policy","siteSpaceId":"sitesp_vjjUr","description":"Write Lunar policies in Python with the lunar_policy package — load component metadata, make assertions, and handle pending data.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"}]},{"id":"Acw4N6NN7psqglyOd7Te","title":"Check","pathname":"/plugin-sdks/python-sdk/policy/check","siteSpaceId":"sitesp_vjjUr","description":"Reference for the Check class in Lunar's Python Policy SDK — the fluent API for asserting on component metadata and tracking results.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"},{"label":"Policy"}]},{"id":"2jeFm9j4zikbWGnnWKHP","title":"CheckStatus","pathname":"/plugin-sdks/python-sdk/policy/check-status","siteSpaceId":"sitesp_vjjUr","description":"Reference for the CheckStatus enum used to mark Lunar policy outcomes as PASS, FAIL, PENDING, ERROR, or SKIPPED.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"},{"label":"Policy"}]},{"id":"J8JPXFBu8y87t9u9CTZ8","title":"Node","pathname":"/plugin-sdks/python-sdk/policy/node","siteSpaceId":"sitesp_vjjUr","description":"Reference for the Node class in Lunar's Python Policy SDK — used to navigate, query, and iterate over component JSON data.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"},{"label":"Policy"}]},{"id":"QFgIr8KDEGvL02HbAHTX","title":"NoDataError","pathname":"/plugin-sdks/python-sdk/policy/no-data-error","siteSpaceId":"sitesp_vjjUr","description":"Reference for the NoDataError exception that signals required component data is not yet collected, marking a Lunar check as pending.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"},{"label":"Policy"}]},{"id":"lYsub6uEGRDVvytdjit9","title":"SkippedError","pathname":"/plugin-sdks/python-sdk/policy/skipped-error","siteSpaceId":"sitesp_vjjUr","description":"Reference for the SkippedError exception used to skip a Lunar check when it does not apply to the current component.","breadcrumbs":[{"label":"Plugin SDKs","emoji":"1f6e0"},{"label":"Python SDK"},{"label":"Policy"}]},{"id":"obQJSrZ3dGxqXCJ4y0eM","title":"Overview","pathname":"/sql-api/sql-api","siteSpaceId":"sitesp_vjjUr","description":"Overview of Lunar's read-only SQL API for querying components, domains, policies, checks, and other Hub data via PostgreSQL clients.","breadcrumbs":[{"label":"SQL API","emoji":"2699"}]},{"id":"lWnAKokEXbJYcPec2mJ5","title":"Views","pathname":"/sql-api/views","siteSpaceId":"sitesp_vjjUr","description":"","breadcrumbs":[{"label":"SQL API","emoji":"2699"}]},{"id":"Lz3KVI9H4lVsdjxu4MGK","title":"domains","pathname":"/sql-api/views/domains","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the domains SQL view — one row per domain with its description, owner, and metadata for grouping components.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]},{"id":"S7aButoMAVqbvnvbp7TJ","title":"components","pathname":"/sql-api/views/components","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the components and components_latest SQL views — time series of tracked components with merged collector metadata per commit.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]},{"id":"uyBvlO3AdJ26mU3NJZEO","title":"component_deltas","pathname":"/sql-api/views/component-deltas","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the component_deltas SQL views — per-collector metadata deltas that merge into each component's full JSON over time.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]},{"id":"qrNb9zRYAP8GfUk3xenI","title":"initiatives","pathname":"/sql-api/views/initiatives","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the initiatives SQL view — one row per initiative grouping policies around a shared goal or compliance requirement.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]},{"id":"lhBxfb0WD2qb6CPRCBY2","title":"policies","pathname":"/sql-api/views/policies","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the policies SQL view — one row per policy with its enforcement level and parent initiative.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]},{"id":"bRaS7DE7SYL7AzTDMEdy","title":"checks","pathname":"/sql-api/views/checks","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the checks and checks_latest SQL views — every policy check evaluation with status, enforcement, component, and PR context.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]},{"id":"yQpSeGA1PNWeFBxJBbDF","title":"prs","pathname":"/sql-api/views/prs","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the prs SQL view — pull request metadata mirrored from GitHub including author, status, and latest commit details.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]},{"id":"RfboCtbJgcfk7A8u0Dr6","title":"catalog","pathname":"/sql-api/views/catalog","siteSpaceId":"sitesp_vjjUr","description":"Schema reference for the catalog and catalog_latest SQL views — full catalog JSON snapshots produced by catalogers, with history over time.","breadcrumbs":[{"label":"SQL API","emoji":"2699"},{"label":"Views"}]}]}