Executables#
The bfabric-cli executable command provides operations for managing B-Fabric application executables.
Overview#
bfabric-cli executable --help
Available subcommands:
Subcommand |
Purpose |
|---|---|
|
View executable details |
|
Upload new executables (experimental) |
|
Dump executable contents |
Showing Executables#
View detailed information about an executable.
Basic Usage#
bfabric-cli executable show [EXECUTABLE_ID]
Parameters#
Parameter |
Required |
Description |
|---|---|---|
|
Yes |
ID of the executable to view |
Examples#
Show executable details:
bfabric-cli executable show 12345
View different executable types:
# Different executables may have different structures
bfabric-cli executable show 32859
bfabric-cli executable show 33469
Output#
The output includes:
Executable ID and name
Associated application
Encoded executable content
Parameters and configuration
Creation/modification information
Uploading Executables#
Upload new executables to B-Fabric from a YAML file.
Basic Usage#
bfabric-cli executable upload [YAML_FILE] [OPTIONS]
Parameters#
Parameter |
Required |
Description |
|---|---|---|
|
Yes |
Path to YAML file containing executable definition |
|
No |
Force upload even if validation warnings exist |
Example#
Upload from YAML file:
bfabric-cli executable upload my_executable.yml
YAML Format#
The YAML file should define the executable structure. A typical format might look like:
name: "My Executable"
description: "Description of the executable"
applicationid: 123
# Additional fields as required by the executable type
content: |
# Executable content here
Note: The exact YAML structure depends on the executable type and B-Fabric configuration. Refer to existing executables or consult the B-Fabric documentation for the specific format requirements.
Experimental Status#
The upload command is currently experimental and may change in future releases. Use with caution in production environments.
Verification#
After uploading, verify the executable:
# Show the new executable (you'll need the new ID from upload output)
bfabric-cli executable show <NEW_EXECUTABLE_ID>
Dumping Executables#
Dump the contents of an executable to examine its configuration.
Basic Usage#
bfabric-cli executable dump [EXECUTABLE_ID]
Parameters#
Parameter |
Required |
Description |
|---|---|---|
|
Yes |
ID of the executable to dump |
Example#
Dump executable contents:
bfabric-cli executable dump 12345
Use Cases#
The dump command is useful for:
Examining executable configuration: Understand how an existing executable is configured
Creating templates: Dump an existing executable to use as a template for creating new ones
Debugging: Inspect the actual configuration to troubleshoot issues
Documentation: Generate documentation for existing executables
Output Format#
The dumped output shows the internal structure of the executable, including all configuration parameters, encoded content, and metadata.
Workflow Example#
Complete workflow for examining and creating executables:
# 1. Show an existing executable
bfabric-cli executable show 32859
# 2. Dump it to use as a template
bfabric-cli executable dump 32859 > template.yml
# 3. Edit the template to create a new executable
# Edit template.yml with your changes
# 4. Upload the new executable
bfabric-cli executable upload new_executable.yml
# 5. Verify the upload
bfabric-cli executable show <NEW_EXECUTABLE_ID>
Working with Executables#
Finding Executables#
Use the generic API to find executables:
# List all executables
bfabric-cli api read executable --limit 20
# Find executables by name
bfabric-cli api read executable name "My Executable"
# Find executables for a specific application
bfabric-cli api read executable applicationid 123
Filtering Results#
# Show only specific columns
bfabric-cli api read executable --limit 10 \
--columns id,name,applicationid,description
# Save results for analysis
bfabric-cli api read executable --format json --file executables.json
Tips and Best Practices#
Use Dump as Template#
# Dump a working executable
bfabric-cli executable dump 32859 > my_template.yml
# Edit and modify the template
vim my_template.yml
# Upload your new version
bfabric-cli executable upload my_template.yml
Test Before Production#
# Test on TEST environment first
BFABRICPY_CONFIG_ENV=TEST bfabric-cli executable upload test_executable.yml
# Verify it works correctly
BFABRICPY_CONFIG_ENV=TEST bfabric-cli executable show <TEST_ID>
# Then upload to PRODUCTION
BFABRICPY_CONFIG_ENV=PRODUCTION bfabric-cli executable upload production_executable.yml
Keep Executable Descriptions Clear#
When creating or updating executables, use descriptive names and descriptions:
name: "QC Pipeline v2.1"
description: "Quality control pipeline for mass spectrometry data, version 2.1"
Version Your Executables#
Include version information in the name:
name: "My Analysis Script v1.0"
name: "My Analysis Script v1.1"
name: "My Analysis Script v2.0"
Common Issues#
Upload Fails - Validation Error#
Error: Executable validation failed
Solution:
Check the YAML syntax
Verify all required fields are present
Ensure data types are correct
Check for missing referenced entities (e.g., applicationid)
Executable Not Found#
Error: Executable with ID X not found
Solution: Verify the executable exists and you have access:
bfabric-cli api read executable id <executable-id>
Dump Shows Encoded Content#
Observation: The executable content appears as base64 or other encoding
Explanation: Executables are stored in encoded format for transport. This is expected behavior. Use show for a more readable representation.
Integration with bfabric-app-runner#
Executables uploaded via the CLI can be used with bfabric-app-runner. For more information on using executables in workflows, refer to the bfabric-app-runner documentation.
See Also#
API Operations - Generic CRUD operations for finding executables
Workunits - Executables are used within workunits
Python Executable API - Using executables in Python