strongmind-platform-sdk 3.34.2 → 3.34.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: '028ca313c6f9bce49fb5b02e6f929b2ed0939f191938d450d5433647e6ef644b'
4
- data.tar.gz: 71e0174a2f1929f7acad9727f71c4286ba9791b5f02a0a011a23485de2d22886
3
+ metadata.gz: 9b82e33dd88733dca1da0a516c00342899c1227c4301dd4dfd8394aeca5e292a
4
+ data.tar.gz: 53de61789c363e674b4df379ce42aa33b77b2f0f49fffd49173b82f146b8e382
5
5
  SHA512:
6
- metadata.gz: fc53e003fdc583a4afc1c0ea2cd8e4253a23f44f38d08849b2d56c2a57d625e876cadb668df2bbbbdc705ef2d0b57362462baf27336f9fa05e337841b321aebc
7
- data.tar.gz: b4a08cd44666bbc7c467afc211f92084b55942609231d121b04e3bee5078a6577be028b0556e8352d080f1695be0055e582250f59775db58a73d607a92c18e9a
6
+ metadata.gz: b12297b6fbe2837bdb9bad307b2035e2f9c3942a1b4d61f27ee81e4638fdb1dfd30d8f92fe64c31ad5f893d4daa7276bf018d72c06d8eb0b2898752d0cad6596
7
+ data.tar.gz: a63f3b1704854273bd724bcbf69058b1436008f483505481f8f4f1a7d018dac8464d12ee341074fbfe0878f30f3bf5abae542070705a5e035069264fedf8cbde
data/CHANGELOG.md CHANGED
@@ -1,5 +1,6 @@
1
1
  ## [Unreleased]
2
2
 
3
+ - Stop logging Identity error response bodies. IS4 answers a create that collides on the username unique index with SQL Server's raw message, which includes the duplicate value (a student's name and SIS id), and the error log line carried that body verbatim. The log line now has the exception class, method, path and status only. The raised error still carries the response, with its request scrubbed, for a consumer that decides it is safe to inspect.
3
4
  - Raise typed errors from every Canvas error branch. The read/list/PUT-write methods raised bare `RuntimeError` strings, which consumers could not distinguish from a bug — Central's grade-passback retry wrapper, for example, only retries `CanvasClientError` and so treated every throttled read as fatal. All error branches now raise through one handler: 404 → `MissingModuleItemError`, 401 → `UnauthorizedError`, rate-limited → `RateLimitedError` (new), anything else → `CanvasClientError`. Every class subclasses `CanvasClientError` (itself a `StandardError`), so rescues written against the old classes keep working; only code matching on `RuntimeError` specifically (none known) would notice. Message text changed (see below); no known consumer parses it.
4
5
  - Stop echoing raw Canvas response bodies and page query strings into error messages. Consumers persist `error.message` (Central's `OutcomeLog.exception_message`) and forward it to Sentry, and a raw body from a submission, quiz or roster endpoint can carry student records (FERPA). Every error path now shares one message policy: `"<descriptor>: <Canvas's own error messages> (status: N, host: H)"`, with a fixed `unparseable Canvas error body` / `empty Canvas error body` / `Canvas rate limit exceeded` descriptor in place of any body that isn't a JSON error object. The write-path tail (`handle_post_response_errors`) previously appended the whole body and skipped the `error_messages_from` hardening; it now goes through the same builder. Pagination failures name the page path only, dropping the query that carries `as_user_id`/`student_id`. The raw body and status are still available as `CanvasClientError#response_body` and `#status` for a consumer that decides it is safe to inspect.
5
6
  - `error_messages_from` also reads a hash-shaped `errors` (field => messages, as Canvas validation errors return) and a top-level `message` key, instead of producing an inspect blob or nothing.
@@ -30,7 +30,6 @@ module PlatformSdk
30
30
  exception: exception_class.name.split('::').last,
31
31
  method: error.response.dig(:request, :method),
32
32
  path: error.response.dig(:request, :url_path),
33
- response_body: error.response[:body],
34
33
  status: error.response[:status]
35
34
  }.compact
36
35
  end
@@ -3,7 +3,7 @@
3
3
  module PlatformSdk
4
4
  MAJOR = 3
5
5
  MINOR = 34
6
- PATCH = 2
6
+ PATCH = 3
7
7
 
8
8
  VERSION = "#{PlatformSdk::MAJOR}.#{PlatformSdk::MINOR}.#{PlatformSdk::PATCH}".freeze
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strongmind-platform-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.34.2
4
+ version: 3.34.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Platform Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-22 00:00:00.000000000 Z
11
+ date: 2026-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64