skull_island 1.2.9 → 1.2.10
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/Gemfile.lock +22 -10
- data/README.md +12 -1
- data/lib/skull_island/api_client_base.rb +18 -5
- data/lib/skull_island/resources/access_control_list.rb +2 -1
- data/lib/skull_island/resources/basicauth_credential.rb +2 -1
- data/lib/skull_island/resources/jwt_credential.rb +2 -1
- data/lib/skull_island/resources/keyauth_credential.rb +2 -1
- data/lib/skull_island/resources/plugin.rb +12 -6
- data/lib/skull_island/resources/route.rb +2 -1
- data/lib/skull_island/resources/upstream.rb +1 -1
- data/lib/skull_island/resources/upstream_target.rb +2 -1
- data/lib/skull_island/version.rb +1 -1
- data/skull_island.gemspec +4 -3
- metadata +22 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cc28c229371cd2d9f0cfef962e87ac95f27da4bd38d4a1990d2ba43ff0b9c275
|
|
4
|
+
data.tar.gz: 2d61dbedf12cca6c6d05c4b587a842dd0251d04182db207b14767f6b1aa34f1d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 100978336f6bbb9b8c7ef129c84ce98cf32139564e44818024ba4026118bbd5e75895a03e1ecd66bea299ef7bc0d9d3f7c424340d1676850e11b6af44bba5a1d
|
|
7
|
+
data.tar.gz: f1b508505ac2dbbfaab2e1091cc4c59f9b7be19337b44ee38de9132bc6ef05c3db5306563d0fe40c7350e3bf3041c93316759f51cacb470812e5163d8c35204b
|
data/Gemfile.lock
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
skull_island (1.2.
|
|
4
|
+
skull_island (1.2.10)
|
|
5
5
|
deepsort (~> 0.4)
|
|
6
6
|
erubi (~> 1.8)
|
|
7
7
|
json (~> 2.1)
|
|
8
8
|
linguistics (~> 2.1)
|
|
9
|
-
rest-client (~> 2.
|
|
9
|
+
rest-client (~> 2.1)
|
|
10
10
|
thor (~> 0.20)
|
|
11
11
|
will_paginate (~> 3.1)
|
|
12
12
|
|
|
@@ -16,6 +16,12 @@ GEM
|
|
|
16
16
|
addressable (2.4.0)
|
|
17
17
|
ast (2.4.0)
|
|
18
18
|
backports (3.15.0)
|
|
19
|
+
coveralls (0.7.1)
|
|
20
|
+
multi_json (~> 1.3)
|
|
21
|
+
rest-client
|
|
22
|
+
simplecov (>= 0.7)
|
|
23
|
+
term-ansicolor
|
|
24
|
+
thor
|
|
19
25
|
deepsort (0.4.2)
|
|
20
26
|
diff-lcs (1.3)
|
|
21
27
|
docile (1.3.2)
|
|
@@ -37,6 +43,7 @@ GEM
|
|
|
37
43
|
net-http-persistent (~> 2.9)
|
|
38
44
|
net-http-pipeline
|
|
39
45
|
highline (1.7.10)
|
|
46
|
+
http-accept (1.7.0)
|
|
40
47
|
http-cookie (1.0.3)
|
|
41
48
|
domain_name (~> 0.5)
|
|
42
49
|
jaro_winkler (1.5.3)
|
|
@@ -46,23 +53,24 @@ GEM
|
|
|
46
53
|
linguistics (2.1.0)
|
|
47
54
|
loggability (~> 0.11)
|
|
48
55
|
loggability (0.14.0)
|
|
49
|
-
mime-types (3.
|
|
56
|
+
mime-types (3.3)
|
|
50
57
|
mime-types-data (~> 3.2015)
|
|
51
|
-
mime-types-data (3.2019.
|
|
58
|
+
mime-types-data (3.2019.0904)
|
|
52
59
|
multi_json (1.13.1)
|
|
53
60
|
multipart-post (2.1.1)
|
|
54
61
|
net-http-persistent (2.9.4)
|
|
55
62
|
net-http-pipeline (1.0.1)
|
|
56
63
|
netrc (0.11.0)
|
|
57
64
|
parallel (1.17.0)
|
|
58
|
-
parser (2.6.
|
|
65
|
+
parser (2.6.4.0)
|
|
59
66
|
ast (~> 2.4.0)
|
|
60
67
|
pusher-client (0.6.2)
|
|
61
68
|
json
|
|
62
69
|
websocket (~> 1.0)
|
|
63
70
|
rainbow (3.0.0)
|
|
64
|
-
rake (
|
|
65
|
-
rest-client (2.0
|
|
71
|
+
rake (12.3.3)
|
|
72
|
+
rest-client (2.1.0)
|
|
73
|
+
http-accept (>= 1.7.0, < 2.0)
|
|
66
74
|
http-cookie (>= 1.0.2, < 2.0)
|
|
67
75
|
mime-types (>= 1.16, < 4.0)
|
|
68
76
|
netrc (~> 0.8)
|
|
@@ -92,7 +100,10 @@ GEM
|
|
|
92
100
|
json (>= 1.8, < 3)
|
|
93
101
|
simplecov-html (~> 0.10.0)
|
|
94
102
|
simplecov-html (0.10.2)
|
|
103
|
+
term-ansicolor (1.7.1)
|
|
104
|
+
tins (~> 1.0)
|
|
95
105
|
thor (0.20.3)
|
|
106
|
+
tins (1.21.1)
|
|
96
107
|
travis (1.8.10)
|
|
97
108
|
backports
|
|
98
109
|
faraday (~> 0.9)
|
|
@@ -109,7 +120,7 @@ GEM
|
|
|
109
120
|
unf_ext (0.0.7.6)
|
|
110
121
|
unicode-display_width (1.6.0)
|
|
111
122
|
websocket (1.2.8)
|
|
112
|
-
will_paginate (3.1.
|
|
123
|
+
will_paginate (3.1.8)
|
|
113
124
|
yard (0.9.20)
|
|
114
125
|
|
|
115
126
|
PLATFORMS
|
|
@@ -117,10 +128,11 @@ PLATFORMS
|
|
|
117
128
|
|
|
118
129
|
DEPENDENCIES
|
|
119
130
|
bundler (~> 2.0)
|
|
120
|
-
|
|
131
|
+
coveralls (~> 0.7)
|
|
132
|
+
rake (~> 12.0)
|
|
121
133
|
rspec (~> 3.0)
|
|
122
134
|
rubocop (~> 0.50)
|
|
123
|
-
simplecov (~> 0.
|
|
135
|
+
simplecov (~> 0.17)
|
|
124
136
|
skull_island!
|
|
125
137
|
travis (~> 1.8)
|
|
126
138
|
yard (~> 0.9.20)
|
data/README.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
A full-featured SDK for [Kong](https://konghq.com/kong/) 1.1.x/1.2.x (with support for migrating from 0.14.x). Note that this is unofficial (meaning this project is in no way officially endorsed, recommended, or related to Kong [as a company](https://konghq.com/) or an [open-source project](https://github.com/Kong/kong)). It is also in no way related to the [pet toy company](https://www.kongcompany.com/) by the same name (but hopefully that was obvious).
|
|
4
4
|
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
5
10
|
## Installation
|
|
6
11
|
|
|
7
12
|
### CLI Tool
|
|
@@ -262,9 +267,15 @@ plugins:
|
|
|
262
267
|
|
|
263
268
|
All top-level keys (other than `version` and `project`) require an Array as a parameter, either by providing a list of entries or an empty Array (`[]`). The above shows how to use the `lookup()` function to refer to another resource. This "looks up" the resource type (`service` in this case) by `name` (`search_api` in this case) and resolves its `id`. This function can also be used to lookup a `route` or `upstream` by its `name`, or a `consumer` by its `username`. Note that Kong itself doesn't _require_ `route` resources to have unique names, so you'll need to enforce that practice yourself for `lookup` to be useful for Routes.
|
|
264
269
|
|
|
270
|
+
Note that while this configuration looks a lot like the [DB-less](https://docs.konghq.com/1.1.x/db-less-and-declarative-config/) configuration (and even may, at times, be interchangeable), this is merely a coincidence. **Skull Island doesn't support the DB-less mode for Kong.** This may potentially change in the future, but for now it is not a goal of this project.
|
|
271
|
+
|
|
272
|
+
#### Embedded Ruby
|
|
273
|
+
|
|
265
274
|
While technically _any_ Ruby is valid, the following are pretty helpful for templating your YAML files:
|
|
266
275
|
|
|
267
|
-
* `
|
|
276
|
+
* `lookup(:service, 'foo')` - This function resolves the ID of a `service` named `foo`. Lookup supports `:consumer` (looking up the `username` attribute), `:service`, `:route`, or `:upstream` (resolving the `name` attribute).
|
|
277
|
+
|
|
278
|
+
* `ENV.fetch('VARIABLE_NAME', 'default value')` - This allows looking up the environment variable `VARIABLE_NAME` and using its value, or, if it isn't defined, it uses `default value` as the value. With this we could change `host: api.example.com` to `host: <%= ENV.fetch('API_HOST', 'api.example.com') %>`. With this, if `API_HOST` is provided, it'll use that, otherwise it will default to `api.example.com`. This is especially helpful for sensitive information; you can version control the configuration but pass in things like credentials via environment variables at runtime.
|
|
268
279
|
|
|
269
280
|
## SDK Usage
|
|
270
281
|
|
|
@@ -31,12 +31,25 @@ module SkullIsland
|
|
|
31
31
|
|
|
32
32
|
def get(uri, data = nil)
|
|
33
33
|
client_action do |client|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
results = nil
|
|
35
|
+
params = {}
|
|
36
|
+
params.merge(data) if data
|
|
37
|
+
# OPTIMIZE: Move to an Enumerable
|
|
38
|
+
loop do
|
|
39
|
+
follow_up = JSON.parse client[uri].get(json_headers.merge(params: params))
|
|
40
|
+
|
|
41
|
+
if results
|
|
42
|
+
results['data'] += follow_up['data']
|
|
43
|
+
else
|
|
44
|
+
results = follow_up.dup
|
|
45
|
+
results.delete('offset')
|
|
46
|
+
results.delete('next')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
params = params.merge('offset' => follow_up['offset']) if follow_up.key?('offset')
|
|
50
|
+
raise StopIteration unless follow_up.key?('offset')
|
|
39
51
|
end
|
|
52
|
+
results
|
|
40
53
|
end
|
|
41
54
|
end
|
|
42
55
|
|
|
@@ -125,13 +125,15 @@ module SkullIsland
|
|
|
125
125
|
Consumer.new(
|
|
126
126
|
entity: value,
|
|
127
127
|
lazy: true,
|
|
128
|
-
tainted: false
|
|
128
|
+
tainted: false,
|
|
129
|
+
api_client: api_client
|
|
129
130
|
)
|
|
130
131
|
elsif value.is_a?(String)
|
|
131
132
|
Consumer.new(
|
|
132
133
|
entity: { 'id' => value },
|
|
133
134
|
lazy: true,
|
|
134
|
-
tainted: false
|
|
135
|
+
tainted: false,
|
|
136
|
+
api_client: api_client
|
|
135
137
|
)
|
|
136
138
|
else
|
|
137
139
|
value
|
|
@@ -153,13 +155,15 @@ module SkullIsland
|
|
|
153
155
|
Route.new(
|
|
154
156
|
entity: value,
|
|
155
157
|
lazy: true,
|
|
156
|
-
tainted: false
|
|
158
|
+
tainted: false,
|
|
159
|
+
api_client: api_client
|
|
157
160
|
)
|
|
158
161
|
elsif value.is_a?(String)
|
|
159
162
|
Route.new(
|
|
160
163
|
entity: { 'id' => value },
|
|
161
164
|
lazy: true,
|
|
162
|
-
tainted: false
|
|
165
|
+
tainted: false,
|
|
166
|
+
api_client: api_client
|
|
163
167
|
)
|
|
164
168
|
else
|
|
165
169
|
value
|
|
@@ -181,13 +185,15 @@ module SkullIsland
|
|
|
181
185
|
Service.new(
|
|
182
186
|
entity: value,
|
|
183
187
|
lazy: true,
|
|
184
|
-
tainted: false
|
|
188
|
+
tainted: false,
|
|
189
|
+
api_client: api_client
|
|
185
190
|
)
|
|
186
191
|
elsif value.is_a?(String)
|
|
187
192
|
Service.new(
|
|
188
193
|
entity: { 'id' => value },
|
|
189
194
|
lazy: true,
|
|
190
|
-
tainted: false
|
|
195
|
+
tainted: false,
|
|
196
|
+
api_client: api_client
|
|
191
197
|
)
|
|
192
198
|
else
|
|
193
199
|
value
|
data/lib/skull_island/version.rb
CHANGED
data/skull_island.gemspec
CHANGED
|
@@ -30,15 +30,16 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.add_runtime_dependency 'erubi', '~> 1.8'
|
|
31
31
|
spec.add_runtime_dependency 'json', '~> 2.1'
|
|
32
32
|
spec.add_runtime_dependency 'linguistics', '~> 2.1'
|
|
33
|
-
spec.add_runtime_dependency 'rest-client', '~> 2.
|
|
33
|
+
spec.add_runtime_dependency 'rest-client', '~> 2.1'
|
|
34
34
|
spec.add_runtime_dependency 'thor', '~> 0.20'
|
|
35
35
|
spec.add_runtime_dependency 'will_paginate', '~> 3.1'
|
|
36
36
|
|
|
37
37
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
|
38
|
-
spec.add_development_dependency '
|
|
38
|
+
spec.add_development_dependency 'coveralls', '~> 0.7'
|
|
39
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
|
39
40
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
40
41
|
spec.add_development_dependency 'rubocop', '~> 0.50'
|
|
41
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
|
42
|
+
spec.add_development_dependency 'simplecov', '~> 0.17'
|
|
42
43
|
spec.add_development_dependency 'travis', '~> 1.8'
|
|
43
44
|
spec.add_development_dependency 'yard', '~> 0.9.20'
|
|
44
45
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: skull_island
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Gnagy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-09-
|
|
11
|
+
date: 2019-09-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: deepsort
|
|
@@ -72,14 +72,14 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '2.
|
|
75
|
+
version: '2.1'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '2.
|
|
82
|
+
version: '2.1'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: thor
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,20 +122,34 @@ dependencies:
|
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '2.0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: coveralls
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0.7'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0.7'
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: rake
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
128
142
|
requirements:
|
|
129
143
|
- - "~>"
|
|
130
144
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
145
|
+
version: '12.0'
|
|
132
146
|
type: :development
|
|
133
147
|
prerelease: false
|
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
149
|
requirements:
|
|
136
150
|
- - "~>"
|
|
137
151
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
152
|
+
version: '12.0'
|
|
139
153
|
- !ruby/object:Gem::Dependency
|
|
140
154
|
name: rspec
|
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -170,14 +184,14 @@ dependencies:
|
|
|
170
184
|
requirements:
|
|
171
185
|
- - "~>"
|
|
172
186
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: '0.
|
|
187
|
+
version: '0.17'
|
|
174
188
|
type: :development
|
|
175
189
|
prerelease: false
|
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
191
|
requirements:
|
|
178
192
|
- - "~>"
|
|
179
193
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '0.
|
|
194
|
+
version: '0.17'
|
|
181
195
|
- !ruby/object:Gem::Dependency
|
|
182
196
|
name: travis
|
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|