Skip to content
Snippets Groups Projects
  1. Jul 25, 2024
  2. Jul 15, 2024
  3. Jul 04, 2024
    • Georgy Moshkin's avatar
      feat: introduce picoplugin::transport::rpc module · cb7e0a05
      Georgy Moshkin authored
      - use RouteBuilder to register rpc endpoints (input and ouptut is raw
        bytes for now)
      - use RequestBuilder to send RPC requests to other instances which are
        running a specified plugin.service (guarded by version)
          - supported routing by
              - explicit instance_id
              - replicaset_id
              - bucket_id
              - any available instance with given service
      - use context::Context to extract information about request or add
        custom fields at runtime (middleware not yet implemented)
      cb7e0a05
  4. Jun 26, 2024
  5. Jun 21, 2024
  6. Jun 19, 2024
  7. Jun 11, 2024
  8. Jun 03, 2024
  9. May 29, 2024
  10. May 22, 2024
    • godzie44's avatar
      chore(plugins): plugin system improvements · 664f32d8
      godzie44 authored and Georgy Moshkin's avatar Georgy Moshkin committed
      - add description field to `_pico_plugin` and `_pico_service`
      - plugin loading: filter files by its extensions
      - plugin loading: check possible service collisions
      - plugin loading: now plugin searching at {plugin_dir}/{plugin_name} path
      - now all errors between plugin and picodata wrapping with `BoxError` (this protects plugin caller from UAF)
      664f32d8
  11. May 21, 2024
  12. Apr 24, 2024
    • godzie44's avatar
      feature: two-step plugin installing and removing · 6a39a360
      godzie44 authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Now for installation and enable plugin, there are two steps instead of one
      (`pico.load_plugin` previously).
      1. Install plugin (`pico.install_plugin`):
      validate plugin, create system tables.
      2. Enable plugin (`pico.enable_plugin`):
      loads plugin into instances memory, call `on_start` callback.
      
      Same for a plugin removing process (`pico.remove_plugin` previously):
      1. Disable plugin (`pico.disable_plugin`): call `on_stop` callbacks, drop
      plugin from instances.
      2. Remove plugin (`pico.remove_plugin`):
      remove plugin meta from system tables.
      6a39a360
  13. Apr 12, 2024
  14. Apr 10, 2024
  15. Apr 09, 2024
    • godzie44's avatar
      feature: plugins · 26b11774
      godzie44 authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Introduce a plugin system for picodata cluster.
      Plugin system contains:
      - `picoplugin` crate with plugin interfaces.
      This crate exposes plugin interfaces for user implementation and API
      that used by picodata to interact with plugin as with a code from dynamic library.
      - Support for plugin work cycle in picodata instance work cycle.
      Picodata instance interacts with running plugin by `PluginManager`
      component.
      Typically, plugins react to events that occur in instance or whole cluster.
      - New lua API with plugin CRUD actions.
          - pico.create_plugin - load a new plugin into picodata cluster
          - pico.remove_plugin - remove plugin from picodata cluster
          - pico.update_plugin_config - update plugin service configuration
      26b11774
  16. Apr 08, 2024
  17. Apr 03, 2024
  18. Mar 18, 2024
  19. Mar 12, 2024
  20. Mar 07, 2024
    • Arseniy Volynets's avatar
      feat: support grant revoke procedure from sql · df8eb430
      Arseniy Volynets authored
      - Update sbroad submodule to commit with
      grant/revoke procedure support
      - Use existing mechanisms for grant/revoke
      ACL opcodes for grant/revoke procedure
      implementation
      - Add integration tests
      - Valid combinations:
      
      all procedures: grant/revoke create/execute/drop
      specific procedure: grant/revoke execute/drop
      
      - Syntax:
      
      grant create procedure to alice option(timeout=3)
      grant execute procedure on "spam"(int) to "alex"
      grant drop procedure on foo to bob
      revoke drop procedure on foo from bob
      df8eb430
  21. Mar 04, 2024
    • Arseniy Volynets's avatar
      feat: support rename procedure from sql · dd17afb3
      Arseniy Volynets authored
      - add new ddl opcode for renaming procedure
      - update sbroad submodule to get sql support
      - syntax:
      
      alter procedure "foo" rename to "bar" option(timeout=3)
      alter procedure "foo"(int, int) rename to "bar"
      dd17afb3
  22. Feb 22, 2024
  23. Feb 12, 2024
  24. Feb 08, 2024
  25. Feb 06, 2024
  26. Feb 05, 2024
Loading