architect/_archive/2025-11-cleanup/platform-v2-cifra/archive/2025-11-10-restructure-v2/CLI_REFERENCE.md

CIFRA CLI - Command Reference

Версия: 1.0.0
Дата: 2025-11-10


Установка

pip install cifra

# Или из исходников
git clone https://github.com/cifra/cifra-platform
cd cifra-platform
pip install -e .

Команды

cifra init - Создать новый проект

cifra init <project-name> [options]

Опции:
- --template, -t <name> - Шаблон (crm, erp, admin_panel, cms, ecommerce)
- --database, -d <type> - БД (postgresql, mysql, sqlite) [default: postgresql]
- --auth - Включить аутентификацию [default: true]
- --oauth - OAuth провайдеры через запятую (google,github,microsoft)
- --no-git - Не создавать git репозиторий
- --path <dir> - Путь для создания проекта [default: ./]

Примеры:

# CRM с PostgreSQL и OAuth
cifra init my-crm --template crm --oauth google,github

# E-commerce с SQLite
cifra init shop --template ecommerce --database sqlite

# Пустой проект
cifra init my-app --no-template

cifra generate - Генерация кода

cifra generate <config.cifra> [options]

Опции:
- --output, -o <dir> - Папка для генерации [default: ./generated]
- --force, -f - Перезаписать существующие файлы
- --watch, -w - Watch mode (регенерация при изменении)
- --dry-run - Показать что будет сгенерировано (без записи)
- --target <name> - Что генерировать (api, models, admin, migrations, all) [default: all]

Примеры:

# Полная генерация
cifra generate crm.cifra

# Только API
cifra generate crm.cifra --target api

# Watch mode для разработки
cifra generate crm.cifra --watch

# Dry run
cifra generate crm.cifra --dry-run

cifra run - Запуск приложения

cifra run <config.cifra> [options]

Опции:
- --port, -p <number> - Порт [default: 8000]
- --host <address> - Host [default: 0.0.0.0]
- --reload - Auto-reload при изменении кода
- --workers <number> - Количество worker процессов [default: 1]
- --log-level <level> - Уровень логов (debug, info, warning, error) [default: info]

Примеры:

# Запуск на порту 8000
cifra run crm.cifra

# С auto-reload
cifra run crm.cifra --reload

# Production (4 workers)
cifra run crm.cifra --workers 4 --log-level warning

cifra migrate - Миграции БД

cifra migrate <command> [options]

Команды:
- create <name> - Создать миграцию
- up - Применить миграции
- down [number] - Откатить N миграций [default: 1]
- status - Статус миграций
- reset - Сбросить все миграции (ОСТОРОЖНО!)

Опции:
- --autogenerate - Автогенерация миграции (detect changes)
- --sql - Показать SQL (не выполнять)

Примеры:

# Создать миграцию
cifra migrate create "add user preferences"

# Автогенерация
cifra migrate create "auto changes" --autogenerate

# Применить миграции
cifra migrate up

# Откатить последнюю
cifra migrate down

# Откатить 3 миграции
cifra migrate down 3

# Статус
cifra migrate status

cifra export - Экспорт данных

cifra export <entity> [options]

Опции:
- --format <type> - Формат (json, csv, xlsx, sql) [default: json]
- --filter <query> - Фильтр данных (CQL синтаксис)
- --output, -o <file> - Выходной файл [default: stdout]
- --fields <list> - Список полей через запятую

Примеры:

# Экспорт в JSON
cifra export Contact --output contacts.json

# CSV с фильтром
cifra export Contact --format csv --filter '{"email": {"$regex": ".*@gmail.com"}}' -o gmail_contacts.csv

# Только определённые поля
cifra export Deal --fields id,title,amount,stage --format xlsx -o deals.xlsx

cifra import - Импорт данных

cifra import <file> [options]

Опции:
- --entity <name> - Entity для импорта [required]
- --format <type> - Формат файла (json, csv, xlsx) [auto-detect]
- --update - Обновлять существующие записи (по ID)
- --skip-errors - Пропускать ошибки
- --batch-size <number> - Размер batch [default: 100]

Примеры:

# Импорт из CSV
cifra import contacts.csv --entity Contact

# С обновлением существующих
cifra import contacts.json --entity Contact --update

# Пропускать ошибки
cifra import data.xlsx --entity Deal --skip-errors

cifra hub - CIFRA Hub (модули)

cifra hub <command>

Команды:
- search <query> - Поиск модулей
- install <module> - Установить модуль
- uninstall <module> - Удалить модуль
- list - Список установленных модулей
- update [module] - Обновить модуль (или все)
- publish - Опубликовать модуль

Примеры:

# Поиск модулей
cifra hub search payment

# Установка
cifra hub install stripe-integration

# Список установленных
cifra hub list

# Обновить все
cifra hub update

# Публикация своего модуля
cifra hub publish

cifra deploy - Развёртывание

cifra deploy <environment> [options]

Опции:
- --provider <name> - Cloud provider (aws, gcp, azure, do, heroku)
- --region <name> - Регион
- --instances <number> - Количество инстансов [default: 1]
- --auto-scale - Включить auto-scaling

Примеры:

# Deploy на AWS
cifra deploy production --provider aws --region us-east-1 --instances 3

# Heroku
cifra deploy staging --provider heroku

cifra doctor - Проверка окружения

cifra doctor

Проверяет:
- ✓ Python версия (>= 3.10)
- ✓ PostgreSQL доступен
- ✓ Redis доступен
- ✓ Зависимости установлены
- ✓ Конфигурация корректна


cifra test - Запуск тестов

cifra test [options]

Опции:
- --unit - Только unit tests
- --integration - Только integration tests
- --e2e - Только E2E tests
- --coverage - С coverage отчётом
- --verbose, -v - Verbose output

Примеры:

# Все тесты
cifra test

# Только unit
cifra test --unit

# С coverage
cifra test --coverage

cifra db - Управление БД

cifra db <command>

Команды:
- create - Создать БД
- drop - Удалить БД (ОСТОРОЖНО!)
- reset - Пересоздать БД
- seed - Загрузить seed data
- backup - Бэкап БД
- restore <file> - Восстановить из бэкапа

Примеры:

# Создать БД
cifra db create

# Seed data
cifra db seed

# Бэкап
cifra db backup --output backup_$(date +%Y%m%d).sql

# Восстановление
cifra db restore backup_20251110.sql

cifra config - Управление конфигурацией

cifra config <command>

Команды:
- get <key> - Получить значение
- set <key> <value> - Установить значение
- list - Список всех настроек
- validate - Проверить конфигурацию

Примеры:

# Получить значение
cifra config get database.host

# Установить
cifra config set theme admin_material

# Список
cifra config list

cifra plugin - Управление плагинами

cifra plugin <command>

Команды:
- list - Список плагинов
- enable <name> - Включить плагин
- disable <name> - Отключить плагин
- install <path> - Установить плагин


Конфигурационный файл

.cifrarc

# .cifrarc - конфигурация CIFRA CLI
version: 1.0.0

# Default settings
defaults:
  database: postgresql
  port: 8000
  auth: true

# Hub registry
hub:
  registry: https://hub.cifra.io
  token: ${CIFRA_HUB_TOKEN}

# Deployment
deploy:
  production:
    provider: aws
    region: us-east-1
    instances: 3

  staging:
    provider: do
    region: nyc1
    instances: 1

Environment Variables

# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/cifra
REDIS_URL=redis://localhost:6379/0

# CIFRA
CIFRA_ENV=development  # development, staging, production
CIFRA_SECRET_KEY=your-secret-key
CIFRA_DEBUG=true

# Hub
CIFRA_HUB_TOKEN=your-hub-token

Auto-completion

Bash

# Add to ~/.bashrc
eval "$(_CIFRA_COMPLETE=bash_source cifra)"

Zsh

# Add to ~/.zshrc
eval "$(_CIFRA_COMPLETE=zsh_source cifra)"

Fish

# Add to ~/.config/fish/config.fish
eval (env _CIFRA_COMPLETE=fish_source cifra)

Примеры использования

Создание CRM с нуля

# 1. Создать проект
cifra init my-crm --template crm --oauth google,github

# 2. Перейти в директорию
cd my-crm

# 3. Применить миграции
cifra migrate up

# 4. Загрузить seed data
cifra db seed

# 5. Запустить
cifra run my-crm.cifra --reload

# 6. Открыть
open http://localhost:8000

Разработка кастомного модуля

# 1. Создать модуль
mkdir -p modules/my-module

# 2. Описать в YAML
cat > modules/my-module/module.cifra <<EOF
module:
  name: my-module
  version: 1.0.0
  entities:
    - CustomEntity
EOF

# 3. Генерация
cifra generate modules/my-module/module.cifra

# 4. Запуск с watch mode
cifra run my-app.cifra --watch

Версия: 1.0.0
Дата: 2025-11-10