Версия: 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
# 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
# Add to ~/.bashrc
eval "$(_CIFRA_COMPLETE=bash_source cifra)"
# Add to ~/.zshrc
eval "$(_CIFRA_COMPLETE=zsh_source cifra)"
# Add to ~/.config/fish/config.fish
eval (env _CIFRA_COMPLETE=fish_source cifra)
# 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