@flexsiteio/cli
v1.0.4
Published
FlexSite CLI - Command-line tool for managing FlexSite projects
Maintainers
Readme
FlexSite CLI
Command-line tool for managing FlexSite projects. Download and import database and files backups to your local Lando or DDEV environment.
Installation
npm install -g @flexsiteio/cliQuick Start
Get an access token from your FlexSite dashboard under Profile > Access Tokens
Login with your token:
flexsite auth loginSync your local environment:
flexsite sync
Commands
Authentication
# Login with a personal access token
flexsite auth login
# Login with token directly (non-interactive)
flexsite auth login --token fst_xxx_...
# Check authentication status
flexsite auth status
# Logout
flexsite auth logoutDatabase Operations
# Download and import latest database backup
flexsite db pull
# Download to specific environment
flexsite db pull --env <environmentId>
# List available backups
flexsite db list
# Download without importing
flexsite db pull --no-importFiles Operations
# Download and extract latest files backup
flexsite files pull
# Download to specific environment
flexsite files pull --env <environmentId>
# List available backups
flexsite files list
# Download without extracting
flexsite files pull --no-importSync (Database + Files)
# Sync both database and files
flexsite sync
# Sync only database
flexsite sync --db-only
# Sync only files
flexsite sync --files-onlyConfiguration
# Show current configuration
flexsite config show
# Set default organization
flexsite config set org <orgId>
# Set default project
flexsite config set project <projectId>
# Set default environment
flexsite config set env <envId>
# Show config file path
flexsite config pathComposer Migration
Transform composer.json from other platforms (Pantheon, Acquia, Platform.sh) to FlexSite format.
# Check composer.json for FlexSite compatibility
flexsite composer check
# Fix composer.json for FlexSite (interactive)
flexsite composer fix
# Fix with project name specified
flexsite composer fix --name my-project
# Preview changes without modifying files
flexsite composer fix --dry-run
# Create backup before modifying
flexsite composer fix --backup
# Skip adding performance packages
flexsite composer fix --skip-performance
# Specify custom file path
flexsite composer fix -f path/to/composer.jsonWhat composer fix does:
| Change | Description |
|--------|-------------|
| Name | Updates to flexsite/{project-name} |
| Repositories | Adds FlexSite package repository, removes platform-specific paths |
| Packages | Removes Pantheon/Acquia packages, adds flexsite/fs_performance, drupal/redis, drupal/purge, drupal/varnish_purge |
| Installer paths | Adds recipes/{$name} for Drupal recipes, removes Quicksilver |
| Scaffold | Removes platform-specific file mappings |
| Scripts | Removes platform-specific composer scripts |
Supported platforms:
- Pantheon (
pantheon-upstreams/drupal-composer-managed) - Acquia (
acquia/blt) - Platform.sh (
platformsh/config-reader)
Local Environment Support
The CLI automatically detects Lando and DDEV environments and uses the appropriate commands for importing databases and files.
Lando
When a .lando.yml file is present or the LANDO environment variable is set to ON, the CLI will use:
lando db-importfor database imports- Standard
tarextraction for files, with permission fixes vialando ssh
DDEV
When a .ddev/config.yaml file is present or the IS_DDEV_PROJECT environment variable is set to true, the CLI will use:
ddev import-dbfor database imports- Standard
tarextraction for files, with permission fixes viaddev exec
Configuration File
The CLI stores configuration in ~/.flexsite/config.json:
{
"version": 1,
"tokens": {
"d112c061": {
"token": "fst_d112c061_...",
"userId": "110bc5d0-...",
"organizationId": "d112c061-...",
"organizationName": "My Company"
}
},
"defaults": {
"organizationId": "d112c061-...",
"projectId": "727aa8c7-...",
"environmentId": "f9b72cdd-..."
}
}Environment Variables
FLEXSITE_API_URL- Override the API base URL (default:https://cli-api.flexsite.io/v1)
Token Scopes
When creating a personal access token, you can limit its permissions:
| Scope | Description |
|-------|-------------|
| backup:read | Download database backups |
| backup:create | Create new database backups |
| files:read | Download files backups |
| files:create | Create new files backups |
| drush:execute | Execute Drush commands remotely |
| projects:read | List projects |
| environments:read | List environments |
Note: The
flexsite composercommands work locally and do not require authentication or any token scopes.
License
MIT
