Git Integration & Export (Reference): Comprehensive Git integration for version control, collaboration, and DevOps workflows while maintaining centralized database architecture security.
Access: Solution → Export (Git Export settings)
| Component | Function | Location |
|---|---|---|
| Centralized Database | Single source of truth | .dbsln file |
| Automatic Exports | Version control tracking | Git folder |
| Selective Export | Configuration elements | JSON files |
| Sensitive Data | Protected via placeholders | Database only |
| Bidirectional Sync | Database ↔ Git repository | Automated |
| Feature | Purpose | Benefit |
|---|---|---|
| Consistent Formatting | Clean diffs | Easy review |
| Sorted Keys | Minimize conflicts | Better merging |
| Array-based Tables | Efficient storage | Smaller files |
| Metadata Preservation | Version tracking | Audit trail |
| Binary Asset Handling | Separate files with checksums | Integrity |
Navigate to Solution → Settings → Version Control:
| Setting | Options | Default |
|---|---|---|
| Enable Git Export | On/Off | Off |
| Export Mode | Automatic/Manual | Manual |
| Export Trigger | On Version Change | - |
| Export Delay | 5-60 seconds | 5 |
| Target Directory | Path | Solution-Data\Git |
Automatic Export:
Manual Export:
Solution Root Directory:
json
{
"ExportInfo": {
"ObjectType": "ScriptsTasks",
"TableVersionID": 6,
"SolutionVersionID": 245,
"ExportDate": "2025-08-23T10:30:00Z",
"ExportUser": "john.doe"
},
"Header": {
// Object metadata from table columns
},
"Body": {
// Object content or table rows
}
}Individual Object Files:
Table Export Files:
| Data Type | Handling | Storage |
|---|---|---|
| Passwords | Never exported | Database only |
| Connection Strings | Environment placeholders | ${DB_CONNECTION} |
| API Keys | Vault references | Secure storage |
| Encrypted Values | Not exported | Database only |
json
{
"DatabaseConnection": "${DB_CONNECTION}",
"EmailServer": "${SMTP_SERVER}",
"HistorianPath": "${HISTORIAN_PATH}"
}Variables resolved at runtime for environment-specific deployment.
bash
cd /path/to/solution
git init
git remote add origin https://github.com/company/scada-config.gitbash
git checkout -b feature/new-alarm-logic
# Make changes in FrameworX
git add .
git commit -m "Add temperature monitoring for Reactor-3"
git push origin feature/new-alarm-logicMain Branches:
Feature Branches:
Maintenance Branches:
Branch Hierarchy:
| Good | Bad |
|---|---|
| "Add temperature monitoring for Reactor-3" | "Updated stuff" |
| "Fix alarm delay calculation in Tank-Level" | "Changes" |
| "Implement new batch report template" | "Friday work" |
| Configuration Size | Export Time | File Count | Total Size |
|---|---|---|---|
| Small (<100 objects) | <1 sec | 50-100 | <1 MB |
| Medium (1,000 objects) | 3-5 sec | 200-500 | 5-10 MB |
| Large (10,000 objects) | 15-20 sec | 1,000+ | 50-100 MB |
| Enterprise (50,000+) | 60-90 sec | 5,000+ | 500+ MB |
yaml
name: Validate FrameworX Configuration
on:
pull_request:
branches: [ main, develop ]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Validate JSON Schema
run: |
for file in $(find . -name "*.json"); do
python validate_schema.py $file
done
- name: Check Tag Naming Convention
run: python check_naming.py ./UNS/UnsTags.json
- name: Verify No Credentials
run: |
! grep -r "password\|credential\|secret" --include="*.json"| Issue | Cause | Solution |
|---|---|---|
| Export not triggering | Automatic export disabled | Enable in settings |
| Large file sizes | Many objects | Use selective export |
| Merge conflicts | Concurrent edits | Use branches |
| Missing exports | Permission issues | Check directory access |
| Sensitive data exposed | Wrong configuration | Review export filters |