workato-platform-cli 1.0.0rc5.dev5__py3-none-any.whl
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.
- workato_platform_cli/__init__.py +135 -0
- workato_platform_cli/_version.py +34 -0
- workato_platform_cli/cli/__init__.py +126 -0
- workato_platform_cli/cli/commands/__init__.py +0 -0
- workato_platform_cli/cli/commands/api_clients.py +627 -0
- workato_platform_cli/cli/commands/api_collections.py +497 -0
- workato_platform_cli/cli/commands/assets.py +82 -0
- workato_platform_cli/cli/commands/connections.py +1205 -0
- workato_platform_cli/cli/commands/connectors/__init__.py +0 -0
- workato_platform_cli/cli/commands/connectors/command.py +178 -0
- workato_platform_cli/cli/commands/connectors/connector_manager.py +351 -0
- workato_platform_cli/cli/commands/data_tables.py +345 -0
- workato_platform_cli/cli/commands/guide.py +315 -0
- workato_platform_cli/cli/commands/init.py +229 -0
- workato_platform_cli/cli/commands/profiles.py +364 -0
- workato_platform_cli/cli/commands/projects/__init__.py +0 -0
- workato_platform_cli/cli/commands/projects/command.py +513 -0
- workato_platform_cli/cli/commands/projects/project_manager.py +338 -0
- workato_platform_cli/cli/commands/properties.py +174 -0
- workato_platform_cli/cli/commands/pull.py +327 -0
- workato_platform_cli/cli/commands/push/__init__.py +0 -0
- workato_platform_cli/cli/commands/push/command.py +320 -0
- workato_platform_cli/cli/commands/recipes/__init__.py +0 -0
- workato_platform_cli/cli/commands/recipes/command.py +847 -0
- workato_platform_cli/cli/commands/recipes/validator.py +1740 -0
- workato_platform_cli/cli/commands/workspace.py +73 -0
- workato_platform_cli/cli/containers.py +80 -0
- workato_platform_cli/cli/resources/data/connection-data.json +7364 -0
- workato_platform_cli/cli/resources/data/picklist-data.json +3706 -0
- workato_platform_cli/cli/resources/docs/README.md +178 -0
- workato_platform_cli/cli/resources/docs/actions.md +452 -0
- workato_platform_cli/cli/resources/docs/block-structure.md +424 -0
- workato_platform_cli/cli/resources/docs/connections-parameters.md +11946 -0
- workato_platform_cli/cli/resources/docs/data-mapping.md +779 -0
- workato_platform_cli/cli/resources/docs/formulas/array-list-formulas.md +1276 -0
- workato_platform_cli/cli/resources/docs/formulas/conditions.md +102 -0
- workato_platform_cli/cli/resources/docs/formulas/date-formulas.md +798 -0
- workato_platform_cli/cli/resources/docs/formulas/number-formulas.md +507 -0
- workato_platform_cli/cli/resources/docs/formulas/other-formulas.md +419 -0
- workato_platform_cli/cli/resources/docs/formulas/string-formulas.md +1353 -0
- workato_platform_cli/cli/resources/docs/formulas.md +214 -0
- workato_platform_cli/cli/resources/docs/naming-conventions.md +163 -0
- workato_platform_cli/cli/resources/docs/recipe-deployment-workflow.md +352 -0
- workato_platform_cli/cli/resources/docs/recipe-fundamentals.md +179 -0
- workato_platform_cli/cli/resources/docs/triggers.md +360 -0
- workato_platform_cli/cli/utils/__init__.py +10 -0
- workato_platform_cli/cli/utils/config/__init__.py +33 -0
- workato_platform_cli/cli/utils/config/manager.py +1001 -0
- workato_platform_cli/cli/utils/config/models.py +89 -0
- workato_platform_cli/cli/utils/config/profiles.py +491 -0
- workato_platform_cli/cli/utils/config/workspace.py +113 -0
- workato_platform_cli/cli/utils/exception_handler.py +531 -0
- workato_platform_cli/cli/utils/gitignore.py +32 -0
- workato_platform_cli/cli/utils/ignore_patterns.py +44 -0
- workato_platform_cli/cli/utils/spinner.py +63 -0
- workato_platform_cli/cli/utils/version_checker.py +237 -0
- workato_platform_cli/client/__init__.py +0 -0
- workato_platform_cli/client/workato_api/__init__.py +202 -0
- workato_platform_cli/client/workato_api/api/__init__.py +15 -0
- workato_platform_cli/client/workato_api/api/api_platform_api.py +2875 -0
- workato_platform_cli/client/workato_api/api/connections_api.py +1807 -0
- workato_platform_cli/client/workato_api/api/connectors_api.py +840 -0
- workato_platform_cli/client/workato_api/api/data_tables_api.py +604 -0
- workato_platform_cli/client/workato_api/api/export_api.py +621 -0
- workato_platform_cli/client/workato_api/api/folders_api.py +621 -0
- workato_platform_cli/client/workato_api/api/packages_api.py +1197 -0
- workato_platform_cli/client/workato_api/api/projects_api.py +590 -0
- workato_platform_cli/client/workato_api/api/properties_api.py +620 -0
- workato_platform_cli/client/workato_api/api/recipes_api.py +1379 -0
- workato_platform_cli/client/workato_api/api/users_api.py +285 -0
- workato_platform_cli/client/workato_api/api_client.py +807 -0
- workato_platform_cli/client/workato_api/api_response.py +21 -0
- workato_platform_cli/client/workato_api/configuration.py +601 -0
- workato_platform_cli/client/workato_api/docs/APIPlatformApi.md +844 -0
- workato_platform_cli/client/workato_api/docs/ApiClient.md +46 -0
- workato_platform_cli/client/workato_api/docs/ApiClientApiCollectionsInner.md +30 -0
- workato_platform_cli/client/workato_api/docs/ApiClientApiPoliciesInner.md +30 -0
- workato_platform_cli/client/workato_api/docs/ApiClientCreateRequest.md +46 -0
- workato_platform_cli/client/workato_api/docs/ApiClientListResponse.md +32 -0
- workato_platform_cli/client/workato_api/docs/ApiClientResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/ApiCollection.md +38 -0
- workato_platform_cli/client/workato_api/docs/ApiCollectionCreateRequest.md +32 -0
- workato_platform_cli/client/workato_api/docs/ApiEndpoint.md +41 -0
- workato_platform_cli/client/workato_api/docs/ApiKey.md +36 -0
- workato_platform_cli/client/workato_api/docs/ApiKeyCreateRequest.md +32 -0
- workato_platform_cli/client/workato_api/docs/ApiKeyListResponse.md +32 -0
- workato_platform_cli/client/workato_api/docs/ApiKeyResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/Asset.md +39 -0
- workato_platform_cli/client/workato_api/docs/AssetReference.md +37 -0
- workato_platform_cli/client/workato_api/docs/Connection.md +44 -0
- workato_platform_cli/client/workato_api/docs/ConnectionCreateRequest.md +35 -0
- workato_platform_cli/client/workato_api/docs/ConnectionUpdateRequest.md +34 -0
- workato_platform_cli/client/workato_api/docs/ConnectionsApi.md +526 -0
- workato_platform_cli/client/workato_api/docs/ConnectorAction.md +33 -0
- workato_platform_cli/client/workato_api/docs/ConnectorVersion.md +32 -0
- workato_platform_cli/client/workato_api/docs/ConnectorsApi.md +249 -0
- workato_platform_cli/client/workato_api/docs/CreateExportManifestRequest.md +29 -0
- workato_platform_cli/client/workato_api/docs/CreateFolderRequest.md +30 -0
- workato_platform_cli/client/workato_api/docs/CustomConnector.md +35 -0
- workato_platform_cli/client/workato_api/docs/CustomConnectorCodeResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/CustomConnectorCodeResponseData.md +29 -0
- workato_platform_cli/client/workato_api/docs/CustomConnectorListResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/DataTable.md +34 -0
- workato_platform_cli/client/workato_api/docs/DataTableColumn.md +37 -0
- workato_platform_cli/client/workato_api/docs/DataTableColumnRequest.md +37 -0
- workato_platform_cli/client/workato_api/docs/DataTableCreateRequest.md +31 -0
- workato_platform_cli/client/workato_api/docs/DataTableCreateResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/DataTableListResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/DataTableRelation.md +30 -0
- workato_platform_cli/client/workato_api/docs/DataTablesApi.md +172 -0
- workato_platform_cli/client/workato_api/docs/DeleteProject403Response.md +29 -0
- workato_platform_cli/client/workato_api/docs/Error.md +29 -0
- workato_platform_cli/client/workato_api/docs/ExportApi.md +175 -0
- workato_platform_cli/client/workato_api/docs/ExportManifestRequest.md +35 -0
- workato_platform_cli/client/workato_api/docs/ExportManifestResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/ExportManifestResponseResult.md +36 -0
- workato_platform_cli/client/workato_api/docs/Folder.md +35 -0
- workato_platform_cli/client/workato_api/docs/FolderAssetsResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/FolderAssetsResponseResult.md +29 -0
- workato_platform_cli/client/workato_api/docs/FolderCreationResponse.md +35 -0
- workato_platform_cli/client/workato_api/docs/FoldersApi.md +176 -0
- workato_platform_cli/client/workato_api/docs/ImportResults.md +32 -0
- workato_platform_cli/client/workato_api/docs/OAuthUrlResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/OAuthUrlResponseData.md +29 -0
- workato_platform_cli/client/workato_api/docs/OpenApiSpec.md +30 -0
- workato_platform_cli/client/workato_api/docs/PackageDetailsResponse.md +35 -0
- workato_platform_cli/client/workato_api/docs/PackageDetailsResponseRecipeStatusInner.md +30 -0
- workato_platform_cli/client/workato_api/docs/PackageResponse.md +33 -0
- workato_platform_cli/client/workato_api/docs/PackagesApi.md +364 -0
- workato_platform_cli/client/workato_api/docs/PicklistRequest.md +30 -0
- workato_platform_cli/client/workato_api/docs/PicklistResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/PlatformConnector.md +36 -0
- workato_platform_cli/client/workato_api/docs/PlatformConnectorListResponse.md +32 -0
- workato_platform_cli/client/workato_api/docs/Project.md +32 -0
- workato_platform_cli/client/workato_api/docs/ProjectsApi.md +173 -0
- workato_platform_cli/client/workato_api/docs/PropertiesApi.md +186 -0
- workato_platform_cli/client/workato_api/docs/Recipe.md +58 -0
- workato_platform_cli/client/workato_api/docs/RecipeConfigInner.md +33 -0
- workato_platform_cli/client/workato_api/docs/RecipeConnectionUpdateRequest.md +30 -0
- workato_platform_cli/client/workato_api/docs/RecipeListResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/RecipeStartResponse.md +31 -0
- workato_platform_cli/client/workato_api/docs/RecipesApi.md +367 -0
- workato_platform_cli/client/workato_api/docs/RuntimeUserConnectionCreateRequest.md +34 -0
- workato_platform_cli/client/workato_api/docs/RuntimeUserConnectionResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/RuntimeUserConnectionResponseData.md +30 -0
- workato_platform_cli/client/workato_api/docs/SuccessResponse.md +29 -0
- workato_platform_cli/client/workato_api/docs/UpsertProjectPropertiesRequest.md +29 -0
- workato_platform_cli/client/workato_api/docs/User.md +48 -0
- workato_platform_cli/client/workato_api/docs/UsersApi.md +84 -0
- workato_platform_cli/client/workato_api/docs/ValidationError.md +30 -0
- workato_platform_cli/client/workato_api/docs/ValidationErrorErrorsValue.md +28 -0
- workato_platform_cli/client/workato_api/exceptions.py +216 -0
- workato_platform_cli/client/workato_api/models/__init__.py +83 -0
- workato_platform_cli/client/workato_api/models/api_client.py +185 -0
- workato_platform_cli/client/workato_api/models/api_client_api_collections_inner.py +89 -0
- workato_platform_cli/client/workato_api/models/api_client_api_policies_inner.py +89 -0
- workato_platform_cli/client/workato_api/models/api_client_create_request.py +138 -0
- workato_platform_cli/client/workato_api/models/api_client_list_response.py +101 -0
- workato_platform_cli/client/workato_api/models/api_client_response.py +91 -0
- workato_platform_cli/client/workato_api/models/api_collection.py +110 -0
- workato_platform_cli/client/workato_api/models/api_collection_create_request.py +97 -0
- workato_platform_cli/client/workato_api/models/api_endpoint.py +117 -0
- workato_platform_cli/client/workato_api/models/api_key.py +102 -0
- workato_platform_cli/client/workato_api/models/api_key_create_request.py +93 -0
- workato_platform_cli/client/workato_api/models/api_key_list_response.py +101 -0
- workato_platform_cli/client/workato_api/models/api_key_response.py +91 -0
- workato_platform_cli/client/workato_api/models/asset.py +124 -0
- workato_platform_cli/client/workato_api/models/asset_reference.py +110 -0
- workato_platform_cli/client/workato_api/models/connection.py +173 -0
- workato_platform_cli/client/workato_api/models/connection_create_request.py +99 -0
- workato_platform_cli/client/workato_api/models/connection_update_request.py +97 -0
- workato_platform_cli/client/workato_api/models/connector_action.py +100 -0
- workato_platform_cli/client/workato_api/models/connector_version.py +99 -0
- workato_platform_cli/client/workato_api/models/create_export_manifest_request.py +91 -0
- workato_platform_cli/client/workato_api/models/create_folder_request.py +89 -0
- workato_platform_cli/client/workato_api/models/custom_connector.py +117 -0
- workato_platform_cli/client/workato_api/models/custom_connector_code_response.py +91 -0
- workato_platform_cli/client/workato_api/models/custom_connector_code_response_data.py +87 -0
- workato_platform_cli/client/workato_api/models/custom_connector_list_response.py +95 -0
- workato_platform_cli/client/workato_api/models/data_table.py +107 -0
- workato_platform_cli/client/workato_api/models/data_table_column.py +125 -0
- workato_platform_cli/client/workato_api/models/data_table_column_request.py +130 -0
- workato_platform_cli/client/workato_api/models/data_table_create_request.py +99 -0
- workato_platform_cli/client/workato_api/models/data_table_create_response.py +91 -0
- workato_platform_cli/client/workato_api/models/data_table_list_response.py +95 -0
- workato_platform_cli/client/workato_api/models/data_table_relation.py +90 -0
- workato_platform_cli/client/workato_api/models/delete_project403_response.py +87 -0
- workato_platform_cli/client/workato_api/models/error.py +87 -0
- workato_platform_cli/client/workato_api/models/export_manifest_request.py +107 -0
- workato_platform_cli/client/workato_api/models/export_manifest_response.py +91 -0
- workato_platform_cli/client/workato_api/models/export_manifest_response_result.py +112 -0
- workato_platform_cli/client/workato_api/models/folder.py +110 -0
- workato_platform_cli/client/workato_api/models/folder_assets_response.py +91 -0
- workato_platform_cli/client/workato_api/models/folder_assets_response_result.py +95 -0
- workato_platform_cli/client/workato_api/models/folder_creation_response.py +110 -0
- workato_platform_cli/client/workato_api/models/import_results.py +93 -0
- workato_platform_cli/client/workato_api/models/o_auth_url_response.py +91 -0
- workato_platform_cli/client/workato_api/models/o_auth_url_response_data.py +87 -0
- workato_platform_cli/client/workato_api/models/open_api_spec.py +96 -0
- workato_platform_cli/client/workato_api/models/package_details_response.py +126 -0
- workato_platform_cli/client/workato_api/models/package_details_response_recipe_status_inner.py +99 -0
- workato_platform_cli/client/workato_api/models/package_response.py +109 -0
- workato_platform_cli/client/workato_api/models/picklist_request.py +89 -0
- workato_platform_cli/client/workato_api/models/picklist_response.py +88 -0
- workato_platform_cli/client/workato_api/models/platform_connector.py +116 -0
- workato_platform_cli/client/workato_api/models/platform_connector_list_response.py +101 -0
- workato_platform_cli/client/workato_api/models/project.py +93 -0
- workato_platform_cli/client/workato_api/models/recipe.py +174 -0
- workato_platform_cli/client/workato_api/models/recipe_config_inner.py +100 -0
- workato_platform_cli/client/workato_api/models/recipe_connection_update_request.py +89 -0
- workato_platform_cli/client/workato_api/models/recipe_list_response.py +95 -0
- workato_platform_cli/client/workato_api/models/recipe_start_response.py +91 -0
- workato_platform_cli/client/workato_api/models/runtime_user_connection_create_request.py +97 -0
- workato_platform_cli/client/workato_api/models/runtime_user_connection_response.py +91 -0
- workato_platform_cli/client/workato_api/models/runtime_user_connection_response_data.py +89 -0
- workato_platform_cli/client/workato_api/models/success_response.py +87 -0
- workato_platform_cli/client/workato_api/models/upsert_project_properties_request.py +88 -0
- workato_platform_cli/client/workato_api/models/user.py +151 -0
- workato_platform_cli/client/workato_api/models/validation_error.py +102 -0
- workato_platform_cli/client/workato_api/models/validation_error_errors_value.py +143 -0
- workato_platform_cli/client/workato_api/rest.py +213 -0
- workato_platform_cli/client/workato_api/test/__init__.py +0 -0
- workato_platform_cli/client/workato_api/test/test_api_client.py +94 -0
- workato_platform_cli/client/workato_api/test/test_api_client_api_collections_inner.py +52 -0
- workato_platform_cli/client/workato_api/test/test_api_client_api_policies_inner.py +52 -0
- workato_platform_cli/client/workato_api/test/test_api_client_create_request.py +75 -0
- workato_platform_cli/client/workato_api/test/test_api_client_list_response.py +114 -0
- workato_platform_cli/client/workato_api/test/test_api_client_response.py +104 -0
- workato_platform_cli/client/workato_api/test/test_api_collection.py +72 -0
- workato_platform_cli/client/workato_api/test/test_api_collection_create_request.py +57 -0
- workato_platform_cli/client/workato_api/test/test_api_endpoint.py +75 -0
- workato_platform_cli/client/workato_api/test/test_api_key.py +64 -0
- workato_platform_cli/client/workato_api/test/test_api_key_create_request.py +56 -0
- workato_platform_cli/client/workato_api/test/test_api_key_list_response.py +78 -0
- workato_platform_cli/client/workato_api/test/test_api_key_response.py +68 -0
- workato_platform_cli/client/workato_api/test/test_api_platform_api.py +101 -0
- workato_platform_cli/client/workato_api/test/test_asset.py +67 -0
- workato_platform_cli/client/workato_api/test/test_asset_reference.py +62 -0
- workato_platform_cli/client/workato_api/test/test_connection.py +81 -0
- workato_platform_cli/client/workato_api/test/test_connection_create_request.py +59 -0
- workato_platform_cli/client/workato_api/test/test_connection_update_request.py +56 -0
- workato_platform_cli/client/workato_api/test/test_connections_api.py +73 -0
- workato_platform_cli/client/workato_api/test/test_connector_action.py +59 -0
- workato_platform_cli/client/workato_api/test/test_connector_version.py +58 -0
- workato_platform_cli/client/workato_api/test/test_connectors_api.py +52 -0
- workato_platform_cli/client/workato_api/test/test_create_export_manifest_request.py +88 -0
- workato_platform_cli/client/workato_api/test/test_create_folder_request.py +53 -0
- workato_platform_cli/client/workato_api/test/test_custom_connector.py +76 -0
- workato_platform_cli/client/workato_api/test/test_custom_connector_code_response.py +54 -0
- workato_platform_cli/client/workato_api/test/test_custom_connector_code_response_data.py +52 -0
- workato_platform_cli/client/workato_api/test/test_custom_connector_list_response.py +82 -0
- workato_platform_cli/client/workato_api/test/test_data_table.py +88 -0
- workato_platform_cli/client/workato_api/test/test_data_table_column.py +72 -0
- workato_platform_cli/client/workato_api/test/test_data_table_column_request.py +64 -0
- workato_platform_cli/client/workato_api/test/test_data_table_create_request.py +82 -0
- workato_platform_cli/client/workato_api/test/test_data_table_create_response.py +90 -0
- workato_platform_cli/client/workato_api/test/test_data_table_list_response.py +94 -0
- workato_platform_cli/client/workato_api/test/test_data_table_relation.py +54 -0
- workato_platform_cli/client/workato_api/test/test_data_tables_api.py +45 -0
- workato_platform_cli/client/workato_api/test/test_delete_project403_response.py +51 -0
- workato_platform_cli/client/workato_api/test/test_error.py +52 -0
- workato_platform_cli/client/workato_api/test/test_export_api.py +45 -0
- workato_platform_cli/client/workato_api/test/test_export_manifest_request.py +69 -0
- workato_platform_cli/client/workato_api/test/test_export_manifest_response.py +68 -0
- workato_platform_cli/client/workato_api/test/test_export_manifest_response_result.py +66 -0
- workato_platform_cli/client/workato_api/test/test_folder.py +64 -0
- workato_platform_cli/client/workato_api/test/test_folder_assets_response.py +80 -0
- workato_platform_cli/client/workato_api/test/test_folder_assets_response_result.py +78 -0
- workato_platform_cli/client/workato_api/test/test_folder_creation_response.py +64 -0
- workato_platform_cli/client/workato_api/test/test_folders_api.py +45 -0
- workato_platform_cli/client/workato_api/test/test_import_results.py +58 -0
- workato_platform_cli/client/workato_api/test/test_o_auth_url_response.py +54 -0
- workato_platform_cli/client/workato_api/test/test_o_auth_url_response_data.py +52 -0
- workato_platform_cli/client/workato_api/test/test_open_api_spec.py +54 -0
- workato_platform_cli/client/workato_api/test/test_package_details_response.py +64 -0
- workato_platform_cli/client/workato_api/test/test_package_details_response_recipe_status_inner.py +52 -0
- workato_platform_cli/client/workato_api/test/test_package_response.py +58 -0
- workato_platform_cli/client/workato_api/test/test_packages_api.py +59 -0
- workato_platform_cli/client/workato_api/test/test_picklist_request.py +53 -0
- workato_platform_cli/client/workato_api/test/test_picklist_response.py +52 -0
- workato_platform_cli/client/workato_api/test/test_platform_connector.py +94 -0
- workato_platform_cli/client/workato_api/test/test_platform_connector_list_response.py +106 -0
- workato_platform_cli/client/workato_api/test/test_project.py +57 -0
- workato_platform_cli/client/workato_api/test/test_projects_api.py +45 -0
- workato_platform_cli/client/workato_api/test/test_properties_api.py +45 -0
- workato_platform_cli/client/workato_api/test/test_recipe.py +124 -0
- workato_platform_cli/client/workato_api/test/test_recipe_config_inner.py +55 -0
- workato_platform_cli/client/workato_api/test/test_recipe_connection_update_request.py +54 -0
- workato_platform_cli/client/workato_api/test/test_recipe_list_response.py +134 -0
- workato_platform_cli/client/workato_api/test/test_recipe_start_response.py +54 -0
- workato_platform_cli/client/workato_api/test/test_recipes_api.py +59 -0
- workato_platform_cli/client/workato_api/test/test_runtime_user_connection_create_request.py +59 -0
- workato_platform_cli/client/workato_api/test/test_runtime_user_connection_response.py +56 -0
- workato_platform_cli/client/workato_api/test/test_runtime_user_connection_response_data.py +54 -0
- workato_platform_cli/client/workato_api/test/test_success_response.py +52 -0
- workato_platform_cli/client/workato_api/test/test_upsert_project_properties_request.py +52 -0
- workato_platform_cli/client/workato_api/test/test_user.py +85 -0
- workato_platform_cli/client/workato_api/test/test_users_api.py +38 -0
- workato_platform_cli/client/workato_api/test/test_validation_error.py +52 -0
- workato_platform_cli/client/workato_api/test/test_validation_error_errors_value.py +50 -0
- workato_platform_cli/client/workato_api_README.md +205 -0
- workato_platform_cli-1.0.0rc5.dev5.dist-info/METADATA +185 -0
- workato_platform_cli-1.0.0rc5.dev5.dist-info/RECORD +306 -0
- workato_platform_cli-1.0.0rc5.dev5.dist-info/WHEEL +4 -0
- workato_platform_cli-1.0.0rc5.dev5.dist-info/entry_points.txt +2 -0
- workato_platform_cli-1.0.0rc5.dev5.dist-info/licenses/LICENSE +7 -0
|
File without changes
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import asyncclick as click
|
|
2
|
+
|
|
3
|
+
from dependency_injector.wiring import Provide, inject
|
|
4
|
+
|
|
5
|
+
from workato_platform_cli.cli.commands.connectors.connector_manager import (
|
|
6
|
+
ConnectorManager,
|
|
7
|
+
)
|
|
8
|
+
from workato_platform_cli.cli.containers import Container
|
|
9
|
+
from workato_platform_cli.cli.utils.exception_handler import (
|
|
10
|
+
handle_api_exceptions,
|
|
11
|
+
handle_cli_exceptions,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@click.group()
|
|
16
|
+
def connectors() -> None:
|
|
17
|
+
"""Manage connectors"""
|
|
18
|
+
pass
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@connectors.command(name="list")
|
|
22
|
+
@click.option(
|
|
23
|
+
"--platform",
|
|
24
|
+
is_flag=True,
|
|
25
|
+
help="List platform connectors with trigger and action metadata",
|
|
26
|
+
)
|
|
27
|
+
@click.option("--custom", is_flag=True, help="List custom connectors")
|
|
28
|
+
@handle_cli_exceptions
|
|
29
|
+
@inject
|
|
30
|
+
@handle_api_exceptions
|
|
31
|
+
async def list_connectors(
|
|
32
|
+
platform: bool,
|
|
33
|
+
custom: bool,
|
|
34
|
+
connector_manager: ConnectorManager = Provide[Container.connector_manager],
|
|
35
|
+
) -> None:
|
|
36
|
+
"""List connectors (platform connectors include trigger and action metadata)"""
|
|
37
|
+
|
|
38
|
+
# If neither flag is specified, show both
|
|
39
|
+
if not platform and not custom:
|
|
40
|
+
platform = True
|
|
41
|
+
custom = True
|
|
42
|
+
|
|
43
|
+
if platform:
|
|
44
|
+
all_connectors = await connector_manager.list_platform_connectors()
|
|
45
|
+
|
|
46
|
+
if all_connectors:
|
|
47
|
+
for connector in all_connectors:
|
|
48
|
+
name = connector.name
|
|
49
|
+
title = connector.title
|
|
50
|
+
click.echo(f" • {title} ({name})")
|
|
51
|
+
else:
|
|
52
|
+
click.echo(" No platform connectors found")
|
|
53
|
+
|
|
54
|
+
if custom:
|
|
55
|
+
if platform:
|
|
56
|
+
click.echo() # Add spacing between sections
|
|
57
|
+
await connector_manager.list_custom_connectors()
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
@connectors.command()
|
|
61
|
+
@click.option("--provider", help="Show parameters for a specific provider")
|
|
62
|
+
@click.option("--oauth-only", is_flag=True, help="Show only OAuth-enabled providers")
|
|
63
|
+
@click.option("--search", help="Search provider names (case-insensitive)")
|
|
64
|
+
@handle_cli_exceptions
|
|
65
|
+
@inject
|
|
66
|
+
@handle_api_exceptions
|
|
67
|
+
async def parameters(
|
|
68
|
+
provider: str,
|
|
69
|
+
oauth_only: bool,
|
|
70
|
+
search: str,
|
|
71
|
+
connector_manager: ConnectorManager = Provide[Container.connector_manager],
|
|
72
|
+
) -> None:
|
|
73
|
+
"""List connection parameters for connectors
|
|
74
|
+
|
|
75
|
+
Shows configuration requirements for creating connections to different services.
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
# Load the bundled connection data using the injected manager
|
|
79
|
+
connection_data = connector_manager.load_connection_data()
|
|
80
|
+
|
|
81
|
+
if not connection_data:
|
|
82
|
+
click.echo("❌ Connection parameter data not found.")
|
|
83
|
+
click.echo()
|
|
84
|
+
click.echo("💡 This may indicate:")
|
|
85
|
+
click.echo(" • CLI was not installed properly (data files missing)")
|
|
86
|
+
click.echo(" • Development setup needs data generation")
|
|
87
|
+
click.echo()
|
|
88
|
+
click.echo("🔧 To resolve:")
|
|
89
|
+
click.echo(
|
|
90
|
+
" 1. If using installed CLI: try reinstalling with 'pip install "
|
|
91
|
+
"--force-reinstall workato-platform-cli'"
|
|
92
|
+
)
|
|
93
|
+
click.echo(
|
|
94
|
+
" 2. If developing: run 'python scripts/parse_connection_docs.py' "
|
|
95
|
+
"to generate data"
|
|
96
|
+
)
|
|
97
|
+
click.echo(
|
|
98
|
+
" 3. Alternative: use 'workato connectors list --platform' "
|
|
99
|
+
"to see available providers"
|
|
100
|
+
)
|
|
101
|
+
return
|
|
102
|
+
|
|
103
|
+
if provider:
|
|
104
|
+
# Show details for specific provider
|
|
105
|
+
if provider not in connection_data:
|
|
106
|
+
click.echo(f"❌ Provider '{provider}' not found")
|
|
107
|
+
# Suggest similar providers
|
|
108
|
+
suggestions = [p for p in connection_data if provider.lower() in p.lower()]
|
|
109
|
+
if suggestions:
|
|
110
|
+
click.echo(f"💡 Did you mean: {', '.join(suggestions[:3])}")
|
|
111
|
+
click.echo(
|
|
112
|
+
"💡 Use 'workato connectors parameters' to see all available providers"
|
|
113
|
+
)
|
|
114
|
+
return
|
|
115
|
+
|
|
116
|
+
connector_manager.show_provider_details(provider, connection_data[provider])
|
|
117
|
+
|
|
118
|
+
else:
|
|
119
|
+
# Show all providers with optional filtering
|
|
120
|
+
filtered_providers = []
|
|
121
|
+
for k, v in connection_data.items():
|
|
122
|
+
if (not oauth_only or v.oauth) and (
|
|
123
|
+
not search
|
|
124
|
+
or search.lower() in v.name.lower()
|
|
125
|
+
or search.lower() in k.lower()
|
|
126
|
+
):
|
|
127
|
+
filtered_providers.append((k, v))
|
|
128
|
+
|
|
129
|
+
# Show summary
|
|
130
|
+
filter_text = ""
|
|
131
|
+
if oauth_only:
|
|
132
|
+
filter_text += " (OAuth only)"
|
|
133
|
+
if search:
|
|
134
|
+
filter_text += f" (matching '{search}')"
|
|
135
|
+
|
|
136
|
+
click.echo(
|
|
137
|
+
f"🔌 Connection Parameters ({len(filtered_providers)} "
|
|
138
|
+
f"providers{filter_text})"
|
|
139
|
+
)
|
|
140
|
+
click.echo()
|
|
141
|
+
|
|
142
|
+
if not filtered_providers:
|
|
143
|
+
click.echo(" ℹ️ No providers found matching criteria")
|
|
144
|
+
return
|
|
145
|
+
|
|
146
|
+
# Sort by name for better readability
|
|
147
|
+
filtered_providers.sort(key=lambda x: x[1].name)
|
|
148
|
+
|
|
149
|
+
# Display providers in a compact format
|
|
150
|
+
for provider_key, provider_data in filtered_providers:
|
|
151
|
+
name = provider_data.name
|
|
152
|
+
param_count = provider_data.parameter_count
|
|
153
|
+
oauth_icon = "🔐" if provider_data.oauth else "🔑"
|
|
154
|
+
tunnel_icon = "🔒" if provider_data.secure_tunnel else ""
|
|
155
|
+
|
|
156
|
+
click.echo(f" {oauth_icon} {name:<40} ({provider_key})")
|
|
157
|
+
|
|
158
|
+
if param_count > 0:
|
|
159
|
+
click.echo(
|
|
160
|
+
f" 📝 {param_count} parameter{'s' if param_count != 1 else ''}"
|
|
161
|
+
)
|
|
162
|
+
else:
|
|
163
|
+
click.echo(" 📝 No configuration required")
|
|
164
|
+
|
|
165
|
+
if tunnel_icon:
|
|
166
|
+
click.echo(f" {tunnel_icon} Supports secure tunnel")
|
|
167
|
+
|
|
168
|
+
click.echo()
|
|
169
|
+
|
|
170
|
+
click.echo("💡 Commands:")
|
|
171
|
+
click.echo(
|
|
172
|
+
" • View provider details: workato connectors parameters "
|
|
173
|
+
"--provider salesforce"
|
|
174
|
+
)
|
|
175
|
+
click.echo(
|
|
176
|
+
" • Create connection: workato connections create --provider <PROVIDER> "
|
|
177
|
+
"--name 'My Connection'"
|
|
178
|
+
)
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
"""Connector manager for handling connection parameters and OAuth requirements"""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
import asyncclick as click
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, Field
|
|
11
|
+
|
|
12
|
+
from workato_platform_cli import Workato
|
|
13
|
+
from workato_platform_cli.cli.utils import Spinner
|
|
14
|
+
from workato_platform_cli.client.workato_api.models.platform_connector import (
|
|
15
|
+
PlatformConnector,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ConnectionParameter(BaseModel):
|
|
20
|
+
"""Model for a connection parameter/input field"""
|
|
21
|
+
|
|
22
|
+
name: str = Field(..., description="Parameter name")
|
|
23
|
+
label: str = Field(..., description="Human-readable label")
|
|
24
|
+
type: str = Field(..., description="Parameter type (string, boolean, etc.)")
|
|
25
|
+
hint: str = Field("", description="Hint text for the parameter")
|
|
26
|
+
pick_list: list[list[str]] | None = Field(
|
|
27
|
+
None, description="Available options for selection"
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class ProviderData(BaseModel):
|
|
32
|
+
"""Model for provider connection data"""
|
|
33
|
+
|
|
34
|
+
name: str = Field(..., description="Provider display name")
|
|
35
|
+
provider: str = Field(..., description="Provider identifier")
|
|
36
|
+
oauth: bool = Field(False, description="Whether the provider supports OAuth")
|
|
37
|
+
personalization: bool = Field(
|
|
38
|
+
False, description="Whether personalization is supported"
|
|
39
|
+
)
|
|
40
|
+
secure_tunnel: bool = Field(False, description="Whether secure tunnel is supported")
|
|
41
|
+
input: list[ConnectionParameter] = Field(
|
|
42
|
+
default_factory=list, description="Connection parameters"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def parameter_count(self) -> int:
|
|
47
|
+
"""Get the number of parameters for backwards compatibility"""
|
|
48
|
+
return len(self.input)
|
|
49
|
+
|
|
50
|
+
def get_oauth_parameters(self) -> list[ConnectionParameter]:
|
|
51
|
+
"""Get parameters that are typically needed for OAuth"""
|
|
52
|
+
# For Jira, we know auth_type and host_url are needed for OAuth
|
|
53
|
+
if self.provider == "jira":
|
|
54
|
+
oauth_params = []
|
|
55
|
+
for param in self.input:
|
|
56
|
+
if param.name in ["auth_type", "host_url"]:
|
|
57
|
+
oauth_params.append(param)
|
|
58
|
+
return oauth_params
|
|
59
|
+
|
|
60
|
+
# For other providers, we could add specific logic here
|
|
61
|
+
return []
|
|
62
|
+
|
|
63
|
+
def get_parameter_by_name(self, name: str) -> ConnectionParameter | None:
|
|
64
|
+
"""Get a specific parameter by name"""
|
|
65
|
+
for param in self.input:
|
|
66
|
+
if param.name == name:
|
|
67
|
+
return param
|
|
68
|
+
return None
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class ConnectorManager:
|
|
72
|
+
"""Manager class for connector data and OAuth parameter handling"""
|
|
73
|
+
|
|
74
|
+
def __init__(self, workato_api_client: Workato):
|
|
75
|
+
self.workato_api_client = workato_api_client
|
|
76
|
+
self._data_cache: dict[str, ProviderData] | None = None
|
|
77
|
+
|
|
78
|
+
@property
|
|
79
|
+
def data_file_path(self) -> Path:
|
|
80
|
+
"""Get the path to the connection data file"""
|
|
81
|
+
return (
|
|
82
|
+
Path(__file__).parent.parent.parent
|
|
83
|
+
/ "resources"
|
|
84
|
+
/ "data"
|
|
85
|
+
/ "connection-data.json"
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
def load_connection_data(self) -> dict[str, ProviderData]:
|
|
89
|
+
"""Load and cache connection parameter data"""
|
|
90
|
+
if self._data_cache is not None:
|
|
91
|
+
return self._data_cache
|
|
92
|
+
|
|
93
|
+
if not self.data_file_path.exists():
|
|
94
|
+
self._data_cache = {}
|
|
95
|
+
return self._data_cache
|
|
96
|
+
|
|
97
|
+
try:
|
|
98
|
+
with open(self.data_file_path) as f:
|
|
99
|
+
raw_data = json.load(f)
|
|
100
|
+
|
|
101
|
+
self._data_cache = {}
|
|
102
|
+
for provider_key, provider_data in raw_data.items():
|
|
103
|
+
self._data_cache[provider_key] = ProviderData(**provider_data)
|
|
104
|
+
|
|
105
|
+
return self._data_cache
|
|
106
|
+
except (json.JSONDecodeError, ValueError):
|
|
107
|
+
self._data_cache = {}
|
|
108
|
+
return self._data_cache
|
|
109
|
+
|
|
110
|
+
def get_provider_data(self, provider: str) -> ProviderData | None:
|
|
111
|
+
"""Get connection parameters for a specific provider"""
|
|
112
|
+
data = self.load_connection_data()
|
|
113
|
+
return data.get(provider)
|
|
114
|
+
|
|
115
|
+
def get_oauth_providers(self) -> dict[str, ProviderData]:
|
|
116
|
+
"""Get all providers that support OAuth"""
|
|
117
|
+
data = self.load_connection_data()
|
|
118
|
+
return {key: provider for key, provider in data.items() if provider.oauth}
|
|
119
|
+
|
|
120
|
+
def get_oauth_required_parameters(self, provider: str) -> list[ConnectionParameter]:
|
|
121
|
+
"""Get OAuth-specific required parameters for a provider"""
|
|
122
|
+
provider_data = self.get_provider_data(provider)
|
|
123
|
+
if not provider_data:
|
|
124
|
+
return []
|
|
125
|
+
|
|
126
|
+
return provider_data.get_oauth_parameters()
|
|
127
|
+
|
|
128
|
+
async def prompt_for_oauth_parameters(
|
|
129
|
+
self, provider: str, existing_input: dict[str, Any] | None = None
|
|
130
|
+
) -> dict[str, Any]:
|
|
131
|
+
"""Prompt user for OAuth-required parameters that are missing"""
|
|
132
|
+
existing_input = existing_input or {}
|
|
133
|
+
oauth_params = self.get_oauth_required_parameters(provider)
|
|
134
|
+
|
|
135
|
+
if not oauth_params:
|
|
136
|
+
return existing_input
|
|
137
|
+
|
|
138
|
+
updated_input = existing_input.copy()
|
|
139
|
+
missing_params = []
|
|
140
|
+
|
|
141
|
+
# Check which OAuth parameters are missing
|
|
142
|
+
for param in oauth_params:
|
|
143
|
+
param_name = param.name
|
|
144
|
+
if param_name not in updated_input:
|
|
145
|
+
missing_params.append(param)
|
|
146
|
+
|
|
147
|
+
if not missing_params:
|
|
148
|
+
return updated_input
|
|
149
|
+
|
|
150
|
+
# Prompt for missing OAuth parameters
|
|
151
|
+
provider_data = self.get_provider_data(provider)
|
|
152
|
+
provider_name = provider_data.name if provider_data else provider.title()
|
|
153
|
+
|
|
154
|
+
click.echo(f"🔧 {provider_name} OAuth requires additional parameters:")
|
|
155
|
+
click.echo()
|
|
156
|
+
|
|
157
|
+
for param in missing_params:
|
|
158
|
+
param_name = param.name
|
|
159
|
+
label = param.label
|
|
160
|
+
hint = param.hint
|
|
161
|
+
|
|
162
|
+
click.echo(f"📝 {label} ({param_name})")
|
|
163
|
+
if hint:
|
|
164
|
+
click.echo(f" 💡 {hint}")
|
|
165
|
+
|
|
166
|
+
# Special handling for known OAuth parameters
|
|
167
|
+
if param_name == "auth_type" and provider == "jira":
|
|
168
|
+
value = "oauth"
|
|
169
|
+
click.echo(f" ✓ Setting to: {value}")
|
|
170
|
+
elif param_name == "host_url" and provider == "jira":
|
|
171
|
+
default_url = "https://your-domain.atlassian.net"
|
|
172
|
+
value = await click.prompt(
|
|
173
|
+
f" Enter {label}", default=default_url, show_default=True
|
|
174
|
+
)
|
|
175
|
+
else:
|
|
176
|
+
value = await click.prompt(f" Enter {label}")
|
|
177
|
+
|
|
178
|
+
updated_input[param_name] = value
|
|
179
|
+
click.echo()
|
|
180
|
+
|
|
181
|
+
return updated_input
|
|
182
|
+
|
|
183
|
+
def show_provider_details(
|
|
184
|
+
self, provider_key: str, provider_data: ProviderData
|
|
185
|
+
) -> None:
|
|
186
|
+
"""Show detailed information about a specific provider"""
|
|
187
|
+
name = provider_data.name
|
|
188
|
+
param_count = provider_data.parameter_count
|
|
189
|
+
|
|
190
|
+
click.echo(f"🔌 {name} ({provider_key})")
|
|
191
|
+
click.echo()
|
|
192
|
+
|
|
193
|
+
# Show provider characteristics
|
|
194
|
+
click.echo("📋 Provider Information:")
|
|
195
|
+
click.echo(f" 🔐 OAuth: {'Yes' if provider_data.oauth else 'No'}")
|
|
196
|
+
personalization = (
|
|
197
|
+
"Supported" if provider_data.personalization else "Not supported"
|
|
198
|
+
)
|
|
199
|
+
click.echo(f" 👤 Personalization: {personalization}")
|
|
200
|
+
if provider_data.secure_tunnel:
|
|
201
|
+
click.echo(" 🔒 Secure Tunnel: Supported")
|
|
202
|
+
click.echo()
|
|
203
|
+
|
|
204
|
+
# Show parameters
|
|
205
|
+
if param_count == 0:
|
|
206
|
+
click.echo("✅ No configuration parameters required")
|
|
207
|
+
click.echo(" This connector can be used without additional setup.")
|
|
208
|
+
else:
|
|
209
|
+
click.echo(f"📝 Configuration Parameters ({param_count} available):")
|
|
210
|
+
click.echo()
|
|
211
|
+
|
|
212
|
+
for i, param in enumerate(provider_data.input, 1):
|
|
213
|
+
param_name = param.name
|
|
214
|
+
param_type = param.type
|
|
215
|
+
hint = param.hint
|
|
216
|
+
|
|
217
|
+
type_display = f"Type: {param_type}"
|
|
218
|
+
|
|
219
|
+
click.echo(f" {i}. {param_name}")
|
|
220
|
+
click.echo(f" 📝 Label: {param.label}")
|
|
221
|
+
click.echo(f" 📊 {type_display}")
|
|
222
|
+
|
|
223
|
+
if hint:
|
|
224
|
+
# Clean up HTML tags and truncate long hints
|
|
225
|
+
clean_hint = hint.replace("<b>", "").replace("</b>", "")
|
|
226
|
+
clean_hint = clean_hint.replace("<br>", " ")
|
|
227
|
+
if len(clean_hint) > 100:
|
|
228
|
+
clean_hint = clean_hint[:100] + "..."
|
|
229
|
+
click.echo(f" 💡 Hint: {clean_hint}")
|
|
230
|
+
|
|
231
|
+
if param.pick_list:
|
|
232
|
+
options = [
|
|
233
|
+
(
|
|
234
|
+
option[1]
|
|
235
|
+
if isinstance(option, list) and len(option) > 1
|
|
236
|
+
else (option[0] if isinstance(option, list) else option)
|
|
237
|
+
)
|
|
238
|
+
for option in param.pick_list
|
|
239
|
+
]
|
|
240
|
+
click.echo(f" 🔽 Options: {', '.join(options[:3])}")
|
|
241
|
+
if len(options) > 3:
|
|
242
|
+
click.echo(f" ... and {len(options) - 3} more")
|
|
243
|
+
|
|
244
|
+
click.echo()
|
|
245
|
+
|
|
246
|
+
# Show usage examples
|
|
247
|
+
click.echo("💡 Usage Examples:")
|
|
248
|
+
click.echo(" # Basic usage:")
|
|
249
|
+
click.echo(
|
|
250
|
+
f" workato connections create --provider {provider_key} "
|
|
251
|
+
f"--name 'My {name}' --input '{{...}}'"
|
|
252
|
+
)
|
|
253
|
+
click.echo()
|
|
254
|
+
click.echo(" # With configuration file:")
|
|
255
|
+
click.echo(
|
|
256
|
+
f" workato connections create --provider {provider_key} "
|
|
257
|
+
f"--name 'My {name}' --input-file config.json"
|
|
258
|
+
)
|
|
259
|
+
click.echo()
|
|
260
|
+
|
|
261
|
+
if param_count > 0:
|
|
262
|
+
click.echo(" # Sample configuration (config.json):")
|
|
263
|
+
sample_config = {}
|
|
264
|
+
for param in provider_data.input[:5]: # Show first 5 params
|
|
265
|
+
sample_config[param.name] = "your_value_here"
|
|
266
|
+
|
|
267
|
+
config_json = json.dumps(sample_config, indent=2)
|
|
268
|
+
for line in config_json.split("\n"):
|
|
269
|
+
click.echo(f" {line}")
|
|
270
|
+
|
|
271
|
+
async def list_platform_connectors(self) -> list[PlatformConnector]:
|
|
272
|
+
"""List all platform connectors with pagination"""
|
|
273
|
+
all_connectors = []
|
|
274
|
+
page = 1
|
|
275
|
+
per_page = 100
|
|
276
|
+
|
|
277
|
+
spinner = Spinner("Fetching platform connectors")
|
|
278
|
+
spinner.start()
|
|
279
|
+
|
|
280
|
+
connectors_api = self.workato_api_client.connectors_api
|
|
281
|
+
|
|
282
|
+
try:
|
|
283
|
+
while True:
|
|
284
|
+
response = await connectors_api.list_platform_connectors(
|
|
285
|
+
page=page,
|
|
286
|
+
per_page=per_page,
|
|
287
|
+
)
|
|
288
|
+
|
|
289
|
+
connectors = response.items
|
|
290
|
+
|
|
291
|
+
if not connectors:
|
|
292
|
+
break
|
|
293
|
+
|
|
294
|
+
all_connectors.extend(connectors)
|
|
295
|
+
|
|
296
|
+
# If we got fewer than per_page results, we're on the last page
|
|
297
|
+
if len(connectors) < per_page:
|
|
298
|
+
break
|
|
299
|
+
|
|
300
|
+
page += 1
|
|
301
|
+
spinner.update_message(f"Fetching platform connectors (page {page})")
|
|
302
|
+
finally:
|
|
303
|
+
elapsed = spinner.stop()
|
|
304
|
+
|
|
305
|
+
click.echo(
|
|
306
|
+
f"🔌 Platform Connectors ({len(all_connectors)} total) - ({elapsed:.1f}s)"
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
return all_connectors
|
|
310
|
+
|
|
311
|
+
async def list_custom_connectors(self) -> None:
|
|
312
|
+
"""List all custom connectors"""
|
|
313
|
+
spinner = Spinner("Fetching custom connectors")
|
|
314
|
+
spinner.start()
|
|
315
|
+
|
|
316
|
+
try:
|
|
317
|
+
response = (
|
|
318
|
+
await self.workato_api_client.connectors_api.list_custom_connectors()
|
|
319
|
+
)
|
|
320
|
+
connectors = response.result
|
|
321
|
+
finally:
|
|
322
|
+
elapsed = spinner.stop()
|
|
323
|
+
|
|
324
|
+
click.echo(f"🛠️ Custom Connectors ({len(connectors)} total) - ({elapsed:.1f}s)")
|
|
325
|
+
|
|
326
|
+
if connectors:
|
|
327
|
+
for connector in connectors:
|
|
328
|
+
name = connector.name
|
|
329
|
+
version = getattr(connector, "version", "Unknown")
|
|
330
|
+
|
|
331
|
+
click.echo(f" • {name} (v{version})")
|
|
332
|
+
if hasattr(connector, "description") and connector.description:
|
|
333
|
+
# Truncate long descriptions
|
|
334
|
+
desc = connector.description
|
|
335
|
+
if len(desc) > 100:
|
|
336
|
+
desc = desc[:100] + "..."
|
|
337
|
+
click.echo(f" {desc}")
|
|
338
|
+
else:
|
|
339
|
+
click.echo(" No custom connectors found")
|
|
340
|
+
|
|
341
|
+
click.echo()
|
|
342
|
+
click.echo("💡 Commands:")
|
|
343
|
+
click.echo(
|
|
344
|
+
" • View connector details: workato connectors get --id <CONNECTOR_ID>"
|
|
345
|
+
)
|
|
346
|
+
click.echo(" • Create connector: workato connectors create")
|
|
347
|
+
click.echo(
|
|
348
|
+
" • Deploy connector: workato connectors deploy --id <CONNECTOR_ID>"
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
click.echo("-" * 50)
|