oktakit 0.1.5 → 0.2.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 +7 -1
- data/Rakefile +3 -3
- data/lib/oktakit/client.rb +15 -6
- data/lib/oktakit/error.rb +1 -1
- data/lib/oktakit/version.rb +1 -1
- data/oktakit.gemspec +0 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c9ab3f2927fb37bff5e7f744fef1b776cea1e177
|
|
4
|
+
data.tar.gz: 14e391e87f55541c6ed309023e415e455e452486
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 60452d050ed044d24b3cc167ed21e785d6ac16afb728f88090355f637c9a794e9d9bb9cfb63d09ccbc3511f06a08ebad76350843df0c4f6556f854761e709839
|
|
7
|
+
data.tar.gz: f5e11f04ef1b29c96c7f4093ce6bc4c53abf2e3a7c470ce7e1af672cc9d5eb15b286504ffcb2c09af0a175b0dbbfe09cac98700f3d4ca1b39f0e186acfa6ca6a
|
data/README.md
CHANGED
|
@@ -26,6 +26,12 @@ client = Oktakit.new(token: 't0k3n', organization: 'my-great-org')
|
|
|
26
26
|
response, http_status = client.list_users
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
To work with the Okta sandbox (`<organization>.oktapreview.com`), set the `api_endpoint`:
|
|
30
|
+
|
|
31
|
+
```ruby
|
|
32
|
+
client = Oktakit.new(token: 't0k3n', api_endpoint: 'https://my-great-org.oktapreview.com/api/v1')
|
|
33
|
+
```
|
|
34
|
+
|
|
29
35
|
#### Pagination
|
|
30
36
|
Pass the `paginate` flag as options for any `get` action for Oktakit to autopaginate the response for you.
|
|
31
37
|
|
|
@@ -49,7 +55,7 @@ To anonymize the VCR data, first setup a real token and endpoint for Okta, such
|
|
|
49
55
|
- Set the `OKTA_TEST_TOKEN` environment variable (this should be real). Don't worry, it is automatically removed.
|
|
50
56
|
- Before committing, change `my-okta` to `okta-test` in `spec_helper.rb` and any VCR Cassettes.
|
|
51
57
|
|
|
52
|
-
The [API Test Client](
|
|
58
|
+
The [API Test Client](https://developer.okta.com/docs/api/getting_started/api_test_client) provided by Okta is also really helpful.
|
|
53
59
|
|
|
54
60
|
## Contributing
|
|
55
61
|
|
data/Rakefile
CHANGED
|
@@ -7,13 +7,13 @@ require 'rubocop/rake_task'
|
|
|
7
7
|
RuboCop::RakeTask.new
|
|
8
8
|
|
|
9
9
|
task test: :spec
|
|
10
|
-
task default: [
|
|
10
|
+
task default: %i[spec rubocop]
|
|
11
11
|
|
|
12
12
|
namespace :doc do
|
|
13
13
|
require 'yard'
|
|
14
14
|
YARD::Rake::YardocTask.new do |task|
|
|
15
|
-
task.files = %w
|
|
16
|
-
task.options = %w
|
|
15
|
+
task.files = %w[LICENSE.md lib/**/*.rb]
|
|
16
|
+
task.options = %w[--output-dir doc/yard --markup markdown]
|
|
17
17
|
end
|
|
18
18
|
task default: :yard
|
|
19
19
|
end
|
data/lib/oktakit/client.rb
CHANGED
|
@@ -31,9 +31,22 @@ module Oktakit
|
|
|
31
31
|
builder.adapter Faraday.default_adapter
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
def initialize(token:, organization:)
|
|
34
|
+
def initialize(token:, organization: nil, api_endpoint: nil)
|
|
35
|
+
if organization.nil? && api_endpoint.nil?
|
|
36
|
+
raise ArgumentError, "Please provide either the organization or the api_endpoint argument"
|
|
37
|
+
end
|
|
38
|
+
|
|
35
39
|
@token = token
|
|
36
40
|
@organization = organization
|
|
41
|
+
@api_endpoint = api_endpoint
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def api_endpoint
|
|
45
|
+
if @api_endpoint
|
|
46
|
+
@api_endpoint
|
|
47
|
+
else
|
|
48
|
+
"https://#{@organization.downcase}.okta.com/api/v1"
|
|
49
|
+
end
|
|
37
50
|
end
|
|
38
51
|
|
|
39
52
|
# Make a HTTP GET request
|
|
@@ -160,7 +173,7 @@ module Oktakit
|
|
|
160
173
|
options[:headers][:accept] = accept if accept
|
|
161
174
|
options[:headers][:content_type] = content_type if content_type
|
|
162
175
|
|
|
163
|
-
uri = URI::
|
|
176
|
+
uri = URI::DEFAULT_PARSER.escape("/api/v1" + path.to_s)
|
|
164
177
|
@last_response = resp = sawyer_agent.call(method, uri, data, options)
|
|
165
178
|
|
|
166
179
|
response = [resp.data, resp.status]
|
|
@@ -184,10 +197,6 @@ module Oktakit
|
|
|
184
197
|
}
|
|
185
198
|
end
|
|
186
199
|
|
|
187
|
-
def api_endpoint
|
|
188
|
-
"https://#{@organization}.okta.com/api/v1"
|
|
189
|
-
end
|
|
190
|
-
|
|
191
200
|
def absolute_to_relative_url(next_ref)
|
|
192
201
|
return unless next_ref
|
|
193
202
|
next_ref.href.sub(api_endpoint, '')
|
data/lib/oktakit/error.rb
CHANGED
|
@@ -88,7 +88,7 @@ module Oktakit
|
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
def redact_url(url_string)
|
|
91
|
-
%w
|
|
91
|
+
%w[client_secret access_token].each do |token|
|
|
92
92
|
url_string.gsub!(/#{token}=\S+/, "#{token}=(redacted)") if url_string.include? token
|
|
93
93
|
end
|
|
94
94
|
url_string
|
data/lib/oktakit/version.rb
CHANGED
data/oktakit.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: oktakit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Graeme Johnson
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2017-
|
|
12
|
+
date: 2017-10-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: sawyer
|
|
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
93
93
|
version: '0'
|
|
94
94
|
requirements: []
|
|
95
95
|
rubyforge_project:
|
|
96
|
-
rubygems_version: 2.6.
|
|
96
|
+
rubygems_version: 2.6.13
|
|
97
97
|
signing_key:
|
|
98
98
|
specification_version: 4
|
|
99
99
|
summary: Ruby toolkit for working with the Okta API
|