AI Vendor Data Processing — Operator Responsibility
Audience: the deployment operator configuring this platform, not a code contributor. This
document lives outside docs/adr/ deliberately, per ADR-035 §Decision point 4.
This document is not legal advice, does not assert what the AI vendor's current data retention, training-use, or contractual terms are, and cannot be substituted for your own review of those terms or your own organization's compliance requirements. It states only what this codebase does and does not do, and what you, as the deployment operator, are responsible for deciding before you enable AI.
Where AI requests go
AI runs only through Azilos Cloud (B-045, ADR-681, ADR-682, ADR-737). With
AI_GATEWAY_KIND=azilos, this install sends each AI request to Azilos Cloud
(https://api.azilos.com, or AZILOS_CLOUD_API_URL) with your Azilos API key. Azilos Cloud
charges your prepaid balance and forwards the request to the AI vendor it uses, Anthropic, with
Azilos's own vendor key (docs/architecture/AZILOS_CLOUD_V0.1.md). This install holds no vendor
key and talks to no vendor directly. A team's own OpenAI or Anthropic key is no longer supported:
AI_GATEWAY_KIND=cloud is refused at start-up, and the former vendor settings
(AI_GATEWAY_CLOUD_VENDOR, AI_GATEWAY_CLOUD_MODEL, AZILOS_AI_GATEWAY_CREDENTIAL,
AZILOS_AI_GATEWAY_ANTHROPIC_CREDENTIAL and their acknowledgment flags) are not read.
Azilos Cloud keeps only what a charge needs: the key id, the model, the token counts and the amounts. It does not store the prompt, the code or the model's output.
What is sent
Three capabilities send tenant data. Each needs the tenant's own consent, and each sends something different (ADR-486):
- Understand's AI-derived insight (
POST /projects/:projectId/understand/insight): project metadata — file paths, byte sizes, detected technology names, and declared dependency name/version/ecosystem/manifest-path data. File content is not sent (ADR-026 §Decision point 4). - Document generation (
POST /projects/:projectId/document): the project's facts as Azilos recorded them — module inventory, declared dependencies, the AI insight, the system model, the assessment counts, plan and Transform items, validation declarations, and the Apply branch's name, commits, version edits and the explanations of approved AI fixes. - AI code fixes (
POST /projects/:projectId/ai-code-fix): file content. The repository'spackage.jsonand the files the failing build or test output names, read from the Apply branch, the end of that output, and the upgrades that caused it (ADR-222). Its consent refusal says so: it sends the tenant's source code and build output to a model provider. Because it is the one capability that sends file content, it needs two decisions, both by anadmin: the tenant's consent, and the project's own opt-in (PUT /projects/:projectId/ai-code-fix/opt-in, ADR-738). A project with no stored opt-in sends nothing, including a project created after the tenant consented.
Whatever is sent leaves your deployment boundary and reaches Azilos Cloud and then the vendor over the network.
What this codebase does not, and cannot, control
This install's adapter (AzilosCloudAiGatewayPort) makes one kind of HTTP call to Azilos Cloud and
reads one kind of response. It cannot:
- read or verify what data-retention period the vendor applies to a forwarded request,
- confirm whether the vendor uses submitted data for model training,
- request deletion of a specific already-sent request from the vendor's own systems, or
- enforce a Data Processing Agreement (DPA), Zero Data Retention (ZDR) arrangement, or any other contractual term.
Those are commercial and contractual matters, set out in Azilos's own terms and data-processing
statement and in the vendor's terms. See ADR-034-understand-insight-consent-decline-data-retention.md
and ADR-035-ai-vendor-data-processing-attestation.md for the reasoning behind this boundary.
What you are responsible for doing before enabling AI
Before setting the acknowledgment flag (below), you should independently:
- Review Azilos's data-processing statement and the AI vendor's current data processing, retention and training-use terms, from those parties directly, not from this document.
- Determine whether those terms satisfy your own organization's regulatory, contractual, or internal compliance requirements for the tenant data these capabilities send.
- Arrange any additional agreement your own requirements call for.
The acknowledgment flag
| Environment variable | Gates |
|---|---|
AI_GATEWAY_AZILOS_DATA_PROCESSING_ACKNOWLEDGED | AzilosCloudAiGatewayPort (Azilos Cloud, ADR-594) |
It accepts exactly true or false (any other value fails configuration loudly rather than being
silently coerced). It must be true, alongside AZILOS_CLOUD_API_KEY, before any AI route does
anything other than report ... is not configured. With NODE_ENV=production, the API does not
start without both (ADR-684, B-046).
Setting the flag to true without having actually completed the review above defeats the entire
purpose of this gate. This codebase has no way to verify that you performed the review — the flag
is an attestation, not a technical check (ADR-035 §Decision point 3) — so its only value comes from
being set truthfully.
Related documents
docs/architecture/AZILOS_CLOUD_V0.1.md— Azilos Cloud, the service AI requests go to.docs/adr/ADR-026-understand-ai-derived-insight.md— what data the insight sends, and why.docs/adr/ADR-593-azilos-cloud-ai-gateway-adapter.md/ADR-594-select-azilos-ai-gateway.md— the Azilos Cloud adapter and its settings.docs/adr/ADR-028-understand-insight-tenant-consent-gate.md/ADR-033-understand-insight-tenant-self-service-consent.md— the separate, tenant-level consent question.docs/adr/ADR-034-understand-insight-consent-decline-data-retention.md— what happens (nothing automatic) to already-generated data when a tenant later declines consent.docs/adr/ADR-035-ai-vendor-data-processing-attestation.md— the ADR this document was written to satisfy (§Decision point 4).- ADR-027, ADR-032 — the former OpenAI and Anthropic adapters, removed by ADR-737.