gdpr_admin 1.8.1 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +9 -0
- data/app/models/gdpr_admin/request.rb +9 -2
- data/lib/gdpr_admin/configuration.rb +2 -1
- data/lib/gdpr_admin/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9f2e3eb2d8eea4c910112fa0ca7c4fd4ac77816137321022205684a583086315
         | 
| 4 | 
            +
              data.tar.gz: 9ac8e526d9a38a54a88557a58cee645aa0a80aa2362fe01dfbd41f719440ae67
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d320fa119e9adecadce0703e19655a8267e11b159a8f5da6854fa939cc2c6002c0290b12b4f1729f21cbcfe82de098e540156165358b925ae6133c9ae11350e8
         | 
| 7 | 
            +
              data.tar.gz: f4ef6c026b32d33c9f05bd0dca8b1ec2ded1b66f22e7f477a874418bf4dbefac918c4ec3926e96cf483ff3fe19be12274a15791e994c6310928f2223c5727dbf
         | 
    
        data/README.md
    CHANGED
    
    | @@ -382,6 +382,15 @@ GdprAdmin.configure do |config| | |
| 382 382 | 
             
            end
         | 
| 383 383 | 
             
            ```
         | 
| 384 384 |  | 
| 385 | 
            +
            #### Rollback on Failure
         | 
| 386 | 
            +
            By default, GDPR Admin will attempt to rollback all changes made during the processing a Request in case it fails during the processing. This can be turned of with the flag `rollback_on_failure`. In this situation, all changes will be committed as soon as they are done.
         | 
| 387 | 
            +
             | 
| 388 | 
            +
            ```ruby
         | 
| 389 | 
            +
            GdprAdmin.configure do |config|
         | 
| 390 | 
            +
              config.rollback_on_failure = false
         | 
| 391 | 
            +
            end
         | 
| 392 | 
            +
            ```
         | 
| 393 | 
            +
             | 
| 385 394 | 
             
            ### Jobs
         | 
| 386 395 | 
             
            Requests are processed asynchronously using ActiveJob.
         | 
| 387 396 |  | 
| @@ -41,8 +41,8 @@ module GdprAdmin | |
| 41 41 |  | 
| 42 42 | 
             
                def process!
         | 
| 43 43 | 
             
                  GdprAdmin.load_data_policies
         | 
| 44 | 
            -
                  reload. | 
| 45 | 
            -
                   | 
| 44 | 
            +
                  reload.lock_strategy { processing! }
         | 
| 45 | 
            +
                  lock_strategy do
         | 
| 46 46 | 
             
                    process_policies
         | 
| 47 47 | 
             
                    completed!
         | 
| 48 48 | 
             
                  end
         | 
| @@ -67,6 +67,13 @@ module GdprAdmin | |
| 67 67 | 
             
                  RequestProcessorJob.set(wait: grace_period).perform_later(self)
         | 
| 68 68 | 
             
                end
         | 
| 69 69 |  | 
| 70 | 
            +
                def lock_strategy(&block)
         | 
| 71 | 
            +
                  return with_lock(&block) if GdprAdmin.config.rollback_on_failure
         | 
| 72 | 
            +
                  return with_advisory_lock(to_global_id.to_s, &block) if respond_to?(:with_advisory_lock)
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                  yield
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 70 77 | 
             
                private
         | 
| 71 78 |  | 
| 72 79 | 
             
                def grace_period
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            module GdprAdmin
         | 
| 4 4 | 
             
              class Configuration
         | 
| 5 5 | 
             
                attr_accessor :tenant_class, :data_policies_path, :default_job_queue,
         | 
| 6 | 
            -
                              :erasure_grace_period, :export_grace_period
         | 
| 6 | 
            +
                              :erasure_grace_period, :export_grace_period, :rollback_on_failure
         | 
| 7 7 | 
             
                attr_writer :tenant_adapter
         | 
| 8 8 |  | 
| 9 9 | 
             
                def initialize
         | 
| @@ -13,6 +13,7 @@ module GdprAdmin | |
| 13 13 | 
             
                  @default_job_queue = :default
         | 
| 14 14 | 
             
                  @erasure_grace_period = 4.hours
         | 
| 15 15 | 
             
                  @export_grace_period = nil
         | 
| 16 | 
            +
                  @rollback_on_failure = true
         | 
| 16 17 | 
             
                end
         | 
| 17 18 |  | 
| 18 19 | 
             
                def tenant_adapter
         | 
    
        data/lib/gdpr_admin/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: gdpr_admin
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.9.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Colex
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-03-15 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         |