Skip to content

Services, SDKs, Ingest, and Policies Configuration ​

This page documents the service, document parser, ingest pipeline, graph linker, scanner, connector, and policy configuration sections in pycaber.

DocParser ​

Configures the PyCaber Document Parser, including the per format parser router (DocParser.formatRouter), the sparse extraction fallback gate (DocParser.formatRouter.fallbackGate), and the Named Entity Recognition engine (DocParser.nerEngine).

KeyDerived Environment VariableTypeDefaultDescription
DocParser.hostCSI_DOC_PARSER_HOSTstring"0.0.0.0"Bind address for the Document Parser HTTP/gRPC service.
DocParser.portCSI_DOC_PARSER_PORTinteger8084Listen port for the Document Parser service (CSI_DOC_PARSER_PORT kept exception).
DocParser.workersCSI_DOC_PARSER_WORKERSinteger4Number of concurrent worker threads or subprocesses (CSI_DOC_PARSER_WORKERS kept exception).
DocParser.modeCSI_DOC_PARSER_MODEstring"Standalone"Execution topology ("Standalone" for router_fold, "Internal" or "External" for router_split).
DocParser.nerEngineCSI_DOC_PARSER_NER_ENGINEstring"gliner2"Active Named Entity Recognition backend ("gliner2" zero shot transformer default, "spacy", "regex", or "disabled").
DocParser.glinerEndpointCSI_DOC_PARSER_GLINER_ENDPOINTstring"http://127.0.0.1:8765"Endpoint URL for the host GPU gliner2_model_server.py daemon.
DocParser.doclingEndpointCSI_DOC_PARSER_DOCLING_ENDPOINTstring"http://127.0.0.1:8766"Endpoint URL for the host GPU docling_serve_wrapper.py daemon (verified via GET /caber/attest).
DocParser.maxDocumentBytesCSI_DOC_PARSER_MAX_DOCUMENT_BYTESinteger104857600Maximum input file size in bytes (100 MB default) accepted before streaming rejection.
DocParser.ocrEnabledCSI_DOC_PARSER_OCR_ENABLEDbooleantrueEnables optical character recognition inside docling for scanned PDFs and image inputs.
DocParser.formatRouter.defaultChainCSI_DOC_PARSER_FORMAT_ROUTER_DEFAULT_CHAINarray<string>["docling", "tika"]Ordered parser chain evaluated when an input format does not match an explicit key in DocParser.formatRouter.routes.
DocParser.formatRouter.routesCSI_DOC_PARSER_FORMAT_ROUTER_ROUTESobjectSee belowCase preserved map from canonical format name (markdown, pdf, docx, html, csv, json, txt) to an ordered array of parser lane names.
DocParser.formatRouter.overrideAllowlistCSI_DOC_PARSER_FORMAT_ROUTER_OVERRIDE_ALLOWLISTarray<string>["markdown", "docling", "pymupdf4llm", "tika", "plain_text"]Allowlist of parser lane identifiers that callers may request via per request parser_override headers.
DocParser.formatRouter.fallbackGate.minTextCharsCSI_DOC_PARSER_FORMAT_ROUTER_FALLBACK_GATE_MIN_TEXT_CHARSinteger200Minimum extracted non whitespace Unicode character count required from a fast non docling parser lane when input byte length meets minInputBytes.
DocParser.formatRouter.fallbackGate.minInputBytesCSI_DOC_PARSER_FORMAT_ROUTER_FALLBACK_GATE_MIN_INPUT_BYTESinteger10240Minimum raw input document size in bytes (10 KiB) at which Caber runtime enforces the minTextChars threshold and triggers a single hop docling retry with a {sha}.redirect.json pointer (gate-v1:floor={minTextChars},min={minInputBytes}).

Default DocParser.formatRouter.routes Table ​

json
{
  "DocParser": {
    "nerEngine": "gliner2",
    "formatRouter": {
      "defaultChain": ["docling", "tika"],
      "routes": {
        "markdown": ["markdown"],
        "pdf": ["pymupdf4llm", "docling", "tika"],
        "docx": ["docling", "tika"],
        "pptx": ["docling", "tika"],
        "xlsx": ["docling", "tika"],
        "html": ["docling", "tika"],
        "txt": ["plain_text"]
      },
      "overrideAllowlist": [
        "markdown",
        "docling",
        "pymupdf4llm",
        "tika",
        "plain_text"
      ],
      "fallbackGate": {
        "minTextChars": 200,
        "minInputBytes": 10240
      }
    }
  }
}

Process_API, API_Tap, and ApiMap ​

Configures runtime API traffic inspection, sidecar tap ingestion, and API topology discovery.

KeyDerived Environment VariableTypeDefaultDescription
Process_API.bindAddressCSI_PROCESS_API_BIND_ADDRESSstring"0.0.0.0:8082"Listen address for the Process_API inline evaluation and ingestion service.
Process_API.maxConcurrentRequestsCSI_PROCESS_API_MAX_CONCURRENT_REQUESTSinteger1024Maximum in flight requests processed concurrently before applying HTTP 429 backpressure.
Process_API.requestTimeoutMsCSI_PROCESS_API_REQUEST_TIMEOUT_MSinteger5000Per request evaluation timeout in milliseconds.
API_Tap.bufferCapacityCSI_API_TAP_BUFFER_CAPACITYinteger8192Bounded ring buffer capacity for asynchronous mirrored HTTP and gRPC traffic frames.
API_Tap.dropOnFullCSI_API_TAP_DROP_ON_FULLbooleantrueDrops mirrored tap frames without blocking the caller when the ring buffer is full.
API_Tap.sampleRateCSI_API_TAP_SAMPLE_RATEnumber1.0Fraction of non sensitive traffic frames (0.0 to 1.0) sampled for schema discovery.
ApiMap.discoveryIntervalSecsCSI_API_MAP_DISCOVERY_INTERVAL_SECSinteger60Interval in seconds for aggregating observed endpoints and flushing discovery records to csi_api_map.
ApiMap.inferOpenApiSchemaCSI_API_MAP_INFER_OPEN_API_SCHEMAbooleantrueAutomatically infers JSON Schema and OpenAPI parameter types from observed request and response payloads.

S3_Scanner, SQL_Scanner, and Kafka_Scanner ​

Configures batch and streaming data source scanners built on caber_connector_sdk and coordinator.

KeyDerived Environment VariableTypeDefaultDescription
S3_Scanner.concurrencyCSI_S3_SCANNER_CONCURRENCYinteger16Number of parallel object download and chunking workers per bucket scan job.
S3_Scanner.includePrefixesCSI_S3_SCANNER_INCLUDE_PREFIXESarray<string>[]Optional list of S3 key prefixes to include (empty array scans the entire bucket).
S3_Scanner.excludePrefixesCSI_S3_SCANNER_EXCLUDE_PREFIXESarray<string>[]List of S3 key prefixes skipped during bucket enumeration.
S3_Scanner.incrementalCheckpointCSI_S3_SCANNER_INCREMENTAL_CHECKPOINTbooleantrueSkips objects whose ETag and LastModified timestamp match the last committed checkpoint in OpenSearch.
SQL_Scanner.fetchSizeCSI_SQL_SCANNER_FETCH_SIZEinteger5000Number of rows fetched per cursor batch when scanning relational tables.
SQL_Scanner.maxConnectionsCSI_SQL_SCANNER_MAX_CONNECTIONSinteger8Maximum connection pool size per registered database source.
SQL_Scanner.sampleRowsLimitCSI_SQL_SCANNER_SAMPLE_ROWS_LIMITinteger0Optional row cap per table (0 scans all rows).
Kafka_Scanner.consumerGroupIdCSI_KAFKA_SCANNER_CONSUMER_GROUP_IDstring"caber-scanner"Kafka consumer group identifier used for offset tracking.
Kafka_Scanner.autoOffsetResetCSI_KAFKA_SCANNER_AUTO_OFFSET_RESETstring"latest"Starting offset policy ("earliest" or "latest") when no committed offset exists.
Kafka_Scanner.maxPollRecordsCSI_KAFKA_SCANNER_MAX_POLL_RECORDSinteger500Maximum messages fetched per poll cycle.

ENV_Manager, Dashboard, and Auth_Analyzer ​

Configures environment lifecycle management, the administrative dashboard API, and authentication graph analysis.

KeyDerived Environment VariableTypeDefaultDescription
ENV_Manager.reconcileIntervalSecsCSI_ENV_MANAGER_RECONCILE_INTERVAL_SECSinteger30Interval in seconds between service health and container state reconciliation loops.
ENV_Manager.noRestartCSI_NO_RESTARTbooleanfalseDisables automatic container or worker restarts on crash (CSI_NO_RESTART kept exception).
Dashboard.bindAddressCSI_DASHBOARD_BIND_ADDRESSstring"0.0.0.0:8080"Listen address for the backend dashboard and control plane API server.
Dashboard.sessionTtlSecsCSI_DASHBOARD_SESSION_TTL_SECSinteger3600Administrator session token lifetime in seconds.
Auth_Analyzer.anomalyThresholdCSI_AUTH_ANALYZER_ANOMALY_THRESHOLDnumber0.85Risk score threshold (0.0 to 1.0) for flagging anomalous privilege escalation or cross tenant OBO delegation paths.
Auth_Analyzer.windowMinutesCSI_AUTH_ANALYZER_WINDOW_MINUTESinteger60Sliding time window in minutes for aggregating authentication and token exchange events.

Compliance_Policies, Identity_Sources, and Object_Sources ​

These three top level sections store structured, case preserved declarations loaded via Caber runtime and the policy engine:

  • Compliance_Policies: Map of named zero trust and data protection policies. Each policy specifies mode ("enforce", "audit", "disabled"), matching classifications or CORI tags (c<id> / g<id>), allowed principal roles or groups, and target action ("ALLOW", "REDACT", "BLOCK"). Downgrading a policy mode (for example from "enforce" to "audit") is classified as OperationClass.PolicyModeDowngrade in sys_config_control and requires two distinct PlatformAdmin approval grants.
  • Identity_Sources: Map of configured identity providers (Okta, EntraID, AWS_IAM, OIDC, LDAP) with OIDC issuer URLs, JWKS endpoints, group claim mappings, and sync intervals. Mutating an entry under Identity_Sources is classified as OperationClass.IdentityProviderChange and requires two distinct PlatformAdmin approval grants.
  • Object_Sources: Map of registered external data sources (s3, minio, gcs, azure_blob, cloudtrail, postgres, snowflake). Loaded exclusively through Caber runtime(), which validates each entry's CORI identifier (leading 'c' or 'g', <= 10 lowercase ASCII alphanumeric characters, 'gss' and 'cs3aws' reserved), preserves scheme fidelity via ObjectSourceEndpoint.authority() (endpoint) and ObjectSourceEndpoint.url() (connection_url), and populates the lock free ArcSwap SourceRegistry.