chalk_ruby 0.1.1 → 0.1.3
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 +8 -4
- data/Rakefile +1 -1
- data/SECURITY.md +4 -4
- data/lib/chalk_ruby/client.rb +15 -8
- data/lib/chalk_ruby/config.rb +19 -14
- data/lib/chalk_ruby/version.rb +1 -1
- data/sig/chalk_ruby/client.rbs +9 -2
- data/sig/chalk_ruby/config.rbs +3 -1
- metadata +6 -6
- /data/test/{chalk_ai → chalk_ruby}/integration/client_test.rb +0 -0
- /data/test/{chalk_ai → chalk_ruby}/test_helper.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2ede1c8828c78063446a6dde9f51f7b9bc487c5d25a4ffc36d4fa48c200504b
|
4
|
+
data.tar.gz: 80d0d2513511d278d9ceeb2b64b71935287d9957c5f9df7e2e4758eea217b25f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0afdcc9b35ce5ae8a2cc4a1761e958ed844d0e0dc5e36f77192e538018fd420fca7ab0316a2ed4b6a85e4a05db896ace76385db236c5e1075d58ccd854396547
|
7
|
+
data.tar.gz: 55ef6712afc0f55785065e19a8ef9392c1319851df453742192703cd4f396c4ae9971b429464b6bd40443956193d9036fa84975eaee37113e22c3fc8971ad654
|
data/README.md
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
## ChalkRuby Ruby
|
2
2
|
|
3
|
-
|
3
|
+
[](https://badge.fury.io/rb/chalk_ruby)
|
4
|
+
|
5
|
+
Ruby client for Chalk!
|
6
|
+
|
7
|
+
https://rubygems.org/gems/chalk_ruby
|
4
8
|
|
5
9
|
## Getting Started
|
6
10
|
|
7
|
-
First, install
|
11
|
+
First, install `chalk_ruby` via the [RubyGems](https://rubygems.org/) package manager:
|
8
12
|
|
9
13
|
```bash
|
10
|
-
gem install
|
14
|
+
gem install chalk_ruby
|
11
15
|
```
|
12
16
|
|
13
17
|
Then, create a new client using your client ID and client secret:
|
@@ -22,4 +26,4 @@ results = client.query(
|
|
22
26
|
|
23
27
|
## License
|
24
28
|
|
25
|
-
The
|
29
|
+
The Chalk Ruby API Client is an open-sourced software licensed under the [Apache 2 License](LICENSE.md).
|
data/Rakefile
CHANGED
@@ -17,7 +17,7 @@ namespace :test do
|
|
17
17
|
Rake::TestTask.new(:integration) do |t|
|
18
18
|
t.libs << 'test'
|
19
19
|
t.libs << 'lib'
|
20
|
-
t.test_files = FileList['test/
|
20
|
+
t.test_files = FileList['test/chalk_ruby/integration/**/*_test.rb']
|
21
21
|
t.verbose = true
|
22
22
|
t.warning = false
|
23
23
|
end
|
data/SECURITY.md
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
## Security
|
2
2
|
|
3
|
-
If you believe you have found a security vulnerability in
|
3
|
+
If you believe you have found a security vulnerability in Chalk's Ruby package, please report it to us!
|
4
4
|
|
5
5
|
### Reporting Security Issues
|
6
6
|
|
7
7
|
**Please do not report security vulnerabilities through public GitHub issues.**
|
8
8
|
|
9
|
-
Please email security concerns to [security@
|
9
|
+
Please email security concerns to [security@chalk.ai](mailto:security@chalk.ai).
|
10
10
|
|
11
11
|
### Security Overview
|
12
12
|
|
13
|
-
https://docs.
|
13
|
+
https://docs.chalk.ai/docs/security
|
14
14
|
|
15
15
|
### SOC-2 Report
|
16
16
|
|
17
|
-
To request access to ChalkRuby's SOC-2 report, please email [security@
|
17
|
+
To request access to ChalkRuby's SOC-2 report, please email [security@chalk.ai](mailto:security@chalk_ruby.ai).
|
data/lib/chalk_ruby/client.rb
CHANGED
@@ -26,6 +26,9 @@ module ChalkRuby
|
|
26
26
|
# @param api_server [String]
|
27
27
|
# ChalkRuby API server
|
28
28
|
#
|
29
|
+
# @param additional_headers [Hash[String, String]]
|
30
|
+
# Additional headers to be sent with every request. Typically not required.
|
31
|
+
#
|
29
32
|
# @return self
|
30
33
|
#
|
31
34
|
def self.create(
|
@@ -33,14 +36,16 @@ module ChalkRuby
|
|
33
36
|
client_secret = nil,
|
34
37
|
environment = nil,
|
35
38
|
query_server = nil,
|
36
|
-
api_server = nil
|
39
|
+
api_server = nil,
|
40
|
+
additional_headers = {}
|
37
41
|
)
|
38
42
|
config = Config.new(
|
39
43
|
client_id: client_id,
|
40
44
|
client_secret: client_secret,
|
41
45
|
environment: environment,
|
42
46
|
query_server: query_server,
|
43
|
-
api_server: api_server
|
47
|
+
api_server: api_server,
|
48
|
+
additional_headers: additional_headers
|
44
49
|
)
|
45
50
|
create_with_config(config)
|
46
51
|
end
|
@@ -153,7 +158,7 @@ module ChalkRuby
|
|
153
158
|
include_meta: include_meta || false,
|
154
159
|
store_plan_stages: store_plan_stages || false
|
155
160
|
},
|
156
|
-
headers:
|
161
|
+
headers: get_authenticated_engine_headers(branch: branch)
|
157
162
|
)
|
158
163
|
end
|
159
164
|
|
@@ -221,15 +226,17 @@ module ChalkRuby
|
|
221
226
|
)
|
222
227
|
end
|
223
228
|
|
224
|
-
def
|
225
|
-
t
|
226
|
-
{
|
229
|
+
def get_authenticated_engine_headers(branch:)
|
230
|
+
t = valid_token
|
231
|
+
tokens = {
|
227
232
|
'Content-Type': 'application/json',
|
228
233
|
'Accept': 'application/json',
|
229
234
|
'Authorization': 'Bearer ' + t.token,
|
230
235
|
'X-Chalk-Env-Id': @config.environment || t.environment,
|
231
|
-
'X-Chalk-Branch-Id': branch
|
236
|
+
'X-Chalk-Branch-Id': branch,
|
237
|
+
'X-Chalk-Deployment-Type': branch.nil? ? 'engine' : 'branch'
|
232
238
|
}
|
239
|
+
tokens.merge(@config.additional_headers)
|
233
240
|
end
|
234
241
|
|
235
242
|
def get_unauthenticated_headers
|
@@ -237,7 +244,7 @@ module ChalkRuby
|
|
237
244
|
'Content-Type': 'application/json',
|
238
245
|
'Accept': 'application/json',
|
239
246
|
'X-Chalk-Env-Id': @config.environment
|
240
|
-
}
|
247
|
+
}.merge(@config.additional_headers)
|
241
248
|
end
|
242
249
|
|
243
250
|
def query_server_host
|
data/lib/chalk_ruby/config.rb
CHANGED
@@ -10,7 +10,8 @@ module ChalkRuby
|
|
10
10
|
:environment,
|
11
11
|
:query_timeout,
|
12
12
|
:api_timeout,
|
13
|
-
:connect_timeout
|
13
|
+
:connect_timeout,
|
14
|
+
:additional_headers
|
14
15
|
|
15
16
|
# Creates a new ChalkRuby::Config object for use with ChalkRuby::Client.
|
16
17
|
#
|
@@ -30,24 +31,28 @@ module ChalkRuby
|
|
30
31
|
# The API server to use.
|
31
32
|
# If not provided, it will be read from the CHALK_API_SERVER environment variable.
|
32
33
|
#
|
33
|
-
# @option options [
|
34
|
-
# The timeout for
|
34
|
+
# @option options [Float?] :query_timeout
|
35
|
+
# The timeout for query operations (in seconds).
|
35
36
|
#
|
36
|
-
# @option options [
|
37
|
-
# The timeout for
|
37
|
+
# @option options [Float?] :api_timeout
|
38
|
+
# The timeout for non-query API operations (in seconds).
|
38
39
|
#
|
39
|
-
# @option options [
|
40
|
+
# @option options [Float?] :connect_timeout
|
40
41
|
# The timeout for connect operations (in seconds).
|
41
42
|
#
|
43
|
+
# @option options [Hash<String, String>?] :additional_headers
|
44
|
+
# Additional headers to be sent with every request. Typically not required.
|
45
|
+
#
|
42
46
|
def initialize(opts = {})
|
43
|
-
@client_id
|
44
|
-
@client_secret
|
45
|
-
@environment
|
46
|
-
@query_server
|
47
|
-
@api_server
|
48
|
-
@query_timeout
|
49
|
-
@api_timeout
|
50
|
-
@connect_timeout
|
47
|
+
@client_id = opts[:client_id] || ENV['CHALK_CLIENT_ID']
|
48
|
+
@client_secret = opts[:client_secret] || ENV['CHALK_CLIENT_SECRET']
|
49
|
+
@environment = opts[:environment] || ENV['CHALK_ACTIVE_ENVIRONMENT']
|
50
|
+
@query_server = opts[:query_server] || ENV['CHALK_QUERY_SERVER'] || Defaults::QUERY_SERVER
|
51
|
+
@api_server = opts[:api_server] || ENV['CHALK_API_SERVER'] || Defaults::API_SERVER
|
52
|
+
@query_timeout = opts[:query_timeout] || Defaults::QUERY_TIMEOUT
|
53
|
+
@api_timeout = opts[:api_timeout] || Defaults::API_TIMEOUT
|
54
|
+
@connect_timeout = opts[:connect_timeout] || Defaults::CONNECT_TIMEOUT
|
55
|
+
@additional_headers = opts[:additional_headers] || {}
|
51
56
|
|
52
57
|
raise ChalkError, 'No Client ID provided, please set :client_id' if @client_id.nil?
|
53
58
|
raise ChalkError, 'No Client Secret provided, please set :client_secret' if @client_secret.nil?
|
data/lib/chalk_ruby/version.rb
CHANGED
data/sig/chalk_ruby/client.rbs
CHANGED
@@ -4,7 +4,14 @@ module ChalkRuby
|
|
4
4
|
@token: Token?
|
5
5
|
@transporter: Http::HttpRequesterChalk
|
6
6
|
|
7
|
-
def self.create:
|
7
|
+
def self.create: (
|
8
|
+
String? client_id,
|
9
|
+
String? client_secret,
|
10
|
+
String? environment,
|
11
|
+
String? query_server,
|
12
|
+
String? api_server,
|
13
|
+
Hash[String, String]? additional_headers
|
14
|
+
) -> Client
|
8
15
|
|
9
16
|
def self.create_with_config: -> Client
|
10
17
|
|
@@ -27,7 +34,7 @@ module ChalkRuby
|
|
27
34
|
|
28
35
|
private
|
29
36
|
|
30
|
-
def
|
37
|
+
def get_authenticated_engine_headers: (String? branch) -> Hash[Symbol, String | nil]
|
31
38
|
|
32
39
|
def get_unauthenticated_headers: -> Hash[Symbol, String | nil]
|
33
40
|
|
data/sig/chalk_ruby/config.rbs
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
module ChalkRuby
|
2
2
|
class Config
|
3
|
+
attr_accessor additional_headers: Hash[String, String]?
|
3
4
|
attr_accessor client_id: String
|
4
5
|
attr_accessor client_secret: String
|
5
6
|
|
@@ -22,7 +23,8 @@ module ChalkRuby
|
|
22
23
|
query_timeout: Integer?,
|
23
24
|
api_timeout: Integer?,
|
24
25
|
connect_timeout: Integer?,
|
25
|
-
compression_type: String
|
26
|
+
compression_type: String?,
|
27
|
+
additional_headers: Hash[String, String]?
|
26
28
|
}
|
27
29
|
|
28
30
|
def initialize: (options opts) -> void
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chalk_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chalk AI, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -236,8 +236,8 @@ files:
|
|
236
236
|
- sig/chalk_ruby/http/response.rbs
|
237
237
|
- sig/chalk_ruby/token.rbs
|
238
238
|
- sig/chalk_ruby/versions.rbs
|
239
|
-
- test/
|
240
|
-
- test/
|
239
|
+
- test/chalk_ruby/integration/client_test.rb
|
240
|
+
- test/chalk_ruby/test_helper.rb
|
241
241
|
homepage: https://github.com/chalk-ai/chalk-ruby
|
242
242
|
licenses:
|
243
243
|
- Apache-2.0
|
@@ -265,5 +265,5 @@ signing_key:
|
|
265
265
|
specification_version: 4
|
266
266
|
summary: A simple Ruby client for Chalk
|
267
267
|
test_files:
|
268
|
-
- test/
|
269
|
-
- test/
|
268
|
+
- test/chalk_ruby/integration/client_test.rb
|
269
|
+
- test/chalk_ruby/test_helper.rb
|
File without changes
|
File without changes
|