uipath 2.1.81__tar.gz → 2.1.82__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.
Potentially problematic release.
This version of uipath might be problematic. Click here for more details.
- {uipath-2.1.81 → uipath-2.1.82}/PKG-INFO +1 -1
- {uipath-2.1.81 → uipath-2.1.82}/pyproject.toml +1 -1
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/_auth_server.py +15 -12
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/_auth_service.py +9 -3
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/_oidc_utils.py +4 -8
- uipath-2.1.82/tests/cli/test_oidc_utils.py +96 -0
- {uipath-2.1.81 → uipath-2.1.82}/uv.lock +1 -1
- {uipath-2.1.81 → uipath-2.1.82}/.cursorrules +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.editorconfig +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.gitattributes +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/labeler.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/auto-label.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/cd.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/ci.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/integration_tests.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/lint.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/slack.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/test-uipath-langchain.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/test-uipath-llamaindex.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.github/workflows/test.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.gitignore +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.pre-commit-config.yaml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.python-version +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.vscode/extensions.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.vscode/launch.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/.vscode/settings.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/CONTRIBUTING.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/LICENSE +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/README.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/FAQ.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/assets/favicon.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/assets/llms.txt +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/assets/logo-light.svg +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/cli/index.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/actions.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/assets.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/attachments.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/buckets.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/connections.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/context_grounding.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/documents.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/documents_models.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/environment_variables.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/getting_started.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/jobs.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/llm_gateway.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/processes.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/queues.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/core/traced.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/hooks.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/index.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/javascripts/extra.js +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/overrides/main.html +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/release_policy.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/docs/stylesheets/extra.css +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/justfile +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/mkdocs.yml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/py.typed +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/asset-modifier-agent/.env.example +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/asset-modifier-agent/README.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/asset-modifier-agent/input.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/asset-modifier-agent/main.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/asset-modifier-agent/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/asset-modifier-agent/uv.lock +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/calculator/README.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/calculator/evals/eval-sets/default.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/calculator/evals/evaluators/equality.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/calculator/evals/evaluators/llm-as-a-judge.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/calculator/main.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/calculator/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/event-trigger/.python-version +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/event-trigger/README.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/event-trigger/main.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/event-trigger/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/google-ADK-agent/.env.example +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/google-ADK-agent/README.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/google-ADK-agent/input.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/google-ADK-agent/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/samples/google-ADK-agent/uv.lock +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/scripts/debug_test.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/scripts/lint_httpx_client.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/README.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/_url_utils.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_components/_chat.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_components/_details.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_components/_history.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_components/_json_input.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_components/_new.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_models/_execution.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_models/_messages.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_utils/_chat.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_utils/_exporter.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_dev/_terminal/_utils/_logger.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_console_progress_reporter.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_evaluator_factory.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_models/_evaluator.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_models/_evaluator_base_params.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_models/_exceptions.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_models/_mocks.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_models/_output.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_models/_sw_reporting.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_progress_reporter.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/_runtime.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/mocks/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/mocks/llm_mocker.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/mocks/mocker.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/mocks/mocker_factory.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/mocks/mockito_mocker.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_evals/mocks/mocks.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_push/sw_file_handler.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_runtime/_contracts.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_runtime/_escalation.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_runtime/_hitl.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_runtime/_script_executor.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_debug.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_eval_set.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_project_files.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_studio_project.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_tracing.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_dev.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_eval.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_init.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_pack.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_pull.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_push.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_config.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_events/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_events/_event_bus.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_events/_events.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_execution_context.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_folder_context.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_resources/AGENTS.md +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/attachments_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/documents_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/entities_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/external_application_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/llm_gateway_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_uipath.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_auth.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_ssl_context.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/_utils.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/async_stream.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/citation.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/content.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/conversation.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/event.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/exchange.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/message.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/meta.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/conversation/tool.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/agent/models/agent.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/_helpers/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/_helpers/helpers.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/evaluators/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/evaluators/base_evaluator.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/evaluators/deterministic_evaluator_base.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/evaluators/exact_match_evaluator.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/evaluators/json_similarity_evaluator.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/evaluators/llm_as_judge_evaluator.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/evaluators/trajectory_evaluator.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/mocks/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/mocks/mockable.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/models/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/eval/models/models.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/actions.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/assets.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/attachment.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/auth.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/buckets.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/connections.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/documents.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/entities.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/errors.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/job.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/processes.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/models/queues.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/py.typed +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/telemetry/_constants.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/telemetry/_track.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/utils/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/src/uipath/utils/_endpoints_manager.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/apicalls-testcase/main.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/apicalls-testcase/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/apicalls-testcase/run.sh +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/apicalls-testcase/src/assert.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/basic-testcase/main.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/basic-testcase/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/basic-testcase/run.sh +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/basic-testcase/src/assert.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/common/validate_output.sh +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/langchain-cross/agent.mermaid +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/langchain-cross/langgraph.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/langchain-cross/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/langchain-cross/run.sh +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/langchain-cross/src/assert.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/langchain-cross/src/main.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/llamaindex-cross/agent.mermaid +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/llamaindex-cross/llama_index.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/llamaindex-cross/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/llamaindex-cross/run.sh +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/llamaindex-cross/src/assert.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/testcases/llamaindex-cross/src/main.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/__init__.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/agent/models/test_agent.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/conftest.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/eval/mocks/test_mocks.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_auth.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_hitl.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_init.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_init_agents_md.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_input_args.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_invoke.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_new.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_pack.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_portal_service_refresh_token.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_publish.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_pull.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_push.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_run.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/test_utils.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/utils/common.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/conftest.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_buckets_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_documents_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_entities_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_external_application_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_jobs_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/tests_data/documents_service/create_validation_action_response.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/tests_data/documents_service/extraction_response.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/services/tests_data/documents_service/validated_result.json +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/test_config.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/tracing/test_traced.py +0 -0
- {uipath-2.1.81 → uipath-2.1.82}/tests/tracing/test_tracing_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.82
|
|
4
4
|
Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
|
|
5
5
|
Project-URL: Homepage, https://uipath.com
|
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/uipath-python
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "uipath"
|
|
3
|
-
version = "2.1.
|
|
3
|
+
version = "2.1.82"
|
|
4
4
|
description = "Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools."
|
|
5
5
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -7,8 +7,6 @@ import threading
|
|
|
7
7
|
import time
|
|
8
8
|
from typing import Optional
|
|
9
9
|
|
|
10
|
-
from ._oidc_utils import OidcUtils
|
|
11
|
-
|
|
12
10
|
# Server port
|
|
13
11
|
PORT = 6234
|
|
14
12
|
|
|
@@ -22,7 +20,9 @@ class TokenReceivedSignal(Exception):
|
|
|
22
20
|
super().__init__("Token received successfully")
|
|
23
21
|
|
|
24
22
|
|
|
25
|
-
def make_request_handler_class(
|
|
23
|
+
def make_request_handler_class(
|
|
24
|
+
state, code_verifier, token_callback, domain, redirect_uri, client_id
|
|
25
|
+
):
|
|
26
26
|
class SimpleHTTPSRequestHandler(http.server.SimpleHTTPRequestHandler):
|
|
27
27
|
"""Simple HTTPS request handler that serves static files."""
|
|
28
28
|
|
|
@@ -73,16 +73,10 @@ def make_request_handler_class(state, code_verifier, token_callback, domain):
|
|
|
73
73
|
with open(index_path, "r") as f:
|
|
74
74
|
content = f.read()
|
|
75
75
|
|
|
76
|
-
# Get the redirect URI from auth config
|
|
77
|
-
auth_config = OidcUtils.get_auth_config()
|
|
78
|
-
redirect_uri = auth_config["redirect_uri"]
|
|
79
|
-
|
|
80
76
|
content = content.replace("__PY_REPLACE_EXPECTED_STATE__", state)
|
|
81
77
|
content = content.replace("__PY_REPLACE_CODE_VERIFIER__", code_verifier)
|
|
82
78
|
content = content.replace("__PY_REPLACE_REDIRECT_URI__", redirect_uri)
|
|
83
|
-
content = content.replace(
|
|
84
|
-
"__PY_REPLACE_CLIENT_ID__", auth_config["client_id"]
|
|
85
|
-
)
|
|
79
|
+
content = content.replace("__PY_REPLACE_CLIENT_ID__", client_id)
|
|
86
80
|
content = content.replace("__PY_REPLACE_DOMAIN__", domain)
|
|
87
81
|
|
|
88
82
|
self.send_response(200)
|
|
@@ -107,14 +101,18 @@ def make_request_handler_class(state, code_verifier, token_callback, domain):
|
|
|
107
101
|
|
|
108
102
|
|
|
109
103
|
class HTTPServer:
|
|
110
|
-
def __init__(self, port=6234):
|
|
104
|
+
def __init__(self, port=6234, redirect_uri=None, client_id=None):
|
|
111
105
|
"""Initialize HTTP server with configurable parameters.
|
|
112
106
|
|
|
113
107
|
Args:
|
|
114
108
|
port (int, optional): Port number to run the server on. Defaults to 6234.
|
|
109
|
+
redirect_uri (str, optional): OAuth redirect URI. Defaults to None.
|
|
110
|
+
client_id (str, optional): OAuth client ID. Defaults to None.
|
|
115
111
|
"""
|
|
116
112
|
self.current_path = os.path.dirname(os.path.abspath(__file__))
|
|
117
113
|
self.port = port
|
|
114
|
+
self.redirect_uri = redirect_uri
|
|
115
|
+
self.client_id = client_id
|
|
118
116
|
self.httpd: Optional[socketserver.TCPServer] = None
|
|
119
117
|
self.token_data = None
|
|
120
118
|
self.should_shutdown = False
|
|
@@ -145,7 +143,12 @@ class HTTPServer:
|
|
|
145
143
|
# Create server with address reuse
|
|
146
144
|
socketserver.TCPServer.allow_reuse_address = True
|
|
147
145
|
handler = make_request_handler_class(
|
|
148
|
-
state,
|
|
146
|
+
state,
|
|
147
|
+
code_verifier,
|
|
148
|
+
self.token_received_callback,
|
|
149
|
+
domain,
|
|
150
|
+
self.redirect_uri,
|
|
151
|
+
self.client_id,
|
|
149
152
|
)
|
|
150
153
|
self.httpd = socketserver.TCPServer(("", self.port), handler)
|
|
151
154
|
return self.httpd
|
|
@@ -121,11 +121,17 @@ class AuthService:
|
|
|
121
121
|
return False
|
|
122
122
|
|
|
123
123
|
def _perform_oauth_flow(self) -> TokenData:
|
|
124
|
-
|
|
124
|
+
auth_config = OidcUtils.get_auth_config()
|
|
125
|
+
auth_url, code_verifier, state = OidcUtils.get_auth_url(
|
|
126
|
+
self._domain, auth_config
|
|
127
|
+
)
|
|
125
128
|
self._open_browser(auth_url)
|
|
126
129
|
|
|
127
|
-
|
|
128
|
-
|
|
130
|
+
server = HTTPServer(
|
|
131
|
+
port=auth_config["port"],
|
|
132
|
+
redirect_uri=auth_config["redirect_uri"],
|
|
133
|
+
client_id=auth_config["client_id"],
|
|
134
|
+
)
|
|
129
135
|
token_data = asyncio.run(server.start(state, code_verifier, self._domain))
|
|
130
136
|
|
|
131
137
|
if not token_data:
|
|
@@ -49,12 +49,8 @@ class OidcUtils:
|
|
|
49
49
|
) as f:
|
|
50
50
|
auth_config = json.load(f)
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
int(auth_config.get("portOptionOne", 8104)),
|
|
55
|
-
int(auth_config.get("portOptionTwo", 8055)),
|
|
56
|
-
int(auth_config.get("portOptionThree", 42042)),
|
|
57
|
-
]
|
|
52
|
+
custom_port = os.getenv("UIPATH_AUTH_PORT")
|
|
53
|
+
candidates = [int(custom_port)] if custom_port else [8104, 8055, 42042]
|
|
58
54
|
|
|
59
55
|
port = cls._find_free_port(candidates)
|
|
60
56
|
if port is None:
|
|
@@ -75,11 +71,12 @@ class OidcUtils:
|
|
|
75
71
|
)
|
|
76
72
|
|
|
77
73
|
@classmethod
|
|
78
|
-
def get_auth_url(cls, domain: str) -> tuple[str, str, str]:
|
|
74
|
+
def get_auth_url(cls, domain: str, auth_config: AuthConfig) -> tuple[str, str, str]:
|
|
79
75
|
"""Get the authorization URL for OAuth2 PKCE flow.
|
|
80
76
|
|
|
81
77
|
Args:
|
|
82
78
|
domain (str): The UiPath domain to authenticate against (e.g. 'alpha', 'cloud')
|
|
79
|
+
auth_config (AuthConfig): The authentication configuration to use
|
|
83
80
|
|
|
84
81
|
Returns:
|
|
85
82
|
tuple[str, str]: A tuple containing:
|
|
@@ -87,7 +84,6 @@ class OidcUtils:
|
|
|
87
84
|
- The code verifier for PKCE flow
|
|
88
85
|
"""
|
|
89
86
|
code_verifier, code_challenge = generate_code_verifier_and_challenge()
|
|
90
|
-
auth_config = cls.get_auth_config()
|
|
91
87
|
state = get_state_param()
|
|
92
88
|
query_params = {
|
|
93
89
|
"client_id": auth_config["client_id"],
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Unit tests for OidcUtils.get_auth_config() method.
|
|
3
|
+
|
|
4
|
+
IMPORTANT: Backwards Compatibility Notice
|
|
5
|
+
=========================================
|
|
6
|
+
If any values in auth_config.json are changed, we MUST maintain backwards
|
|
7
|
+
compatibility with release/2025.10 branches or later.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import json
|
|
11
|
+
import os
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class TestOidcUtils:
|
|
15
|
+
"""Test suite for OidcUtils class."""
|
|
16
|
+
|
|
17
|
+
def test_auth_config_backwards_compatibility_v2025_10(self):
|
|
18
|
+
"""
|
|
19
|
+
Test that auth_config.json maintains backwards compatibility with release/v2025.10.
|
|
20
|
+
|
|
21
|
+
This test validates that the authentication configuration values remain
|
|
22
|
+
unchanged to ensure compatibility with release/v2025.10 and later branches.
|
|
23
|
+
|
|
24
|
+
CRITICAL: Any failure indicates a breaking change that requires coordination
|
|
25
|
+
across all supported release branches.
|
|
26
|
+
"""
|
|
27
|
+
# Read the actual auth_config.json file
|
|
28
|
+
config_path = os.path.join(
|
|
29
|
+
os.path.dirname(__file__),
|
|
30
|
+
"..",
|
|
31
|
+
"..",
|
|
32
|
+
"src",
|
|
33
|
+
"uipath",
|
|
34
|
+
"_cli",
|
|
35
|
+
"_auth",
|
|
36
|
+
"auth_config.json",
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
with open(config_path, "r") as f:
|
|
40
|
+
actual_config = json.load(f)
|
|
41
|
+
|
|
42
|
+
# Assert exact values for non-scope fields
|
|
43
|
+
assert actual_config["client_id"] == "36dea5b8-e8bb-423d-8e7b-c808df8f1c00", (
|
|
44
|
+
f"BACKWARDS COMPATIBILITY VIOLATION: client_id has changed! "
|
|
45
|
+
f"Expected: 36dea5b8-e8bb-423d-8e7b-c808df8f1c00, Got: {actual_config['client_id']}"
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
assert (
|
|
49
|
+
actual_config["redirect_uri"]
|
|
50
|
+
== "http://localhost:__PY_REPLACE_PORT__/oidc/login"
|
|
51
|
+
), (
|
|
52
|
+
f"BACKWARDS COMPATIBILITY VIOLATION: redirect_uri has changed! "
|
|
53
|
+
f"Expected: http://localhost:__PY_REPLACE_PORT__/oidc/login, Got: {actual_config['redirect_uri']}"
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
assert actual_config["port"] == 8104, (
|
|
57
|
+
f"BACKWARDS COMPATIBILITY VIOLATION: port has changed! "
|
|
58
|
+
f"Expected: 8104, Got: {actual_config['port']}"
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
# For scopes, ensure actual scopes are a subset of the allowed scopes (no new scopes allowed)
|
|
62
|
+
allowed_scopes = set(
|
|
63
|
+
[
|
|
64
|
+
"offline_access",
|
|
65
|
+
"ProcessMining",
|
|
66
|
+
"OrchestratorApiUserAccess",
|
|
67
|
+
"StudioWebBackend",
|
|
68
|
+
"IdentityServerApi",
|
|
69
|
+
"ConnectionService",
|
|
70
|
+
"DataService",
|
|
71
|
+
"DocumentUnderstanding",
|
|
72
|
+
"Du.Digitization.Api",
|
|
73
|
+
"Du.Classification.Api",
|
|
74
|
+
"Du.Extraction.Api",
|
|
75
|
+
"Du.Validation.Api",
|
|
76
|
+
"EnterpriseContextService",
|
|
77
|
+
"Directory",
|
|
78
|
+
"JamJamApi",
|
|
79
|
+
"LLMGateway",
|
|
80
|
+
"LLMOps",
|
|
81
|
+
"OMS",
|
|
82
|
+
"RCS.FolderAuthorization",
|
|
83
|
+
"TM.Projects",
|
|
84
|
+
"TM.TestCases",
|
|
85
|
+
"TM.Requirements",
|
|
86
|
+
"TM.TestSets",
|
|
87
|
+
]
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
actual_scopes = set(actual_config["scope"].split())
|
|
91
|
+
|
|
92
|
+
assert actual_scopes.issubset(allowed_scopes), (
|
|
93
|
+
f"BACKWARDS COMPATIBILITY VIOLATION: New scopes detected that are not allowed on v2025.10! "
|
|
94
|
+
f"New scopes: {actual_scopes - allowed_scopes}. "
|
|
95
|
+
f"Only subsets of the following scopes are permitted: {sorted(allowed_scopes)}"
|
|
96
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|