/
atombpmn
/
atom-engine
Обзор
Документация
Войти
/
atombpmn
/
atom-engine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
master
src/interfaces/cli/help.go
413 строк
28 KB
sembaev-a-a
Initial commit
18 ноя 2025, 03:22
18 ноя 2025, 03:22
8f621c0
Код
Авторство
О чём код?
/* This file is part of the AtomBPMN (R) project. Copyright (c) 2025 Matreska Market LLC (ООО «Matreska Market»). Authors: Matreska Team. This project is dual-licensed under AGPL-3.0 and AtomBPMN Commercial License. */ package cli import ( "atom-engine/src/version" "fmt" ) // showHelp displays help information // Показывает справочную информацию func showHelp() { fmt.Printf("Atom Engine %s - BPMN Process Engine\n", version.Version) fmt.Printf("Build: %s | Git: %.12s\n", version.BuildTime, version.GitCommit) fmt.Println("") fmt.Println("USAGE:") fmt.Println(" atomd <command> [args...]") fmt.Println("") fmt.Println("DAEMON COMMANDS:") fmt.Println(" start Start daemon in background") fmt.Println(" run Start daemon in foreground") fmt.Println(" stop Stop running daemon") fmt.Println(" status Show daemon status") fmt.Println(" events Show system events from database") fmt.Println(" help Show this help") fmt.Println("") fmt.Println("MANAGEMENT COMMANDS:") fmt.Println(" storage <cmd> Storage management (status, info, help)") fmt.Println(" timer <cmd> Timer management (add, remove, status, list, stats, help)") fmt.Println(" bpmn <cmd> BPMN management (parse, list, show, delete, stats, json, help)") fmt.Println(" process <cmd> Process management (start, status, cancel, list, help)") fmt.Println(" token <cmd> Token management (list, show, trace, help)") fmt.Println(" job <cmd> Job management (list, show, activate, complete,") fmt.Println(" fail, cancel, create, throw-error, stats, help)") fmt.Println(" message <cmd> Message management (publish, list, subscriptions,") fmt.Println(" buffered, cleanup, stats, test, help)") fmt.Println(" expression <cmd> Expression evaluation (eval, validate, parse, functions, test, help)") fmt.Println(" incident <cmd> Incident management (list, show, resolve, stats, help)") fmt.Println("") fmt.Println("QUICK REFERENCE:") fmt.Println("") fmt.Println("Storage:") fmt.Println(" atomd storage status Show storage status") fmt.Println(" atomd storage info Show storage information and statistics") fmt.Println("") fmt.Println("Timer:") fmt.Println(" atomd timer add <id> <duration> Add timer (PT30S, R5/PT10S)") fmt.Println(" atomd timer remove <id> Remove timer") fmt.Println(" atomd timer list [status] [limit] List timers") fmt.Println(" atomd timer stats Show timewheel statistics") fmt.Println("") fmt.Println("BPMN:") fmt.Println(" atomd bpmn parse <file.bpmn> [id] [-f] Parse BPMN file") fmt.Println(" atomd bpmn list [limit] List BPMN processes") fmt.Println(" atomd bpmn show <process_key> Show process details (use PROCESS KEY)") fmt.Println(" atomd bpmn delete <process_id> Delete process") fmt.Println(" atomd bpmn stats Show parser statistics") fmt.Println(" atomd bpmn json <process_key> Show process JSON (use PROCESS KEY)") fmt.Println(" atomd bpmn xml <process_key> Show original XML (use PROCESS KEY)") fmt.Println("") fmt.Println("Process:") fmt.Println(" atomd process start <key> [-v ver] [-d vars] Start process instance") fmt.Println(" atomd process status <instance_id> Get instance status") fmt.Println(" atomd process info <instance_id> Get complete instance information") fmt.Println(" atomd process cancel <instance_id> [reason] Cancel instance") fmt.Println(" atomd process list [status] [limit] List instances") fmt.Println("") fmt.Println("Token:") fmt.Println(" atomd token list [instance_id] [state] List tokens") fmt.Println(" atomd token show <token_id> Show token details") fmt.Println(" atomd token trace <instance_id> Trace execution path") fmt.Println("") fmt.Println("Job:") fmt.Println(" atomd job list [type] [worker] [limit] List jobs") fmt.Println(" atomd job show <job_key> Show job details") fmt.Println(" atomd job activate <type> <worker> [max] [timeout] Activate jobs for worker") fmt.Println(" atomd job complete <job_key> [variables] Complete job") fmt.Println(" atomd job fail <job_key> <retries> [error] Fail job") fmt.Println(" atomd job throw-error <job_key> <code> [message] Throw BPMN error") fmt.Println(" atomd job cancel <job_key> Cancel job") fmt.Println(" atomd job stats Show statistics") fmt.Println("") fmt.Println("Message:") fmt.Println(" atomd message publish <name> [key] [vars] [ttl] Publish message") fmt.Println(" atomd message list [tenant] [limit] List messages") fmt.Println(" atomd message subscriptions [tenant] [limit] List subscriptions") fmt.Println(" atomd message buffered [tenant] [limit] List buffered messages") fmt.Println(" atomd message cleanup [tenant] Cleanup expired messages") fmt.Println(" atomd message stats [tenant] Show statistics") fmt.Println(" atomd message test Test messaging") fmt.Println("") fmt.Println("Expression:") fmt.Println(" atomd expression eval <expr> [context] Evaluate expression") fmt.Println(" atomd expression validate <expr> [schema] Validate expression") fmt.Println(" atomd expression parse <expr> Parse to AST") fmt.Println(" atomd expression functions [category] List functions") fmt.Println(" atomd expression test <expr> <cases> Test expression") fmt.Println("") fmt.Println("Incident:") fmt.Println(" atomd incident list [status] [type] [limit] List incidents") fmt.Println(" atomd incident show <incident_id> Show details") fmt.Println(" atomd incident resolve <id> retry [retries] [comment] Resolve with retry") fmt.Println(" atomd incident resolve <id> dismiss [comment] Dismiss incident") fmt.Println(" atomd incident stats Show statistics") fmt.Println("") fmt.Println("For detailed help on any command, use: atomd <command> help") fmt.Println("Examples:") fmt.Println(" atomd timer help Detailed timer command help") fmt.Println(" atomd bpmn help Detailed BPMN command help") fmt.Println(" atomd process help Detailed process command help") } // showStorageHelp displays storage help information // Показывает справочную информацию по storage func showStorageHelp() { fmt.Println("Storage management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd storage status - Show storage status") fmt.Println(" atomd storage info - Show storage information and statistics") fmt.Println(" atomd storage help - Show this help") } // showTimerHelp displays timer help information // Показывает справочную информацию по timer func showTimerHelp() { fmt.Println("Timer management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd timer add <id> <duration_or_cycle> - Add new timer") fmt.Println(" atomd timer remove <id> - Remove timer") fmt.Println(" atomd timer status <id> - Get timer status") fmt.Println(" atomd timer list [status] [--page N] [--page-size N] - List all timers") fmt.Println(" atomd timer stats - Show timewheel statistics") fmt.Println(" atomd timer help - Show this help") fmt.Println("") fmt.Println("List options:") fmt.Println(" --page, -p <N> Page number (default: 1)") fmt.Println(" --page-size, -s <N> Number of timers per page (default: 20)") fmt.Println("") fmt.Println("Duration formats (ISO 8601):") fmt.Println(" PT30S - 30 seconds") fmt.Println(" PT5M - 5 minutes") fmt.Println(" PT1H - 1 hour") fmt.Println(" P1D - 1 day") fmt.Println(" P1DT2H30M - 1 day 2 hours 30 minutes") fmt.Println("") fmt.Println("Repeating cycles (ISO 8601):") fmt.Println(" R5/PT30S - Repeat 5 times every 30 seconds") fmt.Println(" R/PT1M - Repeat infinitely every minute") fmt.Println(" R3/PT10S - Repeat 3 times every 10 seconds") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd timer add timer1 PT5S - Add timer for 5 seconds") fmt.Println(" atomd timer add timer2 R3/PT10S - Repeat 3 times every 10 seconds") fmt.Println(" atomd timer add timer3 R/PT30M - Repeat infinitely every 30 minutes") fmt.Println(" atomd timer remove timer1 - Remove timer1") fmt.Println(" atomd timer status timer1 - Check timer1 status") fmt.Println(" atomd timer list - List first 20 timers") fmt.Println(" atomd timer list --page 2 - List page 2 (timers 21-40)") fmt.Println(" atomd timer list SCHEDULED --page-size 50 - List scheduled timers, 50 per page") fmt.Println(" atomd timer list ACTIVE --page 1 --page-size 10 - List active timers with pagination") } // showProcessHelp displays process help information // Показывает справочную информацию по process func showProcessHelp() { fmt.Println("Process management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd process start <process_key> [-v version] [-d variables] - Start process instance") fmt.Println(" atomd process status <instance_id> - Get process instance status") fmt.Println(" atomd process info <instance_id> - Get complete process instance information") fmt.Println(" atomd process cancel <instance_id> [reason] - Cancel process instance") fmt.Println(" atomd process list [status] [process_key] [--page N] [--page-size N] - List process instances") fmt.Println(" atomd process help - Show this help") fmt.Println("") fmt.Println("Start options:") fmt.Println(" -v, --version <version> - Specific version to start") fmt.Println(" -d, --data <json> - Process variables as JSON") fmt.Println("") fmt.Println("List options:") fmt.Println(" --page, -p <N> Page number (default: 1)") fmt.Println(" --page-size, -s <N> Number of instances per page (default: 20)") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd process start Process_Big_Process_ID - Start latest version") fmt.Println(" atomd process start Process_Big_Process_ID -v 3 - Start version 3") fmt.Println(" atomd process start Process_Big_Process_ID -d '{\"data\": \"value\"}' - Start with variables") fmt.Println(" atomd process status srv1-aB3dEf9hK2mN5pQ8uV - Get instance status") fmt.Println(" atomd process info srv1-aB3dEf9hK2mN5pQ8uV - Get complete instance info") fmt.Println(" atomd process cancel srv1-aB3dEf9hK2mN5pQ8uV \"user requested\" - Cancel with reason") fmt.Println(" atomd process list - List first 20 instances") fmt.Println(" atomd process list --page 2 - List page 2 (instances 21-40)") fmt.Println(" atomd process list ACTIVE --page-size 50 - List active instances, 50 per page") fmt.Println(" atomd process list \"\" ProcessKey --page 1 --page-size 10 - List instances with pagination") } // showTokenHelp displays token help information // Показывает справочную информацию по token func showTokenHelp() { fmt.Println("Token management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd token list [instance_id] [state] [--page N] [--page-size N] - List tokens") fmt.Println(" atomd token show <token_id> - Show token details") fmt.Println(" atomd token trace <instance_id> - Trace token execution path") fmt.Println(" atomd token help - Show this help") fmt.Println("") fmt.Println("List options:") fmt.Println(" --page, -p <N> Page number (default: 1)") fmt.Println(" --page-size, -s <N> Number of tokens per page (default: 20)") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd token list - List first 20 tokens") fmt.Println(" atomd token list --page 2 - List page 2 (tokens 21-40)") fmt.Println(" atomd token list --page-size 50 - List 50 tokens per page") fmt.Println(" atomd token list atom-8Gb7OM3URKioy78glT - List tokens for process instance") fmt.Println(" atomd token list \"\" ACTIVE --page 2 --page-size 10 - List active tokens, page 2, 10 per page") fmt.Println(" atomd token show atom-tokenid12345 - Show specific token") fmt.Println(" atomd token trace atom-8Gb7OM3URKioy78glT - Trace execution path") } // showJobHelp displays job help information // Показывает справочную информацию по job func showJobHelp() { fmt.Println("Job management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd job list [type] [worker] [process_instance_id] [process_key] [state] [--page N] [--page-size N] - List jobs") fmt.Println(" atomd job show <job_key> - Show job details") fmt.Println(" atomd job activate <type> <worker> [-j max_jobs] [-t timeout] - Activate jobs for worker") fmt.Println(" atomd job complete <job_key> [variables] - Complete job") fmt.Println(" atomd job fail <job_key> <retries> [error] [backoff] - Fail job") fmt.Println(" atomd job throw-error <job_key> <error_code> [error_message] - Throw BPMN error") fmt.Println(" atomd job cancel <job_key> - Cancel job") fmt.Println(" atomd job help - Show this help") fmt.Println("") fmt.Println("List options:") fmt.Println(" --page, -p <N> Page number (default: 1)") fmt.Println(" --page-size, -s <N> Number of jobs per page (default: 20)") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd job list - List first 20 jobs") fmt.Println(" atomd job list --page 2 - List page 2 (jobs 21-40)") fmt.Println(" atomd job list service-task --page-size 50 - List service-task jobs, 50 per page") fmt.Println(" atomd job list \"\" worker1 --page 1 --page-size 10 - List jobs for worker1 with pagination") fmt.Println(" atomd job show atom-jobkey12345 - Show specific job") fmt.Println(" atomd job activate service-task worker1 - Activate 1 job (default)") fmt.Println(" atomd job activate service-task worker1 -j 5 - Activate up to 5 jobs") fmt.Println(" atomd job activate service-task worker1 -t 5000 - Activate job with 5s timeout") fmt.Println(" atomd job activate service-task worker1 -j 3 -t 10000 - Activate 3 jobs with 10s timeout") fmt.Println(" atomd job complete atom-jobkey12345 '{\"result\": \"success\"}' - Complete with variables") fmt.Println(" atomd job fail atom-jobkey12345 2 \"Connection failed\" - Fail with 2 retries left") fmt.Println(" atomd job throw-error atom-jobkey12345 404 \"Not Found\" - Throw BPMN error 404") fmt.Println(" atomd job cancel atom-jobkey12345 - Cancel job") } // showMessageHelp displays message help information // Показывает справочную информацию по message func showMessageHelp() { fmt.Println("Message management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd message publish <name> [correlation_key] [variables] [ttl] - Publish message") fmt.Println(" atomd message list [tenant_id] [--page N] [--page-size N] - List buffered messages") fmt.Println(" atomd message subscriptions [tenant_id] [--page N] [--page-size N] - List subscriptions") fmt.Println(" atomd message buffered [tenant_id] - List buffered messages") fmt.Println(" atomd message cleanup [tenant_id] - Cleanup expired messages") fmt.Println(" atomd message stats [tenant_id] - Show message statistics") fmt.Println(" atomd message test - Test message system") fmt.Println(" atomd message help - Show this help") fmt.Println("") fmt.Println("List options:") fmt.Println(" --page, -p <N> Page number (default: 1)") fmt.Println(" --page-size, -s <N> Number of items per page (default: 20)") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd message publish order_created - Publish simple message") fmt.Println(" atomd message publish order_created order123 - Publish with correlation key") fmt.Println(" atomd message publish order_created order123 '{\"amount\": 100}' - Publish with variables") fmt.Println(" atomd message list - List first 20 buffered messages") fmt.Println(" atomd message list --page 2 - List page 2 (messages 21-40)") fmt.Println(" atomd message list tenant1 --page-size 50 - List messages for tenant1, 50 per page") fmt.Println(" atomd message subscriptions - List first 20 subscriptions") fmt.Println(" atomd message subscriptions --page 2 --page-size 10 - List subscriptions with pagination") fmt.Println(" atomd message buffered - List buffered messages") fmt.Println(" atomd message cleanup - Cleanup expired messages") fmt.Println(" atomd message stats - Show statistics") fmt.Println(" atomd message test - Test message system functionality") } // showExpressionHelp displays expression help information // Показывает справочную информацию по expression func showExpressionHelp() { fmt.Println("Expression management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd expression eval <expression> [context] - Evaluate expression") fmt.Println(" atomd expression validate <expression> [schema] - Validate expression") fmt.Println(" atomd expression parse <expression> - Parse expression to AST") fmt.Println(" atomd expression functions [category] - List supported functions") fmt.Println(" atomd expression test <expression> <test_cases> - Test expression") fmt.Println(" atomd expression help - Show this help") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd expression eval \"x + y\" '{\"x\": 5, \"y\": 3}' - Evaluate arithmetic") fmt.Println(" atomd expression eval \"user.age > 18\" '{\"user\": {\"age\": 25}}' - Evaluate condition") fmt.Println(" atomd expression validate \"x + y\" - Validate syntax") fmt.Println(" atomd expression parse \"count(items)\" - Parse to AST") fmt.Println(" atomd expression functions string - List string functions") fmt.Println(" atomd expression functions - List all functions") } // showBPMNHelp displays BPMN help information // Показывает справочную информацию по bpmn func showBPMNHelp() { fmt.Println("BPMN management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd bpmn parse <file.bpmn> [process_id] [--force|-f] - Parse BPMN file") fmt.Println(" atomd bpmn list [--page N] [--page-size N] - List all BPMN processes") fmt.Println(" atomd bpmn show <process_key> - Show BPMN process details (use PROCESS KEY from list)") fmt.Println(" atomd bpmn delete <process_id> - Delete BPMN process") fmt.Println(" atomd bpmn stats - Show BPMN statistics") fmt.Println(" atomd bpmn json <process_key> - Show process JSON data (use PROCESS KEY from list)") fmt.Println(" atomd bpmn xml <process_key> - Show original BPMN XML (use PROCESS KEY from list)") fmt.Println(" atomd bpmn help - Show this help") fmt.Println("") fmt.Println("List options:") fmt.Println(" --page, -p <N> Page number (default: 1)") fmt.Println(" --page-size, -s <N> Number of processes per page (default: 20)") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd bpmn parse process.bpmn - Parse process.bpmn") fmt.Println(" atomd bpmn parse process.bpmn my-process-1 - Parse with specified ID") fmt.Println(" atomd bpmn parse process.bpmn --force - Force import") fmt.Println(" atomd bpmn parse process.bpmn my-process-1 -f - Force with ID") fmt.Println(" atomd bpmn list - List first 20 processes") fmt.Println(" atomd bpmn list --page 2 - List page 2 (processes 21-40)") fmt.Println(" atomd bpmn list --page-size 50 - List 50 processes per page") fmt.Println(" atomd bpmn show atom-7-1k2-PVn4Y9j-CF5M - Show details (PROCESS KEY)") fmt.Println(" atomd bpmn delete my-process-1 - Delete process") fmt.Println(" atomd bpmn stats - Show parser statistics") fmt.Println(" atomd bpmn json atom-7-1k2-PVn4Y9j-CF5M - Show JSON data (PROCESS KEY)") fmt.Println(" atomd bpmn xml atom-7-1k2-PVn4Y9j-CF5M - Show original XML (PROCESS KEY)") } // showIncidentHelp displays incident help information // Показывает справочную информацию по инцидентам func showIncidentHelp() { fmt.Println("Incident management commands:") fmt.Println("") fmt.Println("Usage:") fmt.Println(" atomd incident list [status] [type] [--page N] [--page-size N] - List incidents with optional filtering") fmt.Println(" atomd incident show <incident_id> - Show incident details") fmt.Println(" atomd incident resolve <incident_id> retry [retries] [comment] - Resolve incident with retry") fmt.Println(" atomd incident resolve <incident_id> dismiss [comment] - Dismiss incident") fmt.Println(" atomd incident stats - Show incident statistics") fmt.Println(" atomd incident help - Show this help") fmt.Println("") fmt.Println("List options:") fmt.Println(" --page, -p <N> Page number (default: 1)") fmt.Println(" --page-size, -s <N> Number of incidents per page (default: 20)") fmt.Println("") fmt.Println("Status filters:") fmt.Println(" open - Open incidents") fmt.Println(" resolved - Resolved incidents") fmt.Println(" dismissed - Dismissed incidents") fmt.Println(" all - All incidents (default)") fmt.Println("") fmt.Println("Type filters:") fmt.Println(" job - Job failure incidents") fmt.Println(" bpmn - BPMN error incidents") fmt.Println(" expression - Expression error incidents") fmt.Println(" process - Process error incidents") fmt.Println(" timer - Timer error incidents") fmt.Println(" message - Message error incidents") fmt.Println(" system - System error incidents") fmt.Println(" all - All incident types (default)") fmt.Println("") fmt.Println("Examples:") fmt.Println(" atomd incident list - List first 20 incidents") fmt.Println(" atomd incident list --page 2 - List page 2 (incidents 21-40)") fmt.Println(" atomd incident list open --page-size 50 - List open incidents, 50 per page") fmt.Println(" atomd incident list open job --page 1 --page-size 10 - List open job incidents with pagination") fmt.Println(" atomd incident show srv1-abc123def456 - Show incident details") fmt.Println(" atomd incident resolve srv1-abc123def456 retry 3 - Retry incident with 3 retries") fmt.Println(" atomd incident resolve srv1-abc123def456 retry 5 \"Fixed worker config\" - Retry with comment") fmt.Println(" atomd incident resolve srv1-abc123def456 dismiss - Dismiss incident") fmt.Println(" atomd incident resolve srv1-abc123def456 dismiss \"Known issue\" - Dismiss with comment") fmt.Println(" atomd incident stats - Show statistics") }