Package ai.attackframework.tools.burp.utils.opensearch
package ai.attackframework.tools.burp.utils.opensearch
OpenSearch transport utilities shared by all sinks that push to OpenSearch.
Two bulk entry points serve different workloads:
OpenSearchClientWrapper.pushBulk(java.lang.String, java.lang.String, java.lang.String, java.util.List<java.util.Map<java.lang.String, java.lang.Object>>)— retry-coordinated bulk push used by one-shot snapshot reporters (Proxy History, Sitemap, Findings). Integrates withIndexingRetryCoordinatorso transient failures pause inbound work and later retry queued batches without double-counting.ChunkedBulkSender— streaming drain used by the live traffic queue (TrafficExportQueue). Writes NDJSON incrementally to avoid holding large batches in memory for Proxy and Repeater live traffic.
Batch sizing is governed by
BatchSizeController, which adapts to
observed bulk latency to keep pushes within a safe size/time envelope. Both bulk paths share
this controller so sustained backpressure applies uniformly across reporters.
Snapshot and live paths both converge on
FileExportService for file output and on
BulkOutcomeRecorder /
TrafficRouteBucket for counter accounting so
stats remain consistent regardless of which bulk strategy runs.
-
ClassDescriptionSingle shared controller for batch size (doc count per OpenSearch bulk request).Classifies a per-item OpenSearch bulk error as either permanently rejected or transient/retryable.Sends traffic documents to OpenSearch using a chunked POST to the standard Bulk API.Result of one chunked bulk request: success count and total documents sent.Coordinates OpenSearch retries and bounded fallback queues for failed writes.Thrown when an OpenSearch client cannot be constructed.Wraps OpenSearch connection tests and document push operations for the exporter.Factory/cache for OpenSearch clients.Shared formatting for OpenSearch HTTP request/response logging (Test Connection only).Performs a raw HTTP GET to the OpenSearch root (/) with the same auth, SSL, and HTTP version policy (NEGOTIATE) as
OpenSearchConnector, so we can log the actual protocol and status line from the wire (including HTTP/2 when negotiated).Result of a raw GET / request: status line details, body, and log strings (real request/response with redaction).Shared TLS helpers for OpenSearch connectivity, pin import, and trust-mode enforcement.Per-index bounded queues for failed OpenSearch index operations.