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
|
@@ -0,0 +1,779 @@
|
|
|
1
|
+
# Data Mapping and References
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Data mapping is the core mechanism that enables data to flow between blocks in a Workato recipe. Understanding how to reference and map data is essential for building functional recipes.
|
|
5
|
+
|
|
6
|
+
## Data Pill Fundamentals
|
|
7
|
+
|
|
8
|
+
### Data Pill Syntax
|
|
9
|
+
Workato supports two main syntaxes for referencing data from previous blocks:
|
|
10
|
+
|
|
11
|
+
#### 1. Simple Data Path Syntax (Recommended)
|
|
12
|
+
```json
|
|
13
|
+
"#{_dp('data.{provider}.{as}.{data_path}')}"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
#### 2. Complex JSON Path Syntax (Advanced)
|
|
17
|
+
```json
|
|
18
|
+
"#{_dp('{\"pill_type\":\"output\",\"provider\":\"{provider}\",\"line\":\"{as}\",\"path\":[\"field1\",\"field2\"]}')}"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Components Breakdown
|
|
22
|
+
|
|
23
|
+
#### Simple Syntax
|
|
24
|
+
- **`#{_dp('...')}`**: Data pill wrapper function
|
|
25
|
+
- **`data`**: Fixed prefix indicating data reference
|
|
26
|
+
- **`{provider}`**: Provider name of the source block
|
|
27
|
+
- **`{as}`**: The "as" value from the source block
|
|
28
|
+
- **`{data_path}`**: Path to specific data field using dot notation
|
|
29
|
+
|
|
30
|
+
#### Complex JSON Syntax
|
|
31
|
+
- **`pill_type`**: Usually "output" for data references
|
|
32
|
+
- **`provider`**: Provider name of the source block
|
|
33
|
+
- **`line`**: The "as" value from the source block
|
|
34
|
+
- **`path`**: Array of path elements to the target field
|
|
35
|
+
- **`path_element_type`**: Special values like "current_item" for array operations
|
|
36
|
+
|
|
37
|
+
### Example Data Pills
|
|
38
|
+
|
|
39
|
+
#### Simple Syntax Example
|
|
40
|
+
```json
|
|
41
|
+
"#{_dp('data.google_drive.9672c97b.file.name')}"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Breakdown**:
|
|
45
|
+
- `google_drive`: Provider name
|
|
46
|
+
- `9672c97b`: The "as" value from the source block
|
|
47
|
+
- `file.name`: Path to the "name" field within the "file" object
|
|
48
|
+
|
|
49
|
+
#### Complex JSON Syntax Example
|
|
50
|
+
```json
|
|
51
|
+
"#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}')}"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Breakdown**:
|
|
55
|
+
- `pill_type`: "output" (data reference)
|
|
56
|
+
- `provider`: "workato_recipe_function"
|
|
57
|
+
- `line`: "b2dacec4" (the "as" value)
|
|
58
|
+
- `path`: ["result", "files", {"path_element_type": "current_item"}, "id"]
|
|
59
|
+
|
|
60
|
+
### When to Use Each Syntax
|
|
61
|
+
|
|
62
|
+
#### Use Simple Syntax When:
|
|
63
|
+
- Referencing simple fields (strings, numbers, booleans)
|
|
64
|
+
- Accessing nested object properties
|
|
65
|
+
- Referencing specific array elements by index
|
|
66
|
+
- Building straightforward data mappings
|
|
67
|
+
|
|
68
|
+
#### Use Complex JSON Syntax When:
|
|
69
|
+
- Working with array transformations using `current_item`
|
|
70
|
+
- Need precise control over path elements
|
|
71
|
+
- Building complex array-to-array mappings
|
|
72
|
+
- Working with recipe functions that require specific path structures
|
|
73
|
+
|
|
74
|
+
## Data Flow Between Blocks
|
|
75
|
+
|
|
76
|
+
### Execution Order and Data Availability
|
|
77
|
+
1. **Block 0 (Trigger)**: Provides initial data
|
|
78
|
+
2. **Block 1**: Can reference data from Block 0
|
|
79
|
+
3. **Block 2**: Can reference data from Block 0 and Block 1
|
|
80
|
+
4. **Block N**: Can reference data from all previous blocks
|
|
81
|
+
|
|
82
|
+
### Data Reference Timeline
|
|
83
|
+
```
|
|
84
|
+
Block 0 (Trigger) → Block 1 → Block 2 → Block 3
|
|
85
|
+
↓ ↓ ↓ ↓
|
|
86
|
+
Data A Data B Data C Data D
|
|
87
|
+
↓ ↓ ↓ ↓
|
|
88
|
+
Available Available Available Available
|
|
89
|
+
to: 1,2,3 to: 2,3 to: 3 to: none
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Data Pill Reference Patterns
|
|
93
|
+
|
|
94
|
+
### 1. Direct Field References
|
|
95
|
+
Reference a simple field from a previous block:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
"#{_dp('data.workato_recipe_function.6b031f18.parameters.issue_key')}"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Source Block**:
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"provider": "workato_recipe_function",
|
|
105
|
+
"as": "6b031f18",
|
|
106
|
+
"extended_output_schema": [
|
|
107
|
+
{
|
|
108
|
+
"name": "parameters",
|
|
109
|
+
"properties": [
|
|
110
|
+
{
|
|
111
|
+
"name": "issue_key",
|
|
112
|
+
"type": "string"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Input Modes and Data Pill Usage
|
|
121
|
+
|
|
122
|
+
Workato supports two distinct input modes that affect how data pills are used:
|
|
123
|
+
|
|
124
|
+
### 1. Text Input Mode (Direct Data Pills)
|
|
125
|
+
Data pills are embedded directly in text strings using the `#{_dp('...')}` syntax:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
"name": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"name\"]}')} - raw text - #{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}')}"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Characteristics**:
|
|
132
|
+
- Uses `#{_dp('...')}` syntax
|
|
133
|
+
- Data pills can be mixed with literal text
|
|
134
|
+
- Multiple data pills can be concatenated in a single string
|
|
135
|
+
- No formula processing - data pills are treated as text substitutions
|
|
136
|
+
|
|
137
|
+
### 2. Formula Mode (Data Pills in Formulas)
|
|
138
|
+
Data pills are used within formulas using the `=_dp('...')` syntax:
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
"id": "=_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}').split(\":\").first"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Characteristics**:
|
|
145
|
+
- Uses `=_dp('...')` syntax (note the `=` prefix)
|
|
146
|
+
- Data pills can be processed with string methods and functions
|
|
147
|
+
- Supports complex operations like `.split()`, `.first`, `.last`, etc.
|
|
148
|
+
- Formula processing enables data transformation and manipulation
|
|
149
|
+
|
|
150
|
+
### 3. Mixed Mode Examples
|
|
151
|
+
Here are real examples from the recipe showing both modes:
|
|
152
|
+
|
|
153
|
+
```json
|
|
154
|
+
"files": {
|
|
155
|
+
"____source": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\"]}')}",
|
|
156
|
+
|
|
157
|
+
// Formula mode - data processing
|
|
158
|
+
"id": "=_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}').split(\":\").first",
|
|
159
|
+
|
|
160
|
+
// Text input mode - direct concatenation
|
|
161
|
+
"name": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"name\"]}')} - raw text - #{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}')}",
|
|
162
|
+
|
|
163
|
+
// Formula mode with text and data pill
|
|
164
|
+
"type": "=\"text in a formula with a data pill: #{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"type\"]}')}\"",
|
|
165
|
+
|
|
166
|
+
// Text input mode - simple data pill
|
|
167
|
+
"content": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"content\"]}')}"
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### 4. When to Use Each Mode
|
|
172
|
+
|
|
173
|
+
#### Use Text Input Mode When:
|
|
174
|
+
- You need to concatenate data pills with literal text
|
|
175
|
+
- Simple data substitution is required
|
|
176
|
+
- No data processing or transformation is needed
|
|
177
|
+
- Building display strings or messages
|
|
178
|
+
|
|
179
|
+
#### Use Formula Mode When:
|
|
180
|
+
- You need to process or transform the data
|
|
181
|
+
- String operations like split, substring, or replace are required
|
|
182
|
+
- Mathematical operations are needed
|
|
183
|
+
- Complex data manipulation is required
|
|
184
|
+
|
|
185
|
+
### 5. Common Formula Operations
|
|
186
|
+
|
|
187
|
+
For comprehensive formula documentation, refer to the official Workato formula guides:
|
|
188
|
+
|
|
189
|
+
- **[String Formulas](../formulas/string-formulas.md)** - String manipulation, text processing, and validation
|
|
190
|
+
- **[Number Formulas](../formulas/number-formulas.md)** - Mathematical operations, calculations, and numeric processing
|
|
191
|
+
- **[Date Formulas](../formulas/date-formulas.md)** - Date/time operations, formatting, and calculations
|
|
192
|
+
- **[Array/List Formulas](../formulas/array-list-formulas.md)** - Array operations, list processing, and hash manipulation
|
|
193
|
+
- **[Conditional Formulas](../formulas/conditions.md)** - If-else logic, boolean operations, and conditional processing
|
|
194
|
+
- **[Other Formulas](../formulas/other-formulas.md)** - Additional utility functions and operations
|
|
195
|
+
|
|
196
|
+
**Key Formula Syntax**:
|
|
197
|
+
```json
|
|
198
|
+
// Formula mode uses =_dp('...') syntax
|
|
199
|
+
"id": "=_dp('data.source_block.field').split(':').first"
|
|
200
|
+
"name": "=_dp('data.source_block.field').upcase"
|
|
201
|
+
"count": "=_dp('data.source_block.items').length"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### 2. Nested Object References
|
|
205
|
+
Reference fields within nested objects:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
"#{_dp('data.jira.748bbf54.attachments.0.self')}"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Source Block Output**:
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"attachments": [
|
|
215
|
+
{
|
|
216
|
+
"self": "https://example.com/attachment/123",
|
|
217
|
+
"thumbnail": "https://example.com/thumb/123"
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### 3. Array Element References
|
|
224
|
+
Reference specific elements in arrays:
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
"#{_dp('data.google_drive.search_files.files.0.id')}"
|
|
228
|
+
"#{_dp('data.google_drive.search_files.files.1.name')}"
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**Array Structure**:
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"files": [
|
|
235
|
+
{"id": "file1", "name": "Document1.pdf"},
|
|
236
|
+
{"id": "file2", "name": "Document2.pdf"}
|
|
237
|
+
]
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### 4. Complex Array Mapping with Current Item Pattern
|
|
242
|
+
For complex array operations, Workato uses a special `current_item` pattern that allows mapping array elements to new structures:
|
|
243
|
+
|
|
244
|
+
```json
|
|
245
|
+
"files": {
|
|
246
|
+
"____source": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\"]}')}",
|
|
247
|
+
"id": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}')}",
|
|
248
|
+
"name": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"name\"]}')}",
|
|
249
|
+
"type": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"type\"]}')}"
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Key Components**:
|
|
254
|
+
- **`____source`**: References the entire array from the source block
|
|
255
|
+
- **`current_item`**: Special path element that maps each array item individually
|
|
256
|
+
- **Field mapping**: Each field maps to the corresponding property of the current array item
|
|
257
|
+
|
|
258
|
+
**Source Block Structure** (Block b2dacec4):
|
|
259
|
+
```json
|
|
260
|
+
{
|
|
261
|
+
"provider": "workato_recipe_function",
|
|
262
|
+
"name": "call_recipe",
|
|
263
|
+
"as": "b2dacec4",
|
|
264
|
+
"extended_output_schema": [
|
|
265
|
+
{
|
|
266
|
+
"name": "result",
|
|
267
|
+
"properties": [
|
|
268
|
+
{
|
|
269
|
+
"name": "files",
|
|
270
|
+
"type": "array",
|
|
271
|
+
"of": "object",
|
|
272
|
+
"properties": [
|
|
273
|
+
{"name": "id", "type": "string"},
|
|
274
|
+
{"name": "name", "type": "string"},
|
|
275
|
+
{"name": "type", "type": "string"}
|
|
276
|
+
]
|
|
277
|
+
}
|
|
278
|
+
]
|
|
279
|
+
}
|
|
280
|
+
]
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Result**: This creates a new array where each item has the mapped structure, transforming the source data format.
|
|
285
|
+
|
|
286
|
+
### Real-World Example: File Processing Pipeline
|
|
287
|
+
|
|
288
|
+
**Source Block** (Block 4 - Call Recipe):
|
|
289
|
+
```json
|
|
290
|
+
{
|
|
291
|
+
"provider": "workato_recipe_function",
|
|
292
|
+
"name": "call_recipe",
|
|
293
|
+
"as": "b2dacec4",
|
|
294
|
+
"keyword": "action",
|
|
295
|
+
"input": {
|
|
296
|
+
"flow_id": {
|
|
297
|
+
"zip_name": "Functions/search_google_drive_user_scoped.recipe.json",
|
|
298
|
+
"name": "Search Google Drive (User Scoped)",
|
|
299
|
+
"folder": "Functions"
|
|
300
|
+
},
|
|
301
|
+
"parameters": {
|
|
302
|
+
"query": "#{_dp('data.workato_api_platform.93424d18.request.query')}"
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Target Block** (Block 5 - Return Response):
|
|
309
|
+
```json
|
|
310
|
+
{
|
|
311
|
+
"provider": "workato_api_platform",
|
|
312
|
+
"name": "return_response",
|
|
313
|
+
"as": "b621c65f",
|
|
314
|
+
"keyword": "action",
|
|
315
|
+
"input": {
|
|
316
|
+
"http_status_code": "200",
|
|
317
|
+
"response": {
|
|
318
|
+
"message": "success. Make sure you search Jira tickets next.",
|
|
319
|
+
"files": {
|
|
320
|
+
"____source": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\"]}')}",
|
|
321
|
+
"id": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}')}",
|
|
322
|
+
"name": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"name\"]}')}",
|
|
323
|
+
"type": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"type\"]}')}",
|
|
324
|
+
"content": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"content\"]}')}",
|
|
325
|
+
"thumbnail_link": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"thumbnail_link\"]}')}",
|
|
326
|
+
"web_link": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"webview_link\"]}')}"
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**What Happens**:
|
|
334
|
+
1. Block 4 calls another recipe and returns an array of files
|
|
335
|
+
2. Block 5 maps each file in the array to a new structure
|
|
336
|
+
3. The `____source` field preserves the array structure
|
|
337
|
+
4. Each field maps to the corresponding property of each array item
|
|
338
|
+
5. The result is a transformed array with the new structure
|
|
339
|
+
|
|
340
|
+
### 4. Conditional References
|
|
341
|
+
Reference data conditionally:
|
|
342
|
+
|
|
343
|
+
```json
|
|
344
|
+
"#{_dp('data.mysql.insert_record.success') == true ? 'Success' : 'Failed'}"
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
## Common Data Mapping Scenarios
|
|
348
|
+
|
|
349
|
+
### 1. Recipe Function Parameter Mapping
|
|
350
|
+
**Trigger Block** (Block 0):
|
|
351
|
+
```json
|
|
352
|
+
{
|
|
353
|
+
"provider": "workato_recipe_function",
|
|
354
|
+
"name": "execute",
|
|
355
|
+
"as": "6b031f18",
|
|
356
|
+
"keyword": "trigger",
|
|
357
|
+
"input": {
|
|
358
|
+
"parameters_schema_json": "[{\"name\":\"issue_key\",\"type\":\"string\"}]"
|
|
359
|
+
},
|
|
360
|
+
"extended_output_schema": [
|
|
361
|
+
{
|
|
362
|
+
"name": "parameters",
|
|
363
|
+
"properties": [
|
|
364
|
+
{
|
|
365
|
+
"name": "issue_key",
|
|
366
|
+
"type": "string"
|
|
367
|
+
}
|
|
368
|
+
]
|
|
369
|
+
}
|
|
370
|
+
]
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
**Action Block** (Block 1):
|
|
375
|
+
```json
|
|
376
|
+
{
|
|
377
|
+
"provider": "jira",
|
|
378
|
+
"name": "upload_attachment",
|
|
379
|
+
"as": "62c5b5f6",
|
|
380
|
+
"keyword": "action",
|
|
381
|
+
"input": {
|
|
382
|
+
"id": "#{_dp('data.workato_recipe_function.6b031f18.parameters.issue_key')}"
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### 2. File Processing Pipeline
|
|
388
|
+
**Block 1** (Download File):
|
|
389
|
+
```json
|
|
390
|
+
{
|
|
391
|
+
"provider": "google_drive",
|
|
392
|
+
"name": "download_file_contents",
|
|
393
|
+
"as": "9672c97b",
|
|
394
|
+
"keyword": "action"
|
|
395
|
+
}
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
**Block 2** (Process File):
|
|
399
|
+
```json
|
|
400
|
+
{
|
|
401
|
+
"provider": "utility",
|
|
402
|
+
"name": "transform",
|
|
403
|
+
"as": "transform_data",
|
|
404
|
+
"keyword": "action",
|
|
405
|
+
"input": {
|
|
406
|
+
"data": "#{_dp('data.google_drive.9672c97b.content')}",
|
|
407
|
+
"file_name": "#{_dp('data.google_drive.9672c97b.name')}"
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
**Block 3** (Save Results):
|
|
413
|
+
```json
|
|
414
|
+
{
|
|
415
|
+
"provider": "mysql",
|
|
416
|
+
"name": "insert_record",
|
|
417
|
+
"as": "save_data",
|
|
418
|
+
"keyword": "action",
|
|
419
|
+
"input": {
|
|
420
|
+
"table": "processed_files",
|
|
421
|
+
"data": {
|
|
422
|
+
"file_name": "#{_dp('data.google_drive.9672c97b.name')}",
|
|
423
|
+
"processed_content": "#{_dp('data.utility.transform_data.result')}",
|
|
424
|
+
"file_size": "#{_dp('data.google_drive.9672c97b.size')}"
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### 3. API Response Chain
|
|
431
|
+
**Block 1** (HTTP Request):
|
|
432
|
+
```json
|
|
433
|
+
{
|
|
434
|
+
"provider": "rest",
|
|
435
|
+
"name": "get",
|
|
436
|
+
"as": "fetch_data",
|
|
437
|
+
"keyword": "action",
|
|
438
|
+
"input": {
|
|
439
|
+
"url": "https://api.example.com/data"
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
**Block 2** (Process Response):
|
|
445
|
+
```json
|
|
446
|
+
{
|
|
447
|
+
"provider": "utility",
|
|
448
|
+
"name": "filter",
|
|
449
|
+
"as": "filter_data",
|
|
450
|
+
"keyword": "action",
|
|
451
|
+
"input": {
|
|
452
|
+
"data": "#{_dp('data.rest.fetch_data.body')}",
|
|
453
|
+
"condition": "#{_dp('data.rest.fetch_data.status')} == 200"
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
**Block 3** (Return Response):
|
|
459
|
+
```json
|
|
460
|
+
{
|
|
461
|
+
"provider": "workato_api_platform",
|
|
462
|
+
"name": "return_response",
|
|
463
|
+
"as": "return_result",
|
|
464
|
+
"keyword": "action",
|
|
465
|
+
"input": {
|
|
466
|
+
"http_status_code": "200",
|
|
467
|
+
"body": {
|
|
468
|
+
"filtered_data": "#{_dp('data.utility.filter_data.result')}",
|
|
469
|
+
"original_status": "#{_dp('data.rest.fetch_data.status')}"
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
## Data Type Handling
|
|
476
|
+
|
|
477
|
+
### String Data
|
|
478
|
+
```json
|
|
479
|
+
"#{_dp('data.source_block.field_name')}"
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### Numeric Data
|
|
483
|
+
```json
|
|
484
|
+
"#{_dp('data.source_block.count') + 1}"
|
|
485
|
+
"#{_dp('data.source_block.price') * 1.1}"
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### Boolean Data
|
|
489
|
+
```json
|
|
490
|
+
"#{_dp('data.source_block.success') == true}"
|
|
491
|
+
"#{_dp('data.source_block.enabled') != false}"
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
### Array Data
|
|
495
|
+
```json
|
|
496
|
+
"#{_dp('data.source_block.items')}"
|
|
497
|
+
"#{_dp('data.source_block.files.0.name')}"
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### Object Data
|
|
501
|
+
```json
|
|
502
|
+
"#{_dp('data.source_block.user.name')}"
|
|
503
|
+
"#{_dp('data.source_block.response.data.id')}"
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
## Array Data Mapping Patterns
|
|
507
|
+
|
|
508
|
+
### 1. Simple Array References
|
|
509
|
+
Reference entire arrays or specific elements:
|
|
510
|
+
|
|
511
|
+
```json
|
|
512
|
+
// Reference entire array
|
|
513
|
+
"files": "#{_dp('data.google_drive.search_files.files')}"
|
|
514
|
+
|
|
515
|
+
// Reference specific array element
|
|
516
|
+
"first_file": "#{_dp('data.google_drive.search_files.files.0')}"
|
|
517
|
+
|
|
518
|
+
// Reference specific field of array element
|
|
519
|
+
"first_file_name": "#{_dp('data.google_drive.search_files.files.0.name')}"
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### 2. Array Transformation with Current Item Pattern
|
|
523
|
+
Transform array data using the `current_item` pattern:
|
|
524
|
+
|
|
525
|
+
```json
|
|
526
|
+
"transformed_files": {
|
|
527
|
+
"____source": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\"]}')}",
|
|
528
|
+
"id": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"id\"]}')}",
|
|
529
|
+
"name": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"name\"]}')}",
|
|
530
|
+
"type": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"workato_recipe_function\",\"line\":\"b2dacec4\",\"path\":[\"result\",\"files\",{\"path_element_type\":\"current_item\"},\"type\"]}')}"
|
|
531
|
+
}
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
**What This Does**:
|
|
535
|
+
- Takes an array of files from the source block
|
|
536
|
+
- Maps each file to a new structure with selected fields
|
|
537
|
+
- Preserves the array structure while transforming individual items
|
|
538
|
+
|
|
539
|
+
### 3. Array Filtering and Mapping
|
|
540
|
+
Filter arrays based on conditions:
|
|
541
|
+
|
|
542
|
+
```json
|
|
543
|
+
"filtered_files": "#{_dp('data.google_drive.search_files.files').filter(file => file.type == 'pdf')}"
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
**Note**: Array filtering syntax may vary by provider and context.
|
|
547
|
+
|
|
548
|
+
### 4. Array Aggregation
|
|
549
|
+
Combine array data into single values:
|
|
550
|
+
|
|
551
|
+
```json
|
|
552
|
+
"total_files": "#{_dp('data.google_drive.search_files.files').length}"
|
|
553
|
+
"file_names": "#{_dp('data.google_drive.search_files.files').map(file => file.name).join(', ')}"
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
### 5. Nested Array Handling
|
|
557
|
+
Handle arrays within arrays:
|
|
558
|
+
|
|
559
|
+
```json
|
|
560
|
+
// Source structure: { "folders": [{ "files": [{ "name": "doc.pdf" }] }] }
|
|
561
|
+
"file_names": "#{_dp('data.google_drive.folders.0.files.0.name')}"
|
|
562
|
+
|
|
563
|
+
// Using current_item for nested arrays
|
|
564
|
+
"all_files": {
|
|
565
|
+
"____source": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"google_drive\",\"line\":\"folder_block\",\"path\":[\"folders\"]}')}",
|
|
566
|
+
"folder_name": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"google_drive\",\"line\":\"folder_block\",\"path\":[\"folders\",{\"path_element_type\":\"current_item\"},\"name\"]}')}",
|
|
567
|
+
"files": {
|
|
568
|
+
"____source": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"google_drive\",\"line\":\"folder_block\",\"path\":[\"folders\",{\"path_element_type\":\"current_item\"},\"files\"]}')}",
|
|
569
|
+
"file_name": "#{_dp('{\"pill_type\":\"output\",\"provider\":\"google_drive\",\"line\":\"folder_block\",\"path\":[\"folders\",{\"path_element_type\":\"current_item\"},\"files\",{\"path_element_type\":\"current_item\"},\"name\"]}')}"
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
## Advanced Data Mapping
|
|
575
|
+
|
|
576
|
+
### 1. Multiple Source References
|
|
577
|
+
Reference data from multiple previous blocks:
|
|
578
|
+
|
|
579
|
+
```json
|
|
580
|
+
"input": {
|
|
581
|
+
"issue_key": "#{_dp('data.workato_recipe_function.6b031f18.parameters.issue_key')}",
|
|
582
|
+
"file_content": "#{_dp('data.google_drive.9672c97b.content')}",
|
|
583
|
+
"file_name": "#{_dp('data.google_drive.9672c97b.name')}",
|
|
584
|
+
"user_id": "#{_dp('data.mysql.get_user.id')}"
|
|
585
|
+
}
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### 2. Conditional Data Mapping
|
|
589
|
+
Use conditional logic for data mapping:
|
|
590
|
+
|
|
591
|
+
```json
|
|
592
|
+
"input": {
|
|
593
|
+
"status": "#{_dp('data.mysql.check_status.success') == true ? 'active' : 'inactive'}",
|
|
594
|
+
"message": "#{_dp('data.mysql.check_status.success') == true ? 'Success' : 'Failed: ' + _dp('data.mysql.check_status.error')}"
|
|
595
|
+
}
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
### 3. Data Transformation in Mapping
|
|
599
|
+
Transform data during mapping:
|
|
600
|
+
|
|
601
|
+
```json
|
|
602
|
+
"input": {
|
|
603
|
+
"file_name_upper": "#{_dp('data.google_drive.9672c97b.name').toUpperCase()}",
|
|
604
|
+
"file_size_mb": "#{_dp('data.google_drive.9672c97b.size') / 1024 / 1024}"
|
|
605
|
+
}
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
## Data Validation and Error Handling
|
|
609
|
+
|
|
610
|
+
### Common Data Reference Errors
|
|
611
|
+
|
|
612
|
+
#### 1. Invalid Provider Name
|
|
613
|
+
```json
|
|
614
|
+
// ❌ Wrong provider name
|
|
615
|
+
"#{_dp('data.google_drive_wrong.9672c97b.file.name')}"
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
#### 2. Invalid "as" Value
|
|
619
|
+
```json
|
|
620
|
+
// ❌ Wrong "as" value
|
|
621
|
+
"#{_dp('data.google_drive.wrong_as_value.file.name')}"
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
#### 3. Invalid Data Path
|
|
625
|
+
```json
|
|
626
|
+
// ❌ Field doesn't exist in source
|
|
627
|
+
"#{_dp('data.google_drive.9672c97b.nonexistent_field')}"
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
#### 4. Array Index Out of Bounds
|
|
631
|
+
```json
|
|
632
|
+
// ❌ Array index doesn't exist
|
|
633
|
+
"#{_dp('data.google_drive.9672c97b.files.999.name')}"
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
### Data Reference Validation
|
|
637
|
+
```bash
|
|
638
|
+
# Validate recipe data references
|
|
639
|
+
workato recipes validate --file recipe.json
|
|
640
|
+
|
|
641
|
+
# Check for data reference errors
|
|
642
|
+
workato recipes validate --file recipe.json --verbose
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
## Best Practices
|
|
646
|
+
|
|
647
|
+
### 1. Use Descriptive "as" Values
|
|
648
|
+
```json
|
|
649
|
+
// ✅ Good - descriptive and clear
|
|
650
|
+
"as": "download_file_action"
|
|
651
|
+
|
|
652
|
+
// ❌ Bad - unclear and hard to reference
|
|
653
|
+
"as": "abc123"
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
### 2. Choose the Right Input Mode
|
|
657
|
+
```json
|
|
658
|
+
// ✅ Text Input Mode - for simple concatenation
|
|
659
|
+
"display_name": "#{_dp('data.source_block.first_name')} #{_dp('data.source_block.last_name')}"
|
|
660
|
+
|
|
661
|
+
// ✅ Formula Mode - for data processing
|
|
662
|
+
"clean_id": "=_dp('data.source_block.id').split(':').first"
|
|
663
|
+
|
|
664
|
+
// ❌ Mixed Mode - can be confusing
|
|
665
|
+
"mixed": "=_dp('data.source_block.field') + ' - ' + _dp('data.source_block.other')"
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
### 3. Formula Mode Best Practices
|
|
669
|
+
```json
|
|
670
|
+
// ✅ Good - clear and readable
|
|
671
|
+
"id": "=_dp('data.source_block.complex_id').split(':').first"
|
|
672
|
+
|
|
673
|
+
// ✅ Good - with descriptive variable names
|
|
674
|
+
"file_extension": "=_dp('data.source_block.file_name').split('.').last"
|
|
675
|
+
|
|
676
|
+
// ❌ Bad - overly complex inline operations
|
|
677
|
+
"result": "=_dp('data.source_block.field').split(':').filter(item => item.length > 0).map(item => item.trim()).join('|')"
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### 4. Text Input Mode Best Practices
|
|
681
|
+
```json
|
|
682
|
+
// ✅ Good - clear concatenation
|
|
683
|
+
"full_path": "#{_dp('data.source_block.base_url')}/#{_dp('data.source_block.endpoint')}"
|
|
684
|
+
|
|
685
|
+
// ✅ Good - readable with spacing
|
|
686
|
+
"message": "Processing file: #{_dp('data.source_block.file_name')} (Size: #{_dp('data.source_block.file_size')} bytes)"
|
|
687
|
+
|
|
688
|
+
// ❌ Bad - hard to read without spacing
|
|
689
|
+
"message": "#{_dp('data.source_block.status')}#{_dp('data.source_block.code')}#{_dp('data.source_block.message')}"
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### 2. Consistent Naming Conventions
|
|
693
|
+
```json
|
|
694
|
+
// ✅ Good - consistent pattern
|
|
695
|
+
"as": "jira_upload_attachment"
|
|
696
|
+
"as": "google_drive_download_file"
|
|
697
|
+
"as": "mysql_insert_record"
|
|
698
|
+
|
|
699
|
+
// ❌ Bad - inconsistent patterns
|
|
700
|
+
"as": "jira_upload"
|
|
701
|
+
"as": "download_file"
|
|
702
|
+
"as": "mysql_insert"
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
### 3. Document Data Dependencies
|
|
706
|
+
```json
|
|
707
|
+
"comment": "Downloads file content for processing in next block",
|
|
708
|
+
"input": {
|
|
709
|
+
"file_id": "#{_dp('data.workato_recipe_function.6b031f18.parameters.file_id')}"
|
|
710
|
+
}
|
|
711
|
+
```
|
|
712
|
+
|
|
713
|
+
### 4. Validate Data References Early
|
|
714
|
+
Test data references as you build the recipe:
|
|
715
|
+
```bash
|
|
716
|
+
# Validate after each block addition
|
|
717
|
+
workato recipes validate --file recipe.json
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
## Troubleshooting Data Mapping
|
|
721
|
+
|
|
722
|
+
### Debug Data References
|
|
723
|
+
1. **Check provider names** - Ensure they match exactly
|
|
724
|
+
2. **Verify "as" values** - Must match source block exactly
|
|
725
|
+
3. **Validate data paths** - Use extended output schemas as reference
|
|
726
|
+
4. **Test incrementally** - Add blocks one at a time and validate
|
|
727
|
+
|
|
728
|
+
### Common Issues and Solutions
|
|
729
|
+
|
|
730
|
+
#### Issue: "Data reference not found"
|
|
731
|
+
**Solution**: Check the exact provider name and "as" value from the source block
|
|
732
|
+
|
|
733
|
+
#### Issue: "Field not available in schema"
|
|
734
|
+
**Solution**: Verify the field exists in the source block's `extended_output_schema`
|
|
735
|
+
|
|
736
|
+
#### Issue: "Array index out of bounds"
|
|
737
|
+
**Solution**: Ensure the array index exists or use conditional logic
|
|
738
|
+
|
|
739
|
+
#### Issue: "Type mismatch"
|
|
740
|
+
**Solution**: Check data types match between source and target fields
|
|
741
|
+
|
|
742
|
+
#### Issue: "Array mapping not working with current_item"
|
|
743
|
+
**Solution**:
|
|
744
|
+
- Ensure the source block has `extended_output_schema` with array definition
|
|
745
|
+
- Verify the `____source` field references the correct array path
|
|
746
|
+
- Check that all field mappings use the same `current_item` pattern
|
|
747
|
+
|
|
748
|
+
#### Issue: "Complex JSON syntax errors"
|
|
749
|
+
**Solution**:
|
|
750
|
+
- Escape quotes properly: `\"` instead of `"`
|
|
751
|
+
- Ensure the JSON path array is valid
|
|
752
|
+
- Verify `path_element_type` values are correct
|
|
753
|
+
- Use the simple syntax when possible for easier debugging
|
|
754
|
+
|
|
755
|
+
#### Issue: "Formula mode not working"
|
|
756
|
+
**Solution**:
|
|
757
|
+
- Ensure the formula starts with `=` (equals sign)
|
|
758
|
+
- Check that the data pill syntax is correct within the formula
|
|
759
|
+
- Verify the formula syntax is valid (proper method calls, operators)
|
|
760
|
+
- Test with simple formulas first before adding complexity
|
|
761
|
+
|
|
762
|
+
#### Issue: "Text concatenation not working as expected"
|
|
763
|
+
**Solution**:
|
|
764
|
+
- Use `#{_dp('...')}` syntax for text input mode
|
|
765
|
+
- Ensure proper spacing between data pills and literal text
|
|
766
|
+
- Check that all data pill references are valid
|
|
767
|
+
- Avoid mixing formula syntax (`=_dp`) in text input mode
|
|
768
|
+
|
|
769
|
+
#### Issue: "Mixed input modes causing errors"
|
|
770
|
+
**Solution**:
|
|
771
|
+
- Choose one input mode per field when possible
|
|
772
|
+
- Use formula mode for data processing, text mode for display
|
|
773
|
+
- Keep complex operations in formula mode
|
|
774
|
+
- Test each input mode separately before combining
|
|
775
|
+
|
|
776
|
+
## Next Steps
|
|
777
|
+
- [Formulas](./formulas.md) - Formula syntax, categories, and best practices
|
|
778
|
+
- [Naming Conventions](./naming-conventions.md) - Project and asset naming standards
|
|
779
|
+
- [Block Structure and Attributes](./block-structure.md)
|