Manage F5 Distributed Cloud (F5 XC) resources directly from Visual Studio Code.
Features
- Profile Management: Configure multiple F5 XC tenant connections with
secure credential storage
- Resource Explorer: Browse namespaces, resource types, and individual
resources in a tree view
- CRUD Operations: Create, view, edit, and delete F5 XC resources
- JSON Validation: Built-in schema validation for resource configurations
- Diff Support: Compare local configurations with remote resources
- Authentication: Support for API Token and P12 certificate authentication
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X / Cmd+Shift+X)
- Search for "F5 Distributed Cloud Tools"
- Click Install
From VSIX
- Download the
.vsix file from the releases page
- Open VS Code
- Go to Extensions
- Click the
... menu and select "Install from VSIX..."
- Select the downloaded file
Getting Started
Add a Profile
- Open the F5 XC sidebar (click the F5 icon in the activity bar)
- Click the
+ button in the Profiles section
- Enter your profile details:
- Name: A friendly name for this connection
- API URL: Your F5 XC console URL (e.g.,
https://tenant.console.ves.volterra.io)
- Auth Type: Choose between API Token or P12 Certificate
- Enter your credentials when prompted
Browse Resources
Once a profile is configured and set as active:
- The Resources tree view will show available namespaces
- Expand a namespace to see resource categories
- Expand a category to see resource types
- Expand a resource type to see individual resources
Manage Resources
Right-click on any resource to:
- View: Open the resource configuration in a new editor
- Edit: Modify the resource configuration
- Delete: Remove the resource (with confirmation)
- Compare with Remote: See differences between local and remote versions
Configuration
Access settings via File > Preferences > Settings and search for "F5 XC":
| Setting |
Description |
Default |
f5xc.logLevel |
Log level (debug, info, warn, error) |
info |
f5xc.defaultNamespace |
Default namespace for new resources |
default |
f5xc.confirmDelete |
Show confirmation before deleting |
true |
f5xc.autoRefreshInterval |
Auto-refresh interval in seconds (0 to disable) |
0 |
Keyboard Shortcuts
| Command |
Windows/Linux |
macOS |
| Apply Configuration |
Ctrl+Shift+A |
Cmd+Shift+A |
| Refresh Explorer |
Ctrl+Shift+R |
Cmd+Shift+R |
Supported Resource Types
The extension supports 40+ F5 XC resource types organized by category:
- Load Balancing: HTTP/TCP/UDP Load Balancers, Origin Pools, Health Checks
- Security: App Firewalls, Service Policies, Rate Limiters, WAF Exclusions
- Networking: Virtual Networks, Network Connectors, Network Policies
- Sites: AWS VPC, Azure VNET, GCP VPC, Voltstack, SecureMesh
- DNS: DNS Zones, DNS Load Balancers, DNS LB Pools
- IAM: Namespaces, Users, Roles, API Credentials
- Observability: Alert Policies, Alert Receivers, Log Receivers
Development
Prerequisites
- Node.js 20.x or higher
- VS Code 1.85.0 or higher
Setup
# Clone the repository
git clone https://github.com/robinmordasiewicz/vscode-f5xc-tools.git
cd vscode-f5xc-tools
# Install dependencies
npm install
# Compile the extension
npm run compile
Running Tests
# Run unit tests
npm test
# Run unit tests with coverage
npm run test:coverage
# Run integration tests (requires VS Code)
npm run test:integration
# Run all tests
npm run test:all
Development Commands
npm run compile # Build with webpack
npm run watch # Watch mode for development
npm run package # Production build
npm run lint # Run ESLint
npm run lint:fix # Auto-fix ESLint issues
npm run typecheck # TypeScript type checking
npm run format # Format code with Prettier
Debugging
Press F5 in VS Code to launch the Extension Development Host with the
extension loaded.
Contributing
Contributions are welcome! Please read our contributing guidelines before
submitting pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'feat: add amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
License
This project is licensed under the Apache License 2.0 - see the
LICENSE file for details.
Support