Skip to content
Snippets Groups Projects
  1. May 21, 2024
  2. 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
  3. 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
  4. Apr 12, 2024
  5. Apr 10, 2024
  6. 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
  7. Apr 08, 2024
  8. Apr 03, 2024
  9. Mar 18, 2024
  10. Mar 13, 2024
    • Arseniy Volynets's avatar
      feat: support batch dml · ab377bad
      Arseniy Volynets authored and Georgy Moshkin's avatar Georgy Moshkin committed
      - Add new DML op: Batch, which allows
      using multiple dml operations in one
      CAS request
      - If request has too many dml operations,
      the batch will be splitted into multiple
      batches, so that each batch can be stored
      in raft log
      ab377bad
  11. Mar 12, 2024
  12. 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
  13. Feb 26, 2024
  14. Feb 22, 2024
  15. Feb 07, 2024
  16. Feb 06, 2024
  17. Feb 05, 2024
  18. Dec 19, 2023
    • Dmitry Rodionov's avatar
      chore: deduplicate constants for admin user id · 4dde8dd8
      Dmitry Rodionov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Before this patch we've had ADMIN_ID in schema.rs and ADMIN_USER_ID
      in lib.rs. This patch removes ADMIN_USER_ID in favor of ADMIN_ID
      4dde8dd8
    • Dmitry Rodionov's avatar
      feat(audit) add initiator field to relevant events (almost all of them) · c2838650
      Dmitry Rodionov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      This patch adds initiator field to most of the events. Initiator is
      added to members of Op enum which do not contain it already (e g owner
      in CreateUser serves as initiator). To me it is reasonable to remove
      as_user from CaS/ACL checks because it matches initiator. But I decided
      not to do this just yet.
      
      Additionally I've mande small cleanup to UserMetadata to avoid need for
      intermediate step in decoding when we first fetch tuple and then decode
      it into model struct.
      
      Close https://git.picodata.io/picodata/picodata/picodata/-/issues/433
      c2838650
    • Kurdakov Alexander's avatar
      feat: check for circular role grants · 0845aa03
      Kurdakov Alexander authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      0845aa03
    • Dmitry Rodionov's avatar
      feat: validate combination of object type and privilege in PrivilegeDef · 7e8d2652
      Dmitry Rodionov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      At the later stage I discovered that sbroad applies the same validation
      rules during parsing of grant/revoke statements and even its own
      Privilege enum that is a ~copy of our PrivilegeType. Unfortunately
      at the moment there is no way to share code between picodata and sbroad
      efficiently (now only tarantool-module is shared and it is not suitable
      for such kind of things) so it still makes sense to have this in
      picodata because this is the point where all APIs converge to the single
      point (CaS). In the future all other ways of validation should be
      removed. Aside from sbroad similar kind of validation is performed
      independently on lua API side.
      
      Note that in prior commit 45ba7392 we've
      removed all privileges from role super. This patch removes privileges
      from admin that do not match the model: namely all privileges on
      universe except session and usage. With this patch it is no longer possible
      to grant or revoke such privileges.
      7e8d2652
    • Dmitry Rodionov's avatar
      refactor: make fields of PrivilegeDef private · 53dbcc69
      Dmitry Rodionov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      This allows future constructors to enforce invariants.
      Additionally this commit removes redundant set_schema_version on Op by
      passing schema version to corresponding Op constructors.
      53dbcc69
  19. Dec 04, 2023
  20. Nov 28, 2023
Loading