Orchestrate the Impossibleβ’
Integrate BMC Control-M workflows with Visual Studio Code. Write, manage, and deploy Control-M jobs using modern development practices.
The Control-M Extension brings enterprise workflow automation capabilities directly into VS Code. Build, test, and deploy Control-M jobs using Jobs-as-Code with full IDE support.
Key Features:
- π³ Visual Infrastructure Browser - Browse Control-M/Servers, Agents, and Host Groups
- π Job Management - Create and manage Control-M jobs from VS Code
- π Connection Profiles - Manage multiple Control-M environments
- π Code Snippets - Pre-built templates for jobs and configurations
- π Jobs-as-Code - Define workflows in JSON or Python
- π Telemetry - Usage and feature tracking (experimental)
Install from VS Code Marketplace: Jobs-As-Code Werkzeugkiste for Control-M Next Generation
ext install jobs-as-code
Or install manually:
code --install-extension jobs-as-code-x.y.z.vsix - Open VS Code Settings (
Cmd+,orCtrl+,) - Search for "Control-M"
- Configure:
- Control-M URL: Your Automation API endpoint (e.g.,
https://ctm.example.local:8443/automation-api) - API Token: Your Control-M API token (stored securely)
- Control-M URL: Your Automation API endpoint (e.g.,
Or use .ctm_connection.json in your workspace:
{
"endpoint": "https://ctm.example.local:8443/automation-api",
"token": "your-api-token"
}Getting an API Token:
# Login to get token
https://ctm.example.local:8443/Welcome- Open Command Palette (
Cmd+Shift+PorCtrl+Shift+P) - Type "Control-M" to see available commands
- Try "Control-M: Show Infrastructure" to browse your environment
View your Control-M environment structure:
- Control-M/Servers - All registered servers
- Agents - Agents by server with status indicators
- Host Groups - Logical agent groupings
Usage:
- Click Control-M icon in Activity Bar
- Expand servers to see agents
- Right-click items for context actions
Create and manage jobs using modern development practices:
- JSON Jobs - Define jobs in JSON format
- Python Jobs - Use Python API for complex workflows
- Snippets - Quick templates for common job types
Supported Job Types:
- Command jobs
- Script jobs
- Application Integrator jobs
- AWS ECS jobs
- And more...
Type ctm- in JSON or Python files to see available snippets:
ctm-job-simple- Basic job templatectm-job-aws-ecs- AWS ECS jobctm-connection-profile- Connection profilectm-python-job- Python API job
Configure the extension behavior:
| Setting | Description | Default |
|---|---|---|
controlm.endpoint |
Automation API URL | (none) |
controlm.token |
API authentication token | (none) |
Comprehensive documentation is available to help you get the most out of the Control-M Extension:
Complete guide for new users:
- Installation and setup instructions
- Initial configuration walkthrough
- Your first tasks with the extension
- Troubleshooting common issues
π Features Guide
Detailed reference for all extension capabilities:
- Infrastructure Management (Datacenters, Agents, Host Groups, etc.)
- Workload Management (Folders, Jobs, Export functionality)
- Data Services (MFT/MFTE configuration and management)
- Job Development (Build, Run, Deploy services)
- Code Snippets and templates
- Configuration options and advanced features
π§ REST API Reference
Technical documentation for developers:
- Complete list of Control-M Automation API endpoints used
- Request/response formats and examples
- Authentication and security details
- Performance considerations and best practices
π Snippets Guide
Complete reference for all 200+ code snippets:
- Job type snippets for all Control-M job types
- Connection profile snippets for all platforms
- MFTE configuration snippets
- Python API snippets
- Usage examples and best practices
To gather the agent's GPG keys or to import a GPG key these Control-M folder will be executed against the target agent:
If you encounter issues while using the Control-M Jobs-As-Code Toolkit, try the following tips:
Double-check your Control-M Automation API endpoint and API token in the extension settings. Ensure your network allows access to the Control-M server. If using a .ctm_connection.json file, verify its format and location.
Make sure your API token is valid and not expired. Refer to the Getting Started Guide for instructions on obtaining a new token.
Confirm you have the latest version of the extension installed. Review the Features Guide to see which functionality is supported.
Check the output and error logs in VS Code (View > Output). Restart VS Code after installation or configuration changes. If problems persist, consult the documentation or reach out via the BMC community forums or GitHub issues.
This extension is provided by BMC Software as a community-driven, open-source solution for educational and demonstration purposes only. The content and functionality are offered βas isβ without warranty of any kind, either express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. Use of this extension in any production or production-like environment is strictly out of scope and not supported.
By downloading or using this extension, you acknowledge and agree that:
- You are solely responsible for evaluating its suitability for your intended use.
- You must not use this extension in any production or production-like environment.
- You are responsible for ensuring compliance with all applicable laws, regulations, and organizational policies when using this extension.
- Any reliance on the extension or its outputs is at your own risk.
To the fullest extent permitted by law, BMC Software and its contributors disclaim any and all liability for any direct, indirect, incidental, special, consequential, or punitive damages arising out of or in connection with the use of, or reliance on, this extension or any related information.
Visit the https://community.bmc.com/ or open an issue on https://github.com/controlm/ctm-vscode-extension/issues.