licensekit-ruby 0.1.0.alpha.1 → 1.0.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 +4 -2
- data/lib/licensekit/client.rb +2 -0
- data/lib/licensekit/generated/clients.rb +120 -0
- data/lib/licensekit/generated/metadata.rb +85 -1
- data/lib/licensekit/generated/operation_scopes.rb +61 -1
- data/lib/licensekit/version.rb +1 -1
- data/openapi/openapi.yaml +713 -0
- data/scripts/generate_from_openapi.rb +4 -0
- data/test/test_client.rb +43 -0
- data/test/test_scopes.rb +4 -0
- metadata +4 -4
|
@@ -25,6 +25,10 @@ def response_kind(response)
|
|
|
25
25
|
|
|
26
26
|
content = response["content"]
|
|
27
27
|
return "empty" unless content.is_a?(Hash)
|
|
28
|
+
return "bytes" if content.length > 1
|
|
29
|
+
return "bytes" if content.key?("application/pdf")
|
|
30
|
+
return "bytes" if content.key?("text/csv")
|
|
31
|
+
return "bytes" if content.key?("application/octet-stream")
|
|
28
32
|
return "json" if content.key?("application/json")
|
|
29
33
|
return "text" if content.key?("text/plain")
|
|
30
34
|
|
data/test/test_client.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require_relative "test_helper"
|
|
2
|
+
require "licensekit/generated/metadata"
|
|
2
3
|
|
|
3
4
|
class ClientTest < Minitest::Test
|
|
4
5
|
def test_management_client_normalizes_base_url_and_injects_bearer_auth
|
|
@@ -153,4 +154,46 @@ class ClientTest < Minitest::Test
|
|
|
153
154
|
assert_equal "TOKEN_SCOPE_DENIED", error.code
|
|
154
155
|
assert_equal "req_forbidden", error.request_id
|
|
155
156
|
end
|
|
157
|
+
|
|
158
|
+
def test_reporting_operations_are_exposed_and_download_binary_body
|
|
159
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "listActivities"
|
|
160
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getUsageSummary"
|
|
161
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "listUsageLedger"
|
|
162
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getLicenseAuditReport"
|
|
163
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getCustomerSummary"
|
|
164
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getSubscriptionSettlement"
|
|
165
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "createReportExport"
|
|
166
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "getReportExport"
|
|
167
|
+
assert_includes LicenseKit::Generated::MANAGEMENT_OPERATION_IDS, "downloadReportExport"
|
|
168
|
+
assert_equal(
|
|
169
|
+
{
|
|
170
|
+
method: "GET",
|
|
171
|
+
path: "/api/v1/reports/exports/{id}/download",
|
|
172
|
+
auth: "bearer",
|
|
173
|
+
summary: "Download a frozen report export snapshot",
|
|
174
|
+
success: { 200 => "bytes" }
|
|
175
|
+
},
|
|
176
|
+
LicenseKit::Generated::OPERATION_METADATA.fetch("downloadReportExport")
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
transport = lambda do |request|
|
|
180
|
+
assert_equal "https://api.licensekit.dev/api/v1/reports/exports/exp_123/download", request.url
|
|
181
|
+
|
|
182
|
+
LicenseKit::TransportResponse.new(
|
|
183
|
+
status: 200,
|
|
184
|
+
headers: { "Content-Type" => "text/csv" },
|
|
185
|
+
body: "col_a,col_b\n1,2\n"
|
|
186
|
+
)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
client = LicenseKit::ManagementClient.new(
|
|
190
|
+
base_url: "https://api.licensekit.dev",
|
|
191
|
+
token: "mgmt_test_token",
|
|
192
|
+
transport: transport
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
body = client.download_report_export(path: { id: "exp_123" })
|
|
196
|
+
|
|
197
|
+
assert_equal "col_a,col_b\n1,2\n".b, body
|
|
198
|
+
end
|
|
156
199
|
end
|
data/test/test_scopes.rb
CHANGED
|
@@ -4,11 +4,15 @@ class ScopesTest < Minitest::Test
|
|
|
4
4
|
def test_get_required_scopes
|
|
5
5
|
scopes = LicenseKit.get_required_scopes("createProduct")
|
|
6
6
|
assert_equal ["product:write"], scopes
|
|
7
|
+
assert_equal ["report:read"], LicenseKit.get_required_scopes("listActivities")
|
|
8
|
+
assert_equal ["report:export"], LicenseKit.get_required_scopes("createReportExport")
|
|
7
9
|
end
|
|
8
10
|
|
|
9
11
|
def test_has_required_scopes
|
|
10
12
|
assert_equal true, LicenseKit.has_required_scopes("createProduct", ["product:write"])
|
|
11
13
|
assert_equal true, LicenseKit.has_required_scopes("createProduct", ["admin"])
|
|
12
14
|
assert_equal false, LicenseKit.has_required_scopes("createProduct", ["product:read"])
|
|
15
|
+
assert_equal true, LicenseKit.has_required_scopes("listActivities", ["report:read"])
|
|
16
|
+
assert_equal true, LicenseKit.has_required_scopes("createReportExport", ["report:export"])
|
|
13
17
|
end
|
|
14
18
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: licensekit-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Main
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-04-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ed25519
|
|
@@ -88,9 +88,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
88
88
|
version: '2.6'
|
|
89
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
90
|
requirements:
|
|
91
|
-
- - "
|
|
91
|
+
- - ">="
|
|
92
92
|
- !ruby/object:Gem::Version
|
|
93
|
-
version:
|
|
93
|
+
version: '0'
|
|
94
94
|
requirements: []
|
|
95
95
|
rubygems_version: 3.0.3.1
|
|
96
96
|
signing_key:
|