Commit Graph

58 Commits

Author SHA1 Message Date
Yeuoly 31d7c7417e feat[0.1.0]: introduce 'run' command for local plugin execution (#283)
* feat: introduce 'run' command for local plugin execution

- Added a new command `run` to launch plugins locally, allowing communication through stdin/stdout.
- Removed the previous `test` command and its associated functionality to streamline the plugin testing process.

* feat: enhance 'run' command with TCP support

- Introduced a new `RunPluginPayload` structure to encapsulate plugin execution parameters.
- Added TCP communication mode to the `run` command, allowing multiple client connections.
- Updated command flags to configure run mode and logging options.
- Implemented client handling and server creation for both stdin/stdout and TCP modes.

* docs: improve comments in RunPlugin function for clarity

- Enhanced comments to provide clearer explanations of the plugin decoding process and the creation of client streams for both stdin/stdout and TCP modes.
- Updated comments to reflect the functionality and behavior of the plugin execution flow.

* refactor: update command structure and enhance plugin invocation handling

- Changed the command structure to add `runPluginCommand` under `pluginCommand` for better organization.
- Introduced `InvokePluginPayload` type to encapsulate plugin invocation details.
- Enhanced `RunPlugin` function to handle responses and errors more effectively, including logging to stdout.
- Updated client handling to support session management and improved error handling during plugin invocation.
- Renamed TCP server creation function for consistency.

* feat: enhance plugin response handling and logging capabilities

- Added a new flag `--response-format` to specify the output format (text or json) for plugin responses.
- Introduced a `logger` to manage logging output to stdout with timestamps and file information.
- Updated `logResponse` and `systemLog` functions to handle different response formats.
- Enhanced `handleClient` and `RunPlugin` functions to utilize the new response format feature.
- Implemented signal handling to clean up temporary directories on shutdown.

* feat: enhance plugin response structure and logging

- Added `InvokeID` to `InvokePluginPayload` and `GenericResponse` for better tracking of plugin invocations.
- Updated `logResponse` to include `InvokeID` in error responses for improved debugging.
- Enhanced client handling in `handleClient` to log plugin readiness and received requests.
- Refactored client stream creation for better readability and consistency.

* feat: add plugin invoke end response type and logging

- Introduced `GENERIC_RESPONSE_TYPE_PLUGIN_INVOKE_END` to enhance response tracking for plugin invocations.
- Updated `handleClient` to log the end of plugin invocation, improving visibility into the plugin lifecycle.

* chore: remove fullfeature tags
2025-05-16 14:20:29 +08:00
Taeyoung Park 5d83258371 Add optional Redis username authentication (#218)
* You can include username for Redis Auth

* Redis auth with username - test code update

* fix: tests

---------

Co-authored-by: Yeuoly <admin@srmxy.cn>
2025-04-25 20:42:14 +08:00
非法操作 25e013618a fix self.session.delete alway success (#12)
* fix self.session.delete alway success

* fix save data always failed

* redis delete response deleted item num

* add deleted num to invocate response
2025-04-11 13:32:52 +08:00
Yeuoly 26b61c3517 refactor: use random port for simulation server in redirect traffic test and add server readiness wait 2025-04-08 13:58:13 +09:00
Yeuoly 36e7a10169 fix: cobr unmarshal map[string]any to map[any]any, feat: add tests for redirecting traffic with path style and refactor redirect request logic 2025-04-08 13:51:26 +09:00
Yeuoly cddbad21be feat: add test for redirecting traffic without query parameters 2025-04-07 13:33:41 +09:00
Yeuoly 9e676b7468 feat: add test for redirecting traffic with query parameters and refactor URL construction logic 2025-04-07 13:32:28 +09:00
Yeuoly eed91f2359 feat: add X-Original-Host header handling in endpoint requests and improve request redirection URL construction 2025-04-07 13:28:53 +09:00
quicksandzn 6e32f5c505 optimize: tests 2025-03-27 14:55:37 +08:00
Yeuoly 1944a829d2 feat: add plugin access action to session write method (#64)
Modify session write method to include a new plugin access action parameter across multiple runtime implementations. This change allows for more granular tracking and handling of plugin interactions by introducing an optional action context to the write method.
2025-03-06 14:51:32 +08:00
Masashi Tomooka c6c882e86a support REDIS_USE_SSL config parameter (#21)
* support REDIS_USE_SSL config parameter

* fix tests

* add tests
2025-01-30 00:32:38 +08:00
Yeuoly 4e8d9c4e5e fix: avoid multiple existing message 2025-01-07 22:29:09 +08:00
Yeuoly 15060ee312 refactor: move entities to pkg 2025-01-06 14:52:02 +08:00
Yeuoly 8796edad8c refactor: confused code structure 2025-01-06 14:16:29 +08:00
Yeuoly 407fb941ca feat: support for pprof 2024-12-04 14:15:16 +08:00
Yeuoly 535921c44a fix: add some comments to test file 2024-11-27 19:38:38 +08:00
Yeuoly f1dbcf1835 fix: ci 2024-11-27 19:37:31 +08:00
Yeuoly 350bfafe14 fix: cluster scheduler controller 2024-11-27 18:59:56 +08:00
Yeuoly 94554c0934 fix: tests 2024-11-27 18:11:13 +08:00
Yeuoly 0af6f6fcd2 fix: ci 2024-11-27 00:07:16 +08:00
Yeuoly 883e12c516 plugin state id mismatched 2024-11-27 00:02:48 +08:00
Yeuoly 06ab89550a feat: support detailed logs 2024-11-26 23:42:35 +08:00
Yeuoly 09e214f2b2 feat: add bundle to plugin 2024-11-13 20:29:49 +08:00
Yeuoly 26fd94ebcd refactor: convert snakecase to camelcase 2024-11-12 21:24:41 +08:00
Yeuoly 670096c977 feat: support detailed error messages 2024-11-06 20:29:28 +08:00
Yeuoly 864b104fcc refactor: plugin assets management 2024-09-24 18:04:27 +08:00
Yeuoly 62a2a5c906 refactor: manifest 2024-09-13 15:21:36 +08:00
Yeuoly 0a23ebd3e1 release: aws handler 2024-09-12 23:18:38 +08:00
Yeuoly 1df861f9fc refactor: checksum 2024-09-11 14:46:16 +08:00
Yeuoly 8dd58b32c4 refactor 2024-09-09 20:03:32 +08:00
GareArc caee1daded fix: typo for checking map item existence 2024-09-04 23:51:18 -04:00
Yeuoly 3603a9c5b9 refactor 2024-09-04 14:39:07 +08:00
Yeuoly c8f699c9ce chore: cleanup 2024-09-03 22:39:17 +08:00
Yeuoly dc402cd948 refactor: plugin id/identity and plugin installation 2024-09-03 22:38:19 +08:00
Yeuoly c8c023521d add label to manifest 2024-09-02 20:16:10 +08:00
Yeuoly 8294a61d4c refactor: session manager 2024-08-23 23:27:43 +08:00
Yeuoly 11989403be refactor: backwards invocation 2024-08-23 20:58:33 +08:00
Yeuoly c714d99250 refactor: load plugins 2024-08-15 19:02:07 +08:00
Yeuoly 4972f3011f feat: register remote plugins 2024-08-07 17:39:16 +08:00
Yeuoly 6b554a40f7 tests: redirects 2024-08-07 17:02:01 +08:00
Yeuoly e844f96b4a refactor: address from ip to ip:port 2024-08-07 13:03:43 +08:00
Yeuoly 99d196c9bd tests: webhook 2024-08-05 16:30:22 +08:00
Yeuoly 0d5c4f6b98 fix: deepcopy directed http request 2024-08-05 15:23:57 +08:00
Yeuoly c86d0060c4 feat: redirect requests 2024-08-05 15:21:35 +08:00
Yeuoly 053623bed5 tests: voting 2024-08-05 13:54:12 +08:00
Yeuoly caa0b44a56 refactor: tests 2024-08-05 13:45:43 +08:00
Yeuoly 42a8826383 tests: plugin state lifetime in cluster 2024-08-01 18:23:55 +08:00
Yeuoly 5005aeb202 chore: clean 2024-08-01 17:31:07 +08:00
Yeuoly 21d930b4b7 fix: ci 2024-08-01 17:22:46 +08:00
Yeuoly 42c8451fe2 fix: ci 2024-08-01 17:19:54 +08:00