OneStream Code Utility
A powerful VS Code extension for managing OneStream business rules, XML files, and application components. Import, export, organize, and generate OneStream-compatible XML files directly from your development environment.
Features
Edit metadata directly in VS Code with the new comprehensive visual metadata editor:
- Right-click any rule or assembly component and select "Edit Metadata"
- All Properties Displayed: Every OneStream property is shown for each element type
- Hierarchical Editing: Edit metadata at workspace, maintenance unit, assembly, or individual file level
- Referenced Assemblies: Visual editing of all referenced assembly properties for business rules
- Safe Editing: Names are read-only and derived from folder structure to maintain consistency
🏗️ Workspace Assembly Support (New in v2.5.0)
Complete Assembly Management
OneStream's new workspace assemblies feature is fully supported, allowing you to manage assembly-based business rules with the same ease as traditional rules:
- Import Workspace Assemblies: Extract and organize assembly files from OneStream XML exports
- Hierarchical Organization: Automatic folder structure:
Assemblies/[Workspace]/[MaintenanceUnit]/[Assembly]/files
- Visual Assembly Explorer: Navigate through workspace → maintenance unit → assembly → files with custom icons
- Smart Selection: Select entire assemblies or individual files for export
- Export to XML: Generate OneStream-compatible XML with proper assembly structure
- Metadata Tracking: Full metadata support for assembly files including compiler language, dependencies, and business rule types
Assembly-Specific Features
- Support for both VisualBasic and C# assemblies
- Preserve compiler language and action types
- Track assembly dependencies
- Handle nested folder structures within assemblies
- Skip encrypted assembly files during import
- Preview assembly XML structure before export
🚀 Project Setup & Management (New in v1.4.14)
Setup OneStream Folder Structure
Instantly create the complete OneStream folder structure in your workspace:
- Creates all standard OneStream rule type folders (Extender, Finance, Connector, Parser, etc.)
- Generates README.md with folder descriptions
- Creates .gitignore with OneStream-specific patterns
- Progress indicator during creation
- Customizable with additional folders via settings
Comprehensive metadata tracking and management for all your OneStream rules:
- Check and Create Metadata: Scan your entire workspace and automatically create metadata for all rules
- Update Metadata for Moved Files: Automatically update metadata when files are relocated
- Generate Metadata Report: Create a detailed markdown report showing all rules organized by type
- Extended Metadata Fields: Track author, description, tags, and last modified dates
Configuration Options
onestream.customFolders
: Add custom folders to the standard structure
onestream.defaultAuthor
: Set default author for metadata entries
onestream.autoCreateMetadata
: Toggle automatic metadata creation
- Automatic metadata extraction: Reference assemblies and rule settings are preserved during import
- Complete rule preservation: Access groups, maintenance groups, and all settings are maintained
- Reference assembly support: All assembly dependencies are tracked and restored on export
The metadata file is stored in .onestream-metadata/metadata.json
and can be edited directly:
- Locate the metadata file:
.onestream-metadata/metadata.json
- Edit the JSON file to modify:
accessGroup
and maintenanceGroup
: Change security settings
isGlobal
: Set to true/false for global rules
businessRuleLanguageType
: "VisualBasic" or "CSharp"
referencedAssemblies
: Add or modify assembly references
Example: Adding a Reference Assembly
{
"rules": [
{
"ruleName": "MyRule",
"ruleType": "Extender",
"referencedAssemblies": [
{
"isInBusinessRulesAssemblyFolder": true,
"isOtherBusinessRule": false,
"isWsAssembly": false,
"isInEnvironmentSpecialFolder": false,
"environmentSpecialFolder": "",
"assemblyName": "MyCustom.dll"
}
]
}
]
}
Reference Assembly Attributes:
isInBusinessRulesAssemblyFolder
: true if the DLL is in the OneStream business rules folder
isOtherBusinessRule
: true if referencing another business rule as an assembly
isWsAssembly
: true if it's a web service assembly
isInEnvironmentSpecialFolder
: true if located in a special system folder
environmentSpecialFolder
: path to the special folder (if applicable)
assemblyName
: name of the DLL or business rule
🌳 Git Branch Awareness (New in v1.3.0)
- Branch-specific operations: Import and export only work with files from the current Git branch
- Isolated development: Changes in feature branches remain separate until merged
- Smart file filtering: Tree view automatically shows only files tracked in the current branch
📥 Import OneStream Files
- Import ZIP/XML files: Extract and organize business rules from OneStream export files
- Smart rule detection: Automatically identifies all rule types including:
- Business Rules (Finance, Extender, Connector, Parser)
- Dashboard components (DashboardDataSet, DashboardExtender, DashboardStringFunction)
- Event Handlers (DataQualityEventHandler, TransformationEventHandler, DataManagementEventHandler, FormsEventHandler, WcfEventHandler)
- Smart Integration Functions
- Cube View Extenders
- Application Dashboards
- Transformation Rules (ConditionalRule, TransformationRule)
- Spreadsheet Rules
- Organized folder structure: Rules are automatically organized by type
- Import from clipboard: Paste XML content directly
- Branch isolation: Imported files are only added to the current Git branch
📤 Export to OneStream XML
- Visual File Selection: Browse and select OneStream business rules with an intuitive tree view
- Multi-Select Support: Select individual files, entire folders, or use keyboard shortcuts for bulk selection
- Real-time Preview: Preview generated XML before exporting
- Smart Organization: Files automatically grouped by rule type
- Auto-ZIP Packaging: Multiple XML files automatically packaged into a ZIP archive
- Selection Panel: Review and manage selected files in a dedicated panel
- Branch filtering: Only exports files from the current Git branch
Installation
Visual Studio Code
Install directly from the Visual Studio Code Marketplace:
- Open VS Code
- Open the Extensions view (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "OneStream Code Utility"
- Click Install
Cursor Editor
Install directly from the Cursor marketplace:
- Open Cursor
- Open the Extensions view (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "OneStream Code Utility"
- Click Install
Why OneStream Consultants Need This
- Save hours per project: No more manual XML file management, copying between environments, or hand-editing rule metadata
- Reduce deployment errors: Reference assemblies and security settings are preserved automatically - no more missing DLL references in production
- Better version control: Git integration keeps client work organized with branch-aware development for multiple projects
- Faster development cycles: Import, edit, test, and export without leaving your IDE - no more switching between OneStream and text editors
- Team collaboration: Share code repositories with proper metadata that works on any machine
- Audit trail: Track all changes to business rules with Git history and blame annotations
Common Workflows This Extension Solves
1. Environment Migration Workflow
Problem: Moving rules from DEV → TEST → PROD with all dependencies
Solution:
- Import from DEV with full metadata preservation
- Make necessary code changes in VS Code
- Export with all reference assemblies intact
- Deploy to TEST/PROD without manual XML editing
2. Multi-Developer Collaboration
Problem: Multiple consultants working on the same OneStream application
Solution:
- Each developer works in their own Git branch
- Metadata tracks all rule settings and dependencies
- Merge changes without conflicts
- Reference assemblies are preserved across the team
3. Rule Refactoring and Modernization
Problem: Updating legacy VB rules to C# or reorganizing rule structure
Solution:
- Import existing rules with complete metadata
- Use VS Code's powerful refactoring tools
- Maintain all OneStream-specific settings
- Export ready-to-deploy XML files
4. Client-Specific Customizations
Problem: Managing similar rules across multiple clients with variations
Solution:
- Use Git branches for each client
- Import client-specific rules
- Track customizations separately
- Merge common improvements across clients
5. Backup and Disaster Recovery
Problem: Protecting business logic from accidental deletion or corruption
Solution:
- Import all rules to Git repository
- Full version history with rollback capability
- Metadata ensures perfect restoration
- Automated backups through Git
6. Global Function Management
Problem: Managing shared global functions and their dependencies
Solution:
- Clearly see which rules depend on global functions
- Track global function changes across all dependent rules
- Ensure global functions are deployed with correct settings
- Maintain isGlobal flags automatically
7. Workspace Assembly Development
Problem: Managing complex workspace assemblies with multiple files and dependencies
Solution:
- Import entire workspace assemblies maintaining folder structure
- Navigate assemblies hierarchically in the tree view
- Select entire assemblies or specific files for deployment
- Track assembly dependencies and compiler settings
- Export assemblies with proper XML structure ready for OneStream
Getting Started
Set Up Your Project
- Open a new folder in VS Code
- Open Command Palette (
Ctrl+Shift+P
/ Cmd+Shift+P
)
- Run
OneStream: Setup OneStream Folder Structure
- Confirm to create the standard OneStream folders
- Your project is ready with all the proper folders!
Import OneStream Files
- Open Command Palette (
Ctrl+Shift+P
/ Cmd+Shift+P
)
- Run
OneStream: Import OneStream Files (XML/ZIP)
- Select your OneStream export file(s)
- Files are automatically organized into the appropriate folders
Access metadata commands from the OneStream Explorer view or Command Palette:
OneStream: Check and Create Metadata for All Rules
- Scan and create metadata
OneStream: Update Metadata for Moved Files
- Update paths for relocated files
OneStream: Generate Metadata Report
- Create a comprehensive report
Export to OneStream XML
- Use the OneStream Explorer view to browse your files
- Select files/folders to include
- Click the Export button or run
OneStream: Generate XML from Selected Files
- Choose export location
- XML file(s) are generated and ready for OneStream import
Supported Rule Types
- Connector → DataSources.xml
- Extender → ExtensibilityRules.xml
- Finance → FinanceRules.xml
- DashboardExtender → ApplicationWorkspaces.xml
- DashboardDataSet → ApplicationWorkspaces.xml
- DashboardStringFunction → ApplicationWorkspaces.xml
- SmartIntegrationFunction → SmartIntegration.xml
- CubeViewExtender → CubeViews.xml
- Parser → DataSources.xml
- ConditionalRule → TransformationRules.xml
- DataQualityEventHandler → ExtensibilityRules.xml
- TransformationEventHandler → ExtensibilityRules.xml
- DataManagementEventHandler → ExtensibilityRules.xml
- FormsEventHandler → ExtensibilityRules.xml
- WcfEventHandler → ExtensibilityRules.xml
- Spreadsheet → ApplicationWorkspaces.xml
- TransformationRule → TransformationRules.xml
- WorkspaceAssembly → ApplicationWorkspaces.xml
Extension Settings
Configure the extension through VS Code settings:
onestream.defaultExportPath
: Default path for exported XML files (default: ./GeneratedXML
)
onestream.autoZipThreshold
: Number of files to trigger auto-ZIP (default: 2)
onestream.includeEmptyFolders
: Show folders with no files (default: false)
onestream.xmlFormatting.indent
: XML indentation spaces (default: 2)
onestream.fileFilters.excludePatterns
: File patterns to exclude (default: ["*.tmp", "*.bak"]
)
Commands
All commands are available through the Command Palette (Ctrl/Cmd+Shift+P):
OneStream: Import OneStream Files (XML/ZIP)
- Import rules from OneStream exports
OneStream: Import Rules from Clipboard
- Import XML content from clipboard
OneStream: Generate XML from Selected Files
- Export selected files to XML
OneStream: Select Complete Application
- Select all business rules
OneStream: Clear Selection
- Clear current selection
OneStream: Preview XML
- Preview generated XML
OneStream: Configure XML Header
- Customize XML export settings
Release Notes
2.5.0
- Added comprehensive workspace assembly support for OneStream's new assembly feature
- Import and organize workspace assemblies with automatic folder structure
- Enhanced tree view with hierarchical assembly navigation
- Full export support for workspace assemblies with proper XML structure
- Metadata tracking for assembly-specific properties
- Support for both VisualBasic and C# assemblies
- Handle assembly dependencies and nested folder structures
2.0.0
- Major release with complete project management features
- Added folder structure setup for new projects
- Comprehensive metadata management suite
- Enhanced import/export workflows
1.4.5
- Added comprehensive documentation for OneStream consultants
- Explained common workflows and pain points this extension solves
- Better guidance for team collaboration and environment management
1.4.4
- Fixed metadata to use relative file paths for better portability
- Repositories can now be shared between users without path issues
- Automatic conversion of existing absolute paths to relative
1.4.3
- Fixed preview functionality to display reference assemblies
- Preview now correctly loads metadata when generating XML preview
- Reference assemblies now show in preview matching the export behavior
1.4.2
- Fixed Finance rule detection to correctly identify and import Finance rules
- Simplified metadata storage to use single metadata.json file (removed branch-specific naming)
- Improved metadata portability between branches
1.4.1
- Added comprehensive documentation for editing metadata files
- Included examples and detailed attribute explanations
1.4.0
- Added branch-aware metadata tracking system for rules
- Automatic extraction and storage of reference assemblies during import
- Complete preservation of rule metadata including access groups, maintenance groups, and language types
- Export functionality now uses stored metadata to generate accurate XML with reference assemblies
1.3.1
- Fixed branch detection to correctly report current branch at export time
- Export success message now accurately reflects the actual current Git branch
1.3.0
- Added Git branch-aware import and export functionality
- Import and export operations now only work with files from the current Git branch
- Tree view automatically shows only files tracked in the current branch
1.2.3
- Fixed XML root tag generation to use correct format for both v8 and v9
- Both versions now properly use camelCase with 'Root' suffix (e.g., dataSourcesRoot)
1.2.2
- Added automatic detection and skipping of encrypted rules during import
- Import report now shows encrypted rules that were skipped
- Protects intellectual property by excluding encrypted rules
1.2.1
- Fixed missing businessRules wrapper tag in XML output
- Updated tree view to display all supported rule type folders
- Corrected XML structure for version 8 and 9 compatibility
1.2.0
- Added support for all OneStream rule types (ConditionalRule, DataQualityEventHandler, TransformationEventHandler, Spreadsheet, TransformationRule)
- Enhanced rule type detection to eliminate "Other" category
- Improved XML parser for comprehensive rule type coverage
1.1.1
- Updated documentation for marketplace distribution
- Improved user experience documentation
1.1.0
- Added comprehensive import functionality for OneStream ZIP/XML files
- Enhanced dashboard rule detection (DashboardDataSet, DashboardExtender, DashboardStringFunction)
- Improved rule organization and folder structure
- Added import from clipboard feature
- Renamed to OneStream Code Utility
1.0.0
- Initial release
- XML generation from selected files
- Visual file explorer
- Batch export capabilities
Support
Found a bug or have a feature request? Please open an issue on our GitHub repository.
License
This extension is licensed under the MIT License.