ibm-watsonx-orchestrate 1.10.0b1__tar.gz → 1.10.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.
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/PKG-INFO +1 -1
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/__init__.py +1 -2
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/connections/connections.py +5 -2
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/connections/types.py +53 -6
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +33 -4
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +62 -6
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/server/server_command.py +0 -3
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/server/types.py +14 -6
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/docker/compose-lite.yml +4 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/docker/default.env +8 -6
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/data_map.py +4 -1
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/flows/flow.py +114 -6
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/node.py +76 -5
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/types.py +92 -9
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/.gitignore +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/LICENSE +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/pyproject.toml +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/agent.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/model_policies/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/models/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/models/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/toolkits/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/tools/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/tools/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/utils/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/voice_configurations/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/agent_builder/voice_configurations/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/channels/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/copilot/copilot_server_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/environment/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/login/login_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/models/models_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/settings/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/tools/types.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/voice_configurations/voice_configurations_command.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/commands/voice_configurations/voice_configurations_controller.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/config.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/init_helper.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/cli/main.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/agents/agent_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/agents/external_agent_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/analytics/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/analytics/llm/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/base_api_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/base_service_instance.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/client_errors.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/connections/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/connections/connections_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/connections/utils.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/credentials.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/local_service_instance.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/model_policies/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/models/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/models/models_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/service_instance.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/tools/tempus_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/tools/tool_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/utils.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/client/voice_configurations/voice_configurations_client.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/docker/start-up.sh +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/docker/tempus/common-config.yaml +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/flows/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/flows/constants.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/flows/events.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/flow_builder/utils.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/run/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/run/connections.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/utils/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/utils/exceptions.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/utils/logging/__init__.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/utils/logging/logger.py +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/utils/logging/logging.yaml +0 -0
- {ibm_watsonx_orchestrate-1.10.0b1 → ibm_watsonx_orchestrate-1.10.1}/src/ibm_watsonx_orchestrate/utils/utils.py +0 -0
@@ -1,5 +1,6 @@
|
|
1
1
|
import os
|
2
2
|
import logging
|
3
|
+
from copy import deepcopy
|
3
4
|
from typing import List
|
4
5
|
from ibm_watsonx_orchestrate.agent_builder.connections.types import (
|
5
6
|
BasicAuthCredentials,
|
@@ -67,7 +68,8 @@ def _clean_env_vars(vars: dict[str:str], requirements: List[str], app_id: str) -
|
|
67
68
|
return required_env_vars
|
68
69
|
|
69
70
|
def _build_credentials_model(credentials_type: type[CREDENTIALS], vars: dict[str,str], base_prefix: str) -> type[CREDENTIALS]:
|
70
|
-
|
71
|
+
requirements_lut = deepcopy(connection_type_requirements_mapping)
|
72
|
+
requirements = requirements_lut[credentials_type]
|
71
73
|
|
72
74
|
if requirements:
|
73
75
|
requirements.append("url")
|
@@ -101,7 +103,8 @@ def _get_credentials_model(connection_type: ConnectionSecurityScheme, app_id: st
|
|
101
103
|
|
102
104
|
credentials_type = CONNECTION_TYPE_CREDENTIAL_MAPPING[connection_type]
|
103
105
|
|
104
|
-
|
106
|
+
requirements_lut = deepcopy(connection_type_requirements_mapping)
|
107
|
+
requirements = requirements_lut.get(credentials_type)
|
105
108
|
if requirements:
|
106
109
|
variables = _clean_env_vars(vars=variables, requirements=requirements, app_id=app_id)
|
107
110
|
|
@@ -165,6 +165,53 @@ class ConnectionConfiguration(BaseModel):
|
|
165
165
|
raise ValueError("Connection of type 'key_value' cannot be configured at the 'member' level. Key value connections must be of type 'team'")
|
166
166
|
return self
|
167
167
|
|
168
|
+
class ConnectionCredentialsEntryLocation(str, Enum):
|
169
|
+
BODY = 'body'
|
170
|
+
HEADER = 'header',
|
171
|
+
QUERY = 'query'
|
172
|
+
|
173
|
+
def __str__(self):
|
174
|
+
return self.value
|
175
|
+
|
176
|
+
class ConnectionCredentialsEntry(BaseModel):
|
177
|
+
key: str
|
178
|
+
value: str
|
179
|
+
location: ConnectionCredentialsEntryLocation
|
180
|
+
|
181
|
+
def __str__(self):
|
182
|
+
return f"<ConnectionCredentialsEntry: {self.location}:{self.key}={self.value}>"
|
183
|
+
|
184
|
+
class BaseOAuthCredentials(BaseModel):
|
185
|
+
custom_token_query: Optional[dict] = None
|
186
|
+
custom_token_header: Optional[dict] = None
|
187
|
+
custom_token_body: Optional[dict] = None
|
188
|
+
custom_auth_query: Optional[dict] = None
|
189
|
+
|
190
|
+
class ConnectionCredentialsCustomFields(BaseOAuthCredentials):
|
191
|
+
def add_field(self, entry: ConnectionCredentialsEntry, is_token:bool=True) -> None:
|
192
|
+
match entry.location:
|
193
|
+
case ConnectionCredentialsEntryLocation.HEADER:
|
194
|
+
if not is_token:
|
195
|
+
return
|
196
|
+
attribute = "custom_token_header"
|
197
|
+
case ConnectionCredentialsEntryLocation.BODY:
|
198
|
+
if not is_token:
|
199
|
+
return
|
200
|
+
attribute = "custom_token_body"
|
201
|
+
case ConnectionCredentialsEntryLocation.QUERY:
|
202
|
+
if is_token:
|
203
|
+
attribute = "custom_token_query"
|
204
|
+
else:
|
205
|
+
attribute = "custom_auth_query"
|
206
|
+
case _:
|
207
|
+
return
|
208
|
+
|
209
|
+
fields = getattr(self, attribute)
|
210
|
+
if not fields:
|
211
|
+
setattr(self, attribute, {})
|
212
|
+
fields = getattr(self, attribute)
|
213
|
+
fields[entry.key] = entry.value
|
214
|
+
|
168
215
|
class BasicAuthCredentials(BaseModel):
|
169
216
|
username: str
|
170
217
|
password: str
|
@@ -182,7 +229,7 @@ class OAuth2TokenCredentials(BaseModel):
|
|
182
229
|
access_token: str
|
183
230
|
url: Optional[str] = None
|
184
231
|
|
185
|
-
class OAuth2AuthCodeCredentials(
|
232
|
+
class OAuth2AuthCodeCredentials(BaseOAuthCredentials):
|
186
233
|
client_id: str
|
187
234
|
client_secret: str
|
188
235
|
token_url: str
|
@@ -193,7 +240,7 @@ class OAuth2AuthCodeCredentials(BaseModel):
|
|
193
240
|
# client_id: str
|
194
241
|
# authorization_url: str
|
195
242
|
|
196
|
-
class OAuth2PasswordCredentials(
|
243
|
+
class OAuth2PasswordCredentials(BaseOAuthCredentials):
|
197
244
|
username: str
|
198
245
|
password: str
|
199
246
|
client_id: str
|
@@ -203,7 +250,7 @@ class OAuth2PasswordCredentials(BaseModel):
|
|
203
250
|
grant_type: str = "password"
|
204
251
|
|
205
252
|
|
206
|
-
class OAuth2ClientCredentials(
|
253
|
+
class OAuth2ClientCredentials(BaseOAuthCredentials):
|
207
254
|
client_id: str
|
208
255
|
client_secret: str
|
209
256
|
token_url: str
|
@@ -211,7 +258,7 @@ class OAuth2ClientCredentials(BaseModel):
|
|
211
258
|
send_via: ConnectionSendVia = ConnectionSendVia.HEADER
|
212
259
|
grant_type: str = "client_credentials"
|
213
260
|
|
214
|
-
class OAuthOnBehalfOfCredentials(
|
261
|
+
class OAuthOnBehalfOfCredentials(BaseOAuthCredentials):
|
215
262
|
client_id: str
|
216
263
|
access_token_url: str
|
217
264
|
grant_type: str
|
@@ -267,7 +314,7 @@ CONNECTION_TYPE_CREDENTIAL_MAPPING = {
|
|
267
314
|
ConnectionSecurityScheme.KEY_VALUE: KeyValueConnectionCredentials,
|
268
315
|
}
|
269
316
|
|
270
|
-
class IdentityProviderCredentials(
|
317
|
+
class IdentityProviderCredentials(BaseOAuthCredentials):
|
271
318
|
idp_url: str = Field(validation_alias=AliasChoices('idp_url', 'url'), serialization_alias='idp_url')
|
272
319
|
client_id: str
|
273
320
|
client_secret: str
|
@@ -276,4 +323,4 @@ class IdentityProviderCredentials(BaseModel):
|
|
276
323
|
|
277
324
|
class ExpectedCredentials(BaseModel):
|
278
325
|
app_id: str
|
279
|
-
type: ConnectionType | List[ConnectionType]
|
326
|
+
type: ConnectionType | List[ConnectionType]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import typer
|
2
2
|
from typing_extensions import Annotated, List
|
3
|
-
from ibm_watsonx_orchestrate.agent_builder.connections.types import ConnectionEnvironment, ConnectionPreference, ConnectionKind
|
3
|
+
from ibm_watsonx_orchestrate.agent_builder.connections.types import ConnectionEnvironment, ConnectionPreference, ConnectionKind, ConnectionCredentialsEntry
|
4
4
|
from ibm_watsonx_orchestrate.cli.commands.connections.connections_controller import (
|
5
5
|
add_connection,
|
6
6
|
remove_connection,
|
@@ -8,7 +8,9 @@ from ibm_watsonx_orchestrate.cli.commands.connections.connections_controller imp
|
|
8
8
|
import_connection,
|
9
9
|
configure_connection,
|
10
10
|
set_credentials_connection,
|
11
|
-
set_identity_provider_connection
|
11
|
+
set_identity_provider_connection,
|
12
|
+
token_entry_connection_credentials_parse,
|
13
|
+
auth_entry_connection_credentials_parse
|
12
14
|
)
|
13
15
|
|
14
16
|
connections_app = typer.Typer(no_args_is_help=True)
|
@@ -244,6 +246,22 @@ def set_credentials_connection_command(
|
|
244
246
|
help="For key_value, a key value pair in the form '<key>=<value>'. Multiple values can be passed using `-e key1=value1 -e key2=value2`"
|
245
247
|
)
|
246
248
|
] = None,
|
249
|
+
token_entries: Annotated[
|
250
|
+
List[ConnectionCredentialsEntry],
|
251
|
+
typer.Option(
|
252
|
+
'--token-entries', "-t",
|
253
|
+
parser=token_entry_connection_credentials_parse,
|
254
|
+
help="Custom field options for oauth types token request, a key value location option in the form 'location:<key>=<value>' or '<key>=<value>' with location defaulting to 'header'. Multiple values can be passed using `-t key1=value1 -t location:key2=value2`"
|
255
|
+
)
|
256
|
+
] = None,
|
257
|
+
auth_entries: Annotated[
|
258
|
+
List[ConnectionCredentialsEntry],
|
259
|
+
typer.Option(
|
260
|
+
'--auth-entries',
|
261
|
+
parser=auth_entry_connection_credentials_parse,
|
262
|
+
help="Custom field options for oauth_auth_code_flow auth server request, a key value location option in the form 'location:<key>=<value>' or '<key>=<value>' with location defaulting to 'query'. Note only 'query' is a valid location. Multiple values can be passed using `--auth-entries key1=value1 --auth-entries location:key2=value2`"
|
263
|
+
)
|
264
|
+
] = None,
|
247
265
|
):
|
248
266
|
set_credentials_connection(
|
249
267
|
app_id=app_id,
|
@@ -259,7 +277,9 @@ def set_credentials_connection_command(
|
|
259
277
|
auth_url=auth_url,
|
260
278
|
grant_type=grant_type,
|
261
279
|
scope=scope,
|
262
|
-
entries=entries
|
280
|
+
entries=entries,
|
281
|
+
token_entries=token_entries,
|
282
|
+
auth_entries=auth_entries
|
263
283
|
)
|
264
284
|
|
265
285
|
@connections_app.command(name="set-identity-provider")
|
@@ -311,6 +331,14 @@ def set_identity_provider_connection_command(
|
|
311
331
|
help='The grant-type of the the identity provider'
|
312
332
|
)
|
313
333
|
],
|
334
|
+
token_entries: Annotated[
|
335
|
+
List[ConnectionCredentialsEntry],
|
336
|
+
typer.Option(
|
337
|
+
'--token-entries', "-t",
|
338
|
+
parser=token_entry_connection_credentials_parse,
|
339
|
+
help="Custom field options for oauth types token request, a key value location option in the form 'location:<key>=<value>' or '<key>=<value>' with location defaulting to 'header'. Multiple values can be passed using `-t key1=value1 -t location:key2=value2`"
|
340
|
+
)
|
341
|
+
] = None,
|
314
342
|
):
|
315
343
|
set_identity_provider_connection(
|
316
344
|
app_id=app_id,
|
@@ -319,5 +347,6 @@ def set_identity_provider_connection_command(
|
|
319
347
|
client_id=client_id,
|
320
348
|
client_secret=client_secret,
|
321
349
|
scope=scope,
|
322
|
-
grant_type=grant_type
|
350
|
+
grant_type=grant_type,
|
351
|
+
token_entries=token_entries
|
323
352
|
)
|
@@ -27,7 +27,10 @@ from ibm_watsonx_orchestrate.agent_builder.connections.types import (
|
|
27
27
|
KeyValueConnectionCredentials,
|
28
28
|
CREDENTIALS,
|
29
29
|
IdentityProviderCredentials,
|
30
|
-
OAUTH_CONNECTION_TYPES
|
30
|
+
OAUTH_CONNECTION_TYPES,
|
31
|
+
ConnectionCredentialsEntryLocation,
|
32
|
+
ConnectionCredentialsEntry,
|
33
|
+
ConnectionCredentialsCustomFields
|
31
34
|
|
32
35
|
)
|
33
36
|
|
@@ -167,6 +170,13 @@ def _validate_connection_params(type: ConnectionType, **args) -> None:
|
|
167
170
|
f"Missing flags --grant-type is required for type {type}"
|
168
171
|
)
|
169
172
|
|
173
|
+
if type != ConnectionType.OAUTH2_AUTH_CODE and (
|
174
|
+
args.get('auth_entries')
|
175
|
+
):
|
176
|
+
raise typer.BadParameter(
|
177
|
+
f"The flag --auth-entries is only supported by type {type}"
|
178
|
+
)
|
179
|
+
|
170
180
|
|
171
181
|
def _parse_entry(entry: str) -> dict[str,str]:
|
172
182
|
split_entry = entry.split('=', 1)
|
@@ -176,6 +186,19 @@ def _parse_entry(entry: str) -> dict[str,str]:
|
|
176
186
|
exit(1)
|
177
187
|
return {split_entry[0]: split_entry[1]}
|
178
188
|
|
189
|
+
def _get_oauth_custom_fields(token_entries: List[ConnectionCredentialsEntry] | None, auth_entries: List[ConnectionCredentialsEntry] | None) -> dict:
|
190
|
+
custom_fields = ConnectionCredentialsCustomFields()
|
191
|
+
|
192
|
+
if token_entries:
|
193
|
+
for entry in token_entries:
|
194
|
+
custom_fields.add_field(entry, is_token=True)
|
195
|
+
|
196
|
+
if auth_entries:
|
197
|
+
for entry in auth_entries:
|
198
|
+
custom_fields.add_field(entry, is_token=False)
|
199
|
+
|
200
|
+
return custom_fields.model_dump(exclude_none=True)
|
201
|
+
|
179
202
|
def _get_credentials(type: ConnectionType, **kwargs):
|
180
203
|
match type:
|
181
204
|
case ConnectionType.BASIC_AUTH:
|
@@ -192,18 +215,21 @@ def _get_credentials(type: ConnectionType, **kwargs):
|
|
192
215
|
api_key=kwargs.get("api_key")
|
193
216
|
)
|
194
217
|
case ConnectionType.OAUTH2_AUTH_CODE:
|
218
|
+
custom_fields = _get_oauth_custom_fields(kwargs.get("token_entries"), kwargs.get("auth_entries"))
|
195
219
|
return OAuth2AuthCodeCredentials(
|
196
220
|
authorization_url=kwargs.get("auth_url"),
|
197
221
|
client_id=kwargs.get("client_id"),
|
198
222
|
client_secret=kwargs.get("client_secret"),
|
199
223
|
token_url=kwargs.get("token_url"),
|
200
|
-
scope=kwargs.get("scope")
|
224
|
+
scope=kwargs.get("scope"),
|
225
|
+
**custom_fields
|
201
226
|
)
|
202
227
|
case ConnectionType.OAUTH2_CLIENT_CREDS:
|
203
228
|
# using filtered args as default values will not be set if 'None' is passed, causing validation errors
|
204
229
|
keys = ["client_id","client_secret","token_url","grant_type","send_via", "scope"]
|
205
230
|
filtered_args = { key_name: kwargs[key_name] for key_name in keys if kwargs.get(key_name) }
|
206
|
-
|
231
|
+
custom_fields = _get_oauth_custom_fields(kwargs.get("token_entries"), kwargs.get("auth_entries"))
|
232
|
+
return OAuth2ClientCredentials(**filtered_args, **custom_fields)
|
207
233
|
# case ConnectionType.OAUTH2_IMPLICIT:
|
208
234
|
# return OAuth2ImplicitCredentials(
|
209
235
|
# authorization_url=kwargs.get("auth_url"),
|
@@ -212,13 +238,16 @@ def _get_credentials(type: ConnectionType, **kwargs):
|
|
212
238
|
case ConnectionType.OAUTH2_PASSWORD:
|
213
239
|
keys = ["username", "password", "client_id","client_secret","token_url","grant_type", "scope"]
|
214
240
|
filtered_args = { key_name: kwargs[key_name] for key_name in keys if kwargs.get(key_name) }
|
215
|
-
|
241
|
+
custom_fields = _get_oauth_custom_fields(kwargs.get("token_entries"), kwargs.get("auth_entries"))
|
242
|
+
return OAuth2PasswordCredentials(**filtered_args, **custom_fields)
|
216
243
|
|
217
244
|
case ConnectionType.OAUTH_ON_BEHALF_OF_FLOW:
|
245
|
+
custom_fields = _get_oauth_custom_fields(kwargs.get("token_entries"), kwargs.get("auth_entries"))
|
218
246
|
return OAuthOnBehalfOfCredentials(
|
219
247
|
client_id=kwargs.get("client_id"),
|
220
248
|
access_token_url=kwargs.get("token_url"),
|
221
|
-
grant_type=kwargs.get("grant_type")
|
249
|
+
grant_type=kwargs.get("grant_type"),
|
250
|
+
**custom_fields
|
222
251
|
)
|
223
252
|
case ConnectionType.KEY_VALUE:
|
224
253
|
env = {}
|
@@ -231,6 +260,23 @@ def _get_credentials(type: ConnectionType, **kwargs):
|
|
231
260
|
case _:
|
232
261
|
raise ValueError(f"Invalid type '{type}' selected")
|
233
262
|
|
263
|
+
def _connection_credentials_parse_entry(text: str, default_location: ConnectionCredentialsEntryLocation) -> ConnectionCredentialsEntry:
|
264
|
+
location_kv_pair = text.split(":", 1)
|
265
|
+
key_value = location_kv_pair[-1]
|
266
|
+
location = location_kv_pair[0] if len(location_kv_pair)>1 else default_location
|
267
|
+
|
268
|
+
valid_locations = [item.value for item in ConnectionCredentialsEntryLocation]
|
269
|
+
if location not in valid_locations:
|
270
|
+
raise typer.BadParameter(f"The provided location '{location}' is not in the allowed values {valid_locations}.")
|
271
|
+
|
272
|
+
key_value_pair = key_value.split('=', 1)
|
273
|
+
if len(key_value_pair) != 2:
|
274
|
+
message = f"The entry '{text}' is not in the expected form '<location>:<key>=<value>' or '<key>=<value>'"
|
275
|
+
raise typer.BadParameter(message)
|
276
|
+
key, value = key_value_pair[0], key_value_pair[1]
|
277
|
+
|
278
|
+
return ConnectionCredentialsEntry(key=key, value=value, location=location)
|
279
|
+
|
234
280
|
|
235
281
|
def add_configuration(config: ConnectionConfiguration) -> None:
|
236
282
|
client = get_connections_client()
|
@@ -524,5 +570,15 @@ def set_identity_provider_connection(
|
|
524
570
|
logger.error(f"Cannot set Identity Provider when 'sso' is false in configuration. Please enable sso for connection '{app_id}' in environment '{environment}' and try again.")
|
525
571
|
sys.exit(1)
|
526
572
|
|
527
|
-
|
573
|
+
custom_fields = _get_oauth_custom_fields(token_entries=kwargs.get("token_entries"), auth_entries=None)
|
574
|
+
idp = IdentityProviderCredentials(**kwargs, **custom_fields)
|
528
575
|
add_identity_provider(app_id=app_id, environment=environment, idp=idp)
|
576
|
+
|
577
|
+
def token_entry_connection_credentials_parse(text: str) -> ConnectionCredentialsEntry:
|
578
|
+
return _connection_credentials_parse_entry(text=text, default_location=ConnectionCredentialsEntryLocation.HEADER)
|
579
|
+
|
580
|
+
def auth_entry_connection_credentials_parse(text: str) -> ConnectionCredentialsEntry:
|
581
|
+
entry = _connection_credentials_parse_entry(text=text, default_location=ConnectionCredentialsEntryLocation.QUERY)
|
582
|
+
if entry.location != ConnectionCredentialsEntryLocation.QUERY:
|
583
|
+
raise typer.BadParameter(f"Only location '{ConnectionCredentialsEntryLocation.QUERY}' is supported for --auth-entry")
|
584
|
+
return entry
|
@@ -191,9 +191,6 @@ def get_default_registry_env_vars_by_dev_edition_source(default_env: dict, user_
|
|
191
191
|
parsed = urlparse(wo_url)
|
192
192
|
hostname = parsed.hostname
|
193
193
|
|
194
|
-
if not hostname or not hostname.startswith("api."):
|
195
|
-
raise ValueError(f"Invalid WO_INSTANCE URL: '{wo_url}'. It should starts with 'api.'")
|
196
|
-
|
197
194
|
registry_url = f"registry.{hostname[4:]}/cp/wxo-lite"
|
198
195
|
else:
|
199
196
|
raise ValueError(f"Unknown value for developer edition source: {source}. Must be one of ['internal', 'myibm', 'orchestrate'].")
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import logging
|
2
2
|
import sys
|
3
|
+
import uuid
|
3
4
|
from enum import Enum
|
4
5
|
from pydantic import BaseModel, model_validator, ConfigDict
|
5
6
|
|
@@ -43,9 +44,6 @@ class WatsonXAIEnvConfig(BaseModel):
|
|
43
44
|
if not config.get("WATSONX_SPACE_ID") and not config.get("WATSONX_APIKEY"):
|
44
45
|
raise ValueError("Missing configuration requirements 'WATSONX_SPACE_ID' and 'WATSONX_APIKEY'")
|
45
46
|
|
46
|
-
if config.get("WATSONX_SPACE_ID") and not config.get("WATSONX_APIKEY"):
|
47
|
-
logger.error("Cannot use env var 'WATSONX_SPACE_ID' without setting the corresponding 'WATSONX_APIKEY'")
|
48
|
-
sys.exit(1)
|
49
47
|
|
50
48
|
if not config.get("WATSONX_SPACE_ID") and config.get("WATSONX_APIKEY"):
|
51
49
|
logger.error("Cannot use env var 'WATSONX_APIKEY' without setting the corresponding 'WATSONX_SPACE_ID'")
|
@@ -54,6 +52,12 @@ class WatsonXAIEnvConfig(BaseModel):
|
|
54
52
|
config["USE_SAAS_ML_TOOLS_RUNTIME"] = False
|
55
53
|
return config
|
56
54
|
|
55
|
+
def is_valid_uuid(value) -> bool:
|
56
|
+
try:
|
57
|
+
uuid.UUID(str(value))
|
58
|
+
return True
|
59
|
+
except (ValueError, TypeError, AttributeError):
|
60
|
+
return False
|
57
61
|
|
58
62
|
class ModelGatewayEnvConfig(BaseModel):
|
59
63
|
WO_API_KEY: str | None = None
|
@@ -84,7 +88,10 @@ class ModelGatewayEnvConfig(BaseModel):
|
|
84
88
|
if not config.get("AUTHORIZATION_URL"):
|
85
89
|
inferred_auth_url = AUTH_TYPE_DEFAULT_URL_MAPPING.get(auth_type)
|
86
90
|
if not inferred_auth_url:
|
87
|
-
|
91
|
+
if auth_type == WoAuthType.CPD:
|
92
|
+
inferred_auth_url = config.get("WO_INSTANCE") + '/icp4d-api/v1/authorize'
|
93
|
+
else:
|
94
|
+
logger.error(f"No 'AUTHORIZATION_URL' found. Auth type '{auth_type}' does not support defaulting. Please set the 'AUTHORIZATION_URL' explictly")
|
88
95
|
sys.exit(1)
|
89
96
|
config["AUTHORIZATION_URL"] = inferred_auth_url
|
90
97
|
|
@@ -101,6 +108,7 @@ class ModelGatewayEnvConfig(BaseModel):
|
|
101
108
|
sys.exit(1)
|
102
109
|
|
103
110
|
config["USE_SAAS_ML_TOOLS_RUNTIME"] = True
|
104
|
-
|
105
|
-
|
111
|
+
if not is_valid_uuid(config.get("WATSONX_SPACE_ID")):
|
112
|
+
# Fake (but valid) UUIDv4 for knowledgebase check
|
113
|
+
config["WATSONX_SPACE_ID"] = "aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa"
|
106
114
|
return config
|
@@ -62,6 +62,7 @@ services:
|
|
62
62
|
WATSONX_API_KEY: ${WATSONX_APIKEY}
|
63
63
|
WATSONX_URL: ${WATSONX_URL}
|
64
64
|
WATSONX_SPACE_ID: ${WATSONX_SPACE_ID}
|
65
|
+
NODE_TLS_REJECT_UNAUTHORIZED: ${AI_GATEWAY_TLS_REJECT_UNAUTHORIZED}
|
65
66
|
|
66
67
|
wxo-agent-gateway:
|
67
68
|
image: ${AGENT_GATEWAY_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-agent-gateway:${AGENT_GATEWAY_TAG:-latest}
|
@@ -327,6 +328,7 @@ services:
|
|
327
328
|
ENABLE_WEBHOOKS: false
|
328
329
|
DISABLE_JSON_LOG_CELERY: true
|
329
330
|
WXO_DEPLOYMENT_PLATFORM: saas
|
331
|
+
CPD_VERIFY: ${CPD_VERIFY}
|
330
332
|
CONNECTION_MANAGER_URL: http://wxo-server-connection-manager:3001
|
331
333
|
CHANNEL_SESSION_REDIS_URL: redis://wxo-server-redis:6379/5
|
332
334
|
WXO_MILVUS_URI: http://wxo-milvus-standalone:19530
|
@@ -446,6 +448,7 @@ services:
|
|
446
448
|
IBM_TELEMETRY_TRACER_ENDPOINT: http://jaeger:4318/v1/traces
|
447
449
|
USE_IBM_TELEMETRY: ${USE_IBM_TELEMETRY:-false}
|
448
450
|
WXO_DEPLOYMENT_PLATFORM: saas
|
451
|
+
CPD_VERIFY: ${CPD_VERIFY}
|
449
452
|
CALLBACK_HOST_URL: ${CALLBACK_HOST_URL:-http://wxo-server:4321}
|
450
453
|
LANGFLOW_ENABLED: ${LANGFLOW_ENABLED:-false}
|
451
454
|
|
@@ -653,6 +656,7 @@ services:
|
|
653
656
|
- WATSONX_URL=${WATSONX_URL}
|
654
657
|
- PROXY_SERVER_URL=http://jaeger-proxy:9201
|
655
658
|
- WXO_DEPLOYMENT_PLATFORM=saas
|
659
|
+
- CPD_VERIFY=${CPD_VERIFY}
|
656
660
|
- TENANT_API_KEY=${AGENTOPS_API_KEY}
|
657
661
|
- TENANT_CONFIG_URL=http://wxo-server:4321
|
658
662
|
- TENANT_DEFAULT_USERNAME=${ES_USERNAME}
|
@@ -58,10 +58,10 @@ REGISTRY_URL=
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
SERVER_TAG=
|
61
|
+
SERVER_TAG=29-08-2025-59ef405
|
62
62
|
SERVER_REGISTRY=
|
63
63
|
|
64
|
-
WORKER_TAG=
|
64
|
+
WORKER_TAG=29-08-2025-cf32b2d
|
65
65
|
WORKER_REGISTRY=
|
66
66
|
|
67
67
|
AI_GATEWAY_TAG=20-08-2025-9ed6d40
|
@@ -78,7 +78,7 @@ AMDDBTAG=29-07-2025-9f3661b
|
|
78
78
|
ARM64DBTAG=29-07-2025-9f3661b
|
79
79
|
|
80
80
|
UI_REGISTRY=
|
81
|
-
UITAG=
|
81
|
+
UITAG=29-08-2025
|
82
82
|
|
83
83
|
CM_REGISTRY=
|
84
84
|
CM_TAG=24-07-2025
|
@@ -86,13 +86,13 @@ CM_TAG=24-07-2025
|
|
86
86
|
TRM_TAG=19-08-2025-fe105eb0b950ff304f712a1a5b9fa3cba92d09da
|
87
87
|
TRM_REGISTRY=
|
88
88
|
|
89
|
-
TR_TAG=
|
89
|
+
TR_TAG=25-08-2025-58ae475
|
90
90
|
TR_REGISTRY=
|
91
91
|
|
92
|
-
BUILDER_TAG=
|
92
|
+
BUILDER_TAG=27-08-2025-7432aca
|
93
93
|
BUILDER_REGISTRY=
|
94
94
|
|
95
|
-
FLOW_RUNTIME_TAG=
|
95
|
+
FLOW_RUNTIME_TAG=26-08-2025-3b7f19e
|
96
96
|
FLOW_RUMTIME_REGISTRY=
|
97
97
|
|
98
98
|
|
@@ -126,6 +126,8 @@ DOCPROC_REGISTRY=
|
|
126
126
|
|
127
127
|
# END -- IMAGE REGISTRIES AND TAGS
|
128
128
|
|
129
|
+
CPD_VERIFY=true
|
130
|
+
AI_GATEWAY_TLS_REJECT_UNAUTHORIZED=1
|
129
131
|
TAVILY_API_KEY=dummy_tavily_api_key
|
130
132
|
PREFERRED_MODELS=meta-llama/llama-3-2-90b-vision-instruct,meta-llama/llama-3-405b-instruct
|
131
133
|
INCOMPATIBLE_MODELS=flan,embedding,cross-encoder,tinytimemixers
|
@@ -12,7 +12,10 @@ class DataMap(BaseModel):
|
|
12
12
|
def to_json(self) -> dict[str, Any]:
|
13
13
|
model_spec = {}
|
14
14
|
if self.maps and len(self.maps) > 0:
|
15
|
-
model_spec["maps"] = [
|
15
|
+
model_spec["maps"] = []
|
16
|
+
for assignment in self.maps:
|
17
|
+
model_spec["maps"].append(assignment.model_dump())
|
18
|
+
return model_spec
|
16
19
|
|
17
20
|
def add(self, line: Assignment) -> Self:
|
18
21
|
self.maps.append(line)
|