Portal

Manage API keys, providers, and tenant settings through the Noirdoc Portal.

Overview

The Noirdoc Portal is the management interface for managed/cloud deployments. Through the portal at portal.noirdoc.de, you can manage API keys, configure LLM providers, and adjust tenant settings.

Managed service

The portal is available in Noirdoc’s managed service. For self-hosted deployments, settings are configured via environment variables. See Configuration Reference.

API keys

Create and manage proxy API keys (px-*) through the portal. Each key is scoped to your tenant and inherits the tenant’s provider configuration and pseudonymization settings.

Key lifecycle:

  • Creation — The full key value is shown only once at creation. Store it securely immediately.
  • Labeling — Assign a human-readable label to each key (e.g., production, staging, dev-team).
  • Deactivation — Delete a key to deactivate it. Deactivated keys can no longer authenticate proxy requests.
  • Reactivation — Previously deactivated keys can be reactivated if needed.

You can also manage keys programmatically via the Portal API.

Providers

Configure LLM provider connections through the portal. For each provider, you supply your API key and any required connection settings. Noirdoc uses these credentials when forwarding pseudonymized requests to the provider.

Supported providers:

ProviderRequired fieldsOptional fields
OpenAIapi_key
Anthropicapi_key
Azure OpenAIapi_keybase_url, api_version
OpenRouterapi_keybase_url

Provider keys are encrypted at rest and never exposed to your application code. Your application only ever uses px-* proxy keys.

Settings reference

The following table lists all available tenant settings:

SettingTypeDefaultDescription
mapping_ttl_daysnumber30Days pseudonym mappings are retained. 0 disables persistence.
pseudonym_labelstring<<TYPE_N>>Template for pseudonym tokens. Supports {type} and {n} variables.
allow_file_contentbooleanfalseMaster switch for file content processing.
file_analysis_modeenumpseudonymizeHow files are handled: passthrough, detect_only, block, or pseudonymize.
file_max_size_mbnumber10Maximum file upload size in MB.
file_ocr_enabledbooleantrueEnable OCR for images and scanned PDFs.

Detailed setting descriptions

mapping_ttl_days

Controls how long the bidirectional mapping between real values and pseudonyms is stored.

  • Default: 30 — mappings persist for 30 days after last access.
  • Higher values (e.g., 90, 365) — useful when conversations about the same entities span weeks or months, ensuring consistent pseudonyms.
  • Lower values (e.g., 7) — reduces stored mapping data for high-volume tenants.
  • Zero (0) — disables mapping persistence entirely. Mappings exist only for the lifetime of a single request.

When TTL is set to 0, the same person mentioned in two separate API calls may receive different pseudonyms (<<PERSON_1>> in the first call, <<PERSON_3>> in the next). Within a single call, consistency is always maintained.

pseudonym_label

Defines the format of pseudonym tokens inserted into text. The default format <<TYPE_N>> produces tokens like <<PERSON_1>> or <<EMAIL_2>>.

Template variables:

  • {type} — replaced with the entity type (e.g., PERSON, EMAIL, IBAN).
  • {n} — replaced with the sequential index.

Choose a format unlikely to appear in natural text and that your model handles well. The default double-angle-bracket format works reliably with most models.

File settings

  • allow_file_content — Boolean master switch. When false (default), files are never analyzed regardless of other settings. Set to true to enable the file processing pipeline.
  • file_analysis_mode — Determines processing behavior: passthrough (no analysis), detect_only (scan and log), block (reject if PII found), or pseudonymize (replace PII in files).
  • file_max_size_mb — Upper limit for uploads. Default is 10 MB.
  • file_ocr_enabled — When true (default), OCR is applied to images and scanned PDFs. Disabling reduces latency but skips PII in non-digital text.

For detailed file handling behavior, see File Handling.

Custom pseudonym labels

The default format <<TYPE_N>> can be customized using the pseudonym_label setting. Template variables {type} and {n} are substituted at runtime.

TemplateOutput
<<{type}_{n}>> (default)<<PERSON_1>>
[REDACTED_{type}_{n}][REDACTED_PERSON_1]
{{{type}_{n}}}{PERSON_1}

Standard privacy (default)

Suitable for most use cases. Text is pseudonymized, files are not processed.

{
  "mapping_ttl_days": 30,
  "pseudonym_label": "<<{type}_{n}>>",
  "allow_file_content": false
}

Document-heavy workflows

For applications that regularly process PDFs, contracts, or reports containing personal data.

{
  "mapping_ttl_days": 90,
  "allow_file_content": true,
  "file_analysis_mode": "pseudonymize",
  "file_max_size_mb": 25,
  "file_ocr_enabled": true
}

Maximum privacy

For environments requiring the strictest data handling — no mapping persistence, files with PII are blocked.

{
  "mapping_ttl_days": 0,
  "allow_file_content": true,
  "file_analysis_mode": "block",
  "file_ocr_enabled": true
}

Updating settings

Via the portal UI

Sign in to portal.noirdoc.de, navigate to your tenant settings, and update values through the web interface. Changes take effect immediately for all subsequent API requests.

Via the Portal API

Settings can also be updated programmatically. See Portal API for the PATCH /portal/settings endpoint.