athens 0.3.2 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aeee2d9b7817273521ffe4d0f54865b8f5ce21d185175381ce9d8f013b4efca6
4
- data.tar.gz: c7ed5eacc1231fb5d81061bdfd700ca96bcab9f2e6635f3a9a24512de2f27107
3
+ metadata.gz: dce70371a1505fb7f63bfbcd872ba136b998b146b005e084ae7d4f3bf5394c7b
4
+ data.tar.gz: 69e24000860943707e5b52f24dbb2289e76e0dd35c970ca9f50a59aab07289cd
5
5
  SHA512:
6
- metadata.gz: 78c927b03a064c1e9d8ce3ae471aa6fc6f1852ba192abe69a14deae61bf8e020cebda5b3dcc6e8607a9944e373192df9f3ccb3ba23d9b8277ac4ac8b4043f006
7
- data.tar.gz: a0cc740c6bf5a6238e3ecf192257c187d94f8e05a34422661d538949a4207abb856d1930263cf489d2a1950770724e1e047f4b30185cdbd7a7e0fc8193d85f54
6
+ metadata.gz: e7b59f65553704094baf50bb4d609bacb2ec698f788ff89f27a679e9663418aa3c08282dbcd9a5a65c42a9b15065a74a2b35af111900b0965af103ef5538e29c
7
+ data.tar.gz: 62c44387712ce5bdc94da5f4091b676d7ef6e4a330ddd90732bc92f6e64cfb61a8078f93e3aaf930be04fc1e952a0c827cb4177c3c6226c37eedcbfee21b7aca
data/.gitignore CHANGED
@@ -8,4 +8,5 @@
8
8
  /tmp/
9
9
 
10
10
  /.vagrant/
11
- /ubuntu-xenial-16.04-cloudimg-console.log
11
+ /ubuntu-xenial-16.04-cloudimg-console.log
12
+ /vendor/
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## 0.3.6 / 2021-11-16
2
+
3
+ * Addition of :result_encryption as a configuration option to change encryption options for query results (https://github.com/getletterpress/athens/issues/12)
4
+ * Bumped development gem versions to latest releases
5
+
6
+ ## 0.3.5 / 2021-05-19
7
+
8
+ * Addition of :aws_profile as a configuration option for credentials (thanks [oisin](https://github.com/oisin))
9
+ * Fix for BigDecimal in Ruby 3.x (thanks [mediafinger](https://github.com/mediafinger))
10
+ * Bumped development gem versions to latest releases
11
+
12
+ ## 0.3.4 / 2021-03-02
13
+
14
+ * Added configurable polling period (thanks [jesseproudman](https://github.com/jesseproudman))
15
+
16
+ ## 0.3.3 / 2021-01-12
17
+
18
+ * Added support for Ruby 3.0 (thanks [blackjiro](https://github.com/blackjiro))
19
+
1
20
  ## 0.3.2 / 2020-11-24
2
21
 
3
22
  * Added optional `request_token` and `work_group` parameters to the query execute method (thanks [mediafinger](https://github.com/mediafinger))
data/Gemfile.lock CHANGED
@@ -1,34 +1,36 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- athens (0.3.1)
4
+ athens (0.3.6)
5
5
  aws-sdk-athena (~> 1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- aws-eventstream (1.1.0)
11
- aws-partitions (1.343.0)
12
- aws-sdk-athena (1.30.0)
13
- aws-sdk-core (~> 3, >= 3.99.0)
10
+ aws-eventstream (1.2.0)
11
+ aws-partitions (1.530.0)
12
+ aws-sdk-athena (1.43.0)
13
+ aws-sdk-core (~> 3, >= 3.122.0)
14
14
  aws-sigv4 (~> 1.1)
15
- aws-sdk-core (3.104.1)
15
+ aws-sdk-core (3.122.1)
16
16
  aws-eventstream (~> 1, >= 1.0.2)
17
- aws-partitions (~> 1, >= 1.239.0)
17
+ aws-partitions (~> 1, >= 1.525.0)
18
18
  aws-sigv4 (~> 1.1)
19
19
  jmespath (~> 1.0)
20
- aws-sigv4 (1.2.1)
20
+ aws-sigv4 (1.4.0)
21
21
  aws-eventstream (~> 1, >= 1.0.2)
22
22
  jmespath (1.4.0)
23
- rake (13.0.1)
23
+ rake (13.0.6)
24
+ rexml (3.2.5)
24
25
 
25
26
  PLATFORMS
26
27
  ruby
27
28
 
28
29
  DEPENDENCIES
29
30
  athens!
30
- bundler (~> 1.17)
31
+ bundler (>= 1.17)
31
32
  rake (~> 13.0)
33
+ rexml (~> 3.2)
32
34
 
33
35
  BUNDLED WITH
34
- 2.1.4
36
+ 2.2.5
data/README.md CHANGED
@@ -44,8 +44,8 @@ When your query is done, grab the results as an array:
44
44
  ```ruby
45
45
  results = query.to_a
46
46
  # [
47
- # ['column_1', 'column_2', 'column_3'],
48
- # [15, 'data', true],
47
+ # ['column_1', 'column_2', 'column_3'],
48
+ # [15, 'data', true],
49
49
  # [20, 'foo', false],
50
50
  # ...
51
51
  # ]
@@ -55,7 +55,7 @@ Or as a hash (which is really an array where each row is a hash):
55
55
  ```ruby
56
56
  results = query.to_h
57
57
  # [
58
- # {'column_1': 15, 'column_2': 'data', 'column_3': true},
58
+ # {'column_1': 15, 'column_2': 'data', 'column_3': true},
59
59
  # {'column_1': 20, 'column_2': 'foo', 'column_3': false},
60
60
  # ...
61
61
  # ]
@@ -87,9 +87,12 @@ Configure your AWS settings in an `Athens.configure` block (in rails put this in
87
87
  ```ruby
88
88
  Athens.configure do |config|
89
89
  config.output_location = "s3://my-bucket/my-folder/athena/results/" # Required
90
- config.aws_access_key = 'access' # Optional
91
- config.aws_secret_key = 'secret' # Optional
92
- config.aws_region = 'us-east-1' # Optional
90
+ config.aws_access_key = 'access' # Optional
91
+ config.aws_secret_key = 'secret' # Optional
92
+ config.aws_profile = 'myprofile' # Optional
93
+ config.aws_region = 'us-east-1' # Optional
94
+ config.wait_polling_period = 0.25 # Optional - What period should we poll for the complete query?
95
+ config.result_encryption = nil # Optional, see below
93
96
  end
94
97
  ```
95
98
 
@@ -103,6 +106,14 @@ conn = Athens::Connection.new(aws_client_override: {})
103
106
 
104
107
  Take a look at the [AWS Athena SDK](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Athena/Client.html#initialize-instance_method) for a list of all the available options.
105
108
 
109
+ The `result_encryption` option controls how the Athens results will be encrypted at the `output_location`. By default it's set to use the Amazon SSE encryption if you don't set it at all:
110
+
111
+ ```ruby
112
+ { encryption_option: "SSE_S3" }
113
+ ```
114
+
115
+ If you set it to `nil`, it'll default to the bucket encryption settings. You can also use a customer kms key, see https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Athena/Types/EncryptionConfiguration.html for the correct format.
116
+
106
117
  ### Advanced Usage
107
118
 
108
119
  Providing a database name to the connection is optional, if you omit the name you'll have to specify it in your query:
@@ -172,3 +183,4 @@ The gem is available as open source under the terms of the [WTFPL License](http:
172
183
  ## Code of Conduct
173
184
 
174
185
  Everyone interacting in the Athens project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/getletterpress/athens/blob/master/CODE_OF_CONDUCT.md).
186
+
data/athens.gemspec CHANGED
@@ -32,10 +32,11 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ["lib"]
34
34
 
35
- spec.required_ruby_version = '~> 2.4'
35
+ spec.required_ruby_version = '>= 2.4'
36
36
 
37
37
  spec.add_dependency "aws-sdk-athena", "~> 1"
38
38
 
39
- spec.add_development_dependency "bundler", "~> 1.17"
39
+ spec.add_development_dependency "bundler", ">= 1.17"
40
40
  spec.add_development_dependency "rake", "~> 13.0"
41
+ spec.add_development_dependency "rexml", "~> 3.2"
41
42
  end
@@ -1,15 +1,21 @@
1
1
  module Athens
2
2
  class Configuration
3
- attr_accessor :aws_access_key,
3
+ attr_accessor :aws_access_key,
4
4
  :aws_secret_key,
5
5
  :aws_region,
6
- :output_location
6
+ :output_location,
7
+ :wait_polling_period,
8
+ :aws_profile,
9
+ :result_encryption
7
10
 
8
11
  def initialize
9
12
  @aws_access_key = nil
10
13
  @aws_secret_key = nil
11
14
  @aws_region = nil
12
15
  @output_location = nil
16
+ @wait_polling_period = 0.25
17
+ @aws_profile = nil
18
+ @result_encryption = { encryption_option: "SSE_S3" }
13
19
  end
14
20
  end
15
- end
21
+ end
@@ -11,7 +11,8 @@ module Athens
11
11
  client_config = {
12
12
  access_key_id: Athens.configuration.aws_access_key,
13
13
  secret_access_key: Athens.configuration.aws_secret_key,
14
- region: Athens.configuration.aws_region
14
+ region: Athens.configuration.aws_region,
15
+ profile: Athens.configuration.aws_profile
15
16
  }.merge(aws_client_override).compact
16
17
 
17
18
  @client = Aws::Athena::Client.new(client_config)
@@ -47,9 +48,7 @@ module Athens
47
48
  def result_config
48
49
  Aws::Athena::Types::ResultConfiguration.new(
49
50
  output_location: Athens.configuration.output_location,
50
- encryption_configuration: {
51
- encryption_option: "SSE_S3"
52
- }
51
+ encryption_configuration: Athens.configuration.result_encryption
53
52
  )
54
53
  end
55
54
 
data/lib/athens/query.rb CHANGED
@@ -14,6 +14,7 @@ module Athens
14
14
 
15
15
  version = RUBY_VERSION.split('.').map {|v| v.to_i}
16
16
  @decimal_without_new = (version[0] >= 2 && version[1] >= 5)
17
+ @decimal_without_new = (version[0] == 2 && version[1] >= 5) || (version[0] >= 3)
17
18
  end
18
19
 
19
20
  def state
@@ -49,7 +50,7 @@ module Athens
49
50
  end
50
51
 
51
52
  # Wait a bit and check again
52
- sleep(0.25)
53
+ sleep(Athens.configuration.wait_polling_period.to_f)
53
54
  end
54
55
  end
55
56
 
@@ -173,9 +174,8 @@ module Athens
173
174
  end
174
175
 
175
176
  return mapped
176
- end
177
+ end
177
178
 
178
179
 
179
180
  end
180
181
  end
181
-
@@ -1,3 +1,3 @@
1
1
  module Athens
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: athens
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Schulte
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-24 00:00:00.000000000 Z
11
+ date: 2021-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-athena
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.17'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.17'
41
41
  - !ruby/object:Gem::Dependency
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '13.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rexml
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.2'
55
69
  description: Allows you to easily access AWS Athena databases and run queries
56
70
  email:
57
71
  - chris@oceanbreezesoftware.com
@@ -84,13 +98,13 @@ metadata:
84
98
  homepage_uri: https://github.com/getletterpress/athens
85
99
  source_code_uri: https://github.com/getletterpress/athens
86
100
  changelog_uri: https://github.com/getletterpress/athens/CHANGELOG.md
87
- post_install_message:
101
+ post_install_message:
88
102
  rdoc_options: []
89
103
  require_paths:
90
104
  - lib
91
105
  required_ruby_version: !ruby/object:Gem::Requirement
92
106
  requirements:
93
- - - "~>"
107
+ - - ">="
94
108
  - !ruby/object:Gem::Version
95
109
  version: '2.4'
96
110
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -99,8 +113,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
113
  - !ruby/object:Gem::Version
100
114
  version: '0'
101
115
  requirements: []
102
- rubygems_version: 3.1.4
103
- signing_key:
116
+ rubygems_version: 3.0.9
117
+ signing_key:
104
118
  specification_version: 4
105
119
  summary: Run simple SQL queries in AWS Athena
106
120
  test_files: []