api2convert 10.3.2 → 10.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b3813dd8314612f6d7b87b5eeb108be94bed5978da2107651414fec83bc1450
4
- data.tar.gz: e5b33c01144af84acd534eae3fcc5ab12d51ab36f861aaacfa0a437b3d40f107
3
+ metadata.gz: ada5e8eb2a1a367508025bfec543c9a730126291aa80ccff236f26a50947a2f5
4
+ data.tar.gz: b58f2ae36378bc937debe2f781576931a392ec18f47b80143fb1a07673075d0d
5
5
  SHA512:
6
- metadata.gz: 6b8fa42db82e724bfd66f835c01349e70eb6c2265b0a5b493d15a54d86530d6cbd0d364a2bd49fe3cbda7d2f82dd99cb25350684fbb120c23d1daf57539b468b
7
- data.tar.gz: 77772316f9261aeb355a2043dbd440369e2bd3e85b421526bb155836e308efbdb2ac052c434bccf6d90ce45220bc103c137a2a3ac59ee877bb86b1b2ba6372d3
6
+ metadata.gz: efa67a69ac2e792e450a4f82dcccab941fd222dcb0c5014490b483fc7ec4bd845e1d3f4302f551f17bf67fbab2f4ef1cf79e30784df449bef93350657a3ddc39
7
+ data.tar.gz: 5d8a30b8597043b8b79489efa38866dbb3ce5d1da28659bb63a54b4136a40136f8bac7b3b8ded35f9c30f736ba463929bf1ff615b1f9cdaeb3388f329cc298d2
data/README.md CHANGED
@@ -112,7 +112,7 @@ client.convert("report.docx", "pdf", output_targets: [target])
112
112
  # Delivered to the bucket — the job completes with no local output to save.
113
113
  ```
114
114
 
115
- `azure`, `ftp` and `google_cloud` have matching input factories; output uses the
115
+ `azure` and `google_cloud` have matching input factories; output uses the
116
116
  generic `OutputTarget` for every provider. Credentials are redacted in
117
117
  `inspect`/errors and never printed.
118
118
 
data/docs/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ All notable changes to the API2Convert Ruby SDK are documented here. The five
4
4
  official SDKs (PHP, Python, Java, Node.js, Ruby) version together against the
5
5
  shared [`SDK_CONTRACT.md`](SDK_CONTRACT.md).
6
6
 
7
+ ## [10.3.3] - 2026-11-06
8
+
9
+ ### Removed
10
+
11
+ - The FTP cloud provider, because FTP is being retired from the API: `CloudInput.ftp` and
12
+ `CloudProvider::FTP`. Code that uses them raises `NoMethodError` or `NameError` and needs another
13
+ provider. Reading stays tolerant: jobs created with `ftp` earlier still load.
14
+
7
15
  ## [10.3.2] - 2026-08-12
8
16
 
9
17
  ### Fixed
data/docs/SDK_CONTRACT.md CHANGED
@@ -29,13 +29,13 @@ Two layers make up an SDK:
29
29
  - **Add remote input**: `POST /jobs/{id}/input` `{ type:'remote', source:'https://…' }`.
30
30
  - **Cloud input** (import from customer storage): `POST /jobs/{id}/input` (or inline in `create`)
31
31
  `{ type:'cloud', source:<provider>, parameters:{…}, credentials:{…} }`, `<provider> ∈ {amazons3,
32
- azure, ftp, googlecloud}`; plus `{ type:'gdrive_picker', source:<drive-file-id>,
32
+ azure, googlecloud}`; plus `{ type:'gdrive_picker', source:<drive-file-id>,
33
33
  credentials:{token}, content_type? }` for Google Drive. The API validates a cloud descriptor
34
34
  **asynchronously** — it accepts any descriptor on create (`201`) and later fails a bad one on the
35
35
  input (`status:failed`, generic `code 99`); it never echoes a credential value.
36
36
  - **Cloud output** (deliver to customer storage): a `conversion[]` may carry
37
37
  `output_target:[{ type:<provider>, parameters:{…}, credentials:{…} }]`, `<provider> ∈ {amazons3,
38
- googlecloud, azure, ftp, youtube, gdrive}`. `status` (`waiting|uploading|completed|failed`) is
38
+ googlecloud, azure, youtube, gdrive}`. `status` (`waiting|uploading|completed|failed`) is
39
39
  server-set and read-only — never sent on create. The job reaches `completed` only after the upload
40
40
  succeeds (a failed upload → `failed`); an output-target conversion produces **no** local output.
41
41
  - **Start**: `PATCH /jobs/{id}` `{ process:true }`.
@@ -102,14 +102,14 @@ wire descriptors above; per-provider keys are **not** validated synchronously se
102
102
  typed surface is the client's only pre-flight structure.
103
103
 
104
104
  - **Provider vocabulary** — one shared `CloudProvider` concept (per-language spelling): `amazons3,
105
- azure, ftp, gdrive, googlecloud, youtube`. It is **build-side vocabulary only** — read models keep
105
+ azure, gdrive, googlecloud, youtube`. It is **build-side vocabulary only** — read models keep
106
106
  `source`/`type`/`status` as raw strings, and an unknown provider from the server round-trips
107
107
  untyped (never throws).
108
108
  - **Cloud input** — a `CloudInput` builder emits `{ type:cloud, source, parameters, credentials }`
109
109
  and hands off to `addInput` / the create path. It ships per-provider named constructors whose
110
110
  signatures carry each provider's required keys **verbatim** (flat/lowercase, as the API expects):
111
111
  `amazonS3(bucket, file, accesskeyid, secretaccesskey)`,
112
- `azure(container, file, accountname, accountkey)`, `ftp(host, file, username, password)`,
112
+ `azure(container, file, accountname, accountkey)`,
113
113
  `googleCloud(projectid, bucket, file, keyfile)`. The required keys are **constructor arguments**,
114
114
  not a runtime gate — the builder never rejects a descriptor the permissive server would accept, and
115
115
  a generic `parameters`/`credentials` map stays reachable for optional/forward-compat keys. Google
@@ -12,18 +12,17 @@ module Api2Convert
12
12
  # there is deliberately no strict parse.
13
13
  #
14
14
  # Import support (a {Model::CloudInput} factory) exists for {AMAZON_S3},
15
- # {AZURE}, {FTP} and {GOOGLE_CLOUD}. {GDRIVE} and {YOUTUBE} are **output-only**
15
+ # {AZURE} and {GOOGLE_CLOUD}. {GDRIVE} and {YOUTUBE} are **output-only**
16
16
  # (they validate as an output `type` but have no downloader); Google Drive
17
17
  # *input* uses the separate `gdrive_picker` input type.
18
18
  module CloudProvider
19
19
  AMAZON_S3 = "amazons3"
20
20
  AZURE = "azure"
21
- FTP = "ftp"
22
21
  GDRIVE = "gdrive"
23
22
  GOOGLE_CLOUD = "googlecloud"
24
23
  YOUTUBE = "youtube"
25
24
 
26
25
  # The full provider vocabulary, in canonical order.
27
- ALL = [AMAZON_S3, AZURE, FTP, GDRIVE, GOOGLE_CLOUD, YOUTUBE].freeze
26
+ ALL = [AMAZON_S3, AZURE, GDRIVE, GOOGLE_CLOUD, YOUTUBE].freeze
28
27
  end
29
28
  end
@@ -63,15 +63,6 @@ module Api2Convert
63
63
  )
64
64
  end
65
65
 
66
- # Import from an FTP server.
67
- def self.ftp(host:, file:, username:, password:, parameters: {}, credentials: {})
68
- new(
69
- source: CloudProvider::FTP,
70
- parameters: { "host" => host, "file" => file }.merge(parameters),
71
- credentials: { "username" => username, "password" => password }.merge(credentials)
72
- )
73
- end
74
-
75
66
  # Import from Google Cloud Storage.
76
67
  def self.google_cloud(projectid:, bucket:, file:, keyfile:, parameters: {}, credentials: {})
77
68
  new(
@@ -4,5 +4,5 @@ module Api2Convert
4
4
  # The SDK version. Kept in lock-step with the sibling SDKs (PHP, Python, Java,
5
5
  # Node.js): all official ports implement the same `docs/SDK_CONTRACT.md` and
6
6
  # version together.
7
- VERSION = "10.3.2"
7
+ VERSION = "10.3.3"
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api2convert
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.3.2
4
+ version: 10.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Qaamgo Media GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-12 00:00:00.000000000 Z
11
+ date: 2026-11-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Convert, compress and transform images, documents, audio, video, ebooks,
14
14
  archives and CAD — and run operations like OCR, merge, thumbnail and website capture