Skip to content
Snippets Groups Projects
  1. May 22, 2024
    • godzie44's avatar
      chore(plugins): `update_plugin_tiers` API call is split into... · dad87908
      godzie44 authored and Georgy Moshkin's avatar Georgy Moshkin committed
      chore(plugins): `update_plugin_tiers` API call is split into `service_append_tier` and `service_remove_tier` calls
      dad87908
    • 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
  2. May 21, 2024
  3. May 20, 2024
    • Dmitry Ivanov's avatar
      fix: rust 1.78 doesn't like references to `static mut` objects · 2952e4bd
      Dmitry Ivanov authored
      This patch fixes a couple of warnings that look like this:
      
      ```
      warning: creating a shared reference to mutable static is discouraged
        --> src/error_injection.rs:23:43
         |
      23 |     let Some(injected_errors) = (unsafe { &INJECTED_ERRORS }) else {
         |                                           ^^^^^^^^^^^^^^^^ shared reference to mutable static
         |
         = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
         = note: this will be a hard error in the 2024 edition
         = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
      help: use `addr_of!` instead to create a raw pointer
         |
      23 |     let Some(injected_errors) = (unsafe { addr_of!(INJECTED_ERRORS) }) else {
         |                                           ~~~~~~~~~~~~~~~~~~~~~~~~~
      ```
      2952e4bd
  4. May 17, 2024
  5. May 16, 2024
    • Maksim Kaitmazian's avatar
      fix(pgproto): non-admin users can't read from query cache · c786dcd2
      Maksim Kaitmazian authored
      This commit fixes that non-admin users can't read queries from the query cache.
      An attempt to read from the cache used to result in the following error:
      sbroad error: failed to get space_def: box error: AccessDenied: Read access to space '_pico_table' is denied for user 'alex3'
      
      Previously, an error would occur when a user ran the same query twice.
      During the first execution, the query was prepared and cached. However,
      on the second execution, the client attempted to retrieve the query from the
      cache and encountered an access denied error.
      c786dcd2
    • Dmitry Ivanov's avatar
  6. May 15, 2024
  7. May 14, 2024
    • Arseniy Volynets's avatar
      fix: panic on non-unique index name · e041d7d1
      Arseniy Volynets authored
      - we didn't check that index name is unique
      in indexes meta table. That led to panics
      when index with same name was created for
      two tables.
      - previous commit set wrong sbroad submodule.
      Set sbroad submodule to correct commit
      e041d7d1
  8. May 08, 2024
  9. May 06, 2024
  10. May 03, 2024
    • godzie44's avatar
      feature: plugin topology · bb59a877
      godzie44 authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Plugin topology is a mapping plugin service to tiers.
      
      Introduce new `pico.update_plugin_tiers` API.
      This function may be used for control
      where plugin services must be running and where not.
      
      Plugin integration tests have also been refactored.
      bb59a877
  11. 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
  12. Apr 22, 2024
  13. Apr 19, 2024
  14. Apr 17, 2024
  15. Apr 16, 2024
  16. Apr 15, 2024
  17. Apr 12, 2024
Loading