Operator handbook
Brane AIF Handbook
- Updated
- 1 September 2026
- Applies to
- Brane AIF 1.4.x
AI-Z GmbH · Königstraße 26 · 70173 Stuttgart · ai-z-group.com — generated from the online documentation. No separately maintained edition exists; the date above is authoritative.
This handbook is for administrators who commission and operate a Brane AIF appliance. It covers everything from initial setup through configuration and daily operations to security, privacy, and compliance.
1. Getting Started
Your Brane AIF appliance is pre-configured and ready to use. Three steps are all it takes.
1
Connect
Connect the appliance to power (included power supply) and network (Ethernet cable to your switch or router).
2
Power On
Press the power button. The appliance boots in about 90 seconds — all services start automatically.
3
Open Browser
Open http://brane-aif.local in your browser. Alternatively: scan the QR code on the back of the appliance.
Network Requirements
| Requirement | Details |
|---|---|
| Ethernet | RJ45, 100 Mbit/s or faster |
| DHCP | Automatic IP assignment (standard in most networks) |
| Internet | Optional — only needed for cloud models, tunnel and updates |
| Inbound Ports | None (when using Cloudflare Tunnel) |
| Outbound Ports | 443 (HTTPS) for cloud APIs and updates |
| Wi-Fi | Not supported — please use Ethernet |
Note
Appliance not reachable?
If brane-aif.local doesn't work: check that your computer is on the same network. Alternatively, find the appliance's IP address in your router under “Connected Devices” (hostname: brane-aif).
Network Prerequisites
So your appliance is ready the moment it arrives, clarify the following network points with your IT team in advance. These are exactly the details the onboarding form asks for — so you can prepare them at your own pace. Leave anything you don’t know yet blank.
Connectivity
Two operating models are available:
| Model | Meaning |
|---|---|
| Internet-routed | Outbound HTTPS for cloud models, updates and the management tunnel. Inbound ports stay closed. |
| Air-gapped (offline) | Fully offline. 100 % local processing, manual updates. Maximum data sovereignty. |
IP Address & DNS
Out of the box the appliance gets its address via DHCP. For production we recommend a static configuration:
| Field | Description | Example |
|---|---|---|
| Static IP | Fixed address of the appliance on your network | 10.0.1.20 |
| Gateway | Your network’s default gateway | 10.0.1.1 |
| DNS server | Internal or external resolver | 10.0.1.1, 9.9.9.9 |
| FQDN | Fully qualified name the box is reachable under | ai.your-company.com |
| NTP server | Time sync (important for certificates & audit logs) | pool.ntp.org |
Firewall & Ports
Brane AIF has minimal requirements — typically no inbound ports need to be opened.
| Direction | Port | Purpose |
|---|---|---|
| Inbound | — | None (with Cloudflare Tunnel). Optionally 443 internally for LAN access. |
| Outbound | 443 (HTTPS) | Cloud APIs (if used), update registry ghcr.io, management tunnel |
TLS & Certificates
Choose how the connection is encrypted — the step-by-step guide is in Chapter 9:
- Cloudflare Tunnel — recommended, no open port, automatic HTTPS
- Custom certificate — from your internal PKI
- Self-signed — internal testing only
Cloud API Key (optional)
Only if you want to use cloud models: have an API key ready — easiest is an OpenRouter key (one key for all providers, see API Keys). In “Local Only” mode no key is needed.
Note
Straight into the form
Every point listed here is asked in the onboarding form. You don’t need to install anything in advance — we’ll sort out any open items together during commissioning.
2. Setup Wizard
On first access, the setup wizard starts automatically. It guides you through configuration in 6 steps. All settings can be changed later in the admin dashboard.
Step 1: Company
- Company Name — Appears on the login page, in chat and in the system prompt
- Company Logo — upload your logo (PNG or SVG) after setup in the admin area
- Language — Deutsch, English or Français
- Mode — Enterprise (with login, recommended) or Stateless (no login, for testing)
Warning
Important
The mode can only be changed after initial setup via a factory reset. For production use, always choose “Enterprise”.
Step 2: Administrator
- Admin Email — Your login address (cannot be changed later)
- Password — Minimum 8 characters
- SSO — Optional, configure here or later (see Section 4)
Step 3: AI Configuration
The core setting: which AI models to use and how to route requests.
Local Model
Your pre-installed on-premise model is detected automatically. If not: click the refresh button or enter the model name manually.
Cloud Model (optional)
In addition to the local model, you can configure a cloud model. Choose your provider and desired model:
| Provider | Recommended Model | Other Options |
|---|---|---|
| OpenAI | GPT-4.1 Mini | GPT-4.1, GPT-4o, o4-mini, o3 |
| Anthropic | Claude Sonnet 4.5 | Claude Opus 4.6, Claude Haiku 4.5 |
| Gemini 2.5 Flash | Gemini 2.5 Pro | |
| Mistral | Mistral Small | Mistral Large, Pixtral Large |
| xAI | Grok 3 Fast | Grok 3, Grok 3 Mini |
Routing Strategy
Determines how requests are distributed between local and cloud models:
- Local Only — No cloud access. No API keys needed. Maximum data sovereignty.
- Local Preferred — Local by default, cloud only for complex tasks. Best balance of security and quality.
- Cloud Preferred — Cloud for quality, local for sensitive data. Guardian protects PII automatically. The interface deliberately offers no "Cloud Only" mode — without a local fallback there would be no sovereignty guarantee. (A historical
cloud-onlyvalue set via the API is still accepted; even then the Guardian enforces local processing on PII, errors or uncertainty.)
PII Policy
What happens with personal data (names, emails, IBANs) for cloud requests?
| Policy | Behavior |
|---|---|
| Smart Anonymization | PII is replaced with tokens (Max Müller → <PERSON_1>), cloud sees only tokens, response is restored with original data. |
| Strict Blocking | Messages with detected PII are not sent to the cloud; they are processed locally instead. |
Step 4: Departments
- Quick-start templates — General, Manufacturing, Finance, Healthcare, Legal (adds typical departments at once)
- Add manually — Any department names
- Optional: Departments can be configured later in the admin panel
Step 5: Network
- Domain — e.g.
ai.your-company.com(optional) - Certificate — Cloudflare Tunnel (recommended), own certificate or self-signed (Chapter 9)
Step 6: Summary
Review all settings. API keys are displayed masked. Click “Complete Setup” to finish — you will be redirected to the login page.
Tip
Done
Log in with your admin credentials. Your AI appliance is ready to use.
3. Configure API Keys
API keys connect your appliance to cloud models. Without API keys, Brane AIF works fully locally — cloud integration is optional.
Note
When do I need API keys?
Only in Local Preferred and Cloud Preferred modes. In Local Only mode, no cloud connections are made.
Recommended: OpenRouter (1 Key = All Models)
The easiest way to connect to the cloud is OpenRouter — a universal gateway that provides access to all major providers (OpenAI, Anthropic, Google, Mistral, xAI, and more) with a single API key.
Note
Why OpenRouter?
One key instead of seven. You only pay for what you use — no subscriptions, no minimums. Brane AIF enables deny-data-collection by default; ZDR (Zero Data Retention) can be switched on with one click in the admin settings.
Brane AIF's OpenRouter Config (Security-First)
We automatically apply strict privacy defaults:
| Setting | Value | Meaning |
|---|---|---|
| ZDR | opt-in | Available as a switch (Admin → Settings): when ZDR is enabled, only endpoints that don't store data are used |
| data_collection | deny | No training on your data |
| appName | Brane AIF | Correct identification in OpenRouter dashboard |
| usage tracking | include | Per-request cost transparency |
Default model
The box ships with a curated catalog of verified models; the default model is openrouter:anthropic/claude-sonnet-4.5. On a box with EU residency, the catalog is filtered to endpoints that satisfy the data region (EU) — models without a compliant EU endpoint are not offered. On EU-residency boxes, openrouter/auto is deliberately not offered because the auto-router does not respect EU endpoint pinning.
EU Endpoint (Optional)
EU in-region routing is available to enabled enterprise customers. Once activated, requests run through eu.openrouter.ai and are routed only to endpoints that satisfy the EU data region. Activated via the cloudResidency: "eu" setting. The pinning applies to the OpenRouter path only — with direct provider keys the setting has no effect.
Set Up OpenRouter (3 Steps)
- Visit openrouter.ai and create an account
- Go to Settings → Keys and click “Create Key”
- Copy the key and enter it in Brane AIF: Setup Wizard or Admin Dashboard → AI → Cloud
Note
Privacy Architecture
Brane AIF's Guardian inspects every request before the cloud call. PII is detected and anonymized locally. OpenRouter only receives sanitized requests. If ZDR is enabled, OpenRouter forwards exclusively to endpoints without data retention. Terms: openrouter.ai/terms
Alternative: Direct Provider Keys
If you prefer direct access to individual providers (e.g. for existing enterprise contracts), you can configure individual API keys per provider.
Supported Providers
OpenAI
sk-...
Anthropic
sk-ant-...
AI...
Mistral
...
xAI / Grok
xai-...
OpenRouter
sk-or-...
Perplexity
pplx-...
Creating an API Key
Using OpenAI as an example (similar for all providers):
- Visit platform.openai.com/api-keys
- Click “Create new secret key”
- Enter a name (e.g. “Brane AIF”)
- Copy the key immediately — it is only shown once
- Enter it in Brane AIF: Setup Wizard (Step 3) or Admin Dashboard → Settings
Central Key Management
API keys are configured exclusively by the administrator (Setup Wizard or Admin Dashboard) and apply to all users; personal per-user keys do not exist.
Recommendation: Start with a global OpenRouter key (preset “Easy”).
Security
- All keys are stored AES-256-GCM encrypted on the appliance
- The encryption key exists only on your hardware
- API keys are not transmitted to AI-Z. When external AI models are used, only the content released under the routing, perimeter and protection policy is transmitted
- Keys can be deleted at any time
4. Configure SSO
Single Sign-On: employees log in with their existing corporate credentials. Can be enabled in the Setup Wizard or later in the Admin Dashboard.
Supported Providers
Azure AD / Entra ID Okta Generic OIDC
Azure AD / Microsoft Entra ID
Ideal for Microsoft 365 environments.
Setup
- Azure Portal → Azure Active Directory → App Registrations → New registration
- Name: “Brane AIF”
- Redirect URI (Web):
https://YOUR-DOMAIN/supabase/auth/v1/callback - Under Certificates & secrets → New client secret
- Enter the values in Brane AIF:
- Tenant ID: UUID of your Azure AD tenant (Azure Portal → Overview)
- Client ID: Application (Client) ID from the App Registration
- Client Secret: Secret Value (not the Secret ID)
Okta
- Okta Developer Console → Applications → Create App Integration
- OIDC → Web Application
- Sign-in redirect:
https://YOUR-DOMAIN/supabase/auth/v1/callback
- Issuer URL:
https://your-domain.okta.com/oauth2/default - Client ID: e.g.
0oaxxxxxxxxxxxxxxx - Client Secret: From the Okta app configuration
Generic OIDC (Keycloak, Auth0 etc.)
- Create a Confidential Client in your IDP
- Redirect URI:
https://YOUR-DOMAIN/supabase/auth/v1/callback - Scopes:
openid,email,profile
- Issuer URL: e.g.
https://idp.company.com/realms/main - Client ID: Generated by the IDP
- Client Secret: Confidential Client Secret
Auto-Create Users
When enabled: users are automatically created on their first SSO login.
Warning
Caution
With Auto-Create enabled, all users in your directory can log in. Disable this option if you want to manually approve access.
Login for Your Employees
After SSO configuration, the login page shows an additional button (“Sign in with Microsoft”, “Sign in with Okta”, etc.). The classic email/password login remains available.
5. User Management & Roles
Adding Users
With SSO: Users sign in directly (Auto-Create) or are approved by the admin.
Without SSO: Employees click “No account yet? Request access” on the login page and register with email and password. The administrator approves access in the dashboard.
Role System
Brane AIF supports four roles with graduated permissions:
| Role | Access | Typical For |
|---|---|---|
| Admin | Full system access: all departments, settings, licenses, certificates | IT department |
| Dept Admin | Own department: users, settings, knowledge base, metering | Department head |
| Viewer | Read-only: audit trail, metering, compliance | Data protection officer, auditor |
| User | Chat with their department's rules | Employee |
Admin Dashboard
Under /admin/users you can:
- Create, deactivate or delete users
- Approve or reject access requests
- Assign role from dropdown: User / Dept Admin / Viewer / Admin
- Assign department per user
- View all users and their last login
Limits
| Limit | Default | Configurable |
|---|---|---|
| Messages per day (signed-in) | No fixed daily cap — a short burst throttle applies when very many messages are sent in quick succession; optionally the admin can set a monthly cloud cost budget per user (exhausted → local processing) | — |
| Messages per day (unauthenticated guests) | 5 (abuse guard for demo access) | No |
| File uploads per day | 500 | No (fixed default) |
6. Departments
Departments are a lightweight way to group your users — scalable, without a maze of per-group dials. A department bundles members, manages its department admins, and can optionally be run as a pure on-premise group. The actual protection behavior (routing, PII, company rules) is governed centrally in the Perimeter (chapter 12) — not per department — so the data boundary stays verifiable in one place.
Create Department
Under /admin/departments you create and manage departments:
- Enter a name (e.g. "HR", "Engineering", "Legal")
- Optionally a short description
- Optionally enable the "Local only" switch (
local_only)
The one policy switch: "Local only"
When "Local only" is on, every request from that department's members stays on the box — no cloud model, regardless of the global routing setting. This is deliberately the only department-level dial: an air-gap group for especially sensitive areas. In the Admin Dashboard, "Local only" is the only department-level dial — all other data-boundary levers are configured centrally in the Perimeter (chapter 12).
Members & department admins
On the department page you view and manage members directly (add / remove). To let someone run a department on their own, give them the Dept Admin role in User Management (chapter 5) — roles are assigned there, not duplicated in the department view. Deleting a department is blocked while it still has members assigned.
Note
Document visibility
The "Department only" level in the document upload appears once at least one department exists — keeping the upload dialog lean as long as you don't use departments.
7. Data Retention
GDPR Art. 5(1)(e) compliant (storage limitation). Configure how long chat data is retained.
Three Modes
| Mode | Behavior | Recommended For |
|---|---|---|
| Forever | All chats stored indefinitely | Development, internal tools |
| Auto-Delete | Chats deleted after N days (configurable: 1-3650) | Standard enterprise use |
| None (Ephemeral) | Messages in browser only, no database | HR, Legal, sensitive areas |
Ephemeral Mode — Strongest Privacy
In ephemeral mode, no message content is stored — neither in the database nor in the audit log; the audit log records only the routing decision, without content. The user sees a notice in the chat: "This chat is not saved". When the browser closes, the conversation is gone.
Legal: Ephemeral mode supports the principles of data minimization and storage limitation (Art. 5(1)(c) and (e) GDPR). Whether and for how long content must be retained depends on the processing purpose, the content itself, and the policies governing your business process.
Recommendations for Choosing a Mode
The retention mode applies globally to the whole box — the only per-department switch is "Local only" (chapter 6). As organizational guidance on which mode fits which content:
- HR-heavy usage: Ephemeral (salary talks, applications — disappear immediately)
- Engineering-heavy usage: 90 days (code reviews, technical questions — short history)
- Legal-heavy usage: Forever (contract reviews — audit-compliant)
8. Daily Operations
8.1 Admin Dashboard
Under /admin you can see at a glance:
- System Status — Operational / Degraded / Error + Uptime
- Registered Users — Number of active accounts
- Database Status — Online/Offline
- Local LLM — Ready/Offline + model name
- Guardian Policy — Routing mode and PII policy
8.2 Changing Settings
All Setup Wizard settings can be changed later in the Admin Dashboard under /admin/settings:
- Switch routing mode & PII policy
- Change local or cloud model
- Add or remove API keys
- Enable/disable SSO
9. HTTPS & certificates
Without a valid certificate every browser shows a warning — and staff who have learned to click warnings away are the opposite of security. This chapter walks through the three paths the appliance supports.
Everything for it sits in one place: Admin dashboard → Certificates. The top of the card shows the certificate currently installed, with issuer, expiry date and days remaining.
Which path fits?
| Path | When | Browser warning |
|---|---|---|
| Cloudflare Tunnel (recommended) | The box should be reachable from outside without opening a port | No — TLS terminates at the Cloudflare edge |
| Own certificate | You have an internal PKI or a certificate from a public CA | No, provided the chain is complete |
| Self-signed | Lab, test, short-term internal use | Yes, always |
Note
Let's Encrypt does not run on the appliance
The box deliberately carries no ACME client: it is frequently air-gapped, LAN-only, or sits behind a Cloudflare tunnel that already terminates TLS. An HTTP-01 or DNS-01 issuance cannot run here. For a public domain, issue the certificate off-box — a DNS-01 issuance on another host, for instance — and upload it here.
Path 1: Cloudflare Tunnel
- In dash.cloudflare.com → Zero Trust → Networks → Tunnels, create a tunnel and copy the token.
- Admin → Certificates → select "Cloudflare Tunnel", paste the token, save.
HTTPS is then active without opening an inbound port in your firewall.
Path 2: Own certificate
a) You already have a certificate
Upload the full chain: your server (leaf) certificate and every intermediate CA certificate — not the root — together with the matching private key. The key must be unencrypted, that is, without a passphrase.
Admin → Certificates → Custom certificate → choose files → upload.
The appliance checks before activating anything: does every block parse, and does the key match the leaf? It then reorders the chain leaf-first. A mismatched pair is rejected rather than installed — exactly the mix-up that otherwise only surfaces when the reverse proxy restarts.
b) You need one from your CA first
- Enter the domain (CN) and save it — the name the box is reached under, e.g.
ai.your-company.com. - Click "Generate CSR". The private key is created on the appliance and never leaves it.
- Hand the resulting signing request to your internal PKI or a public CA.
- Install the signed certificate together with its intermediates via "Upload signed certificate".
What the request contains: RSA 2048, subject /CN=<your domain>/O=<your company>/C=DE — and as SAN every name the box is reachable under (the configured domain, brane-aif.local, localhost). Browsers check the SAN, not the CN, so every name actually in use belongs in it.
Path 3: Self-signed
Enter the domain, click "Generate". Immediately usable, intended for lab and test. Every browser will warn — that cannot be switched off, because the certificate simply has no chain of trust.
Enforcing HTTPS without locking yourself out
Once a valid certificate is installed you can enable the HTTP→HTTPS redirect. The switch does not commit immediately: you have five minutes to confirm the change from an HTTPS session. If the confirmation does not arrive, the appliance rolls the change back by itself. The switch stays blocked while no certificate is installed, the certificate has expired, or no HTTPS listener answers.
Renewal
Certificates expire, and an expired one looks to a browser exactly like none at all. The card shows the days remaining; install the new chain the same way as the old one. Put a calendar entry 30 days before expiry — earlier for internal PKIs with short lifetimes.
If the browser still warns
| Message | Cause | Remedy |
|---|---|---|
| "Not secure" / unknown issuer | Self-signed, or your internal PKI's root is not distributed to the clients | Distribute the internal PKI's root certificate via group policy/MDM — or use a certificate from a public CA |
| "Certificate expired" | Lifetime exceeded | Upload a new chain |
| "Does not match the name" | The box is reached under a name that is not in the SAN | Reissue the certificate with every name actually in use in the SAN |
| Warning on some devices only | An intermediate is missing; some clients fill it in from cache, others do not | Upload the complete chain: leaf and every intermediate |
10. Backup & Updates
Creating Backups
Back up regularly with the included backup tool to external media.
Note
What is backed up?
- All chats, user accounts and documents
- Uploaded files
- Configuration and encrypted API keys must be backed up separately (not part of the standard backup)
Updates
Updates are managed by AI-Z: we deliver vetted images and install them remotely — for air-gapped boxes, installation happens on site. On the new fleet update channel, update artifacts are Ed25519-signed and verified on the box before installation; the rollout of this channel to existing boxes is in progress. Before every update you receive advance notice along with customer-readable release notes. After installation the appliance restarts automatically (downtime: under 1 minute).
All data, settings and API keys are preserved during updates.
Warning
Before every update
Create a backup. In case of issues, you can always roll back to the previous state.
11. Security Architecture
Six interlocking security layers protect your data — automatically, without manual intervention.
Architecture
Your Browser | Reverse Proxy — HTTPS & Certificates ───── :443 | Web App — Chat Interface & Admin ────── :3000 | | Guardian Core Database PII · Routing · Audit PostgreSQL + RLS + Vector Search | vLLM — Local AI Processing | GPU Inference
Guardian Core — Automatic Data Classification
Every user message passes through the Guardian before processing. It decides in real-time: process locally, send to cloud with anonymization, or block.
Phase 1: Hard Constraints (< 1 ms)
- Image content is extracted locally and checked like text — sensitive findings force local processing
- Chat already sensitive? → LOCAL (Conversation Lock)
- Mode = Local Only? → LOCAL
- No cloud API key? → LOCAL
Phase 2: PII Detection (< 200 ms)
- Regex scan + ML scan (NER model, local) + LLM scan (context-based) — together they cover 23 PII categories
Phase 3: Routing Decision
- No PII found? → Cloud allowed
- PII + policy "Block"? → LOCAL enforced
- PII + policy "Anonymize"? → Cloud with anonymization
- Uncertainty? → LOCAL (fail-safe)
Warning
Security invariants — cannot be disabled
- When in doubt, processing stays local — detected PII only leaves the system anonymized.
- Once sensitive = always local. Once a chat contains PII, the entire conversation stays on local infrastructure (Conversation Lock).
- Fail-Safe: If a core PII detector fails (error, timeout) or detection is uncertain, processing defaults to local. One documented exception exists: a failure of the prompt-injection classifier is non-blocking (fail-open) on the standard security posture; on the "Offline" and "Strict" postures it also forces local processing.
Detected PII Categories (23 Types in 7 Groups)
| Group | Categories | Detection |
|---|---|---|
| Identity | Person names, dates of birth, passport & social security numbers | AI + Regex |
| Contact | Email, phone, postal addresses | AI + Regex |
| Financial | IBAN, account numbers, credit cards | Regex |
| German enterprise IDs | Tax numbers, VAT IDs, trade register, insurance numbers | AI + Regex |
| Digital | Passwords, API keys, IP addresses | Regex |
| Organization & context | Company names, sensitive business context | AI |
| Special categories (Art. 9 GDPR) | Health data, political opinion, religion, ethnic origin | AI |
Smart Redaction — Pseudonymization
When data is sent to a cloud provider, it normally sees typed tokens rather than original data — without a guarantee of one-hundred-percent detection.
INPUT (user):
"Please contact Max Müller at max@company.com, IBAN DE89 3704 0044 0532 0130 01"
AFTER ANONYMIZATION (what the cloud sees):
"Please contact <PERSON_1> at <EMAIL_1>, IBAN <IBAN_1>"
AFTER REHYDRATION (what the user sees):
"I have contacted Max Müller at max@company.com."
In-Memory Mapping — encrypted at rest
The mapping between token and original value lives in memory. For cross-turn consistency it is additionally stored AES-256-GCM-encrypted and is removed when the chat is deleted or by the data-retention job.
Cross-Message Consistency
Within a conversation, the same PII value always receives the same token. max@company.com → always <EMAIL_1>.
Rehydration < 5 ms
Bidirectional O(1) lookups. No ML model involved. Fuzzy matching for AI-modified token formats.
Overlap Protection
max.mueller@gmail.com is not simultaneously detected as PERSON and EMAIL — the most precise category wins.
Encryption
| Layer | Standard | What is protected |
|---|---|---|
| Database (at rest) | AES-256-GCM | API keys, user keys, sensitive configuration |
| Network (in transit) | TLS 1.2/1.3 | External client traffic — via the Cloudflare tunnel or the enabled on-box TLS termination (chapter 8). Box-internal services (application, database, AI services) communicate exclusively on the isolated Docker network and are not reachable from outside |
| Database access | Row Level Security | Each user sees only their own data — enforced at database level |
| Key management | Environment Variables | Encryption keys never in the database — only as environment variables |
Data Isolation
Physical Isolation
All data on local infrastructure. AI inference runs locally. System works completely without internet (air-gap capable). No chat content leaves the box for analysis — tracing (Langfuse) also runs entirely on the box. Two documented exceptions: if the appliance is enrolled in fleet management, it periodically reports technical operating data to AI-Z (service status, load, memory and disk usage, version) — no prompts, no chat content, no personal data. And the optional product-feedback relay to AI-Z — active only after explicit opt-in with documented consent, PII-scrubbed on the box, with a pseudonymized user ID.
Logical Isolation
Row Level Security: each user sees only their own data. RBAC: strict separation of Admin/User/System. Multi-tenant; user and stream capacity depends on the license tier (see FAQ).
Audit & Traceability
Every routing decision documented (Local/Cloud, reason, flags). Audit logs are immutable — cannot be modified after the fact. No PII in the logs.
Right to Erasure
When the administrator deletes an account, all chats, messages and file attachments are irrevocably removed; audit-log entries are pseudonymized (person reference removed, the event itself is retained for the audit chain). Central RAG documents and their vectors are a company asset and are removed separately per document or via the admin data-deletion feature.
12. Admin Controls & Policy Tester
The administrator controls all protection behavior through four cascading controls; detection sensitivity is hard-wired to maximum and deliberately cannot be lowered. No code, no terminal — everything via the Admin Dashboard.
Decision Hierarchy
Routing Strategy "May the cloud be used at all?"
└─ AI Interaction Firewall "Is this content sensitive?"
├─ Enterprise Policy "What special rules does the company have?"
└─ PII Cloud Policy "What to do when sensitive? (Block vs. Anonymize)"
| Control | What the admin sees | What happens internally |
|---|---|---|
| Routing Strategy | 3 modes: Local Only → Local Preferred → Cloud Preferred | Determines whether cloud is even a valid target |
| Enterprise Policy | Free text in natural language | Company policy is directly embedded in the AI instruction — contextual understanding |
| PII Cloud Policy | Anonymize vs. Block | What happens after sensitive data is detected |
Note
All data categories are always active
Earlier versions had per-category PII toggles. They were removed on purpose: every category (names, contact details, IBAN, tax numbers, health data …) is always detected and cannot be switched off — a safety switch you can accidentally turn down is not a safety switch. What you control is the sensitivity and the company rule, not whether detection runs.
Enterprise Policy — Company-Specific Rules
The Enterprise Policy is the most powerful control. Instead of predefined categories, the company describes in natural language what is sensitive. The AI interprets these rules contextually for every message.
Financial Services
"Financial data (revenue, costs, margins, forecasts) as well as client names and portfolio data must never leave the box under any circumstances. Regulatory inquiries (BaFin, MaRisk) must always be processed locally."
Automotive Supplier
"All information about Project Aurora, part numbers (format: XX-YYYY-ZZZ), tooling data and OEM correspondence is confidential. General technical questions may use the cloud."
HR Services
"Applicant data, salary information, employee reviews and internal org charts are always sensitive. General HR questions about labor law may use the cloud."
Research Institution
"Unpublished research results, patent applications and grant proposals are strictly confidential. Literature research is unproblematic."
Integrated Policy Tester
The admin doesn't have to guess whether their policy works. Right in the dashboard there is a Policy Tester that executes the real Guardian pipeline.
Step 1: Write & save the policy — Enterprise Policy: "Financial data must never leave the box" · PII policy: Anonymize
Step 2: Enter a sample message & test — e.g. "Our revenue was 4.2M EUR in Q3"
Step 3: Read the instant result — PROCESSED LOCALLY · Reason: Enterprise Policy (financial data) · Flags: sensitive_context · Settings: cloud-preferred, High, Anonymize
Tip
Not a simulator — real pipeline
The Policy Tester executes exactly the same code path as a real user request. If the tester says "Local", it will also go local in real chat.
Recommended Setup Workflow
- Routing Strategy — for most companies:
Cloud Preferred - Enterprise Policy — formulate company-specific confidentiality rules in your own words
- Policy Tester — test 5–10 typical messages (sensitive + harmless)
- PII Cloud Policy —
Anonymizefor maximum cloud usage with full protection - Release the system to employees
Web Search: On-Box or External
With web search enabled, choose the search backend under Admin → AI & Cloud → Web Search. The on-box search (SearXNG) runs as a sovereign metasearch directly on the appliance — queries go to the search engines without any account or user context. Alternatively, Exa is available as an external semantic search service (US); detected personal data is stripped from the query before it leaves the box. In both cases the assistant marks web-search-based statements with numbered source references [1], [2] … that map to the displayed source list; depth mode researches deeper — more sources and fuller content per search.
13. Perimeter — Your Data Boundary at a Glance
The Perimeter (under /admin/perimeter) answers, on a single screen, the question every auditor and works council asks first: "What leaves this box — to whom, under which conditions?" It gathers the data-boundary levers that used to be scattered across several tabs into one place — governable and provable.
Plain-language summary
At the top, the current posture is stated in full sentences, generated live from the real settings (not hand-written, so it can never diverge from reality). For example: "Personal data is tokenized before the cloud · All detectors are active · When in doubt, everything stays local · Outbound traffic only to preset provider hosts." Change a lever below and the sentence re-writes itself immediately.
The three lever cards
| Card | What you control |
|---|---|
| Egress & Region | Routing mode, web-search policy, cloud region (EU/US/global — enforced on the OpenRouter path) and the allowlist of permitted target hosts |
| PII Protection | Block vs. Anonymize (detection sensitivity is fixed at maximum) |
| Company Rules | The active company rules (Cognitive Judge) — read-only here, plus a prompt tester that runs a sample message through the real Guardian pipeline and shows LOCAL / CLOUD / ANONYMIZED |
How sensitive data in the response is handled (output DLP) follows the PII policy automatically: "Anonymize" → redact, "Block" → block. There is deliberately no separate lever — and no "off".
Hard-wired — trust through guarantees
Below the levers is a strip of what cannot be switched off: all PII detectors always run, failure or uncertainty of the PII detection is processed locally (fail-safe-to-LOCAL; two documented exceptions: the prompt-injection classifier is fail-open on the standard posture, and a failure of the multilingual GLiNER booster reduces coverage without forcing local processing), and the Cognitive Judge cannot be disabled. A hard refusal (“not processed for security reasons”) is issued only on a block verdict with high confidence — in unclear cases the box answers normally but strictly locally, so unclear cases stay on the box. The principle of the whole screen: control the policy, lock the mechanism.
Perimeter Statement (export)
One click produces a dated, printable document (German + English) with exactly the same sentences as the summary, a full lever table, and the hard-wired guarantees — for auditors and the works council. No secrets (no keys, no tokens) appear in it.
Tip
Every perimeter change is logged
Changes to routing mode, PII policy, region, failure behavior and sensitivity are recorded in the audit log. The host allowlist is noted only as a count — the actual hostnames (your egress topology) stay private.
14. Cloud Providers & Data Policies
When you add an API key, the box communicates directly with the cloud provider. Here is what providers contractually guarantee — and where the limits lie.
Caution
Why Brane AIF still anonymizes
Even when a cloud provider contractually guarantees not to use data for training, residual risks remain: (1) Abuse monitoring data is stored for up to 55 days. (2) Court orders can force providers to retain data (OpenAI had to disclose this in 2025). (3) In a data breach, your PII would be affected. Anonymization drastically reduces these risks — the provider only sees tokens.
OpenAI (GPT-4o, GPT-5, o3, etc.)
| Aspect | Details |
|---|---|
| Training with API data | No — no training with API data by default |
| Data retention | 30 days — inputs & outputs for abuse monitoring |
| Zero Data Retention | Available for Enterprise customers on request (not standard) |
| Staff access | Authorized employees + third parties may access data upon abuse suspicion |
| Data location | US (default). Europe optional for Enterprise (since 2026) |
| DPA | Data Processing Addendum available (updated Jan 1, 2026) |
| Special risk | Court Order — OpenAI disclosed in 2025 that a court order required retention of certain API data |
Anthropic (Claude Opus 4.6, Sonnet, Haiku)
| Aspect | Details |
|---|---|
| Training with API data | No — Commercial Terms explicitly prohibit training |
| Data retention | 7 days — API logs automatically deleted after 7 days (since Sep 2025) |
| Zero Data Retention | Available for Commercial API customers |
| Consumer vs. Commercial | Caution — Claude Pro/Team (Consumer) trains with user data by default. Only API customers are exempt. |
| Data location | US. EU hosting via Amazon Bedrock or Google Vertex AI |
| DPA | Commercial Terms with explicit training prohibition |
Google (Gemini 2.5 Pro, Flash, etc.)
| Aspect | Details |
|---|---|
| Training with API data | No — Paid API does not use data for training |
| Data retention | 55 days — prompts & outputs for abuse monitoring |
| Free API tier | Caution — The free tier may use data for training |
| Zero Data Retention | Available on Vertex AI (Google Cloud) |
| Data location | Configurable via Google Cloud regions (incl. EU) |
| DPA | Google Cloud Data Processing Addendum (CDPA) |
Comparison at a Glance
| OpenAI | Anthropic | ||
|---|---|---|---|
| Training | No (default) | No (Commercial) | No (Paid) |
| Retention | 30 days | 7 days | 55 days |
| ZDR available | Enterprise only | Commercial API | Vertex AI |
| EU hosting | Enterprise (2026) | Via Bedrock/Vertex | Vertex regions |
| DPA | Available | Available | CDPA |
Why "Policy by Hardware" is Superior
Contractual Assurance (Cloud-only)
- Providers promise not to use data
- Data is still stored for abuse monitoring
- Court orders can force retention
- In a data breach, PII is affected
Technical Enforcement (Brane AIF)
- Detected PII is protected by anonymization; in "Local only" mode, nothing leaves the box at all
- Abuse monitoring contains only tokens without personal reference
- Court orders only affect placeholders
- Compliance evidence is fully with the customer
15. Compliance & GDPR
Warning
Art. 32 GDPR — Security of Processing
«Taking into account the state of the art [...] the controller and the processor shall implement appropriate technical and organisational measures to ensure a level of security appropriate to the risk [...]»
Specifically, Art. 32(1) requires: a) pseudonymisation and encryption, b) confidentiality, integrity and resilience, c) rapid restoration, d) regular testing of effectiveness.
GDPR Mapping
| Requirement | Implementation |
|---|---|
| Art. 32(1)(a) — Pseudonymisation | Smart Redaction with typed tokens |
| Art. 32(1)(a) — Encryption | AES-256-GCM at rest, TLS in transit |
| Art. 32(1)(b) — Confidentiality | Guardian routing, PII detection, Conversation Lock |
| Art. 32(1)(b) — Integrity | Immutable Audit Log, Row Level Security |
| Art. 32(1)(d) — Testing | Policy Tester, Audit Logs, OpenTelemetry |
| Art. 17 — Right to Erasure | Account deletion irrevocably removes chats, messages and attachments; audit logs are pseudonymized; RAG documents incl. vectors separately per document or via admin data deletion |
| Art. 25 — Privacy by Design | Local-first architecture, fail-safe to local |
| EU AI Act — Transparency | Model labeling, routing rationale in UI |
Prototype and Secrecy Protection (built toward VDA ISA / TISAX)
Via enterprise-policy rules with keywords, the system enforces local processing for defined confidential topics. Fully air-gap capable — no internet required. No TISAX label or assessment exists for the product itself; the mechanisms support your own assessment.
EU AI Act — what the box brings along
The AI disclosure under Art. 50(1) is technically enforced (cannot be switched off; only the wording is configurable). AI answers carry a model label in the UI (Local vs. Cloud), routing decisions are traceable and auditable. Machine-readable marking of generated content (Art. 50(2), deadline for existing systems 2 Dec 2026) is not yet implemented and planned.
Your Duties as Deployer (EU AI Act Art. 26)
AI-Z is the provider of Brane AIF; your company is the deployer when operating it — both roles carry their own obligations. As a deployer these include in particular: use in accordance with the instructions for use, designating human oversight (configurable in the box under Admin → Legal), retaining the automatically generated logs (at least 6 months), informing employees and, where applicable, the works council before deployment, and assessing whether your specific use case triggers a high-risk classification. The box ships ready-made templates for all of this: Admin → Compliance → Documents contains the instructions for use with the deployer duty list, DPIA, FRIA and employee-notification templates plus the works-council package — each with the configuration snapshot of your installation.
Quick answers for reviewers
The questions that come first in a data-protection or security review — with the place that goes into detail.
| Question | Answer |
|---|---|
| Where is data processed? | On the appliance in your network. Cloud processing only happens where the routing mode permits it and the Guardian releases the specific content (Chapters 2, 11). |
| What is AI-Z's role? | You are the controller under the GDPR. The scope and conditions of any processing by AI-Z follow the data processing agreement in place. |
| Does content go to AI-Z? | No. With fleet management enrolled, technical operating data is transmitted — no prompts, no chat content, no personal data (Chapter 11). |
| Who are the sub-processors? | Only the cloud providers you activate yourself. With no key stored there is none. Storage, training and retention per provider: Chapter 14. |
| Third-country transfer? | Only with cloud processing enabled towards a provider outside the EU. For US providers a disclosure obligation under the US CLOUD Act is possible regardless of storage location — which is precisely why personal values leave the box pseudonymised or not at all (Chapters 3, 11). |
| Which technical and organisational measures? | Encryption at rest and in transit, row level security per user, RBAC, immutable audit log, pseudonymisation before any cloud access (Chapter 11; Art. 32 mapping above). |
| How is data deleted? | Three storage modes up to "do not store at all" (Chapter 7); deleting an account irreversibly removes chats, messages and attachments, audit entries are pseudonymised (Art. 17 in the mapping above). |
| How do we evidence the current state? | The perimeter export produces a dated, printable document of the actual configuration — generated from the real settings, not from a description (Chapter 13). |
| What are the system's limits? | Chapter 16 names them: capacity, long conversations, reach and residual risk of detection. |
Post-Setup Security Checklist
| Action | Priority | |
|---|---|---|
| ☐ | Default passwords changed (database, admin account) | Critical |
| ☐ | Encryption key and JWT secrets regenerated (min. 32 bytes) | Critical |
| ☐ | TLS active: Cloudflare tunnel or on-box certificate installed (set HSTS, if desired, on the upstream proxy/tunnel) | Critical |
| ☐ | Network: only port 443 externally, internal services isolated | High |
| ☐ | Routing mode and PII policy configured | High |
| ☐ | Enterprise Policy formulated and validated with Policy Tester | High |
| ☐ | Regular updates scheduled (monthly) | High |
| ☐ | Audit logs reviewed regularly | Standard |
| ☐ | Backup strategy defined and tested | Standard |
| ☐ | SSO configured (if desired) | Optional |
| ☐ | Air-gap mode enabled (if no internet desired) | Optional |
16. Limits & capacity
Every system has limits. This chapter names the ones that become visible in daily operation — because a documented limit can be planned around and an unknown one cannot.
Concurrent use
The license tier sets two things: the number of seats and the parallel processing width of the local model (see FAQ). That width is not the appliance's overall capacity. Three subsystems have their own, mutually independent limits:
| Subsystem | What happens at the limit |
|---|---|
| Sign-in | Many simultaneous sign-ins — at the start of a training session, for instance — can make individual login attempts fail. Retrying usually succeeds immediately. |
| File extraction | Text extraction from documents runs at limited parallelism. Uploads beyond it are rejected rather than queued. |
| Chat | Above the licensed streams, response times rise; under peak load individual requests can fail instead of merely waiting. |
Sign-in and file extraction do not run through the local model — their limits sit below the license's stream count and cannot be raised by a higher tier alone.
Tip
Announce predictable load peaks
Training sessions, rollout days and migrations produce exactly the pattern that makes limits visible: many sign-ins and uploads within a few minutes. Tell us such dates in advance and we will size the appliance for them.
Long conversations get slower
To remember a conversation, the box reprocesses the history so far with every answer. Response time therefore grows with the length of the conversation — noticeably from around the fourth or fifth exchange in a long chat.
A deliberate safety decision adds to this: the privacy scan reads up to 50,000 characters per request. Beyond that the system evaluates the part it scanned and processes the request locally as a precaution — because "nothing found" would no longer be a statement about the whole text. Protection comes before speed.
What helps: start a new conversation for a new topic. This is not a workaround but the intended way of working — projects and history keep old conversations findable at any time.
Detection: reach and residual risk
All PII categories are always active and several detectors run in parallel (Chapter 11). Even so:
- No detection is complete. In an internal sweep across 162 individual cases from every category, 3 went to a cloud provider unnecessarily. All three were incidental single details with no fixed form — occupation, time of day, duration of a treatment — not account numbers, ID numbers or health records, which have a recognisable structure.
- Caution costs speed. More common than a gap is the opposite: a single brand or organisation name is enough to keep an otherwise harmless message local. That is intended — when in doubt, local — and it is why some innocuous question occasionally takes longer than expected.
- The verdict is not deterministic. The same wording can be classified differently on a repeat check, because language models are involved. The variation goes in the safe direction: when in doubt, local.
The two documented exceptions to "process locally on failure" are in Chapter 13 under "Hard-wired".
What the appliance reports outward
In local-only operation no content leaves the building. If the appliance is enrolled in fleet management, it reports technical operating data to AI-Z — service status, load, memory and disk usage, version. No prompts, no chat content, no personal data. Chapter 11 describes this in detail, including the optional product-feedback relay.
17. Customization & Branding
Every Brane AIF appliance can be fully tailored to your organization. We accompany you from initial planning through deployment to ongoing operations.
Company Branding
Your company logo on the login page, in the chat header, and in the setup wizard. Custom color scheme to match your corporate design. Custom domain (e.g. ai.your-company.com) with managed TLS certificates.
Custom AI Configuration
Pre-configured routing strategy and PII policies tailored to your industry. Custom Enterprise Policy pre-written by our team based on your compliance requirements. Model selection optimized for your use cases (speed vs. quality vs. multilingual).
SSO & Directory Integration
We configure Azure AD, Okta or your OIDC provider end-to-end. Group-based access control, automatic user provisioning, and role mapping. Test and validate the complete authentication flow before go-live.
Network & Infrastructure
On-site or remote installation in your data center or server room. Network configuration including Cloudflare Tunnel, custom DNS, and firewall rules. Integration with your monitoring stack (SNMP, Prometheus, Grafana).
Training & Onboarding
Administrator training: routing configuration, PII policies, user management, audit logs. End-user workshops: effective prompting, document upload, project workspaces. Dedicated support contact during the rollout phase.
Knowledge Base & RAG
We help you build your company knowledge base: document ingestion, vector indexing, and retrieval tuning. Connect internal wikis, SharePoint, or file shares so the AI can answer questions about your company data — all processed locally.
Ongoing Support & SLA
Monthly health checks and proactive monitoring. Priority support with guaranteed response times. Regular security updates and model upgrades. Quarterly business reviews with usage analytics and optimization recommendations.
Tip
Full-Service, from A to Z
We don't just deliver hardware — we accompany you through every step. From initial consultation and compliance review to deployment, training, and ongoing operations. sales@ai-z-group.com
18. Troubleshooting
Appliance not reachable in browser
- Computer and appliance on the same network?
- Ethernet cable plugged in? LED on port active?
- Try the IP address directly (Router → Connected Devices → “brane-aif”)
- Let the appliance run for at least 90 seconds after powering on
Setup Wizard doesn't appear
The wizard only shows on the very first access. If the appliance has already been set up, you will land directly on the login page.
Local model “Offline”
The local model needs 1–3 minutes to load after startup. Wait and refresh the page. If the problem persists: contact support.
SSO login not working
- Redirect URI correct? Must be exactly
https://YOUR-DOMAIN/supabase/auth/v1/callback - Client Secret still valid? (Azure Secrets expire after 6/12/24 months)
- User assigned to the IDP application?
Slow responses
With many concurrent users, response times increase. Sign-in, file extraction and chat each have their own capacity limits — once exceeded, individual requests can fail rather than merely slow down. Long conversations amplify the effect, because every answer reprocesses the conversation so far; starting a new conversation is the fastest remedy. For persistent delays or failures under load: contact us — we will review the sizing and hardware for your user count.
19. IDE & Developer Integration
IDE AI extensions talk to cloud services by default. Because Brane AIF exposes an OpenAI-compatible API, common developer tools can be redirected to the local box — your code stays in-house.
Note
What you need
An API key (Admin → API Keys) and your box's endpoint URL, e.g. https://api-brane.company.com/api/v1.
Recommended: IDE chat (Cline / Roo Code / Continue)
- Install the Cline extension (or Roo Code / Continue) in VS Code.
- Choose the “OpenAI Compatible” provider.
- Enter the endpoint URL and API key, select a model.
IDE chat then runs entirely through the box. Agentic coding (reading files, editing, solving tasks) requires tool calling (tools/tool_calls) — the gateway does not support this yet; it is on the roadmap.
GitHub Copilot (chat only)
Via Manage Language Models → OpenAI Compatible you can redirect Copilot's chat mode to Brane.
Warning
Important for sovereignty
Copilot's inline code completion stays on GitHub and cannot be redirected; Copilot also keeps sending telemetry to GitHub. For full data sovereignty, prefer Cline or Continue.
Claude Code
The box exposes only the OpenAI-compatible gateway — an Anthropic-native endpoint is not available. Tools that speak the OpenAI API can connect.
Other clients
Aider, opencode, and your own apps/SDKs work with the same endpoint URL and API key.
Listing available models
To see which models the box offers, call GET /api/v1/models — OpenAI-compatible, using the same API key (bearer token) as chat. Handy for letting tools populate the model picker automatically.
curl https://api-brane.company.com/api/v1/models \
-H "Authorization: Bearer <API-KEY>"
Note
A note on routing
The model selected in the tool is a request — the Guardian decides which model actually answers based on routing mode and content. In Local Only mode no code leaves the box.
20. FAQ
Do I absolutely need cloud models?
No. In “Local Only” mode, everything runs on your hardware. No internet connection, no API keys. Chat and document upload are fully available; the knowledge base (RAG) is an optional add-on feature.
Can I change the AI model later?
Cloud models can be switched at any time without a restart via Admin Dashboard → Settings. Changing the local model is rolled out by AI-Z and requires a short inference restart.
How many concurrent users?
The license tier sets the seats and the parallel processing width of the local model: Starter (5 users, 8 parallel streams), Professional (25 users, 32 streams), Business (100 users, 128 streams), Enterprise (unlimited users, 512 streams). These figures describe model capacity, not the appliance’s overall load — sign-in and file extraction have their own, lower limits (see “Slow responses” in Chapter 18). For a dependable sizing against your user count, talk to us. Each user has fully isolated data.
Can I enable SSO later?
Yes. SSO can be enabled, changed or disabled at any time in the Admin Dashboard. Existing user accounts are preserved.
What happens during an update?
Updates are delivered by AI-Z as vetted images and installed remotely — on site for air-gapped boxes (signed and verified on the box on the fleet update channel; rollout to existing boxes in progress). You receive advance notice and release notes. All data, settings and API keys are preserved. Downtime: under 1 minute.
Is Brane AIF GDPR-compliant?
Brane AIF is designed for GDPR-compliant operation: in Local Only mode no data leaves your infrastructure, in hybrid modes detected PII is automatically anonymized or blocked, and audit logs document routing decisions as metadata. GDPR compliance of the overall deployment is your responsibility as the deployer — the box ships the technical measures and the compliance document library (DPIA template, RoPA, TOMs, DPA) to support it.
How do I back up my data?
Backups are created with the included backup tool; we recommend regular backups to external media. Details in the “Backup & Updates” section.
Multiple cloud providers at once?
Yes. You can add keys for all 7 providers. The default model determines the primary provider. All keys are managed centrally by the administrator.
Does the appliance need internet?
Only for cloud models, Cloudflare Tunnel and updates. In Local Only operation: no internet needed. The appliance works fully offline.
Questions?
Our team is happy to help.