swa 0.7.7 → 0.8.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/lib/swa/cli/lake_formation_command.rb +69 -0
- data/lib/swa/cli/main_command.rb +2 -0
- data/lib/swa/lake_formation/permission.rb +32 -0
- data/lib/swa/lake_formation/resource_info.rb +21 -0
- data/lib/swa/version.rb +1 -1
- data/swa.gemspec +1 -0
- metadata +20 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 36e1c1b0403a6cdb2a09bce49b2cc378f6b67f8abfbded1d6baf41d46e70504e
         | 
| 4 | 
            +
              data.tar.gz: 91755af27947ed3028f7da36e44e1e2a53ed0555ce99a0107a557ee4767e6632
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 2c93335b35ff3b0e070847deee928481a77634d295dfe2e2240308fec7c8f776cfa8f6ab9658bfface70dfcb124f7b10ec55ae75c5375be98ce0161b3f8d1b1e
         | 
| 7 | 
            +
              data.tar.gz: 1e64bf3fe18ba6398dc7d3af897a0223099b85a7112464a112a662d2caa763d35aa14c05d19de042ccdd35b36d4b78707938c720d8c5066504ca94c99fa21f57
         | 
| @@ -0,0 +1,69 @@ | |
| 1 | 
            +
            require "aws-sdk-lakeformation"
         | 
| 2 | 
            +
            require "swa/cli/base_command"
         | 
| 3 | 
            +
            require "swa/cli/collection_behaviour"
         | 
| 4 | 
            +
            require "swa/cli/item_behaviour"
         | 
| 5 | 
            +
            require "swa/lake_formation/resource_info"
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module Swa
         | 
| 8 | 
            +
              module CLI
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                class LakeFormationCommand < BaseCommand
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  subcommand ["permissions"], "Show permissions" do
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    self.description = <<-EOF
         | 
| 15 | 
            +
                      List permissions.
         | 
| 16 | 
            +
                    EOF
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    include CollectionBehaviour
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    private
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                    def collection
         | 
| 23 | 
            +
                      query_for(:list_permissions, :principal_resource_permissions, Swa::LakeFormation::Permission)
         | 
| 24 | 
            +
                    end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  protected
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  def lf_client
         | 
| 31 | 
            +
                    ::Aws::LakeFormation::Client.new(aws_config)
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  def query_for(query_method, response_key, model)
         | 
| 35 | 
            +
                    records = lf_client.public_send(query_method).public_send(response_key)
         | 
| 36 | 
            +
                    model.list(records)
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  subcommand ["resources"], "Show resources" do
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                    self.description = <<-EOF
         | 
| 42 | 
            +
                      List resources.
         | 
| 43 | 
            +
                    EOF
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    include CollectionBehaviour
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                    private
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                    def collection
         | 
| 50 | 
            +
                      query_for(:list_resources, :resource_info_list, Swa::LakeFormation::ResourceInfo)
         | 
| 51 | 
            +
                    end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                  protected
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  def lf_client
         | 
| 58 | 
            +
                    ::Aws::LakeFormation::Client.new(aws_config)
         | 
| 59 | 
            +
                  end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                  def query_for(query_method, response_key, model)
         | 
| 62 | 
            +
                    records = lf_client.public_send(query_method).public_send(response_key)
         | 
| 63 | 
            +
                    model.list(records)
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
              end
         | 
| 69 | 
            +
            end
         | 
    
        data/lib/swa/cli/main_command.rb
    CHANGED
    
    | @@ -6,6 +6,7 @@ require "swa/cli/elb_command" | |
| 6 6 | 
             
            require "swa/cli/glue_command"
         | 
| 7 7 | 
             
            require "swa/cli/iam_command"
         | 
| 8 8 | 
             
            require "swa/cli/kms_command"
         | 
| 9 | 
            +
            require "swa/cli/lake_formation_command"
         | 
| 9 10 | 
             
            require "swa/cli/s3_command"
         | 
| 10 11 |  | 
| 11 12 | 
             
            module Swa
         | 
| @@ -20,6 +21,7 @@ module Swa | |
| 20 21 | 
             
                  subcommand "glue", "Glue stuff", GlueCommand
         | 
| 21 22 | 
             
                  subcommand "iam", "IAM stuff", IamCommand
         | 
| 22 23 | 
             
                  subcommand "kms", "KMS stuff", KmsCommand
         | 
| 24 | 
            +
                  subcommand ["lf", "lakeformation"], "LakeFormation stuff", LakeFormationCommand
         | 
| 23 25 | 
             
                  subcommand "s3", "S3 stuff", S3Command
         | 
| 24 26 |  | 
| 25 27 | 
             
                  protected
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            require "swa/record"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Swa
         | 
| 4 | 
            +
              module LakeFormation
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                class Permission < Record
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def summary
         | 
| 9 | 
            +
                    [
         | 
| 10 | 
            +
                      principal_id,
         | 
| 11 | 
            +
                      permissions.join(","),
         | 
| 12 | 
            +
                      resource_summary
         | 
| 13 | 
            +
                    ].join("  ")
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  delegate :permissions
         | 
| 17 | 
            +
                  delegate :principal
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  def principal_id
         | 
| 20 | 
            +
                    aws_record.principal.data_lake_principal_identifier
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  def resource_summary
         | 
| 24 | 
            +
                    h = aws_record.resource.to_hash.compact
         | 
| 25 | 
            +
                    type, details = h.first
         | 
| 26 | 
            +
                    "#{type}:#{details.values.join("/")}"
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
            end
         | 
| @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            require "swa/record"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Swa
         | 
| 4 | 
            +
              module LakeFormation
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                class ResourceInfo < Record
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def summary
         | 
| 9 | 
            +
                    [
         | 
| 10 | 
            +
                      resource_arn,
         | 
| 11 | 
            +
                      role_arn
         | 
| 12 | 
            +
                    ].join("  ")
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  delegate :resource_arn
         | 
| 16 | 
            +
                  delegate :role_arn
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
            end
         | 
    
        data/lib/swa/version.rb
    CHANGED
    
    
    
        data/swa.gemspec
    CHANGED
    
    | @@ -30,6 +30,7 @@ Gem::Specification.new do |spec| | |
| 30 30 | 
             
              spec.add_runtime_dependency "aws-sdk-glue", "~> 1"
         | 
| 31 31 | 
             
              spec.add_runtime_dependency "aws-sdk-iam", "~> 1"
         | 
| 32 32 | 
             
              spec.add_runtime_dependency "aws-sdk-kms", "~> 1"
         | 
| 33 | 
            +
              spec.add_runtime_dependency "aws-sdk-lakeformation", "~> 1"
         | 
| 33 34 | 
             
              spec.add_runtime_dependency "aws-sdk-s3", "~> 1"
         | 
| 34 35 | 
             
              spec.add_runtime_dependency "pry"
         | 
| 35 36 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: swa
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.8.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Mike Williams
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024- | 
| 11 | 
            +
            date: 2024-03-07 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -136,6 +136,20 @@ dependencies: | |
| 136 136 | 
             
                - - "~>"
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 138 | 
             
                    version: '1'
         | 
| 139 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 140 | 
            +
              name: aws-sdk-lakeformation
         | 
| 141 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 | 
            +
                requirements:
         | 
| 143 | 
            +
                - - "~>"
         | 
| 144 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 145 | 
            +
                    version: '1'
         | 
| 146 | 
            +
              type: :runtime
         | 
| 147 | 
            +
              prerelease: false
         | 
| 148 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 149 | 
            +
                requirements:
         | 
| 150 | 
            +
                - - "~>"
         | 
| 151 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 152 | 
            +
                    version: '1'
         | 
| 139 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 140 154 | 
             
              name: aws-sdk-s3
         | 
| 141 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -282,6 +296,7 @@ files: | |
| 282 296 | 
             
            - lib/swa/cli/iam_command.rb
         | 
| 283 297 | 
             
            - lib/swa/cli/item_behaviour.rb
         | 
| 284 298 | 
             
            - lib/swa/cli/kms_command.rb
         | 
| 299 | 
            +
            - lib/swa/cli/lake_formation_command.rb
         | 
| 285 300 | 
             
            - lib/swa/cli/main_command.rb
         | 
| 286 301 | 
             
            - lib/swa/cli/s3_command.rb
         | 
| 287 302 | 
             
            - lib/swa/cli/selector.rb
         | 
| @@ -315,6 +330,8 @@ files: | |
| 315 330 | 
             
            - lib/swa/iam/user.rb
         | 
| 316 331 | 
             
            - lib/swa/kms/alias.rb
         | 
| 317 332 | 
             
            - lib/swa/kms/key.rb
         | 
| 333 | 
            +
            - lib/swa/lake_formation/permission.rb
         | 
| 334 | 
            +
            - lib/swa/lake_formation/resource_info.rb
         | 
| 318 335 | 
             
            - lib/swa/polyfill.rb
         | 
| 319 336 | 
             
            - lib/swa/record.rb
         | 
| 320 337 | 
             
            - lib/swa/resource.rb
         | 
| @@ -343,7 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 343 360 | 
             
                - !ruby/object:Gem::Version
         | 
| 344 361 | 
             
                  version: '0'
         | 
| 345 362 | 
             
            requirements: []
         | 
| 346 | 
            -
            rubygems_version: 3. | 
| 363 | 
            +
            rubygems_version: 3.5.3
         | 
| 347 364 | 
             
            signing_key:
         | 
| 348 365 | 
             
            specification_version: 4
         | 
| 349 366 | 
             
            summary: AWS, backwards
         |