Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Add interactive configuration wizard for lakeFS setup#10105

Draft
nopcoder wants to merge 3 commits intomasterfrom
claude/interactive-lakefs-config-Oai97
Draft

Add interactive configuration wizard for lakeFS setup#10105
nopcoder wants to merge 3 commits intomasterfrom
claude/interactive-lakefs-config-Oai97

Conversation

@nopcoder
Copy link
Contributor

@nopcoder nopcoder commented Feb 5, 2026

Change Description

New Feature

This PR introduces an interactive configuration wizard (lakefs config command) that guides users through setting up lakeFS with a step-by-step prompt-based interface.

Key Features:

  1. Interactive Menu System: Users navigate through configuration categories with a clear status indicator system:

    • [REQUIRED] - Must be configured before saving
    • [configured] - Already configured (can be modified)
    • [optional] - Optional settings (can be skipped)
  2. Comprehensive Configuration Coverage:

    • Database: PostgreSQL, Local, DynamoDB, CosmosDB
    • Object Storage: S3, Google Cloud Storage, Azure Blob Storage, Local filesystem
    • Security: Authentication and signing secret key generation/configuration
    • Listen Address: Server binding configuration
    • Logging: Format, level, and output configuration
    • TLS: HTTPS certificate configuration
    • S3 Gateway: S3-compatible gateway settings
    • Statistics: Anonymous usage statistics opt-in
  3. Smart Features:

    • Loads existing configuration files as defaults
    • Validates all user inputs (URLs, paths, connection strings, etc.)
    • Generates secure random secrets (256-bit keys)
    • Masks sensitive information in configuration review
    • Prevents saving incomplete required configurations
    • Creates output directory if it doesn't exist
  4. User Experience:

    • Welcome banner with documentation links
    • Configuration review screen showing all settings
    • Clear warnings for development-only options (local storage)
    • Password masking for sensitive inputs
    • Confirmation prompts for destructive actions
    • Next steps guidance after successful save

Command Usage:

lakefs config                                    # Interactive wizard
lakefs config -o /path/to/config.yaml           # Specify output path
lakefs config -c /path/to/existing/config.yaml  # Load existing config

Testing Details

The implementation includes:

  • Input validation functions for all configuration types (URLs, paths, connection strings, hostnames, ports)
  • State management to track configuration progress
  • Proper error handling with user-friendly error messages
  • Support for loading and merging existing configurations

Breaking Change?

No breaking changes. This is a new optional command that doesn't affect existing functionality.

Implements a new `lakefs configure` command that provides an interactive
wizard for generating lakeFS configuration files, similar to the existing
`lakectl config` command but tailored for the full lakeFS server configuration.

Features:
- Basic and Advanced configuration modes
- Conditional prompts based on selections:
  - Database type: PostgreSQL, Local, DynamoDB, CosmosDB
  - Blockstore type: S3, GCS, Azure, Local
- Automatic secure secret key generation (256-bit)
- Input validation for URLs, paths, addresses, connection strings
- User-friendly formatting with banners and warnings
- Support for custom output path via --output flag

The command guides users through:
1. Listen address configuration
2. Database connection setup
3. Object storage backend configuration
4. Security secrets (auth encryption and signing keys)
5. Advanced options: logging, TLS, S3 gateway, stats

https://claude.ai/code/session_01D37w8ZRwvWzpcgBBWUpwHL
This update significantly improves the interactive lakeFS configuration
experience with the following enhancements:

Load existing configuration:
- Automatically loads existing config from output path or --config flag
- Uses loaded values as defaults in all prompts
- Detects and respects already-configured sections

Category-based navigation:
- Main menu organized into Required and Optional sections
- Status indicators: [REQUIRED], [configured], [optional]
- Users can navigate between categories in any order
- Skip sections they don't need to configure

Mandatory field validation:
- Tracks configuration status for each category
- Prevents saving until all required sections are configured
- Lists missing required sections when save is attempted
- Detects invalid default secrets and marks security as unconfigured

Additional features:
- Configuration review screen showing all settings
- Sensitive data masking in review (passwords, secrets)
- Cancel confirmation to prevent accidental data loss
- --config flag to load from a specific input file

Renamed command from 'configure' to 'config' to align with lakectl.

https://claude.ai/code/session_01D37w8ZRwvWzpcgBBWUpwHL
Remove Unicode box-drawing characters and replace with plain ASCII:
- Welcome banner now uses simple text with === underlines
- Section headers use --- instead of Unicode dashes
- Warning and notice messages use plain text
- Configuration review uses simple === separators

This improves compatibility across different terminals and fonts.

https://claude.ai/code/session_01D37w8ZRwvWzpcgBBWUpwHL
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions github-actions bot added the area/testing Improvements or additions to tests label Feb 5, 2026
@nopcoder nopcoder self-assigned this Feb 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/testing Improvements or additions to tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants