Skip to content

Commit 0717c00

Browse files
authored
Merge pull request #75 from imagekit-developer/release-please--branches--master--changes--next
release: 4.4.0
2 parents ea4538a + e9bcc4d commit 0717c00

File tree

66 files changed

+2181
-4096
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2181
-4096
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "4.3.0"
2+
".": "4.4.0"
33
}

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 47
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-63aff1629530786015da3c86131afa8a9b60545d488884b77641f1d4b89c6e9d.yml
3-
openapi_spec_hash: 586d357bd7e5217d240a99e0d83c6d1f
4-
config_hash: 47cb702ee2cb52c58d803ae39ade9b44
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-70c42eda2bee929830b2537f758400a58dded1f1ef5686a286e2469c35a041a0.yml
3+
openapi_spec_hash: cdaeed824e91657b45092765cf55eb42
4+
config_hash: 83967503e501e4199b4042d0d0f2b615

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,40 @@
11
# Changelog
22

3+
## 4.4.0 (2026-04-13)
4+
5+
Full Changelog: [v4.3.0...v4.4.0](https://github.com/imagekit-developer/imagekit-ruby/compare/v4.3.0...v4.4.0)
6+
7+
### Features
8+
9+
* **api:** add missing types in ruby ([6a074df](https://github.com/imagekit-developer/imagekit-ruby/commit/6a074df0249e9ac9969c2bc4b8d12d9abbd1e233))
10+
* **api:** dam related webhook events ([d2ffbf3](https://github.com/imagekit-developer/imagekit-ruby/commit/d2ffbf33cabaddffbb97d4c7bc7e54be100a3c67))
11+
* **api:** fix spec indentation ([74e7a6a](https://github.com/imagekit-developer/imagekit-ruby/commit/74e7a6ae49a83d6faa29796443309f20633b430d))
12+
* **api:** indentation fix ([fae3b74](https://github.com/imagekit-developer/imagekit-ruby/commit/fae3b74e0de1bdd3e5a29c6061f546aacfc423cb))
13+
* **api:** merge with main to bring back missing parameters ([78377b5](https://github.com/imagekit-developer/imagekit-ruby/commit/78377b55c03f7818a5f2ae57d19464dfae58763a))
14+
* **api:** update webhook event names and remove DAM prefix ([c621b14](https://github.com/imagekit-developer/imagekit-ruby/commit/c621b14ca3a92b3428bd3a41156539aba3668097))
15+
16+
17+
### Bug Fixes
18+
19+
* **api:** extract shared schemas to prevent Go webhook union breaking changes ([0325862](https://github.com/imagekit-developer/imagekit-ruby/commit/032586298410662b5f45b9b4189cc23ef74c1e40))
20+
* **api:** fix references of schema ([3d07367](https://github.com/imagekit-developer/imagekit-ruby/commit/3d073676557eaac1a3ce9447866936e707f45566))
21+
* **api:** rename DamFile events to File for consistency ([5998787](https://github.com/imagekit-developer/imagekit-ruby/commit/5998787a6607eb936b51b46b92e24679ac2dd321))
22+
* **docs:** remove redundant information about versioning in README ([a546963](https://github.com/imagekit-developer/imagekit-ruby/commit/a546963ec88a011e18426a2a9ad46893e8e45eec))
23+
* **docs:** remove redundant sub-item for webhook signature verification in README ([03f4b45](https://github.com/imagekit-developer/imagekit-ruby/commit/03f4b4580157f6c5a81905b549801e9abb2f3c2c))
24+
* **docs:** remove unnecessary password parameter from example ([77c9134](https://github.com/imagekit-developer/imagekit-ruby/commit/77c9134775b106ac5107579f3059390870ced790))
25+
* multipart encoding for file arrays ([5f02f3a](https://github.com/imagekit-developer/imagekit-ruby/commit/5f02f3a700d92bdcba063ce82d64c82fc70d37f8))
26+
* **webhooks:** encode webhook key in Base64 before verification ([db0b711](https://github.com/imagekit-developer/imagekit-ruby/commit/db0b711f50b3e992f36dd3f30ef74dac502a44a2))
27+
28+
29+
### Documentation
30+
31+
* add webhook verification section to README ([ceb1927](https://github.com/imagekit-developer/imagekit-ruby/commit/ceb1927213edf8467e8e584a4b43999f0cedcf20))
32+
33+
34+
### Refactors
35+
36+
* AITags to singular AITag schema with array items pattern ([01a4f00](https://github.com/imagekit-developer/imagekit-ruby/commit/01a4f00f0ce0b7f308f8f84351327c2a25a77408))
37+
338
## 4.3.0 (2026-04-06)
439

540
Full Changelog: [v4.2.0...v4.3.0](https://github.com/imagekit-developer/imagekit-ruby/compare/v4.2.0...v4.3.0)

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ GIT
1111
PATH
1212
remote: .
1313
specs:
14-
imagekitio (4.3.0)
14+
imagekitio (4.4.0)
1515
cgi
1616
connection_pool
1717
standardwebhooks

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ If you're using Ruby on Rails, the [ImageKit Rails gem](https://github.com/image
2525
- [Helper Methods](#helper-methods)
2626
- [Authentication parameters for client-side uploads](#authentication-parameters-for-client-side-uploads)
2727
- [Responsive image attributes](#responsive-image-attributes)
28+
- [Webhook verification](#webhook-verification)
2829
- [Handling errors](#handling-errors)
2930
- [Retries](#retries)
3031
- [Timeouts](#timeouts)
@@ -45,7 +46,7 @@ To use this gem, install via Bundler by adding the following to your application
4546
<!-- x-release-please-start-version -->
4647

4748
```ruby
48-
gem "imagekitio", "~> 4.3.0"
49+
gem "imagekitio", "~> 4.4.0"
4950
```
5051

5152
<!-- x-release-please-end -->
@@ -525,6 +526,12 @@ attrs = image_kit.helper.get_responsive_image_attributes({
525526
})
526527
```
527528

529+
## Webhook verification
530+
531+
The ImageKit SDK provides utilities to verify webhook signatures for secure event handling. This ensures that webhook requests are actually coming from ImageKit and haven't been tampered with.
532+
533+
For detailed information about webhook setup, signature verification, and handling different webhook events, refer to the [ImageKit webhook documentation](https://imagekit.io/docs/webhooks#verify-webhook-signature).
534+
528535
### Handling errors
529536

530537
When the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), a subclass of `Imagekitio::Errors::APIError` will be thrown:
@@ -731,7 +738,7 @@ image_kit.assets.list(
731738

732739
## Versioning
733740

734-
This package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions. As the library is in initial development and has a major version of `0`, APIs may change at any time.
741+
This package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions.
735742

736743
This package considers improvements to the (non-runtime) `*.rbi` and `*.rbs` type definitions to be non-breaking changes.
737744

lib/imagekitio.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@
5555
require_relative "imagekitio/client"
5656
require_relative "imagekitio/models/accounts/origin_request"
5757
require_relative "imagekitio/models/accounts/url_endpoint_request"
58+
require_relative "imagekitio/models/base_webhook_event"
5859
require_relative "imagekitio/models/update_file_request"
5960
require_relative "imagekitio/models/file"
6061
require_relative "imagekitio/models/src_options"
6162
require_relative "imagekitio/models/base_overlay"
62-
require_relative "imagekitio/models/base_webhook_event"
6363
require_relative "imagekitio/models/accounts/origin_create_params"
6464
require_relative "imagekitio/models/accounts/origin_delete_params"
6565
require_relative "imagekitio/models/accounts/origin_get_params"
@@ -76,6 +76,7 @@
7676
require_relative "imagekitio/models/accounts/url_endpoint_update_params"
7777
require_relative "imagekitio/models/accounts/usage_get_params"
7878
require_relative "imagekitio/models/accounts/usage_get_response"
79+
require_relative "imagekitio/models/ai_tag"
7980
require_relative "imagekitio/models/asset_list_params"
8081
require_relative "imagekitio/models/asset_list_response"
8182
require_relative "imagekitio/models/beta/v2/file_upload_params"
@@ -84,17 +85,21 @@
8485
require_relative "imagekitio/models/cache/invalidation_create_response"
8586
require_relative "imagekitio/models/cache/invalidation_get_params"
8687
require_relative "imagekitio/models/cache/invalidation_get_response"
88+
require_relative "imagekitio/models/custom_metadata"
8789
require_relative "imagekitio/models/custom_metadata_field"
8890
require_relative "imagekitio/models/custom_metadata_field_create_params"
8991
require_relative "imagekitio/models/custom_metadata_field_delete_params"
9092
require_relative "imagekitio/models/custom_metadata_field_delete_response"
9193
require_relative "imagekitio/models/custom_metadata_field_list_params"
9294
require_relative "imagekitio/models/custom_metadata_field_list_response"
9395
require_relative "imagekitio/models/custom_metadata_field_update_params"
96+
require_relative "imagekitio/models/embedded_metadata"
9497
require_relative "imagekitio/models/extension_config"
9598
require_relative "imagekitio/models/extensions"
9699
require_relative "imagekitio/models/file_copy_params"
97100
require_relative "imagekitio/models/file_copy_response"
101+
require_relative "imagekitio/models/file_create_event"
102+
require_relative "imagekitio/models/file_delete_event"
98103
require_relative "imagekitio/models/file_delete_params"
99104
require_relative "imagekitio/models/file_get_params"
100105
require_relative "imagekitio/models/file_move_params"
@@ -117,10 +122,13 @@
117122
require_relative "imagekitio/models/files/version_list_params"
118123
require_relative "imagekitio/models/files/version_list_response"
119124
require_relative "imagekitio/models/files/version_restore_params"
125+
require_relative "imagekitio/models/file_update_event"
120126
require_relative "imagekitio/models/file_update_params"
121127
require_relative "imagekitio/models/file_update_response"
122128
require_relative "imagekitio/models/file_upload_params"
123129
require_relative "imagekitio/models/file_upload_response"
130+
require_relative "imagekitio/models/file_version_create_event"
131+
require_relative "imagekitio/models/file_version_delete_event"
124132
require_relative "imagekitio/models/folder"
125133
require_relative "imagekitio/models/folder_copy_params"
126134
require_relative "imagekitio/models/folder_copy_response"
@@ -148,6 +156,7 @@
148156
require_relative "imagekitio/models/saved_extension_list_params"
149157
require_relative "imagekitio/models/saved_extension_list_response"
150158
require_relative "imagekitio/models/saved_extension_update_params"
159+
require_relative "imagekitio/models/selected_fields_schema"
151160
require_relative "imagekitio/models/solid_color_overlay"
152161
require_relative "imagekitio/models/solid_color_overlay_transformation"
153162
require_relative "imagekitio/models/streaming_resolution"
@@ -163,6 +172,7 @@
163172
require_relative "imagekitio/models/upload_post_transform_success_event"
164173
require_relative "imagekitio/models/upload_pre_transform_error_event"
165174
require_relative "imagekitio/models/upload_pre_transform_success_event"
175+
require_relative "imagekitio/models/version_info"
166176
require_relative "imagekitio/models/video_overlay"
167177
require_relative "imagekitio/models/video_transformation_accepted_event"
168178
require_relative "imagekitio/models/video_transformation_error_event"

lib/imagekitio/internal/type/base_model.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -438,11 +438,11 @@ def deep_to_h = self.class.recursively_to_h(@data, convert: false)
438438
# @return [Hash{Symbol=>Object}]
439439
#
440440
# @example
441-
# # `base_overlay` is a `Imagekitio::BaseOverlay`
442-
# base_overlay => {
443-
# layer_mode: layer_mode,
444-
# position: position,
445-
# timing: timing
441+
# # `ai_tag` is a `Imagekitio::AITag`
442+
# ai_tag => {
443+
# confidence: confidence,
444+
# name: name,
445+
# source: source
446446
# }
447447
def deconstruct_keys(keys)
448448
(keys || self.class.known_fields.keys)

lib/imagekitio/internal/util.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,7 @@ def encode_query_params(query)
610610
#
611611
# @return [Array(String, Enumerable<String>)]
612612
private def encode_multipart_streaming(body)
613+
# rubocop:disable Style/CaseEquality
613614
# RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
614615
boundary = SecureRandom.urlsafe_base64(46)
615616

@@ -619,7 +620,7 @@ def encode_query_params(query)
619620
in Hash
620621
body.each do |key, val|
621622
case val
622-
in Array if val.all? { primitive?(_1) }
623+
in Array if val.all? { primitive?(_1) || Imagekitio::Internal::Type::FileInput === _1 }
623624
val.each do |v|
624625
write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
625626
end
@@ -635,6 +636,7 @@ def encode_query_params(query)
635636

636637
fused_io = fused_enum(strio) { closing.each(&:call) }
637638
[boundary, fused_io]
639+
# rubocop:enable Style/CaseEquality
638640
end
639641

640642
# @api private

lib/imagekitio/models.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ module Imagekitio
4141

4242
Accounts = Imagekitio::Models::Accounts
4343

44+
AITag = Imagekitio::Models::AITag
45+
4446
AssetListParams = Imagekitio::Models::AssetListParams
4547

4648
BaseOverlay = Imagekitio::Models::BaseOverlay
@@ -51,6 +53,9 @@ module Imagekitio
5153

5254
Cache = Imagekitio::Models::Cache
5355

56+
# @type [Imagekitio::Internal::Type::Converter]
57+
CustomMetadata = Imagekitio::Models::CustomMetadata
58+
5459
CustomMetadataField = Imagekitio::Models::CustomMetadataField
5560

5661
CustomMetadataFieldCreateParams = Imagekitio::Models::CustomMetadataFieldCreateParams
@@ -61,6 +66,9 @@ module Imagekitio
6166

6267
CustomMetadataFieldUpdateParams = Imagekitio::Models::CustomMetadataFieldUpdateParams
6368

69+
# @type [Imagekitio::Internal::Type::Converter]
70+
EmbeddedMetadata = Imagekitio::Models::EmbeddedMetadata
71+
6472
ExtensionConfig = Imagekitio::Models::ExtensionConfig
6573

6674
ExtensionItem = Imagekitio::Models::ExtensionItem
@@ -72,6 +80,10 @@ module Imagekitio
7280

7381
FileCopyParams = Imagekitio::Models::FileCopyParams
7482

83+
FileCreateEvent = Imagekitio::Models::FileCreateEvent
84+
85+
FileDeleteEvent = Imagekitio::Models::FileDeleteEvent
86+
7587
FileDeleteParams = Imagekitio::Models::FileDeleteParams
7688

7789
FileGetParams = Imagekitio::Models::FileGetParams
@@ -82,10 +94,16 @@ module Imagekitio
8294

8395
Files = Imagekitio::Models::Files
8496

97+
FileUpdateEvent = Imagekitio::Models::FileUpdateEvent
98+
8599
FileUpdateParams = Imagekitio::Models::FileUpdateParams
86100

87101
FileUploadParams = Imagekitio::Models::FileUploadParams
88102

103+
FileVersionCreateEvent = Imagekitio::Models::FileVersionCreateEvent
104+
105+
FileVersionDeleteEvent = Imagekitio::Models::FileVersionDeleteEvent
106+
89107
Folder = Imagekitio::Models::Folder
90108

91109
FolderCopyParams = Imagekitio::Models::FolderCopyParams
@@ -126,6 +144,11 @@ module Imagekitio
126144

127145
SavedExtensionUpdateParams = Imagekitio::Models::SavedExtensionUpdateParams
128146

147+
# @type [Imagekitio::Internal::Type::Converter]
148+
SelectedFieldsSchema = Imagekitio::Models::SelectedFieldsSchema
149+
150+
SelectedFieldsSchemaItem = Imagekitio::Models::SelectedFieldsSchemaItem
151+
129152
SolidColorOverlay = Imagekitio::Models::SolidColorOverlay
130153

131154
SolidColorOverlayTransformation = Imagekitio::Models::SolidColorOverlayTransformation
@@ -160,6 +183,8 @@ module Imagekitio
160183

161184
UploadPreTransformSuccessEvent = Imagekitio::Models::UploadPreTransformSuccessEvent
162185

186+
VersionInfo = Imagekitio::Models::VersionInfo
187+
163188
VideoOverlay = Imagekitio::Models::VideoOverlay
164189

165190
VideoTransformationAcceptedEvent = Imagekitio::Models::VideoTransformationAcceptedEvent

lib/imagekitio/models/ai_tag.rb

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# frozen_string_literal: true
2+
3+
module Imagekitio
4+
module Models
5+
class AITag < Imagekitio::Internal::Type::BaseModel
6+
# @!attribute confidence
7+
# Confidence score of the tag.
8+
#
9+
# @return [Float, nil]
10+
optional :confidence, Float
11+
12+
# @!attribute name
13+
# Name of the tag.
14+
#
15+
# @return [String, nil]
16+
optional :name, String
17+
18+
# @!attribute source
19+
# Source of the tag. Possible values are `google-auto-tagging` and
20+
# `aws-auto-tagging`.
21+
#
22+
# @return [String, nil]
23+
optional :source, String
24+
25+
# @!method initialize(confidence: nil, name: nil, source: nil)
26+
# Some parameter documentations has been truncated, see
27+
# {Imagekitio::Models::AITag} for more details.
28+
#
29+
# AI-generated tag associated with an image. These tags can be added using the
30+
# `google-auto-tagging` or `aws-auto-tagging` extensions.
31+
#
32+
# @param confidence [Float] Confidence score of the tag.
33+
#
34+
# @param name [String] Name of the tag.
35+
#
36+
# @param source [String] Source of the tag. Possible values are `google-auto-tagging` and `aws-auto-taggi
37+
end
38+
end
39+
end

0 commit comments

Comments
 (0)