datex-studio-cli 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- datex_studio_cli-0.1.1/.gitignore +72 -0
- datex_studio_cli-0.1.1/PKG-INFO +558 -0
- datex_studio_cli-0.1.1/README.md +521 -0
- datex_studio_cli-0.1.1/docs/agent-guide.md +405 -0
- datex_studio_cli-0.1.1/docs/analysis-workflow.md +221 -0
- datex_studio_cli-0.1.1/publish.sh +35 -0
- datex_studio_cli-0.1.1/pyproject.toml +126 -0
- datex_studio_cli-0.1.1/release_notes/2026-01-15_summary.md +107 -0
- datex_studio_cli-0.1.1/skill-notes/README.md +78 -0
- datex_studio_cli-0.1.1/skill-notes/branches/branch-statuses.md +55 -0
- datex_studio_cli-0.1.1/skill-notes/branches/index.md +64 -0
- datex_studio_cli-0.1.1/skill-notes/branches/listing-branches-guide.md +221 -0
- datex_studio_cli-0.1.1/skill-notes/branches/listing-branches.md +66 -0
- datex_studio_cli-0.1.1/skill-notes/code-review/index.md +75 -0
- datex_studio_cli-0.1.1/skill-notes/code-review/multi-repo-review-guide.md +310 -0
- datex_studio_cli-0.1.1/skill-notes/code-review/review-report-template.md +290 -0
- datex_studio_cli-0.1.1/skill-notes/code-review/reviewing-commits-guide.md +169 -0
- datex_studio_cli-0.1.1/skill-notes/code-review/reviewing-feature-branches.md +125 -0
- datex_studio_cli-0.1.1/skill-notes/devops-integration/index.md +54 -0
- datex_studio_cli-0.1.1/skill-notes/devops-integration/workitems.md +121 -0
- datex_studio_cli-0.1.1/skill-notes/exploring-configs/config-types.md +93 -0
- datex_studio_cli-0.1.1/skill-notes/exploring-configs/index.md +52 -0
- datex_studio_cli-0.1.1/skill-notes/exploring-configs/listing-configs.md +81 -0
- datex_studio_cli-0.1.1/skill-notes/exploring-configs/viewing-configs.md +74 -0
- datex_studio_cli-0.1.1/skill-notes/getting-started/authentication.md +96 -0
- datex_studio_cli-0.1.1/skill-notes/getting-started/configuration.md +69 -0
- datex_studio_cli-0.1.1/skill-notes/getting-started/index.md +72 -0
- datex_studio_cli-0.1.1/skill-notes/reference/branch-statuses.md +101 -0
- datex_studio_cli-0.1.1/skill-notes/reference/command-cheatsheet.md +119 -0
- datex_studio_cli-0.1.1/skill-notes/reference/index.md +44 -0
- datex_studio_cli-0.1.1/skill-notes/reference/output-formats.md +149 -0
- datex_studio_cli-0.1.1/skill-notes/repositories/index.md +89 -0
- datex_studio_cli-0.1.1/skill-notes/repositories/listing-repos.md +126 -0
- datex_studio_cli-0.1.1/skill-notes/source-control/commit-history.md +85 -0
- datex_studio_cli-0.1.1/skill-notes/source-control/dependencies.md +90 -0
- datex_studio_cli-0.1.1/skill-notes/source-control/index.md +64 -0
- datex_studio_cli-0.1.1/skill-notes/source-control/viewing-changes-guide.md +217 -0
- datex_studio_cli-0.1.1/skill-notes/source-control/viewing-changes.md +57 -0
- datex_studio_cli-0.1.1/src/dxs/__init__.py +4 -0
- datex_studio_cli-0.1.1/src/dxs/__main__.py +6 -0
- datex_studio_cli-0.1.1/src/dxs/cli.py +415 -0
- datex_studio_cli-0.1.1/src/dxs/commands/__init__.py +1 -0
- datex_studio_cli-0.1.1/src/dxs/commands/api.py +148 -0
- datex_studio_cli-0.1.1/src/dxs/commands/auth.py +821 -0
- datex_studio_cli-0.1.1/src/dxs/commands/branch.py +1272 -0
- datex_studio_cli-0.1.1/src/dxs/commands/config.py +120 -0
- datex_studio_cli-0.1.1/src/dxs/commands/crm.py +1136 -0
- datex_studio_cli-0.1.1/src/dxs/commands/devops.py +245 -0
- datex_studio_cli-0.1.1/src/dxs/commands/document.py +2919 -0
- datex_studio_cli-0.1.1/src/dxs/commands/env.py +263 -0
- datex_studio_cli-0.1.1/src/dxs/commands/explore.py +2948 -0
- datex_studio_cli-0.1.1/src/dxs/commands/marketplace.py +221 -0
- datex_studio_cli-0.1.1/src/dxs/commands/organization.py +152 -0
- datex_studio_cli-0.1.1/src/dxs/commands/repo.py +475 -0
- datex_studio_cli-0.1.1/src/dxs/commands/servicepack.py +335 -0
- datex_studio_cli-0.1.1/src/dxs/commands/source.py +3095 -0
- datex_studio_cli-0.1.1/src/dxs/commands/user.py +152 -0
- datex_studio_cli-0.1.1/src/dxs/core/__init__.py +1 -0
- datex_studio_cli-0.1.1/src/dxs/core/api/__init__.py +73 -0
- datex_studio_cli-0.1.1/src/dxs/core/api/client.py +299 -0
- datex_studio_cli-0.1.1/src/dxs/core/api/endpoints.py +366 -0
- datex_studio_cli-0.1.1/src/dxs/core/api/models.py +521 -0
- datex_studio_cli-0.1.1/src/dxs/core/auth/__init__.py +29 -0
- datex_studio_cli-0.1.1/src/dxs/core/auth/decorators.py +206 -0
- datex_studio_cli-0.1.1/src/dxs/core/auth/msal_client.py +483 -0
- datex_studio_cli-0.1.1/src/dxs/core/auth/token_cache.py +801 -0
- datex_studio_cli-0.1.1/src/dxs/core/cache.py +498 -0
- datex_studio_cli-0.1.1/src/dxs/core/devops/__init__.py +9 -0
- datex_studio_cli-0.1.1/src/dxs/core/devops/client.py +359 -0
- datex_studio_cli-0.1.1/src/dxs/core/devops/models.py +140 -0
- datex_studio_cli-0.1.1/src/dxs/core/dynamics/__init__.py +7 -0
- datex_studio_cli-0.1.1/src/dxs/core/dynamics/client.py +616 -0
- datex_studio_cli-0.1.1/src/dxs/core/graph.py +439 -0
- datex_studio_cli-0.1.1/src/dxs/core/output/__init__.py +5 -0
- datex_studio_cli-0.1.1/src/dxs/core/output/csv_fmt.py +136 -0
- datex_studio_cli-0.1.1/src/dxs/core/output/formatter.py +165 -0
- datex_studio_cli-0.1.1/src/dxs/core/output/json_fmt.py +44 -0
- datex_studio_cli-0.1.1/src/dxs/core/output/yaml_fmt.py +77 -0
- datex_studio_cli-0.1.1/src/dxs/core/responses.py +155 -0
- datex_studio_cli-0.1.1/src/dxs/models/__init__.py +1 -0
- datex_studio_cli-0.1.1/src/dxs/utils/__init__.py +47 -0
- datex_studio_cli-0.1.1/src/dxs/utils/click_options.py +166 -0
- datex_studio_cli-0.1.1/src/dxs/utils/config.py +226 -0
- datex_studio_cli-0.1.1/src/dxs/utils/errors.py +217 -0
- datex_studio_cli-0.1.1/src/dxs/utils/filtering.py +246 -0
- datex_studio_cli-0.1.1/src/dxs/utils/paths.py +38 -0
- datex_studio_cli-0.1.1/src/dxs/utils/resolvers.py +211 -0
- datex_studio_cli-0.1.1/src/dxs/utils/responses.py +117 -0
- datex_studio_cli-0.1.1/src/dxs/utils/restricted.py +70 -0
- datex_studio_cli-0.1.1/src/dxs/utils/sorting.py +118 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
exclude/
|
|
2
|
+
exploration/
|
|
3
|
+
reviews/
|
|
4
|
+
|
|
5
|
+
# Environment
|
|
6
|
+
.env
|
|
7
|
+
.env.local
|
|
8
|
+
.env.*.local
|
|
9
|
+
|
|
10
|
+
# Python
|
|
11
|
+
__pycache__/
|
|
12
|
+
*.py[cod]
|
|
13
|
+
*$py.class
|
|
14
|
+
*.so
|
|
15
|
+
|
|
16
|
+
# Distribution / packaging
|
|
17
|
+
.Python
|
|
18
|
+
build/
|
|
19
|
+
develop-eggs/
|
|
20
|
+
dist/
|
|
21
|
+
downloads/
|
|
22
|
+
eggs/
|
|
23
|
+
.eggs/
|
|
24
|
+
lib/
|
|
25
|
+
lib64/
|
|
26
|
+
parts/
|
|
27
|
+
sdist/
|
|
28
|
+
var/
|
|
29
|
+
wheels/
|
|
30
|
+
*.egg-info/
|
|
31
|
+
.installed.cfg
|
|
32
|
+
*.egg
|
|
33
|
+
|
|
34
|
+
# Virtual environments
|
|
35
|
+
.venv/
|
|
36
|
+
venv/
|
|
37
|
+
ENV/
|
|
38
|
+
env/
|
|
39
|
+
|
|
40
|
+
# IDE
|
|
41
|
+
.idea/
|
|
42
|
+
.vscode/
|
|
43
|
+
*.swp
|
|
44
|
+
*.swo
|
|
45
|
+
*~
|
|
46
|
+
|
|
47
|
+
# Testing
|
|
48
|
+
.tox/
|
|
49
|
+
.nox/
|
|
50
|
+
.coverage
|
|
51
|
+
.coverage.*
|
|
52
|
+
htmlcov/
|
|
53
|
+
.pytest_cache/
|
|
54
|
+
.hypothesis/
|
|
55
|
+
|
|
56
|
+
# Type checking
|
|
57
|
+
.mypy_cache/
|
|
58
|
+
.dmypy.json
|
|
59
|
+
dmypy.json
|
|
60
|
+
|
|
61
|
+
# Ruff
|
|
62
|
+
.ruff_cache/
|
|
63
|
+
|
|
64
|
+
# Documentation
|
|
65
|
+
docs/_build/
|
|
66
|
+
|
|
67
|
+
# Datex CLI config (for development)
|
|
68
|
+
# Don't ignore ~/.datex/ as it's outside the repo
|
|
69
|
+
|
|
70
|
+
# OS files
|
|
71
|
+
.DS_Store
|
|
72
|
+
Thumbs.db
|
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: datex-studio-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: CLI for Datex Studio low-code platform, designed for LLM-based AI agents
|
|
5
|
+
Project-URL: Homepage, https://github.com/datex/datex-studio-cli
|
|
6
|
+
Project-URL: Documentation, https://github.com/datex/datex-studio-cli
|
|
7
|
+
Project-URL: Repository, https://github.com/datex/datex-studio-cli
|
|
8
|
+
Author: Datex
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
Keywords: ai,cli,datex,llm,low-code
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Requires-Dist: click>=8.1.0
|
|
23
|
+
Requires-Dist: httpx>=0.27.0
|
|
24
|
+
Requires-Dist: markdownify>=0.13.0
|
|
25
|
+
Requires-Dist: msal>=1.28.0
|
|
26
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
27
|
+
Requires-Dist: pydantic>=2.5.0
|
|
28
|
+
Requires-Dist: pyyaml>=6.0
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest-httpx>=0.30.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
|
36
|
+
Description-Content-Type: text/markdown
|
|
37
|
+
|
|
38
|
+
# Datex Studio CLI (`dxs`)
|
|
39
|
+
|
|
40
|
+
Command-line interface for Datex Studio low-code platform, designed for LLM-based AI agents.
|
|
41
|
+
|
|
42
|
+
## Key Features
|
|
43
|
+
|
|
44
|
+
- **Structured Output**: YAML (default), JSON, and CSV formats for programmatic consumption
|
|
45
|
+
- **Response Envelopes**: All responses include metadata (timestamp, CLI version, counts)
|
|
46
|
+
- **Concise Mode**: Default behavior strips null values to reduce token usage
|
|
47
|
+
- **Multi-Identity Auth**: Support multiple organizational accounts with seamless switching
|
|
48
|
+
- **Restricted Mode**: Safe operation mode that blocks destructive commands
|
|
49
|
+
- **Actionable Errors**: Error responses include suggestion lists for resolution
|
|
50
|
+
|
|
51
|
+
## Installation
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Using uv (recommended)
|
|
55
|
+
uv pip install datex-studio-cli
|
|
56
|
+
|
|
57
|
+
# Using pip
|
|
58
|
+
pip install datex-studio-cli
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Quick Start
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Authenticate with Azure Entra
|
|
65
|
+
dxs auth login
|
|
66
|
+
|
|
67
|
+
# Check authentication status
|
|
68
|
+
dxs auth status
|
|
69
|
+
|
|
70
|
+
# List repositories in your organization
|
|
71
|
+
dxs source repo list
|
|
72
|
+
|
|
73
|
+
# View commit history for a repository
|
|
74
|
+
dxs source log --repo 10 --limit 20
|
|
75
|
+
|
|
76
|
+
# View branch details
|
|
77
|
+
dxs source branch show 12345
|
|
78
|
+
|
|
79
|
+
# Explore application structure
|
|
80
|
+
dxs source explore info --branch 12345
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Output Format
|
|
84
|
+
|
|
85
|
+
### Response Envelopes
|
|
86
|
+
|
|
87
|
+
All commands return structured responses with metadata:
|
|
88
|
+
|
|
89
|
+
```yaml
|
|
90
|
+
# Single item response
|
|
91
|
+
branch:
|
|
92
|
+
id: 12345
|
|
93
|
+
name: main
|
|
94
|
+
status: ACTIVE
|
|
95
|
+
metadata:
|
|
96
|
+
timestamp: '2024-01-15T10:30:00Z'
|
|
97
|
+
cli_version: 0.5.0
|
|
98
|
+
success: true
|
|
99
|
+
|
|
100
|
+
# List response
|
|
101
|
+
branches:
|
|
102
|
+
- id: 12345
|
|
103
|
+
name: main
|
|
104
|
+
- id: 12346
|
|
105
|
+
name: feature-x
|
|
106
|
+
metadata:
|
|
107
|
+
timestamp: '2024-01-15T10:30:00Z'
|
|
108
|
+
cli_version: 0.5.0
|
|
109
|
+
count: 2
|
|
110
|
+
success: true
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Concise vs Full Mode
|
|
114
|
+
|
|
115
|
+
By default, concise mode strips null values and verbose metadata:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# Default (concise) - smaller output
|
|
119
|
+
dxs source branch show 12345
|
|
120
|
+
|
|
121
|
+
# Full output - includes all fields
|
|
122
|
+
dxs source branch show 12345 --full
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Error Responses
|
|
126
|
+
|
|
127
|
+
Errors include actionable suggestions:
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
error:
|
|
131
|
+
code: DXS-AUTH-002
|
|
132
|
+
message: Not authenticated
|
|
133
|
+
suggestions:
|
|
134
|
+
- Run 'dxs auth login' to authenticate
|
|
135
|
+
- Check if your token has expired with 'dxs auth status'
|
|
136
|
+
metadata:
|
|
137
|
+
success: false
|
|
138
|
+
timestamp: '2024-01-15T10:30:00Z'
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Configuration
|
|
142
|
+
|
|
143
|
+
### Priority Chain
|
|
144
|
+
|
|
145
|
+
Configuration values are resolved in order:
|
|
146
|
+
1. CLI flags (`--repo 10`)
|
|
147
|
+
2. Environment variables (`DXS_REPO=10`)
|
|
148
|
+
3. Config file (`~/.datex/config.yaml`)
|
|
149
|
+
4. Defaults
|
|
150
|
+
|
|
151
|
+
### Environment Variables
|
|
152
|
+
|
|
153
|
+
| Variable | Description |
|
|
154
|
+
|----------|-------------|
|
|
155
|
+
| `DXS_ORG` | Default organization ID |
|
|
156
|
+
| `DXS_ENV` | Default environment ID |
|
|
157
|
+
| `DXS_BRANCH` | Default branch ID |
|
|
158
|
+
| `DXS_REPO` | Default repository ID |
|
|
159
|
+
| `DXS_API_BASE_URL` | API base URL |
|
|
160
|
+
| `DXS_RESTRICTED_MODE` | Enable restricted mode (blocks destructive commands) |
|
|
161
|
+
|
|
162
|
+
### Config File
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# View current configuration
|
|
166
|
+
dxs config list
|
|
167
|
+
|
|
168
|
+
# Set a default
|
|
169
|
+
dxs config set default_repo 10
|
|
170
|
+
|
|
171
|
+
# Get a specific value
|
|
172
|
+
dxs config get default_repo
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Configuration stored in `~/.datex/config.yaml`. Credentials stored separately in `~/.datex/credentials.yaml`.
|
|
176
|
+
|
|
177
|
+
### Restricted Mode
|
|
178
|
+
|
|
179
|
+
Set `DXS_RESTRICTED_MODE=1` to block potentially dangerous operations:
|
|
180
|
+
- File-modifying operations (`--save`)
|
|
181
|
+
- Destructive actions (`delete`, `logout --all`, `publish`, `deploy`)
|
|
182
|
+
- CRM attachment downloads
|
|
183
|
+
|
|
184
|
+
## Commands
|
|
185
|
+
|
|
186
|
+
### Authentication (`dxs auth`)
|
|
187
|
+
|
|
188
|
+
| Command | Description |
|
|
189
|
+
|---------|-------------|
|
|
190
|
+
| `login` | Authenticate with Azure Entra (device code flow) |
|
|
191
|
+
| `logout` | Clear credentials (`--all` for all identities) |
|
|
192
|
+
| `status` | Show current authentication status and token expiration |
|
|
193
|
+
| `list` | List all cached identities |
|
|
194
|
+
| `switch <identity>` | Switch to a different cached identity |
|
|
195
|
+
|
|
196
|
+
**Multi-Identity Workflow:**
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# Login to primary organization
|
|
200
|
+
dxs auth login
|
|
201
|
+
|
|
202
|
+
# Login to additional organization (prompts for new auth)
|
|
203
|
+
dxs auth login --org other-org
|
|
204
|
+
|
|
205
|
+
# List all identities
|
|
206
|
+
dxs auth list
|
|
207
|
+
|
|
208
|
+
# Switch between organizations
|
|
209
|
+
dxs auth switch other-org
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Configuration (`dxs config`)
|
|
213
|
+
|
|
214
|
+
| Command | Description |
|
|
215
|
+
|---------|-------------|
|
|
216
|
+
| `get <key>` | Get a configuration value |
|
|
217
|
+
| `set <key> <value>` | Set a configuration value |
|
|
218
|
+
| `list` | List all configuration values with sources |
|
|
219
|
+
|
|
220
|
+
### Source Control (`dxs source`)
|
|
221
|
+
|
|
222
|
+
Direct commands on the `source` group:
|
|
223
|
+
|
|
224
|
+
| Command | Description |
|
|
225
|
+
|---------|-------------|
|
|
226
|
+
| `status` | Show branch status summary |
|
|
227
|
+
| `log` | Show commit history |
|
|
228
|
+
| `history <ref>` | Show configuration version history |
|
|
229
|
+
| `diff` | Show pending changes (draft vs committed) |
|
|
230
|
+
| `changes` | Show pending changes in detail |
|
|
231
|
+
| `locks` | Show current lock status |
|
|
232
|
+
| `deps <ref>` | Show configuration dependencies |
|
|
233
|
+
| `deps-diff` | Show dependency changes between versions |
|
|
234
|
+
| `workitems` | Extract work items from commit messages |
|
|
235
|
+
| `compare` | Compare two branches |
|
|
236
|
+
| `graph` | Show dependency graph |
|
|
237
|
+
|
|
238
|
+
**Common Source Control Examples:**
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
# View recent commits
|
|
242
|
+
dxs source log --repo 10 --limit 20
|
|
243
|
+
|
|
244
|
+
# View pending changes
|
|
245
|
+
dxs source diff --branch 100
|
|
246
|
+
|
|
247
|
+
# View configuration history with diffs
|
|
248
|
+
dxs source history userGrid --branch 100 --diff
|
|
249
|
+
|
|
250
|
+
# Check who has locks
|
|
251
|
+
dxs source locks --repo 10
|
|
252
|
+
|
|
253
|
+
# Compare two branches
|
|
254
|
+
dxs source compare --source 100 --target 200
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Branch Management (`dxs source branch`)
|
|
258
|
+
|
|
259
|
+
| Command | Description |
|
|
260
|
+
|---------|-------------|
|
|
261
|
+
| `list` | List branches (with filtering options) |
|
|
262
|
+
| `show <id>` | Show branch details |
|
|
263
|
+
| `create` | Create a new feature branch |
|
|
264
|
+
| `delete <id>` | Delete a feature branch |
|
|
265
|
+
| `publish <id>` | Publish branch to marketplace |
|
|
266
|
+
| `baseline <id>` | Find baseline (previous release) |
|
|
267
|
+
| `search <query>` | Search branches by name |
|
|
268
|
+
| `roles <id>` | Show branch roles |
|
|
269
|
+
| `shell <id>` | Show shell configuration |
|
|
270
|
+
| `validate <id>` | Validate branch configuration |
|
|
271
|
+
| `candelete <id>` | Check if branch can be deleted |
|
|
272
|
+
| `settings <id>` | List application settings |
|
|
273
|
+
| `operations <id>` | List operations and workflows |
|
|
274
|
+
| `replacements <id>` | List configuration replacements |
|
|
275
|
+
|
|
276
|
+
**Branch Listing Options:**
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# List all branches in a repo
|
|
280
|
+
dxs source branch list --repo 10
|
|
281
|
+
|
|
282
|
+
# Filter by status
|
|
283
|
+
dxs source branch list --repo 10 --status feature
|
|
284
|
+
|
|
285
|
+
# Show branches with pending changes
|
|
286
|
+
dxs source branch list --repo 10 --with-changes
|
|
287
|
+
|
|
288
|
+
# Sort by modification date
|
|
289
|
+
dxs source branch list --repo 10 --sort modified --desc
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Repository Management (`dxs source repo`)
|
|
293
|
+
|
|
294
|
+
| Command | Description |
|
|
295
|
+
|---------|-------------|
|
|
296
|
+
| `list` | List repositories |
|
|
297
|
+
| `show <id>` | Show repository details |
|
|
298
|
+
| `search <query>` | Search repositories by name |
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# List repos with branch info
|
|
302
|
+
dxs source repo list --with-branches
|
|
303
|
+
|
|
304
|
+
# Filter by type
|
|
305
|
+
dxs source repo list --type web
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Service Pack Management (`dxs source servicepack`)
|
|
309
|
+
|
|
310
|
+
Service packs enable hotfix/maintenance branches from published releases.
|
|
311
|
+
|
|
312
|
+
| Command | Description |
|
|
313
|
+
|---------|-------------|
|
|
314
|
+
| `list` | List service pack groups |
|
|
315
|
+
| `create` | Create service pack from published version |
|
|
316
|
+
| `delete <id>` | Delete service pack group |
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# Create service pack for hotfixes
|
|
320
|
+
dxs source servicepack create --repo 10 --description "Q1 2024 Hotfixes"
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Exploration (`dxs source explore`)
|
|
324
|
+
|
|
325
|
+
Commands for exploring application structure and dependencies.
|
|
326
|
+
|
|
327
|
+
| Command | Description |
|
|
328
|
+
|---------|-------------|
|
|
329
|
+
| `info` | Show application overview |
|
|
330
|
+
| `configs` | List all configurations |
|
|
331
|
+
| `config <ref>` | View a specific configuration |
|
|
332
|
+
| `summary <ref>` | Show structural summary |
|
|
333
|
+
| `trace <ref>` | Trace configuration dependencies |
|
|
334
|
+
| `graph` | Generate dependency graph |
|
|
335
|
+
| `cache` | Manage exploration cache |
|
|
336
|
+
| `manifest` | Show application manifest |
|
|
337
|
+
| `extract-code` | Extract code from configurations |
|
|
338
|
+
| `verify` | Verify configuration integrity |
|
|
339
|
+
| `summarize` | Generate configuration summaries |
|
|
340
|
+
|
|
341
|
+
**Exploration Workflow:**
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# 1. Get application overview
|
|
345
|
+
dxs source explore info --branch 12345
|
|
346
|
+
|
|
347
|
+
# 2. List configurations (optionally filter)
|
|
348
|
+
dxs source explore configs --branch 12345 --type flow
|
|
349
|
+
|
|
350
|
+
# 3. View structural summary
|
|
351
|
+
dxs source explore summary create_order --branch 12345
|
|
352
|
+
|
|
353
|
+
# 4. Trace dependencies
|
|
354
|
+
dxs source explore trace create_order --branch 12345 --depth 3
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
See [Agent Guide](docs/agent-guide.md) for detailed exploration workflows.
|
|
358
|
+
|
|
359
|
+
### Documentation Generation (`dxs source document`)
|
|
360
|
+
|
|
361
|
+
Commands for bulk documentation and analysis.
|
|
362
|
+
|
|
363
|
+
| Command | Description |
|
|
364
|
+
|---------|-------------|
|
|
365
|
+
| `build` | Download configurations with context generation |
|
|
366
|
+
| `resume` | Resume interrupted build |
|
|
367
|
+
| `status` | Show documentation build status |
|
|
368
|
+
| `graph` | Generate dependency graph from local files |
|
|
369
|
+
| `analyze init` | Initialize analysis workflow |
|
|
370
|
+
| `analyze next` | Get next batch of configs to analyze |
|
|
371
|
+
| `analyze store` | Store analysis result |
|
|
372
|
+
| `analyze status` | Show analysis progress |
|
|
373
|
+
|
|
374
|
+
**Analysis Workflow:**
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
# Initialize (downloads configs, builds graph)
|
|
378
|
+
dxs source document analyze init -o ./exploration --branch 12345
|
|
379
|
+
|
|
380
|
+
# Get next batch to analyze
|
|
381
|
+
dxs source document analyze next -o ./exploration --limit 5
|
|
382
|
+
|
|
383
|
+
# Store analysis result
|
|
384
|
+
dxs source document analyze store -o ./exploration -c local/flow/my_flow.yaml -f analysis.yaml
|
|
385
|
+
|
|
386
|
+
# Check progress
|
|
387
|
+
dxs source document analyze status -o ./exploration --by-type
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
See [Analysis Workflow](docs/analysis-workflow.md) for detailed instructions.
|
|
391
|
+
|
|
392
|
+
### Organizations (`dxs organization`)
|
|
393
|
+
|
|
394
|
+
| Command | Description |
|
|
395
|
+
|---------|-------------|
|
|
396
|
+
| `list` | List all organizations |
|
|
397
|
+
| `show <id>` | Show organization details |
|
|
398
|
+
| `mine` | Show current user's organization |
|
|
399
|
+
| `search <query>` | Search organizations |
|
|
400
|
+
|
|
401
|
+
### Environments (`dxs env`)
|
|
402
|
+
|
|
403
|
+
| Command | Description |
|
|
404
|
+
|---------|-------------|
|
|
405
|
+
| `list` | List environments |
|
|
406
|
+
| `components` | List environment components |
|
|
407
|
+
| `deploy <component_id>` | Deploy to an environment component |
|
|
408
|
+
| `list-authorized` | List components user has access to |
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
# List environments
|
|
412
|
+
dxs env list --org 1
|
|
413
|
+
|
|
414
|
+
# Deploy to component
|
|
415
|
+
dxs env deploy 123 --force
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Users (`dxs user`)
|
|
419
|
+
|
|
420
|
+
| Command | Description |
|
|
421
|
+
|---------|-------------|
|
|
422
|
+
| `list` | List all users |
|
|
423
|
+
| `studio-access` | Grant/revoke studio access |
|
|
424
|
+
|
|
425
|
+
```bash
|
|
426
|
+
# Search users
|
|
427
|
+
dxs user list --search "john"
|
|
428
|
+
|
|
429
|
+
# Grant studio access
|
|
430
|
+
dxs user studio-access --user-id 123 --grant
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### CRM Integration (`dxs crm`)
|
|
434
|
+
|
|
435
|
+
Commands for Dynamics CRM integration.
|
|
436
|
+
|
|
437
|
+
**Case Commands (`dxs crm case`):**
|
|
438
|
+
|
|
439
|
+
| Command | Description |
|
|
440
|
+
|---------|-------------|
|
|
441
|
+
| `search` | Search support cases |
|
|
442
|
+
| `query` | Execute OData query against cases |
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
# Search cases
|
|
446
|
+
dxs crm case search "payment error" --status active --limit 10
|
|
447
|
+
|
|
448
|
+
# Query with OData
|
|
449
|
+
dxs crm case query --filter "createdon gt 2024-01-01" --select title,ticketnumber
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
**Account Commands (`dxs crm account`):**
|
|
453
|
+
|
|
454
|
+
| Command | Description |
|
|
455
|
+
|---------|-------------|
|
|
456
|
+
| `list` | List accounts |
|
|
457
|
+
| `search <query>` | Search accounts by name |
|
|
458
|
+
|
|
459
|
+
**Metadata Commands (`dxs crm metadata`):**
|
|
460
|
+
|
|
461
|
+
| Command | Description |
|
|
462
|
+
|---------|-------------|
|
|
463
|
+
| `entities` | List all available entities |
|
|
464
|
+
| `<entity_name>` | Show fields for an entity |
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
# List entities
|
|
468
|
+
dxs crm metadata entities
|
|
469
|
+
|
|
470
|
+
# Show incident fields
|
|
471
|
+
dxs crm metadata incident --relationships
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Marketplace (`dxs marketplace`)
|
|
475
|
+
|
|
476
|
+
| Command | Description |
|
|
477
|
+
|---------|-------------|
|
|
478
|
+
| `list` | List marketplace applications |
|
|
479
|
+
| `show <id>` | Show application details |
|
|
480
|
+
| `versions <id>` | List published versions |
|
|
481
|
+
| `version <id>` | Show version details |
|
|
482
|
+
| `search <query>` | Search applications |
|
|
483
|
+
|
|
484
|
+
### Azure DevOps (`dxs devops`)
|
|
485
|
+
|
|
486
|
+
| Command | Description |
|
|
487
|
+
|---------|-------------|
|
|
488
|
+
| `workitem <id>` | Get single work item |
|
|
489
|
+
| `workitems <ids>` | Get multiple work items (batch) |
|
|
490
|
+
| `search <query>` | Search work items |
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
# Get work item with relations
|
|
494
|
+
dxs devops workitem 12345 --org my-org --expand Relations
|
|
495
|
+
|
|
496
|
+
# Batch fetch with descriptions
|
|
497
|
+
dxs devops workitems "123,456,789" --org my-org --description
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### Raw API (`dxs api`)
|
|
501
|
+
|
|
502
|
+
Make direct API requests with automatic authentication.
|
|
503
|
+
|
|
504
|
+
```bash
|
|
505
|
+
# GET request
|
|
506
|
+
dxs api GET /organizations/mine
|
|
507
|
+
|
|
508
|
+
# POST request
|
|
509
|
+
dxs api POST /some/endpoint '{"key": "value"}'
|
|
510
|
+
|
|
511
|
+
# PUT request
|
|
512
|
+
dxs api PUT /some/endpoint '{"data": "value"}'
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
## Global Options
|
|
516
|
+
|
|
517
|
+
| Option | Description |
|
|
518
|
+
|--------|-------------|
|
|
519
|
+
| `-o, --org` | Organization ID |
|
|
520
|
+
| `-e, --env` | Environment ID |
|
|
521
|
+
| `-b, --branch` | Branch ID |
|
|
522
|
+
| `-r, --repo` | Repository ID |
|
|
523
|
+
| `-O, --output` | Output format: yaml, json, csv |
|
|
524
|
+
| `-v, --verbose` | Enable verbose output |
|
|
525
|
+
| `-q, --quiet` | Suppress progress messages |
|
|
526
|
+
| `-f, --full` | Show full output (disable concise mode) |
|
|
527
|
+
| `-s, --save` | Save output to file |
|
|
528
|
+
| `--force` | Force overwrite when saving |
|
|
529
|
+
|
|
530
|
+
## Further Documentation
|
|
531
|
+
|
|
532
|
+
- [Agent Guide](docs/agent-guide.md) - Detailed exploration workflows for LLM agents
|
|
533
|
+
- [Analysis Workflow](docs/analysis-workflow.md) - Bulk analysis workflow documentation
|
|
534
|
+
|
|
535
|
+
## Development
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
# Clone and install
|
|
539
|
+
git clone https://github.com/datex/datex-studio-cli.git
|
|
540
|
+
cd datex-studio-cli
|
|
541
|
+
uv venv
|
|
542
|
+
source .venv/bin/activate
|
|
543
|
+
uv pip install -e ".[dev]"
|
|
544
|
+
|
|
545
|
+
# Run tests
|
|
546
|
+
pytest
|
|
547
|
+
|
|
548
|
+
# Lint and format
|
|
549
|
+
ruff check .
|
|
550
|
+
ruff format .
|
|
551
|
+
|
|
552
|
+
# Type check
|
|
553
|
+
mypy src/dxs
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
## License
|
|
557
|
+
|
|
558
|
+
MIT
|