Scan and import UI Builder applications from local workspaces or GitHub. Use when the user wants to scan, find, import, or discover UI Builder applications from local or remote sources.
Scan for existing UI Builder applications in local Bonita workspaces and GitHub repositories, then import selected application to the current project.
This skill helps you discover and reuse UI Builder applications from:
~/bonita/workspaces/<VERSION>/<PROJECT>/uib/*.jsonImplementation: This skill wraps the scan-uib-apps.sh tool script located in tools/uib-scan/.
# Scan and import UI Builder applications
/bonita-uib-scan
When this skill is invoked:
Run the scanner script:
./tools/uib-scan/scan-uib-apps.sh
After successful import, automatically invoke the /bonita-uib-apps skill to generate application descriptors:
/bonita-uib-apps
The scanner script will:
app/web_applications/Required:
Optional (for remote scan):
gh) installed and authenticatedgh, only local scan is performedTo install GitHub CLI:
# macOS
brew install gh
# Linux
# See https://cli.github.com/
# Authenticate
gh auth login
Searches for UI Builder JSON files in:
~/bonita/workspaces/
└── <VERSION>/
└── <PROJECT>/
└── uib/
└── *.json
For each file found, extracts:
exportedApplication.name - Application display nameexportedApplication.slug - Application identifierUses GitHub CLI to search for:
uib/*.jsonFor each result, fetches the raw JSON and extracts metadata.
Displays a numbered menu of all found applications:
============================================
Available UI Builder Applications
============================================
1) CNAF FEB (cnaf-feb) [2025.2-u2/poc-cnaf-rh2026]
2) Team Management (team-management) [2025.2-u2/poc-cnaf-rh2026]
3) HR Dashboard (hr-dashboard) [GitHub: bonitasoft-presales/hr-portal]
4) Leave Management (leave-mgmt) [GitHub: bonitasoft-presales/leave-system]
============================================
Select application number (or 'q' to quit):
After selection:
app/web_applications/app/web_applications/After successful import, the skill automatically runs:
/bonita-uib-apps
This generates the Living Application descriptor in app/applications/UIB_applications.xml.
The skill executes the scan-uib-apps.sh tool script with these steps:
Checks if Docker is installed and running (required for JSON parsing).
find ~/bonita/workspaces -type f -path "*/uib/*.json"
For each JSON file:
exportedApplication.nameexportedApplication.sluggh search code \
--owner bonitasoft-presales \
--filename "*.json" \
--path "uib"
For each result:
Display numbered list with:
app/web_applications/After the scan script completes successfully, Claude automatically invokes:
/bonita-uib-apps
This generates the Living Application descriptor in app/applications/UIB_applications.xml.
============================================
Bonita UIB Application Scanner
============================================
[INFO] Scanning local workspaces...
[INFO] Found 2 local application(s)
[INFO] Scanning GitHub (bonitasoft-presales organization)...
[WARN] No remote applications found
============================================
Available UI Builder Applications
============================================
1) CNAF FEB (cnaf-feb) [2025.2-u2/poc-cnaf-rh2026]
2) Team Management (team-management) [2025.2-u2/poc-cnaf-rh2026]
============================================
Select application number (or 'q' to quit): 1
[INFO] Selected: CNAF FEB (cnaf-feb) [2025.2-u2/poc-cnaf-rh2026]
[INFO] Copying to app/web_applications/CNAF FEB.json
[OK] Application copied successfully
============================================
Application imported successfully ✓
============================================
Location: app/web_applications/CNAF FEB.json
Next steps:
1. Run /bonita-uib-apps to generate application descriptors
2. Build and deploy: ./mvnw clean package && ./deploy.sh
[INFO] Scanning GitHub (bonitasoft-presales organization)...
[INFO] Found 3 remote application(s)
============================================
Available UI Builder Applications
============================================
1) HR Dashboard (hr-dashboard) [GitHub: bonitasoft-presales/hr-portal]
============================================
Select application number (or 'q' to quit): 1
[INFO] Selected: HR Dashboard (hr-dashboard) [GitHub: bonitasoft-presales/hr-portal]
[INFO] Downloading from GitHub...
[OK] Downloaded successfully
[INFO] Copying to app/web_applications/HR Dashboard.json
[OK] Application copied successfully
[INFO] Scanning local workspaces...
[WARN] No local applications found
[INFO] Scanning GitHub (bonitasoft-presales organization)...
[WARN] No remote applications found
[ERROR] No UI Builder applications found
Searched locations:
- Local: ~/bonita/workspaces/*/*/uib/*.json
- Remote: GitHub bonitasoft-presales organization
[INFO] Scanning GitHub (bonitasoft-presales organization)...
[WARN] GitHub CLI (gh) not found. Skipping remote scan.
[INFO] Install gh CLI: https://cli.github.com/
[INFO] Scanning GitHub (bonitasoft-presales organization)...
[WARN] GitHub CLI not authenticated. Skipping remote scan.
[INFO] Run: gh auth login
Import a UI Builder application from a different project in your workspace:
# Scan and select
/bonita-uib-scan
# Application is automatically added to current project
# Descriptors are generated via /bonita-uib-apps
Find and import a UI Builder application shared in the presales organization:
# Ensure gh CLI is authenticated
gh auth status
# Scan and import
/bonita-uib-scan
# Select application from GitHub results
# Downloaded and added to project
Discover what UI Builder applications are available without importing:
# Run scan
/bonita-uib-scan
# Browse the menu
# Press 'q' to quit without importing
Typical workflow for importing applications:
# 1. Scan and import application
/bonita-uib-scan
# (Automatically runs /bonita-uib-apps)
# 2. Build project
./mvnw clean package -Dbonita.environment=presales
# 3. Deploy to local Bonita
/bonita-deploy-local
# 4. Access application at:
# http://localhost:8080/bonita/apps/{slug}/
[ERROR] Docker not found
This tool requires Docker to be installed and running.
Please install Docker: https://docs.docker.com/get-docker/
Resolution: Install Docker and ensure it's running.
[ERROR] Invalid selection
Resolution: Enter a valid number from the menu or 'q' to quit.
[ERROR] Failed to download file
Resolution: Check network connectivity and GitHub authentication.
[ERROR] Failed to copy application
Resolution: Check write permissions for app/web_applications/ directory.
| File | Purpose |
|---|---|
tools/uib-scan/scan-uib-apps.sh | Scanner script (implementation) |
app/web_applications/*.json | Imported UI Builder applications |
app/applications/UIB_applications.xml | Generated application descriptors |
Uses Docker with jq for reliable JSON parsing:
docker run --rm -i ghcr.io/jqlang/jq:latest -r '.exportedApplication.name' < app.json
Uses GitHub CLI code search:
gh search code \
--owner bonitasoft-presales \
--filename "*.json" \
--path "uib" \
--json repository,path
Constructs raw GitHub URLs: