datex-studio-cli 0.4.25__tar.gz → 0.5.0__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.4.25 → datex_studio_cli-0.5.0}/.github/workflows/build-image.yml +4 -4
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/.github/workflows/ci.yml +14 -8
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/.github/workflows/promote-prod.yml +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/.github/workflows/release.yml +5 -3
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/.gitignore +3 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/PKG-INFO +20 -8
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/README.md +19 -7
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/pyproject.toml +2 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/__init__.py +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/auth.py +685 -252
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/datasource.py +3 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/init.py +89 -60
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/odata.py +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/__init__.py +2 -2
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/auth/datex_tenant.py +2 -2
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/auth/msal_client.py +119 -10
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/auth/tenants.py +120 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/auth/token_cache.py +37 -8
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/generator.py +2 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/footprint/client.py +10 -3
- datex_studio_cli-0.5.0/src/dxs/core/onboarding.py +518 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/engine.py +13 -13
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/preview.py +2 -2
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/preview_arjs.py +2 -2
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/svg_renderer.py +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/design.py +4 -6
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/404/index.html +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/404.html +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/design/capture/index.html +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/design/capture/index.txt +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/design/index.html +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/design/index.txt +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/index.html +1 -1
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/index.txt +1 -1
- datex_studio_cli-0.4.25/src/dxs/core/onboarding.py +0 -151
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/.dockerignore +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/.github/actionlint.yaml +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/CONTEXT.md +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/.env.example +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/Dockerfile +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/README.md +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/apply-local-cache.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/collector-config.yaml +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/docker-compose.yml +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/local-test-settings.json +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/otel/remote-settings.json +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/report-creator.skill +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/scripts/analyze_corpus.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/scripts/generate_rdlx_schema.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/__main__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/cli.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/api.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/branch.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/branch_commit_guard.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/cascade.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/config.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/configuration.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/crm.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/crm_delivery.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/crm_time.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/devops.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/document.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/endpoint.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/env.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/explore.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/function.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/marketplace.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/ng/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/ng/_common.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/ng/api.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/ng/create.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/ng/data.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/ng/pack.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/ng/preview.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/organization.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/proxy.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/reference.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/release_notes.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/repo.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/add_cmds.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/api.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/batch.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/create.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/data.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/dataset.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/edit.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/folder.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/preview.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/report/schema_cmds.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/reset.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/schema.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/servicepack.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/source.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/studio.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/telemetry.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/user.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/commands/validation_report.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/context.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/agent_browser.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/app_config.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/client.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/endpoints.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/metadata_models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/reference_graph.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/api/replacements.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/auth/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/auth/decorators.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/cache.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/flow_generator.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/flow_models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/flow_shape.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/parsers.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/resolver.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/type_def_parser.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/datasource/validator.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/designer/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/designer/flow_models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/designer/models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/designer/parsers.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/devops/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/devops/client.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/devops/helpers.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/devops/models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/dynamics/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/dynamics/client.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/dynamics/html.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/dynamics/metadata_cache.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/dynamics/pagination.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/dynamics/resolvers.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/dynamics/time_entry.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/footprint/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/footprint/edmx_parser.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/footprint/metadata.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/function/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/function/generator.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/function/models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/function/validator.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/graph.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/output/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/output/csv_fmt.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/output/formatter.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/output/json_fmt.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/output/redaction.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/output/yaml_fmt.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/release_notes.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/responses.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/telemetry/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/telemetry/config.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/telemetry/identity.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/telemetry/recorder.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/telemetry/scrubber.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/core/telemetry/sender.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/models/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/ng/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/ng/folder.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/ng/manifest.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/ng/mocks.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/ng/preview.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/ng/scaffold.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/ng/serve_lock.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/py.typed +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/datasource_binding.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/field_parser.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/folder.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/manifest.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/models.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/schema.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/templates/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/templates/bill_of_lading.rdlx-json +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/templates/shipping_label.rdlx-json +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/validate_arjs.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/validator.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/report/wrapper.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/click_options.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/clipboard.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/config.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/errors.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/filtering.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/image.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/paths.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/resolvers.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/responses.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/restricted.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/sorting.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/update_check.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/utils/versioning.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/__init__.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/app.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/proxy_app.py +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/0b24cca5-c1e1c8810348f107.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/255-102f2e5b2e3dc2ef.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/4bd1b696-c023c6e3521b1417.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/538-b06224e65f71c9a1.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/697-0e000ab410d9f470.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/871-1acacdb7b4022abf.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/8b8f67fc-6295949a4b5485a4.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/909-c88abba3cf0caec3.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/app/_not-found/page-e3c660196c244183.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/app/design/capture/page-c083dc9f01f32a04.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/app/design/page-689cd5b9e1d9a74e.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/app/layout-cec86f90e385371d.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/app/page-f0380b0f29983264.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/framework-de98b93a850cfc71.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/main-0f18f91200dac003.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/main-app-694cf3568b6c9fa9.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/pages/_app-7d307437aca18ad4.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/chunks/webpack-2b297ada5306c17f.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/_next/static/css/360c657de5e04df8.css +0 -0
- {datex_studio_cli-0.4.25/src/dxs/web/static/_next/static/BbKuTltyqzuSYoNcVtfWa → datex_studio_cli-0.5.0/src/dxs/web/static/_next/static/hfb4z29yVHQge-muP6roV}/_buildManifest.js +0 -0
- {datex_studio_cli-0.4.25/src/dxs/web/static/_next/static/BbKuTltyqzuSYoNcVtfWa → datex_studio_cli-0.5.0/src/dxs/web/static/_next/static/hfb4z29yVHQge-muP6roV}/_ssgManifest.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/render-cli.js +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/report-preview.html +0 -0
- {datex_studio_cli-0.4.25 → datex_studio_cli-0.5.0}/src/dxs/web/static/report-validate.html +0 -0
|
@@ -29,9 +29,9 @@ jobs:
|
|
|
29
29
|
runs-on: arc-dxs
|
|
30
30
|
timeout-minutes: 30
|
|
31
31
|
steps:
|
|
32
|
-
- uses: actions/checkout@
|
|
33
|
-
- uses: docker/setup-buildx-action@
|
|
34
|
-
- uses: docker/login-action@
|
|
32
|
+
- uses: actions/checkout@v7
|
|
33
|
+
- uses: docker/setup-buildx-action@v4
|
|
34
|
+
- uses: docker/login-action@v4
|
|
35
35
|
with:
|
|
36
36
|
registry: ghcr.io
|
|
37
37
|
username: ${{ github.actor }}
|
|
@@ -39,7 +39,7 @@ jobs:
|
|
|
39
39
|
- id: meta
|
|
40
40
|
run: echo "datetag=$(date -u +%Y%m%d).${{ github.run_number }}" >> "$GITHUB_OUTPUT"
|
|
41
41
|
- id: build
|
|
42
|
-
uses: docker/build-push-action@
|
|
42
|
+
uses: docker/build-push-action@v7
|
|
43
43
|
with:
|
|
44
44
|
context: .
|
|
45
45
|
file: quartermaster/Dockerfile
|
|
@@ -20,12 +20,18 @@ jobs:
|
|
|
20
20
|
runs-on: arc-dxs
|
|
21
21
|
timeout-minutes: 30
|
|
22
22
|
steps:
|
|
23
|
-
- uses: actions/checkout@
|
|
24
|
-
- uses: astral-sh/setup-uv@
|
|
23
|
+
- uses: actions/checkout@v7
|
|
24
|
+
- uses: astral-sh/setup-uv@v10.0.1
|
|
25
25
|
with:
|
|
26
26
|
enable-cache: true
|
|
27
|
+
# Distinct per-job key: cli and service run in parallel and would
|
|
28
|
+
# otherwise race to save the same cache entry (noisy warning).
|
|
29
|
+
cache-suffix: cli
|
|
30
|
+
# The releases.astral.sh mirror 404s from the arc-dxs runners and
|
|
31
|
+
# every download falls back to GitHub Releases anyway — skip it.
|
|
32
|
+
download-from-astral-mirror: false
|
|
27
33
|
- run: uv python install 3.13
|
|
28
|
-
- uses: actions/setup-node@
|
|
34
|
+
- uses: actions/setup-node@v7
|
|
29
35
|
with:
|
|
30
36
|
node-version: 22
|
|
31
37
|
- name: Build the report renderer bundle (snapshot tests shell out to it)
|
|
@@ -35,19 +41,19 @@ jobs:
|
|
|
35
41
|
npm run build:render-cli
|
|
36
42
|
- run: uv sync --all-packages --extra dev
|
|
37
43
|
- run: uv run ruff check .
|
|
38
|
-
-
|
|
39
|
-
run: uv run mypy src/dxs
|
|
40
|
-
continue-on-error: true
|
|
44
|
+
- run: uv run mypy src/dxs
|
|
41
45
|
- run: uv run pytest -q
|
|
42
46
|
|
|
43
47
|
service:
|
|
44
48
|
runs-on: arc-dxs
|
|
45
49
|
timeout-minutes: 20
|
|
46
50
|
steps:
|
|
47
|
-
- uses: actions/checkout@
|
|
48
|
-
- uses: astral-sh/setup-uv@
|
|
51
|
+
- uses: actions/checkout@v7
|
|
52
|
+
- uses: astral-sh/setup-uv@v10.0.1
|
|
49
53
|
with:
|
|
50
54
|
enable-cache: true
|
|
55
|
+
cache-suffix: service
|
|
56
|
+
download-from-astral-mirror: false
|
|
51
57
|
- run: uv python install 3.13
|
|
52
58
|
- run: uv sync --all-packages --extra dev
|
|
53
59
|
- run: uv run ruff check quartermaster
|
|
@@ -41,10 +41,12 @@ jobs:
|
|
|
41
41
|
contents: write # the dispatch lane pushes the bump commit + tag
|
|
42
42
|
id-token: write # PyPI trusted publishing
|
|
43
43
|
steps:
|
|
44
|
-
- uses: actions/checkout@
|
|
45
|
-
- uses: astral-sh/setup-uv@
|
|
44
|
+
- uses: actions/checkout@v7
|
|
45
|
+
- uses: astral-sh/setup-uv@v10.0.1
|
|
46
46
|
with:
|
|
47
47
|
enable-cache: true
|
|
48
|
+
cache-suffix: release
|
|
49
|
+
download-from-astral-mirror: false
|
|
48
50
|
- run: uv python install 3.13
|
|
49
51
|
- name: Bump version, commit, and tag (dispatch with a version input)
|
|
50
52
|
if: github.event_name == 'workflow_dispatch' && inputs.version != ''
|
|
@@ -91,7 +93,7 @@ jobs:
|
|
|
91
93
|
echo "version sources disagree — run 'uv lock' and align all three before releasing" >&2
|
|
92
94
|
exit 1
|
|
93
95
|
fi
|
|
94
|
-
- uses: actions/setup-node@
|
|
96
|
+
- uses: actions/setup-node@v7
|
|
95
97
|
with:
|
|
96
98
|
node-version: 22
|
|
97
99
|
- name: Build the web UI (shipped via hatch artifacts)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: datex-studio-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: CLI for Datex Studio low-code platform, designed for LLM-based AI agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/datex/datex-studio-cli
|
|
6
6
|
Project-URL: Documentation, https://github.com/datex/datex-studio-cli
|
|
@@ -77,7 +77,7 @@ pip install datex-studio-cli
|
|
|
77
77
|
## Quick Start
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
|
-
# Authenticate with Azure Entra
|
|
80
|
+
# Authenticate with Azure Entra (opens your browser; device code when headless)
|
|
81
81
|
dxs auth login
|
|
82
82
|
|
|
83
83
|
# Check authentication status
|
|
@@ -203,11 +203,19 @@ Set `DXS_RESTRICTED_MODE=1` to block potentially dangerous operations:
|
|
|
203
203
|
|
|
204
204
|
| Command | Description |
|
|
205
205
|
|---------|-------------|
|
|
206
|
-
| `login` |
|
|
206
|
+
| `login [selector]` | Sign in — browser + PKCE by default, device code when headless or with `--use-device-code`/`--no-browser` |
|
|
207
207
|
| `logout` | Clear credentials (`--all` for all identities) |
|
|
208
208
|
| `status` | Show current authentication status and token expiration |
|
|
209
209
|
| `list` | List all cached identities |
|
|
210
|
-
| `switch <
|
|
210
|
+
| `switch <selector>` | Switch identity (username, org, Entra domain, or tenant ID) |
|
|
211
|
+
|
|
212
|
+
One selector grammar is shared by `login`, `switch`, and `init`: an email
|
|
213
|
+
address derives the tenant from its domain (works on a fresh machine), a
|
|
214
|
+
domain or tenant GUID names the tenant directly, anything else is an
|
|
215
|
+
organization name. `--domain`/`--tenant-id` name the tenant to authenticate
|
|
216
|
+
against and always win; combined with an email selector they express a guest
|
|
217
|
+
signing in to another organization's tenant. A usable cached identity for the
|
|
218
|
+
target skips the browser entirely (`--force` re-authenticates).
|
|
211
219
|
|
|
212
220
|
**Multi-Identity Workflow:**
|
|
213
221
|
|
|
@@ -215,14 +223,18 @@ Set `DXS_RESTRICTED_MODE=1` to block potentially dangerous operations:
|
|
|
215
223
|
# Login to primary organization
|
|
216
224
|
dxs auth login
|
|
217
225
|
|
|
218
|
-
#
|
|
219
|
-
dxs auth login
|
|
226
|
+
# Customer self-service: the tenant is derived from your address
|
|
227
|
+
dxs auth login you@csw-wi.com
|
|
228
|
+
|
|
229
|
+
# Login to an additional organization (fresh auth against its tenant)
|
|
230
|
+
dxs auth login OtherOrg
|
|
220
231
|
|
|
221
232
|
# List all identities
|
|
222
233
|
dxs auth list
|
|
223
234
|
|
|
224
|
-
# Switch between
|
|
225
|
-
dxs auth switch
|
|
235
|
+
# Switch between identities — org name, domain, tenant ID, or username
|
|
236
|
+
dxs auth switch OtherOrg
|
|
237
|
+
dxs auth switch csw-wi.com
|
|
226
238
|
```
|
|
227
239
|
|
|
228
240
|
### CLI Settings (`dxs settings`)
|
|
@@ -24,7 +24,7 @@ pip install datex-studio-cli
|
|
|
24
24
|
## Quick Start
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
# Authenticate with Azure Entra
|
|
27
|
+
# Authenticate with Azure Entra (opens your browser; device code when headless)
|
|
28
28
|
dxs auth login
|
|
29
29
|
|
|
30
30
|
# Check authentication status
|
|
@@ -150,11 +150,19 @@ Set `DXS_RESTRICTED_MODE=1` to block potentially dangerous operations:
|
|
|
150
150
|
|
|
151
151
|
| Command | Description |
|
|
152
152
|
|---------|-------------|
|
|
153
|
-
| `login` |
|
|
153
|
+
| `login [selector]` | Sign in — browser + PKCE by default, device code when headless or with `--use-device-code`/`--no-browser` |
|
|
154
154
|
| `logout` | Clear credentials (`--all` for all identities) |
|
|
155
155
|
| `status` | Show current authentication status and token expiration |
|
|
156
156
|
| `list` | List all cached identities |
|
|
157
|
-
| `switch <
|
|
157
|
+
| `switch <selector>` | Switch identity (username, org, Entra domain, or tenant ID) |
|
|
158
|
+
|
|
159
|
+
One selector grammar is shared by `login`, `switch`, and `init`: an email
|
|
160
|
+
address derives the tenant from its domain (works on a fresh machine), a
|
|
161
|
+
domain or tenant GUID names the tenant directly, anything else is an
|
|
162
|
+
organization name. `--domain`/`--tenant-id` name the tenant to authenticate
|
|
163
|
+
against and always win; combined with an email selector they express a guest
|
|
164
|
+
signing in to another organization's tenant. A usable cached identity for the
|
|
165
|
+
target skips the browser entirely (`--force` re-authenticates).
|
|
158
166
|
|
|
159
167
|
**Multi-Identity Workflow:**
|
|
160
168
|
|
|
@@ -162,14 +170,18 @@ Set `DXS_RESTRICTED_MODE=1` to block potentially dangerous operations:
|
|
|
162
170
|
# Login to primary organization
|
|
163
171
|
dxs auth login
|
|
164
172
|
|
|
165
|
-
#
|
|
166
|
-
dxs auth login
|
|
173
|
+
# Customer self-service: the tenant is derived from your address
|
|
174
|
+
dxs auth login you@csw-wi.com
|
|
175
|
+
|
|
176
|
+
# Login to an additional organization (fresh auth against its tenant)
|
|
177
|
+
dxs auth login OtherOrg
|
|
167
178
|
|
|
168
179
|
# List all identities
|
|
169
180
|
dxs auth list
|
|
170
181
|
|
|
171
|
-
# Switch between
|
|
172
|
-
dxs auth switch
|
|
182
|
+
# Switch between identities — org name, domain, tenant ID, or username
|
|
183
|
+
dxs auth switch OtherOrg
|
|
184
|
+
dxs auth switch csw-wi.com
|
|
173
185
|
```
|
|
174
186
|
|
|
175
187
|
### CLI Settings (`dxs settings`)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "datex-studio-cli"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.5.0"
|
|
8
8
|
description = "CLI for Datex Studio low-code platform, designed for LLM-based AI agents"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -159,6 +159,7 @@ markers = [
|
|
|
159
159
|
"internal_commands_gated: exercise the devops/crm visibility gate (no DXS_INTERNAL_COMMANDS override)",
|
|
160
160
|
"real_auth_state: exercise real auth state (no injected DXS_ACCESS_TOKEN; the variable is scrubbed)",
|
|
161
161
|
"telemetry_live: run without the suite-wide DXS_TELEMETRY=0 kill-switch",
|
|
162
|
+
"live_auth: sign in against real Entra tenants (opt-in; needs DXS_LIVE_AUTH=1 + a human)",
|
|
162
163
|
]
|
|
163
164
|
|
|
164
165
|
[tool.coverage.run]
|