← Back to home Security & privacy

Transparent. Technical. Verifiable.

Our tools often process sensitive engineering data. We have written down precisely where that data lives, how long it stays, and what we do technically to keep it from reaching the wrong hands. This page provides transparency information about processing, aligned with GDPR and the EU AI Act — it does not replace the formal privacy notice but complements it with the technical data-flow context.

Updated: 20 May 2026

Our own server infrastructure in Germany

Our own server infrastructure (landing site, mcsa, riskforge chatbot) runs on a Hetzner Cloud server in the Gunzenhausen data centre in Bavaria — German jurisdiction, no hyperscaler. Individual sub-processors (e.g. Anthropic for the chatbot, Resend for mail delivery) are located in the USA and are disclosed transparently in the per-tool blocks below.

Technical details on the infrastructure
  • Hetzner Online GmbH, Gunzenhausen data centre (DE).
  • MCSA runs as its own Docker-Compose stack with its own network (`mcsa-web_default`).
  • Dedicated Postgres instance per tool. No shared volumes, no shared secrets.
  • Nginx reverse proxy terminates TLS per subdomain (Let's Encrypt, auto-renewed).
  • Containers bind to 127.0.0.1 only — internet-reachable exclusively via Nginx.

What happens to your data — per tool

Each tool has its own data flows. We describe them individually because generalised statements quickly become inaccurate here.

MCSA — Minimal Cut-Set Analyzer

Live

MCSA takes FtaDSL text files (up to 10 MB) and computes fault trees and minimal cut-sets from them. The entire processing path runs in the server's RAM — at no point is your input persisted to disk.

  1. 1. Your browser posts the upload over HTTPS to `mcsa.appliedfusa.de`.
  2. 2. Nginx buffers the request in RAM (12 MB buffer, no disk spill).
  3. 3. FastAPI writes the file into a temporary directory — which lives in a container tmpfs (RAM disk, 512 MB).
  4. 4. The native C++17 binary `mcsa` parses and analyses the architecture.
  5. 5. The result ZIP is built in-memory and streamed directly to your browser.
  6. 6. The temp directory lives on tmpfs (RAM). After response completion, a `finally` block actively cleans it up in the regular case; on a hard container abort (e.g. OOM kill) the kernel discards the tmpfs contents at container end anyway — no disk spill possible.
Persistence
None. The audit database stores only metadata: your login email, the client IP, and a timestamp. Neither filenames nor contents nor analysis results ever leave RAM for disk.
Retention
IP + timestamp are automatically deleted from the database after at most 7 days (hourly cleanup job). The same window applies to expired magic-link tokens.
AI use
None. All computations run in the native C++ binary on our server. No external models, no LLM APIs, no third-party analysis.

Safety-Case Generator

Beta — client-side

A structured interview walks you through the core ISO 26262 requirements. The current Beta runs entirely in your browser — your input never leaves your device. The Markdown export is delivered directly as a file download. Interview is currently in German.

Today (Beta)
Vanilla HTML/CSS/JS wizard in the browser. No server requests, no storage, no cookies, no analytics. Closing the tab discards all state.
Data flow today
Your input stays in browser memory (RAM). The Markdown report is assembled client-side and downloaded as a Blob — it never reaches us.
AI use today
None. The Markdown structure is assembled deterministically from your input.
Planned (full version)
Native binary on our VPS, architecturally on the same pattern as MCSA. Persistable projects, multilingual exports, integration of MCSA analysis outputs (cut-sets, KPIs) as evidence references.
Structure (full version)
Follows Goal Structuring Notation (GSN). Template library per standard (ISO 26262, IEC 61508, IEC 62304).
Optional later
An optional text-polishing feature (e.g. style smoothing) could, in a later version, use an LLM service. If so, strictly opt-in per request — and never for safety-relevant argumentation.

fmea — Tool support for FMEA

Beta in preparation

fmea is tool support for FMEA creation: from an architecture model with failure-mode annotations, the FMEA table is derived mechanically. The data-flow profile closely matches MCSA (same stack defaults, same VPS, same tmpfs logic), with fmea-specific additions.

What gets uploaded
Model files — textual system architecture (functions, inputs/outputs, connections) plus failure-mode annotations per port and per function (OIM and IOM mappings). No binary data, no model attachments in v0.1/v0.2.
During the run
Upload and intermediate artifacts on tmpfs inside the container (RAM, max 512 MiB), not persistent.
After the run
Finally-cleanup per request — all temporary files are deleted as the response completes.
Persistent in Postgres
Metadata only — user-account data (email, plan status), auth tokens, upload log (timestamp, file hash, user identifier). The content of the uploaded file is not persisted.
Model content
Not stored. Uploading the same file twice yields two fresh, independent processing runs.
Sub-processors
Hetzner Online GmbH (Falkenstein, DE) for VPS hosting · Resend (USA, DPA) for magic-link mail delivery, active from v0.2 onwards · Let's Encrypt / ISRG for TLS certificates.
Planned (v0.3+)
If Simulink models are ever supported directly, the extraction will run locally on the user's machine — the server only ever sees the resulting model file, not the original model.
AI use
None. The substance is deterministic, no LLM/AI sub-processors.

csa26 — MISRA-C:2012 pre-audit check

Live · v1.0.1

csa26 is distributed as a GitHub Action and runs on your repository's own CI runner. Your source code never leaves your repository — the analysis happens in a container that GitHub launches in your account on every push. Applied FuSa has no access to your code, no telemetry on your findings, no logs of your builds.

Stack self-contained
Fully self-contained. csa26 wraps no third-party static analyser. The lexer, preprocessor, parser, symbol/type system and rule engine are Apache-2.0 IP of Applied FuSa and fully traceable in the public repository.
Sub-processors
GitHub (Microsoft) — provides the CI runner and container registry hosting for the csa26 action image. Data processing under the terms of your GitHub contract. No further sub-processors.
Data storage
Applied FuSa stores no data about csa26 runs. All data generated (findings, SARIF reports, annotations) stays entirely in your GitHub repository under your control.
Pre-audit notice
csa26 is a pre-audit tool and does not replace formal compliance assessment against MISRA-C:2012. It points out possible rule violations; formal compliance certification remains the responsibility of your safety manager.
Rule subset
csa26 v1 covers a deliberately curated subset of 20 FuSa-prioritised MISRA-C:2012 rules (see README in the repository). Full MISRA-compliance verification was never claimed and is out of reach for any tool of this class.
AI use
None. Lexer, parser and rule engine work deterministically.

riskforge chatbot — guided DSL interview

Live

The riskforge chatbot is the first platform pillar that uses an LLM. A Claude Sonnet 4.6 model runs a structured interview that builds up an FtaDSL file step by step (raw architecture → +OIM/TLE → +IOM/S/O/D). Important separation: the LLM is the interview leader and notation translator — the actual FTA/FMEA analysis substance is then computed by the deterministic engines mcsa and fmea. This separation is an architecture decision for audit-fitness.

Sent to Anthropic
Full system prompt (~1500 tokens of methodology context, FtaDSL syntax reference, phase workflow); the complete running conversation history (all user and bot messages); the current DSL state as a code block in bot answers; validator output from mcsa --dump-arch as a tag ([VALIDATOR-OK] or [VALIDATOR-ERROR: …]) in the following user turn.
Not sent to Anthropic
User email address, IP address, cookie values, quota counters, logout events. Anthropic only sees the anonymous conversation stream.
Sub-processors (Art. 28 GDPR)
Anthropic PBC (USA) — LLM provider, processing under DPA · Hetzner Online GmbH (Falkenstein, Germany) — VPS hosting for the chatbot stack · Resend (USA) — magic-link mail delivery, DPA · Let's Encrypt / ISRG — TLS certificates. DPAs are countersigned before beta opening; for existing sub-processors (Hetzner), DPAs are already in place.
Third-country transfer (Chapter V GDPR)
Anthropic (USA) and Resend (USA) process data outside the EU. Legal basis: EU Standard Contractual Clauses under Art. 46(2)(c) GDPR (2021/914). We conduct a Transfer Impact Assessment (TIA) per EDPB Recommendation 01/2020 and add safeguards: TLS encryption in transit, no persistence of architecture data at Anthropic beyond the abuse-log window, Anthropic training opt-out by default.
Inference region (beta)
API routing uses inference_geo: "global". Anthropic typically routes to us-east-1, us-west-2, or eu-west (Ireland). No guaranteed EU region during beta. Migration to AWS Bedrock eu-central-1 (Frankfurt) is planned for the commercial launch (phase 3); the chatbot backend's provider abstraction is prepared for it.
Data retention at Anthropic
Anthropic stores API inputs/outputs for up to 30 days for abuse monitoring by default (see Anthropic retention policy). Model training on user data is disabled on our Anthropic account (opt-out by default).
Data retention at Applied FuSa
Email addresses are persisted with date, login history and an optional use-case note in a SQLite database (beta marketing list, deletion on request). The conversation history stays in browser state; the chatbot server is stateless. Magic-link tokens expire after 15 minutes. The generated DSL can be downloaded by the user as .txt — the server does not store it.
Model and caching
Default model is Claude Sonnet 4.6, switchable via configuration. Prompt caching is enabled for the system prompt and methodology context — reduces API cost and latency from the second turn of every conversation.
AI use and audit separation
The LLM only produces the DSL file (notation translation). The FTA computation (mcsa) and the FMEA derivation (fmea) are deterministic, audit-fit engines without LLM. Whoever wants to verify the methodology verifies the engines, not the model.
Status
Live since May 2026 (Phase-2 beta). Quota limits active, full-access allowlist for listed email addresses. Observation phase running.

AI transparency (EU AI Act)

The EU AI Act requires us to clearly communicate where and how AI is involved. Here is the honest state.

Today deterministic

Our production tools (mcsa live, csa26 live, Safety-Case Generator Beta) run without AI. The Safety-Case wizard runs client-side in the browser; mcsa and csa26 are native programs — reproducible and auditable. The riskforge chatbot (Phase-2 beta since May 2026) is the first tool with LLM involvement.

Role under the EU AI Act (Art. 3)

For our own deterministic tools (MCSA, csa26, fmea, Safety-Case) Applied FuSa is the provider (Art. 3(3)) — we develop the system and place it on the market. For the riskforge chatbot, two roles combine: provider of the chatbot product and deployer (Art. 3(4)) of the LLM supplied by Anthropic that we integrate into our system.

Risk classification

All currently live tools are minimal risk (deterministic systems without AI, outside the actual AI Act obligations). Under its current intended purpose and functional scope, the riskforge chatbot falls under limited risk (Art. 50 AI Act): direct interaction between a natural person and generative AI, with transparency obligations. Under current classification, none of our tools qualifies as high-risk under Annex III or Art. 6 — the rationale is in the exclusion analysis in the next point. For every planned tool a re-classification against Annex III and the then-current intended purpose is performed before live activation.

Annex III exclusion analysis

Annex III lists as high-risk AI e.g. biometric identification, critical-infrastructure operation, education/employment decisions, law enforcement, migration. Our tools are engineering tools for human developers who in turn work in regulated industries (automotive, medtech, aerospace). The tool itself takes no safety-relevant decision and is not a safety component in the sense of Annex I — it provides inputs for engineering decisions taken by the user. Therefore not high-risk under Annex III.

Art. 50 transparency duty (chatbot)

The riskforge chatbot marks the AI interaction explicitly at first contact: the login page mentions „chatbot" in the title, the chat UI uses a visually separate bot avatar and bot bubble style, and the data flow to the Anthropic API is documented transparently in the tool block above. Generated DSL files carry no hidden AI content — the DSL is explicit structured text output with clear methodology, no „synthetic media" risk under Art. 50(2).

AI Literacy (Art. 4, since 02/02/2025)

Applied FuSa is a one-person operation. The responsible developer (Wolfgang Freese, diploma physicist, 14 years FuSa practice) holds competence in the methodology (FTA/FMEA), the LLM APIs used (Anthropic), data protection (GDPR Art. 28, Art. 46, EDPB Recommendation 01/2020) and the EU AI Act; this is documented internally via project and methodology records, published book and conference contributions, and ongoing professional reading. External users of our tools use them under their own responsibility; a systematic AI literacy training programme for employees is not required as there are no employees. If staff is added, a training process will be established.

Logging and human oversight

For the chatbot we only log quota counters and magic-link logins — the entire conversation content stays in the browser state, not on our servers. Human oversight is structurally provided by the workflow design: the user decides which DSL they produce and release; the analysis-bearing engines (mcsa, fmea) are deterministic and verifiable; the user themselves decides whether to base their engineering decisions on the results. No auto-submit, no hidden decision.

GDPR matrix per tool

Compact overview of data processing per tool along standard GDPR fields. Detailed description in the per-tool blocks above; formal legal version in the per-product privacy notice.

ToolPurposeLegal basisPersonal dataRecipientsThird countryRetentionStatus
Landing site (appliedfusa.de) Static content delivery Art. 6(1)(f) Server log only (IP, user agent, URL, time) Hetzner DE 14 days log Live
MCSA (mcsa.appliedfusa.de) Compute FTA from FtaDSL Art. 6(1)(b) Email (login), IP (audit), timestamp Hetzner DE · Resend USA (mail) USA (SCC Art. 46) 7 days audit, no model content Live
Safety-Case Generator Safety-Case markdown via wizard Art. 6(1)(b) (hosting) · (f) (server log) No content data; technical server log on page request (IP, user agent, URL) Hetzner DE (delivery + log only) Server log 14 days; no content processing Beta
csa26 (GitHub Action) MISRA-C pre-audit check in CI Art. 6(1)(b) (contract with GitHub user) None — runs in customer GitHub account GitHub (Microsoft) USA (user's GitHub contract) n/a — no data flow to Applied FuSa Live
fmea (in preparation) FMEA derivation from DSL Art. 6(1)(b) as MCSA as MCSA as MCSA as MCSA Beta in preparation
riskforge chatbot Guided DSL generation via LLM interview Art. 6(1)(b) Email (magic link), optional use-case note Hetzner DE · Anthropic USA · Resend USA USA (SCC Art. 46 + TIA) Email DB indefinite (delete on request) · Anthropic 30 days abuse log · no DSL persisting Live (beta)

EU AI Act matrix per tool

Overview of AI use, role and classification per tool under the EU AI Act. Classification rationale in the „AI transparency" section above.

ToolAIRoleRisk classArt. 50Human oversightLoggingStatus
MCSA No Provider n/a (deterministic) n/a User reviews result Audit log 7 days Live
Safety-Case Generator No Provider n/a (deterministic) n/a User edits output Technical server log only (page request, 14 days) Beta
csa26 No Provider n/a (deterministic) n/a User reviews findings No logging at Applied FuSa Live
fmea No Provider n/a (deterministic) n/a User reviews table as MCSA (planned) Beta in preparation
riskforge chatbot Yes (Claude Sonnet 4.6) Provider + deployer Limited risk (Art. 50) Fulfilled (UI labelling) User decides DSL release; analysis engines deterministic Quota + magic-link logins only Live (beta)

What we do technically

Technical measures at the infrastructure level — unglamorous, but important.

TLS 1.2+

Let's Encrypt certificates, auto-renewed, HSTS enabled.

No swap

The VPS has no swap space — RAM cannot be paged out to disk.

Core dumps off

Disabled system-wide (`kernel.core_pattern=|/bin/false`). No RAM-to-disk leak on crashes.

Container tmpfs

Tool temp directories live in RAM disks (`noexec`), no persistent files.

Session cookies

`httpOnly` + `Secure` + `SameSite=Lax`, signed with `itsdangerous` (32-byte secret).

Rate limits

On authentication endpoints (5 requests per IP per hour in MCSA).

Log rotation

Docker logs: 10 MB × 3 files. Nginx access logs: 14 days, then deleted.

Automatic backups

Daily server snapshots via Hetzner Cloud, 7-day retention. Manual golden-state snapshots for disaster recovery beyond that window.

No APM

No Sentry, no Datadog, no external stack traces. Errors stay on our server.

Magic-link auth

No password store. Tokens valid for 15 minutes, single-use.

Versioned

Nginx configs and Compose files live in git repos — auditable, reproducible.

Your rights

You have the full set of rights under the EU General Data Protection Regulation — access, rectification, erasure, restriction, portability, objection. For the legally complete version, see our privacy policy (in German).

  • Art. 15 Right of access
  • Art. 16 Right to rectification
  • Art. 17 Right to erasure
  • Art. 18 Right to restriction
  • Art. 20 Right to data portability
  • Art. 21 Right to object

Questions? Found a vulnerability?

Write to us directly. For security-related reports (e.g. suspected vulnerabilities, privacy complaints) we are grateful for a short email — we usually respond within one business day.

info@appliedfusa.de

This page is updated when facts change (new tools, infrastructure changes, AI integration). The last update timestamp is at the top.