11Release 4.0.0 - ???
22
3+ BREAKING CHANGES
4+
5+ * tika-server: the /translate endpoints have been removed (TIKA-4809).
6+
7+ * tika-server: /detect/stream and /language/stream and /language/string have
8+ been collapsed into /detect and /language (TIKA-4809).
9+
10+ * tika-server: caller errors now map to accurate HTTP status codes instead of
11+ always returning 200 or 500. A saturated worker pool returns 429, a
12+ crashed/timed-out/OOM worker returns 503, an unknown or reserved
13+ fetcher/emitter or bad handler returns 400, and an over-limit body returns
14+ 413; the 429 and 503 responses carry a Retry-After header (TIKA-4809).
15+
16+ * tika-server: the bare /tika endpoint now returns Markdown too (was XHTML),
17+ completing the Markdown default (TIKA-4663); use /tika/xml for XHTML (TIKA-4809).
18+
19+ * tika-server: request bodies are now capped by maxRequestSizeBytes,
20+ defaulting to 1 GiB; larger requests are rejected with 413, including
21+ over-limit chunked uploads, which previously surfaced as an empty 500
22+ (TIKA-4809).
23+
24+ * tika-server: a /meta request with no Accept header now returns JSON;
25+ 3.x returned CSV. CSV is still available via Accept: text/csv (TIKA-4809).
26+
27+ * tika-server: the raw /tika family's 422 responses carry the extracted
28+ content only; the exception is no longer appended to the body -- use
29+ /rmeta for the structured exception (TIKA-4809).
30+
31+ * tika-server: /async validates fetcher/emitter ids at POST time (400),
32+ rejects a batch larger than the queue's total capacity with 400 instead
33+ of throttling it, and one bad tuple no longer stops the async workers
34+ (TIKA-4809).
35+
36+ * tika-server: /pipes returns 400 with the reason for a malformed request
37+ body and rejects emit strategies other than EMIT_ALL, whose passed-back
38+ data the /pipes response cannot carry (TIKA-4809).
39+
40+ * tika-server: the 'endpoints' allowlist now also gates SPI-provided
41+ resources; a discovered resource binds only when its root endpoint is
42+ enabled (TIKA-4809).
43+
44+ * FetchEmitTuple JSON now names the per-tuple parse context "parse-context"
45+ (was "parseContext") and rejects unknown tuple fields with an error naming
46+ the field (TIKA-4809).
47+
48+ * The pipes config keys staleFetcherTimeoutSeconds and
49+ staleFetcherDelaySeconds have been removed; a config still carrying them
50+ fails startup (TIKA-4809).
51+
52+ * ExceptionUtils.trimMessage has been removed from tika-core; it moved into
53+ tika-eval-core (TIKA-4809).
54+
55+ * BasicContentHandlerFactory.parseHandlerType now throws
56+ IllegalArgumentException for an unrecognized handler name instead of
57+ silently returning the supplied default (TIKA-4809).
58+
59+ * HttpClientFactory's inert redirect-host allowlist accessors
60+ (get/setAllowedHostsForRedirect) have been removed (TIKA-4809).
61+
62+ * TimeoutLimits: progressTimeoutMillis of 0 combined with a positive
63+ totalTaskTimeoutMillis is now rejected at config load; it would kill
64+ every task immediately (TIKA-4809).
65+
66+ * The http-fetcher now verifies TLS certificates and hostnames by default;
67+ set verifySsl:false to opt out (TIKA-4809).
68+
69+ * tika-server: /pipes returns the same JSON body as /tika/rmeta/unpack --
70+ {"status":<RESULT_STATUS>,"message":...} -- instead of a /pipes-only
71+ {"status":"ok"|"process_crash",...} shape (TIKA-4809).
72+
73+ * tika-server: POST /async requires an object body {"tuples":[...]} instead of
74+ a bare JSON array (TIKA-4809).
75+
76+ * tika-server: the tika-server-client module has been removed (TIKA-4809).
77+
378 NEW FEATURES
479
580 * Content-based detection of ASN.1/DER crypto containers at parse time. An
@@ -11,6 +86,13 @@ Release 4.0.0 - ???
1186 * MagicDetector now compiles its regular expression once, in the
1287 constructor, instead of recompiling it on every match (TIKA-4796).
1388
89+ * Unified timeout model across the library, pipes, and server: a total-task
90+ budget plus a progress/stall timeout, composed recursively over embedded
91+ documents (TIKA-4813).
92+
93+ * tika-server: /meta now runs through the same pipes-backed parser as the
94+ other extraction endpoints (TIKA-4809).
95+
1496 * tika-grpc's fetchAndParseServerSideStreaming now completes the call
1597 after delivering its reply, instead of leaving the client waiting
1698 for a terminal signal that never came (TIKA-4804).
0 commit comments