Skip to main content
This page covers the essential lifecycle and maintenance commands of the Palyra CLI. These commands facilitate the initial installation (setup), guided configuration and user integration (onboarding), and automated health maintenance and recovery (doctor).

Setup and Initialization

The setup command (aliased as init) is the primary entry point for bootstrapping a Palyra environment. It handles filesystem scaffolding, TLS certificate generation, and initial configuration file creation.

Implementation Details

The setup logic is driven by run_setup_wizard in crates/palyra-cli/src/commands/operator_wizard.rs#239-251. It supports two primary modes:
  • Local: Configures a daemon intended to run on the same machine as the CLI.
  • Remote: Configures the CLI to connect to an existing gateway, often requiring TLS scaffold selection (e.g., self-signed) crates/palyra-cli/src/args/tests.rs#33-51.

Data Flow: Setup Execution

  1. Argument Parsing: clap parses InitModeArg and InitTlsScaffoldArg crates/palyra-cli/src/args/mod.rs#77-77.
  2. Wizard Invocation: If --wizard is passed, it delegates to the WizardSession engine crates/palyra-cli/src/commands/operator_wizard.rs#246-251.
  3. Config Generation: The CLI generates a RootFileConfig and writes it to the specified path, typically using write_document_with_backups to ensure safety crates/palyra-cli/src/lib.rs#95-98.
Sources: crates/palyra-cli/src/commands/operator_wizard.rs#239-251, crates/palyra-cli/src/args/mod.rs#77-77, crates/palyra-cli/src/lib.rs#95-101

Onboarding Wizard

The onboarding system provides a high-level, interactive flow for users to configure their identity, model providers (e.g., OpenAI), and workspace settings.

Wizard Engine

The wizard is implemented using a generic WizardBackend trait crates/palyra-cli/src/commands/operator_wizard.rs#10-15.

Mutation Plan

During the wizard, the CLI builds an OnboardingMutationPlan crates/palyra-cli/src/commands/operator_wizard.rs#168-194. This plan tracks:
  • Auth Methods: API keys or admin tokens.
  • Network Bindings: Ports for gRPC (default 7443) and QUIC (default 7444) crates/palyra-cli/src/lib.rs#150-155.
  • Risk Events: Tracking potentially dangerous configurations (e.g., binding to 0.0.0.0).

Onboarding Flow Mapping

Flow NamePurposeKey Entity
quickstartDefault local setupWizardFlowKind::Quickstart
manualGranular control over every fieldWizardFlowKind::Manual
remoteConnecting to a remote gatewayWizardFlowKind::Remote
Sources: crates/palyra-cli/src/commands/operator_wizard.rs#64-86, crates/palyra-cli/src/commands/operator_wizard.rs#168-194, crates/palyra-cli/src/lib.rs#150-155

Doctor: Diagnostic and Recovery Pipeline

The doctor command is a comprehensive diagnostic tool that audits the toolchain, validates connectivity, and provides automated repair capabilities for corrupted states.

Diagnostic Pipeline

The pipeline executes a series of checks defined in crates/palyra-cli/src/commands/doctor/recovery.rs.

1. Toolchain & Config Audit

2. Connectivity Probes

3. Access Registry Audit

  • Principal Verification: Ensures the current CLI profile has valid permissions in the daemon’s access_registry.

Recovery and Repair

If inconsistencies are found, doctor --repair generates a DoctorRepairPlan crates/palyra-cli/src/commands/doctor/recovery.rs#172-175.

Repair Actions (DoctorRepairKind):

System Mapping: Doctor Logic to Code Entities

Sources: crates/palyra-cli/src/commands/doctor/recovery.rs#8-10, crates/palyra-cli/src/commands/doctor/recovery.rs#48-57, crates/palyra-cli/src/commands/doctor/recovery.rs#141-155, crates/palyra-cli/src/commands/doctor/recovery.rs#172-237

Configuration Migration

Palyra handles configuration evolution through a migration layer in palyra-common.

Data Flow: Config Loading

  1. Read: CLI locates config via default_config_search_paths crates/palyra-cli/src/lib.rs#101-101.
  2. Parse & Migrate: parse_document_with_migration is called crates/palyra-cli/src/lib.rs#95-98.
  3. Redaction: Before displaying or logging, redact_secret_config_values is applied to prevent leaking API keys crates/palyra-cli/src/lib.rs#100-100.

Migration Lifecycle Diagram

Sources: crates/palyra-cli/src/lib.rs#95-105, crates/palyra-cli/src/commands/doctor/recovery.rs#182-188

Diagnostic Handlers (Daemon-side)

While the CLI initiates diagnostics, the daemon provides the underlying data via the console_diagnostics_handler crates/palyra-daemon/src/transport/http/handlers/console/diagnostics.rs#6-9.

Key Diagnostic Payloads:

Sources: crates/palyra-daemon/src/transport/http/handlers/console/diagnostics.rs#6-56