Axel Uhl
f18b36556e
bug6319: migrate ORC public-certificate adapter to key-based sas.orc.org JSON API
...
Replace the decommissioned data.orc.org/public/WPub.dll XML endpoints with the
new key-based JSON API at https://sas.orc.org/api/{key}/ <endpoint> (docs:
https://sas.orc.org/api-docs.php ), restoring the pre-bug6318 semantics that the
bug6318 stopgap had regressed:
- country-less and year-based search via the 'activecerts' endpoint
(all criteria optional and AND-combined server-side; no criteria -> every
active certificate), removing the forced-country / current-year-only branches;
- real per-country/family overview counts and VPP year via the 'RMS' endpoint,
replacing the stubbed certCount=0 / vppYear=null;
- full-certificate download via 'DownBoatRMS_byrefno' (top-level rms[], consumed
by the unchanged ORCCertificatesJsonImporter);
- TestORCPerformanceCurve bulk online fetch via 'DownRMS'.
The API key is read from the ORC_API_KEY environment variable and placed into the
request path; it is never logged. When the key is absent the adapter throws, so
the live tests FAIL loudly rather than skip. The two pure-offline date-parse tests
run independently of the key. release.yml passes ORC_API_KEY to the test runtime,
gated so compile-only (skip_tests) runs never see the real secret.
Assisted-By: Claude Opus 4.8 (claude-opus-4-8)
2026-10-17 12:40:54 +02:00
..
2026-07-11 18:29:37 +02:00
2026-07-11 18:29:37 +02:00
2026-01-16 13:09:37 +01:00
2026-01-16 13:09:37 +01:00
2025-12-04 22:10:41 +01:00
2026-04-29 15:58:06 +02:00
2026-03-05 17:21:54 +01:00
2026-04-06 23:34:05 +02:00
2026-09-23 15:02:22 +02:00
2026-09-22 23:18:13 +02:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-08-28 11:16:13 +02:00
2026-10-17 12:40:54 +02:00
2026-03-03 17:30:56 +01:00
2026-09-23 00:56:51 +02:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-09-22 23:18:13 +02:00
2026-03-05 17:21:54 +01:00
2026-06-29 13:22:14 +02:00
2026-06-15 17:55:19 +02:00
2026-03-03 17:30:56 +01:00
2026-09-12 00:07:41 +02:00
2026-04-06 23:34:05 +02:00
2026-03-03 17:30:56 +01:00
2026-07-07 18:17:48 +02:00
2026-04-14 23:53:52 +02:00
2026-09-22 23:18:13 +02:00
2026-09-22 23:18:13 +02:00
2026-08-28 11:04:17 +02:00
2026-03-03 17:30:56 +01:00
2026-03-07 22:45:42 +01:00
2026-06-30 13:50:12 +02:00
2026-10-17 12:40:54 +02:00
2026-09-28 21:59:02 +02:00
2026-03-03 17:30:56 +01:00
2026-03-27 10:29:49 +01:00
2026-03-03 17:30:56 +01:00
2026-04-30 15:22:22 +00:00
2026-08-24 14:06:14 +02:00
2026-04-06 23:34:05 +02:00
2026-04-06 23:34:05 +02:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-08-28 11:04:17 +02:00
2026-10-11 20:00:54 +02:00
2026-03-05 17:21:54 +01:00
2026-09-22 23:18:13 +02:00
2026-09-28 17:22:09 +02:00
2026-09-28 16:35:16 +02:00
2026-09-14 23:30:20 +02:00
2026-09-14 23:30:20 +02:00
2026-09-28 16:35:16 +02:00
2026-03-25 23:00:52 +01:00
2026-09-12 00:07:41 +02:00
2026-03-03 17:30:56 +01:00
2026-08-28 11:04:17 +02:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-03-11 23:13:26 +01:00
2026-03-20 10:13:08 +01:00
2026-09-24 14:50:37 +02:00
2026-10-11 20:00:54 +02:00
2026-09-23 00:31:10 +02:00
2026-09-14 23:30:19 +02:00
2026-09-14 23:30:20 +02:00
2026-03-20 10:13:08 +01:00
2026-09-14 23:30:20 +02:00
2026-03-05 17:21:54 +01:00
2026-03-05 17:21:54 +01:00
2026-10-11 20:00:54 +02:00
2026-09-19 21:35:03 +02:00
2026-10-11 20:00:54 +02:00
2026-03-03 17:30:56 +01:00
2026-08-31 14:52:44 +02:00
2026-03-03 17:30:56 +01:00
2026-03-03 17:30:56 +01:00
2026-03-05 17:21:54 +01:00
2026-08-28 11:04:17 +02:00
2026-03-03 17:30:56 +01:00
2026-10-06 19:46:29 +02:00
2026-03-18 16:55:23 +01:00
2026-08-04 13:52:38 +02:00
2026-03-03 17:30:56 +01:00
2026-07-20 19:48:51 +02:00
2026-10-12 22:17:59 +02:00
2026-05-06 15:13:19 +02:00
2026-03-20 10:13:08 +01:00
2026-03-20 10:13:08 +01:00
2026-08-28 19:46:14 +02:00
2026-08-26 02:02:02 +02:00
2026-09-22 23:18:13 +02:00
2026-03-13 09:56:43 +01:00
2026-08-04 13:18:36 +02:00
2026-03-20 10:13:08 +01:00
2026-07-09 11:38:20 +02:00
2026-08-28 11:16:13 +02:00
2025-07-07 11:33:18 +02:00
2025-12-05 11:18:09 +01:00
2026-07-11 18:29:37 +02:00
2026-04-30 15:22:22 +00:00
2026-09-17 11:59:21 +02:00
2026-10-08 15:18:36 +00:00
2026-01-20 10:10:20 +01:00
2026-09-28 17:11:45 +02:00
2026-09-28 17:22:09 +02:00
2026-03-20 10:13:08 +01:00
2026-03-20 10:13:08 +01:00
2023-10-09 18:00:50 +02:00
2026-03-20 10:13:08 +01:00
2026-09-28 17:11:45 +02:00
2026-07-08 23:07:32 +02:00
2026-03-20 10:13:08 +01:00
2026-03-20 10:13:08 +01:00
2026-03-20 10:13:08 +01:00
2026-03-20 10:13:08 +01:00
2026-03-16 00:53:24 +01:00
2026-04-28 14:32:07 +02:00
2026-10-04 23:00:56 +02:00
2026-09-02 11:15:59 +02:00
2026-04-30 15:22:22 +00:00
2026-03-06 14:54:11 +01:00
2026-03-05 17:21:54 +01:00
2026-03-05 17:21:54 +01:00
2026-03-05 17:21:54 +01:00
2026-09-19 00:21:11 +02:00
2026-03-06 14:48:22 +01:00
2026-09-12 00:07:41 +02:00
2026-06-27 09:23:22 +02:00
2026-03-05 17:21:54 +01:00
2026-08-28 11:16:13 +02:00
2026-03-20 10:13:08 +01:00
2026-03-20 10:13:08 +01:00
2026-03-20 10:13:08 +01:00
2026-09-23 15:02:22 +02:00
2026-09-07 13:31:41 +02:00
2026-09-22 21:58:09 +02:00
2026-03-20 10:13:08 +01:00
2026-10-07 21:56:18 +02:00