tSM Sync VS Code Extension
Synchronise your tSM configuration files using a cache-based approach with RESTful API. 
| Command | 
What it does | 
 
| tSM: Download from Server | 
Downloads configured entities, caches them locally, and shows differences with workspace files. | 
 
| tSM: Upload to Server | 
Uploads all changed JSON files to the server using RESTful bulk operations. | 
 
| Right‑click diff file → Accept Remote | 
Copy the remote version to workspace (overwrite local changes). | 
 
| Right‑click diff file → Open Diff | 
Open side‑by‑side compare for that item. | 
 
 
Configuration
Authentication Settings
tsmSync.serverUrl – e.g. https://tsm.datalite.cloud 
tsmSync.username – your tSM username 
tSM: Set/Change Password – stores password securely in VS Code secrets 
 
Project Configuration
Create a .tsm-sync.json file in your workspace root: 
{
  "targets": [
    {
      "entity": "test_config",
      "filter": {},
      "include": ["*.json"],
      "exclude": [],
      "subdir": "configs"
    }
  ]
}
 
Configuration Options
entity – tSM entity type (e.g., "test_config", "form") 
filter – API filter criteria (currently unused) 
include – File patterns to include (e.g., ["*.json"]) 
exclude – File patterns to exclude 
subdir – Subdirectory within workspace for this entity type 
searchLimit – Maximum records to fetch (default: 10,000) 
 
Features
- Cache-based sync – Downloads are cached locally for fast comparison
 
- Case-insensitive comparison – Handles case differences correctly
 
- RESTful operations – Uses modern REST API for all operations
 
- Tree view – Shows file differences in Explorer sidebar
 
- Auto-refresh – Tree updates automatically when files change
 
- Pagination detection – Automatically detects when there are more records than the limite Extension
 
 
Constitutional Compliance
This extension adheres to tSM Studio Constitution v1.0.0 principles: 
- Extension-First Architecture: All features integrate natively with VS Code
 
- Configuration-Driven Development: Server connections via JSON configuration files
 
- Cache-First Synchronization: Intelligent caching minimizes server requests
 
- Type-Safe Implementation: Full TypeScript strict mode compliance
 
- Observable Operations: Progress indicators and status updates via VS Code notifications
 
 
Development Standards
Quality Assurance Requirements
- Minimum 90% test coverage for all new features
 
- TypeScript strict mode enabled for type safety
 
- ESLint and Prettier configuration for code consistency
 
- Security vulnerability scans must be clean
 
 
- Response time under 2 seconds for all sync operations
 
- Memory usage monitoring and optimization
 
- Efficient handling of large tSM datasets (10,000+ records)
 
 
Governance Workflow
Feature Branch Strategy
- Create feature branches from 
main using naming convention: feature/feature-name 
- Use 
hotfix/issue-name for urgent bug fixes 
- Submit pull requests for all changes with clear descriptions
 
 
Code Review Requirements
- All pull requests require at least one approved review
 
- Changes must pass all automated checks (linting, tests, security scans)
 
- Documentation updates required for new features
 
- Breaking changes must be clearly communicated in PR descriptions
 
 
Quality Gates
- Code coverage must not decrease below 90%
 
- All TypeScript compilation errors must be resolved
 
- Security vulnerabilities must be addressed before merge
 
- Performance benchmarks must meet established thresholds
 
 
Synchronise your tSM configuration with a Git workspace. 
| Command | 
What it does | 
 
| tSM: Backup from Server | 
Downloads selected entity (default Form) as ZIP, commits to a temp branch, shows diff. | 
 
| tSM: Restore to Server | 
Uploads all changed JSON files to the server. | 
 
| Right‑click diff file → Upload | 
Push just that one config. | 
 
| Right‑click diff file → Open Diff | 
Open side‑by‑side compare for that item. | 
 
 
## Settings 
tsmSync.serverUrl – e.g. https://tsm.datalite.cloud 
tsmSync.username 
tSM: Set/Change Password – stores password securely 
 
 |  |