Cross-platform modern workflow management tool.
A command-line interface (CLI) tool for managing vNext workflows, tasks, schemas, views, functions, and extensions. This tool helps you synchronize your local workflow definitions with the vNext API and database.
Package: @burgan-tech/vnext-workflow-cli
NPM: https://www.npmjs.com/package/@burgan-tech/vnext-workflow-cli
GitHub: https://github.com/burgan-tech/vnext-workflow-cli
# Install globally
npm install -g @burgan-tech/vnext-workflow-cli
# Or install as a project dependency
npm install @burgan-tech/vnext-workflow-cliAfter installation, you can use the CLI with:
wf --version
wf check# Clone the repository
git clone https://github.com/burgan-tech/vnext-workflow-cli.git
cd vnext-workflow-cli
# Install dependencies
npm install
# Link globally (for development)
npm link- Node.js >= 14.0.0
- npm or yarn
- PostgreSQL (for database operations)
- Docker (optional, for PostgreSQL container)
After installation, configure the CLI:
# Set project root path (REQUIRED)
wf config set PROJECT_ROOT /path/to/your/vnext-project
# Database settings
wf config set DB_PASSWORD postgres
wf config set USE_DOCKER true
wf config set DOCKER_POSTGRES_CONTAINER vnext-postgres
# Verify configuration
wf check# System status check
wf check
# Update CSX + JSON files (automatically finds changed files)
wf update
# Add missing workflows to database
wf sync
# Reset workflows (delete from DB and re-add)
wf resetChecks system status (API, DB, folders).
Configuration management:
wf config get # Show all settings
wf config get PROJECT_ROOT # Show a specific setting
wf config set DB_PASSWORD pass # Change a settingConverts CSX files to Base64 and embeds them in JSON files.
wf csx # Process changed files in Git
wf csx --all # Process all CSX files
wf csx --file x.csx # Process a single fileUpdates workflows (CSX is automatically updated!).
wf update # Process changed files in Git (CSX + JSON)
wf update --all # Update all (asks for confirmation)
wf update --file x.json # Process a single fileProcess steps:
- π Converts changed CSX files to base64 and writes to JSON files
- ποΈ Deletes existing record from DB
- π€ POSTs to API
- β Activates the workflow
- π Restarts the system
Updates all CSX files and adds missing ones to the database.
wf sync # Update all CSX files + add missing onesResets workflows with an interactive menu (even if there are no changes).
wf reset # Select folder from menuMenu:
? Which folder should be reset?
β― π΅ Workflows (sys-flows)
π Tasks (sys-tasks)
π Schemas (sys-schemas)
ποΈ Views (sys-views)
βοΈ Functions (sys-functions)
π Extensions (sys-extensions)
ββββββββββββββ
π΄ ALL (All folders)
# Edit CSX file
vim AddToCartMapping.csx
# Update in one command (CSX + JSON automatic)
wf update# Convert CSX files to base64 and write to JSON files
wf csx# Update all CSX files + add missing ones
wf sync# With interactive menu (RECOMMENDED)
wf reset
# Reset all
wf update --all
# Single file
wf update --file /path/to/file.jsonConfig file location: ~/.config/vnext-workflow-cli/config.json
# Project root path (REQUIRED)
wf config set PROJECT_ROOT /path/to/project
# API settings
wf config set API_BASE_URL http://localhost:4201
wf config set API_VERSION v1
# Database settings
wf config set DB_HOST localhost
wf config set DB_PORT 5432
wf config set DB_NAME vNext_WorkflowDb
wf config set DB_USER postgres
wf config set DB_PASSWORD your_password
# Docker settings
wf config set USE_DOCKER true
wf config set DOCKER_POSTGRES_CONTAINER vnext-postgres
# Auto discovery
wf config set AUTO_DISCOVER true# Check current config
wf config get PROJECT_ROOT
# Set new PC's path
wf config set PROJECT_ROOT /Users/NewUser/path/to/project
# Verify
wf check# Check API
curl http://localhost:4201/api/v1/health
# Check config
wf config get API_BASE_URL# Check Docker container
docker ps | grep postgres
# Start container
docker start vnext-postgres
# Check config
wf config get USE_DOCKER
wf config get DOCKER_POSTGRES_CONTAINER# Use alias
echo 'alias wf="node $(pwd)/bin/workflow.js"' >> ~/.bashrc
source ~/.bashrcThe project uses automated versioning and publishing via GitHub Actions. Follow these steps to create and publish a new version:
-
Create a release branch following the pattern
release-vX.Y:git checkout -b release-v1.0 git push origin release-v1.0
-
Push to the release branch - The workflow will automatically:
- Calculate the next patch version (e.g.,
1.0.0,1.0.1,1.0.2) - Build and validate the package
- Publish to NPM and/or GitHub Packages
- Create a Git tag (e.g.,
v1.0.0) - Create a GitHub release
- Calculate the next patch version (e.g.,
- Go to GitHub Actions in your repository
- Select "Build and Publish to NPM" workflow
- Click "Run workflow"
- Configure options:
- Version Override: Optional. Leave empty for auto-calculation (e.g.,
1.0.6) - Force Publish: Set to
trueif you want to republish an existing version - Target Registry: Choose
npmjs,github, orboth
- Version Override: Optional. Leave empty for auto-calculation (e.g.,
- Click "Run workflow"
The workflow automatically calculates versions:
- From branch name: If branch is
release-v1.0, it will find the next available patch version (e.g.,1.0.0,1.0.1,1.0.2) - From package.json: If branch doesn't match the pattern, it increments the patch version from
package.json
Once published, the new version will be:
- β
Available on NPM:
npm install -g @burgan-tech/vnext-workflow-cli@1.0.0 - β
Tagged in Git:
v1.0.0 - β Released on GitHub with release notes
The workflow requires these secrets to be configured in GitHub repository settings:
- NPM_TOKEN (optional): For publishing to NPM. If not set, only GitHub Packages will be used.
- SONAR_TOKEN (optional): For code quality analysis
- SONAR_HOST_URL (optional): SonarQube server URL
The build and publish workflow performs these steps:
- β Checkout code with full Git history
- β Calculate version from branch or package.json
- β Validate syntax - Checks all JavaScript files
- β Run linting (if available)
- β Run tests (if available)
- β Build package (if build script exists)
- β Publish to registry (NPM and/or GitHub Packages)
- β
Create Git tag (e.g.,
v1.0.0) - β Create GitHub release with release notes
vnext-workflow-cli/
βββ bin/
β βββ workflow.js # CLI entry point
βββ src/
β βββ commands/ # Command implementations
β β βββ check.js
β β βββ config.js
β β βββ csx.js
β β βββ reset.js
β β βββ sync.js
β β βββ update.js
β βββ lib/ # Library modules
β βββ api.js
β βββ config.js
β βββ csx.js
β βββ db.js
β βββ discover.js
β βββ workflow.js
βββ .github/
β βββ workflows/ # GitHub Actions workflows
β βββ build-and-publish.yml
β βββ check-sonar.yml
βββ package.json
βββ README.md
# Clone and install
git clone https://github.com/burgan-tech/vnext-workflow-cli.git
cd vnext-workflow-cli
npm install
npm link
# Test the CLI
wf --version
wf check
# Run development
npm run dev