- Introduced a new plugin for WhatsApp Business that integrates webhook triggers for automated messaging workflows.
- Implemented triggers for text, image, and message delivery events, allowing users to respond to various message types.
- Added dynamic options fetching for available phone numbers and message templates.
- Included comprehensive documentation in README.md and manifest.yaml for setup and usage instructions.
- Enhanced security with signature validation for incoming webhook requests.
These additions provide a robust framework for automating interactions via WhatsApp, improving user engagement and operational efficiency.
- Added `TriggerIgnoreEventError` to handle cases where events should be ignored based on filter criteria.
- Updated various GitHub trigger files to return relevant payload fields directly, improving data accessibility for event handling.
- Enhanced the handling of event filtering in triggers to ensure only relevant events are processed.
These changes improve the robustness and clarity of the GitHub trigger integration, allowing for better error management and data handling.
- Refactored `TriggerInvokeResponse` to use `Mapping[str, Any]` for event representation.
- Renamed `properties` to `variables` in the `Event` class for clarity and updated the description accordingly.
- Expanded the event options in the GitHub trigger configuration to allow selection of all events.
- Removed the deprecated `issue_comment` trigger implementation and its associated files.
- Bumped version in `manifest.yaml` to 0.0.9 to reflect these changes.
These updates improve the flexibility and clarity of the GitHub trigger integration, allowing for a broader range of event handling.
- Removed redundant import paths for `fetch_repositories` in `github.py` and `issue_comment.py`.
- Updated import statements to use a consistent module path for better maintainability.
These changes enhance code organization and readability across the GitHub trigger implementation.
- Removed unused imports in `__init__.py` and `dynamic_options.py`.
- Consolidated import statements in `github.py` and `issue_comment.py` for better organization.
- Standardized string formatting in test cases for consistency.
- Enhanced overall code clarity and maintainability.
These changes contribute to a cleaner codebase and improved readability across the project.
- Updated `IssueCommentTrigger` and `GithubProvider` to support multiple event selections for GitHub triggers.
- Introduced a new `multiple` field in the trigger parameters to allow users to select multiple events.
- Implemented dynamic fetching of repository options based on OAuth credentials.
- Bumped version in `manifest.yaml` to 0.0.7 to reflect these enhancements.
This update improves the flexibility and usability of the GitHub trigger integration.
- Bumped version in manifest.yaml to 0.0.5.
- Enhanced OAuth credential retrieval to include the 'admin:repo_hook' scope.
- Improved payload parsing logic for better handling of incoming requests.
- Adjusted default event in provider configuration for clarity.
- Enhanced the GitHub provider to handle both form-encoded and JSON payloads from webhooks.
- Updated error handling to provide clearer messages for payload parsing issues.
- Ensured compatibility with various content types in incoming requests.
This change improves the robustness of the GitHub trigger integration by accommodating different data formats.
- Updated `PluginExecutor` to return a result upon validating provider credentials.
- Renamed `ValidateProviderCredentials` to `ValidateTriggerCredentials` for consistency in trigger actions.
- Improved the `PluginRegistration` class to return OAuth schemas for registered providers.
- Added new error classes for better handling of trigger provider credential validation and OAuth errors.
- Refactored HTTP request and response serialization/deserialization for improved clarity and functionality.
- Enhanced GitHub provider to utilize new error handling and validation mechanisms.
This commit improves the overall structure and error management of the trigger system, ensuring better integration and usability.
- Renamed `WebhookValidationError` to `TriggerValidationError` for consistency in error handling across trigger operations.
- Updated references to the new `TriggerValidationError` in the GitHub provider and trigger interfaces.
- Enhanced the `TriggerProvider` class to raise the new validation error for webhook signature issues.
- Adjusted the `IssueCommentTrigger` to return the correct event response type.
- Improved type hints and imports in various modules for better clarity and organization.
- Updated the GitHub trigger provider to include dynamic parameter options for user selection.
- Refactored the subscription schema to improve parameter definitions and added support for new credential types.
- Enhanced logging for installed triggers to provide clearer information.
- Adjusted the manifest versioning and naming conventions for better clarity and consistency.
- Introduced new response entities for trigger operations: TriggerInvokeResponse, TriggerDispatchResponse, TriggerSubscriptionResponse, TriggerUnsubscribeResponse, and TriggerRefreshResponse.
- Updated PluginExecutor methods to utilize the new response structures, improving clarity and consistency in trigger handling.
- Enhanced HTTP request parsing and response conversion utilities for better integration with various content types.
- Refactored GitHub provider to align with the updated trigger dispatch and subscription handling mechanisms.
- Removed the resubscribe_trigger method and its associated request entity.
- Updated subscription parameters to streamline the subscribe and unsubscribe processes.
- Enhanced the trigger provider interface to utilize the new subscription schema.
- Adjusted GitHub provider implementation to align with the updated subscription structure.
* chore: fix ruff issue
* feat(oauth): implement OAuth
* feat(invoke-message): refactor message handling and introduce InvokeMessage class
* feat(plugin-oauth): add credential_id and credential_type to tool parameters
* feat(plugin-oauth): add credential_id and credential_type to tool parameters
* chore: update dify_plugin version to 0.5.0b4 and clean up github.yaml
* chore: update plugin version to 0.1.2 in manifest.yaml
* feat(session): session context and tool backwards invocation credential support
* feat(oauth): session context and tool backwards invocation credential support
* feat: update README and requirements for OAuth support in version 0.4.2
* feat: add .gitignore to exclude IDE files and secret keys
* chore: apply ruff
* feat: bump version to 0.4.2b1
* feat: update GitHub plugin configuration for OAuth support and improve credential handling
* feat: update .gitignore to exclude dify plugin files and public keys
* feat: fix credential validation for GitHub API and bump version to 0.2.1
* feat: update GitHub plugin to support multiple access tokens and bump version to 0.2.5
* chore: apply ruff
* feat: add ToolProviderOAuthError for improved OAuth error handling in GitHub plugin
* chore: apply ruff
* chore: bump version to 0.4.2
* chore: update examples sdk version to 0.4.2
* fix: thread deadlock in PluginRunner when running tests without gevent monkey patching
* feat: add support for refreshing OAuth credentials in Plugin and GitHub provider
* feat: refactor OAuth credential handling to return structured OAuthCredentials object
* apply ruff
* feat: refactor OAuth credential handling to use ToolOAuthCredentials for improved structure
* feat: reorganize imports in __init__.py for improved clarity and structure
* feat: add Microsoft To Do plugin for refresh token example
* chore: apply ruff
* fix: update author in GitHub configuration and clean up Microsoft To Do schema
* chore: bump version to 0.4.2b2 in pyproject.toml
* feat: update Microsoft To Do plugin to handle OAuth token encoding and version bump
* feat:remove inelegant example
* chore: update dify_plugin version to 0.4.2
* chore: bump version to 0.4.2 in pyproject.toml
---------
Co-authored-by: Yeuoly <admin@srmxy.cn>
* feat: add dynamic select support
- Introduced ParameterOption class for parameter options with value, label, and optional icon.
- Updated ToolParameterOption to inherit from ParameterOption.
- Added DYNAMIC_SELECT to CommonParameterType enum.
- Implemented fetch_parameter_options method in Tool class for fetching parameter options.
- Created DynamicSelectProtocol for dynamic select functionality.
- Added tests for Tool construction and parameter options fetching.
* feat: implement dynamic parameter fetching functionality
- Added DynamicParameterFetchParameterOptionsRequest class for dynamic parameter requests.
- Introduced DynamicParameterActions enum for action types related to dynamic parameters.
- Enhanced PluginExecutor with methods to handle dynamic parameter fetching.
- Updated Tool interface to include a method for fetching parameter options.
- Documented the DynamicSelectProtocol for clarity on its usage.
* feat: enhance plugin functionality with dynamic parameter options and trigger interface
- Added dynamic parameter fetching capabilities to the Plugin class.
- Introduced TriggerProvider and Trigger classes for managing trigger functionalities.
- Updated Tool interface to enforce implementation of credential validation and OAuth methods.
- Enhanced error messages for NotImplementedError in ToolProvider and Trigger classes.
- Removed deprecated tools and their configurations from the codebase.
* docs: update README.md to include support for `dynamic-select` parameter type in manifest versioning
* chore: remove code_based_workflow
- Added dynamic parameter fetching capabilities to the Plugin class.
- Introduced TriggerProvider and Trigger classes for managing trigger functionalities.
- Updated Tool interface to enforce implementation of credential validation and OAuth methods.
- Enhanced error messages for NotImplementedError in ToolProvider and Trigger classes.
- Removed deprecated tools and their configurations from the codebase.
- Added CLI for generating documentation with `generate-docs` command.
- Introduced `SchemaDocumentationGenerator` to create structured documentation from schemas.
- Implemented `SchemaDoc` class for schema metadata and documentation management.
- Updated `PluginConfiguration` to include descriptions for plugin components.
- Added support for outside reference fields in the SchemaDocumentationGenerator to improve documentation clarity.
- Updated SchemaDoc to include outside_reference_fields parameter.
- Modified various entity classes to utilize outside_reference_fields for better schema representation.
- Introduced new container type checks and helper methods for handling dynamic fields in documentation generation.
* chore(python): temporarily disable `UP007` rule in Ruff
Disable the `UP007` rule temporarily due to numerous existing
violations in the current codebase.
* ci(python): add lint and test for Python SDK
* ci: Add mega-linter
* chore(python): Add final newline to markdown files
* fix(python): Fix linter issues by using ruff's auto fix
* fix(python): Fix TRY400 linter violations
Ruff suggests using `logger.exception` to log when
logging an exception, instead of using `logging.error`.
The former logs the exception and the traceback
automatically.
ref: https://docs.astral.sh/ruff/rules/error-instead-of-exception/
* fix(python): fix ruff linter violations
* test(python): Add Test cases for LLM entities
Test the initialization of `LLMResult` and `LLMResultChunk`.
* test(python): Add test for `AgentModelConfig`
Ensures that the `history_prompt_messages` attribute is
not shared between instances of `AgentModelConfig`.
* chore(python): output diffs in Ruff's format check
* style(python): format code with Ruff
* chore(python): Add a bash script for fix and format python code
* chore: add `persist-credentials: false` to checkout action
Enhances security by preventing subsequent
steps from accessing GitHub credentials, reducing
potential attack surfaces.
Ref: https://github.com/actions/checkout#checkout-v4