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.
Files changed (90) hide show
  1. datex_studio_cli-0.1.1/.gitignore +72 -0
  2. datex_studio_cli-0.1.1/PKG-INFO +558 -0
  3. datex_studio_cli-0.1.1/README.md +521 -0
  4. datex_studio_cli-0.1.1/docs/agent-guide.md +405 -0
  5. datex_studio_cli-0.1.1/docs/analysis-workflow.md +221 -0
  6. datex_studio_cli-0.1.1/publish.sh +35 -0
  7. datex_studio_cli-0.1.1/pyproject.toml +126 -0
  8. datex_studio_cli-0.1.1/release_notes/2026-01-15_summary.md +107 -0
  9. datex_studio_cli-0.1.1/skill-notes/README.md +78 -0
  10. datex_studio_cli-0.1.1/skill-notes/branches/branch-statuses.md +55 -0
  11. datex_studio_cli-0.1.1/skill-notes/branches/index.md +64 -0
  12. datex_studio_cli-0.1.1/skill-notes/branches/listing-branches-guide.md +221 -0
  13. datex_studio_cli-0.1.1/skill-notes/branches/listing-branches.md +66 -0
  14. datex_studio_cli-0.1.1/skill-notes/code-review/index.md +75 -0
  15. datex_studio_cli-0.1.1/skill-notes/code-review/multi-repo-review-guide.md +310 -0
  16. datex_studio_cli-0.1.1/skill-notes/code-review/review-report-template.md +290 -0
  17. datex_studio_cli-0.1.1/skill-notes/code-review/reviewing-commits-guide.md +169 -0
  18. datex_studio_cli-0.1.1/skill-notes/code-review/reviewing-feature-branches.md +125 -0
  19. datex_studio_cli-0.1.1/skill-notes/devops-integration/index.md +54 -0
  20. datex_studio_cli-0.1.1/skill-notes/devops-integration/workitems.md +121 -0
  21. datex_studio_cli-0.1.1/skill-notes/exploring-configs/config-types.md +93 -0
  22. datex_studio_cli-0.1.1/skill-notes/exploring-configs/index.md +52 -0
  23. datex_studio_cli-0.1.1/skill-notes/exploring-configs/listing-configs.md +81 -0
  24. datex_studio_cli-0.1.1/skill-notes/exploring-configs/viewing-configs.md +74 -0
  25. datex_studio_cli-0.1.1/skill-notes/getting-started/authentication.md +96 -0
  26. datex_studio_cli-0.1.1/skill-notes/getting-started/configuration.md +69 -0
  27. datex_studio_cli-0.1.1/skill-notes/getting-started/index.md +72 -0
  28. datex_studio_cli-0.1.1/skill-notes/reference/branch-statuses.md +101 -0
  29. datex_studio_cli-0.1.1/skill-notes/reference/command-cheatsheet.md +119 -0
  30. datex_studio_cli-0.1.1/skill-notes/reference/index.md +44 -0
  31. datex_studio_cli-0.1.1/skill-notes/reference/output-formats.md +149 -0
  32. datex_studio_cli-0.1.1/skill-notes/repositories/index.md +89 -0
  33. datex_studio_cli-0.1.1/skill-notes/repositories/listing-repos.md +126 -0
  34. datex_studio_cli-0.1.1/skill-notes/source-control/commit-history.md +85 -0
  35. datex_studio_cli-0.1.1/skill-notes/source-control/dependencies.md +90 -0
  36. datex_studio_cli-0.1.1/skill-notes/source-control/index.md +64 -0
  37. datex_studio_cli-0.1.1/skill-notes/source-control/viewing-changes-guide.md +217 -0
  38. datex_studio_cli-0.1.1/skill-notes/source-control/viewing-changes.md +57 -0
  39. datex_studio_cli-0.1.1/src/dxs/__init__.py +4 -0
  40. datex_studio_cli-0.1.1/src/dxs/__main__.py +6 -0
  41. datex_studio_cli-0.1.1/src/dxs/cli.py +415 -0
  42. datex_studio_cli-0.1.1/src/dxs/commands/__init__.py +1 -0
  43. datex_studio_cli-0.1.1/src/dxs/commands/api.py +148 -0
  44. datex_studio_cli-0.1.1/src/dxs/commands/auth.py +821 -0
  45. datex_studio_cli-0.1.1/src/dxs/commands/branch.py +1272 -0
  46. datex_studio_cli-0.1.1/src/dxs/commands/config.py +120 -0
  47. datex_studio_cli-0.1.1/src/dxs/commands/crm.py +1136 -0
  48. datex_studio_cli-0.1.1/src/dxs/commands/devops.py +245 -0
  49. datex_studio_cli-0.1.1/src/dxs/commands/document.py +2919 -0
  50. datex_studio_cli-0.1.1/src/dxs/commands/env.py +263 -0
  51. datex_studio_cli-0.1.1/src/dxs/commands/explore.py +2948 -0
  52. datex_studio_cli-0.1.1/src/dxs/commands/marketplace.py +221 -0
  53. datex_studio_cli-0.1.1/src/dxs/commands/organization.py +152 -0
  54. datex_studio_cli-0.1.1/src/dxs/commands/repo.py +475 -0
  55. datex_studio_cli-0.1.1/src/dxs/commands/servicepack.py +335 -0
  56. datex_studio_cli-0.1.1/src/dxs/commands/source.py +3095 -0
  57. datex_studio_cli-0.1.1/src/dxs/commands/user.py +152 -0
  58. datex_studio_cli-0.1.1/src/dxs/core/__init__.py +1 -0
  59. datex_studio_cli-0.1.1/src/dxs/core/api/__init__.py +73 -0
  60. datex_studio_cli-0.1.1/src/dxs/core/api/client.py +299 -0
  61. datex_studio_cli-0.1.1/src/dxs/core/api/endpoints.py +366 -0
  62. datex_studio_cli-0.1.1/src/dxs/core/api/models.py +521 -0
  63. datex_studio_cli-0.1.1/src/dxs/core/auth/__init__.py +29 -0
  64. datex_studio_cli-0.1.1/src/dxs/core/auth/decorators.py +206 -0
  65. datex_studio_cli-0.1.1/src/dxs/core/auth/msal_client.py +483 -0
  66. datex_studio_cli-0.1.1/src/dxs/core/auth/token_cache.py +801 -0
  67. datex_studio_cli-0.1.1/src/dxs/core/cache.py +498 -0
  68. datex_studio_cli-0.1.1/src/dxs/core/devops/__init__.py +9 -0
  69. datex_studio_cli-0.1.1/src/dxs/core/devops/client.py +359 -0
  70. datex_studio_cli-0.1.1/src/dxs/core/devops/models.py +140 -0
  71. datex_studio_cli-0.1.1/src/dxs/core/dynamics/__init__.py +7 -0
  72. datex_studio_cli-0.1.1/src/dxs/core/dynamics/client.py +616 -0
  73. datex_studio_cli-0.1.1/src/dxs/core/graph.py +439 -0
  74. datex_studio_cli-0.1.1/src/dxs/core/output/__init__.py +5 -0
  75. datex_studio_cli-0.1.1/src/dxs/core/output/csv_fmt.py +136 -0
  76. datex_studio_cli-0.1.1/src/dxs/core/output/formatter.py +165 -0
  77. datex_studio_cli-0.1.1/src/dxs/core/output/json_fmt.py +44 -0
  78. datex_studio_cli-0.1.1/src/dxs/core/output/yaml_fmt.py +77 -0
  79. datex_studio_cli-0.1.1/src/dxs/core/responses.py +155 -0
  80. datex_studio_cli-0.1.1/src/dxs/models/__init__.py +1 -0
  81. datex_studio_cli-0.1.1/src/dxs/utils/__init__.py +47 -0
  82. datex_studio_cli-0.1.1/src/dxs/utils/click_options.py +166 -0
  83. datex_studio_cli-0.1.1/src/dxs/utils/config.py +226 -0
  84. datex_studio_cli-0.1.1/src/dxs/utils/errors.py +217 -0
  85. datex_studio_cli-0.1.1/src/dxs/utils/filtering.py +246 -0
  86. datex_studio_cli-0.1.1/src/dxs/utils/paths.py +38 -0
  87. datex_studio_cli-0.1.1/src/dxs/utils/resolvers.py +211 -0
  88. datex_studio_cli-0.1.1/src/dxs/utils/responses.py +117 -0
  89. datex_studio_cli-0.1.1/src/dxs/utils/restricted.py +70 -0
  90. 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