Refactor `coolify docs llms` to emit two AI-oriented artifacts:
- `llms.txt` as a concise operating guide
- `llms-full.txt` as the exhaustive command and flag catalog
Update tests to cover quick/full generation, document both files in README,
and adjust CI to fail when either generated file is out of date.
Refactor `docs` generation to split intro/body content and build the
`Command Aliases` section dynamically from Cobra commands instead of a
hardcoded list.
Add `cmd/docs_test.go` coverage for:
- alias extraction from nested command trees
- flag rendering with shorthand and default values
Regenerate `llms.txt` to reflect the new alias output and updated docs.
Add shared deploy flags (`--force`, `--pull-request-id`, `--docker-tag`) to
`deploy uuid|name|batch`, and validate `--docker-tag` against minimum
Coolify version `4.0.0-beta.471`.
Refactor deployment triggering to send a structured `DeployRequest` via
`POST /deploy` instead of GET query parameters, enabling optional payload
fields for preview/tagged deployments.
Update deployment service tests to assert POST method and JSON body, and
document the new flags and example usage in the README.
Redirect the version update message from stdout to stderr so command JSON output stays machine-readable.
Expand checker tests with shared stdout/stderr capture helpers and assertions to verify:
- update notices are emitted on stderr only
- stdout remains clean during checks and errors
- JSON output to stdout is unaffected when an update is available
Add comprehensive header to llms.txt including installation, authentication,
configuration, command aliases, usage examples, API notes, and data model
documentation. Update docs generator to output short flags and default values.
Add Homebrew formula configuration to goreleaser for distributing
coolify-cli via the homebrew-coolify-cli tap. This enables macOS/Linux
users to install the CLI with:
brew install coollabsio/coolify-cli/coolify-cli
Changes include goreleaser formula config, the HOMEBREW_TAP_GITHUB_TOKEN
in the release workflow, and updated installation instructions in README.
Reorganize parameter ordering for consistency across app, database, and
service env update commands. Move string parameters (--key, --value) after
boolean parameters. Simplify --key parameter description.
Replace assert.Equal with more specific boolean assertion helpers
(assert.True and assert.False) for improved readability and
idiomatic Go testing practices.
Add version check validation across all storage CRUD operations in application,
database, and service commands. This ensures the API client meets the minimum
version requirement before executing storage operations.
Also includes:
- Documentation updates for dockerfile-target-build parameter in llms.txt
- Field alignment formatting fixes in ApplicationCreateRequest structs
Add comprehensive storage management system for applications, databases, and services:
- Implement storage subcommands (list, create, update, delete) with full API integration
- Add support for both persistent volumes and file-based storage management
- Create Storage model with comprehensive validation for type-specific operations
- Implement ApplicationService, DatabaseService, and ServiceService storage methods
- Add extensive unit tests covering CRUD operations and edge cases
- Integrate storage subcommand into application, database, and service CLI commands
- Add dockerfile-target-build flag support to application creation and update commands
Storage operations support:
- Persistent volumes: create with optional host paths, update mount paths and names
- File storages: create/update with content or file system paths, support directories
- Common features: mount path management, read-only detection, preview suffix toggling
Add support for identifying environment variables by UUID or key name in
update commands, eliminating the requirement to use --key for lookups.
Commands now accept <env_uuid_or_key> as a positional argument to identify
the variable, with --key becoming optional for renaming only. Applied to
app, database, and service env update commands and updated documentation.
- Add ApplicationSettings struct for application-level feature flags
- Expand Application model with git, build, health check, and resource limit fields
- Add comprehensive unit tests for Application marshaling/unmarshaling
- Add application.json fixture for testing
- Replace sb.WriteString(fmt.Sprintf(...)) with fmt.Fprintf for more idiomatic
and efficient string formatting
- Tighten output file permissions from 0644 to 0600
- Move pflag to direct dependencies as it's now explicitly used
Adds a new 'llms-txt' job to the test workflow that regenerates llms.txt
and validates it hasn't changed, ensuring the documentation stays in sync
with the CLI implementation.
Add new `docs llms` subcommand that generates a machine-readable llms.txt
file defining all CLI commands and parameters. This enables AI agents to
understand and interact with the CLI programmatically.
- Implement writeLLMsCommand() to recursively document command hierarchy
- Regenerate llms.txt using the new generator for consistency
- Add --output flag to customize the output file path
The database list and get commands were hardcoded to use table format,
ignoring the global --format flag. This prevented users from using
--format=json or --format=pretty output formats.
Changes:
- cmd/database/list.go: read format flag from command
- cmd/database/get.go: read format flag from command
- Both commands now follow the same pattern as other list/get commands
- Move empty slice check before table writer creation for early exit
- Fix error message typo: "ascii w" → "table"
- Enhance boolean test to dynamically locate data rows instead of hardcoded indices
Add complete environment variable management for databases with full CRUD
operations, including a new sync command to load variables from .env files.
Support comment field across application, service, and database entities.
- Implement database env service layer with create, read, update, delete, list
- Add sync command for bulk loading and updating from .env files
- Add --comment flag to application and service env commands
- Include comprehensive test coverage for database service operations
- Update to Go 1.24.13
- Changed app and service env update commands to accept only the resource UUID instead of separate env UUID argument
- Made --key and --value required flags for identifying and updating environment variables
- Removed UUID field from EnvironmentVariableUpdateRequest model
- Updated validation to explicitly require --key and --value instead of "at least one field"
- Changed ServiceEnvBulkUpdateResponse from struct with message to slice of ServiceEnvironmentVariable
- Updated BulkUpdateEnvs return type from pointer to non-pointer
- Updated tests and documentation to reflect new command interface
Introduces a machine-readable llms.txt file that defines all CLI commands and their parameters. This file is generated by analyzing the cobra command definitions and is intended to enable AI agents to understand and interact with the CLI.