Bezpieczeństwo
What LLM EU does to protect your requests and your data, stated as controls rather than as assurances.
Transport i poświadczenia
- Transport TLS and disk encryption depend on deployment configuration; neither is independently verified here. The backend adapter permits HTTP, so encryption of every connection is not guaranteed by this code.
- API keys are stored as scrypt hashes of the secret half. The secret is shown once, at creation, and is unrecoverable afterwards.
- Session cookies contain id.secret, not a hashed token. The server stores a hash of the secret. Cookies are HttpOnly and SameSite=Lax; Secure is set in production.
- API keys carry scopes. A key without platform_write cannot create or revoke keys or edit a policy.
Zaimplementowano tylko zerową retencję: treści promptów i odpowiedzi nie są zapisywane w bazie danych. Żądania wymagające niezerowej retencji są odrzucane, a nie przetwarzane po cichu z innym ustawieniem retencji.
Only zero retention is implemented: prompt and completion bodies are not written to the database. Traces contain metadata. Stored policy choices 24h, 7d and 30d do not enable body storage. Requests exceeding policy return 403 retention_exceeds_policy first; otherwise effective nonzero retention returns 501 retention_not_implemented.
Regiony endpointów opisują konfigurację, a nie niezależną geolokalizację. Wnioskowanie mock nie uruchamia żadnych wag modelu i raportuje dev-mock. Prawdziwe wnioskowanie wymaga backendu skonfigurowanego dla regionu endpointu; europejska lokalizacja i europejska własność to odrębne rzeczy.
Seeded endpoints are mocks: responses say dev-mock and no model weights run. Real inference requires a configured backend for each region and matching endpoints. Region rows and status are configuration, not independent geolocation. Residency filters and failover restrictions are tested; ownership classes do not imply immunity from legal disclosure.
Podprocesorzy
The subprocessor inventory is incomplete. Categories are not confirmed contracted entities. Legal identities, processing locations, data categories and a review date remain pending. Podprocesorzy →
Niezależny test penetracyjny nie został jeszcze przeprowadzony. Gdy zostanie przeprowadzony, opublikujemy tutaj jego datę, zakres i podsumowanie ustaleń, a do tego czasu nie będziemy opisywać platformy jako przetestowanej.
No independent penetration test has been carried out yet. Saying otherwise would be worse than saying nothing.
Isolation and abuse
- Every customer query is scoped by organization id.
- Rate limits apply per IP, per key and per organization, with a concurrency cap per key.
- Request bodies are capped at 1 MB and validated before anything else happens.
- Stack traces are logged, never returned to a caller.
Known limitations before launch
- Role authorization within an organization is incomplete as a full RBAC: policy, team, settings, credit and key revocation are limited to owner or admin, a platform_write key can only be minted from the console by an owner or admin, bulk exports need a writing role, and viewer is read-only. Read access to an organization's traces, usage and exports remains organization-wide. These findings are not evidence of cross-organization access.
- Keep stripe_enabled off. When enabled, the credit handler accepts a user-submitted amount without payment verification. This is not a working card-payment integration. Backend fixes and regression tests are required before enabling payments.
- Legal entity details, reviewed agreements and a named subprocessor inventory are unfinished. These disclosures do not establish production security readiness or certification.
Legal document readiness · Dostępność · Dowody i weryfikacja
Reporting
The disclosure contact is in security.txt. security.txt
LLM EU jest prywatną firmą. Nie jest instytucją UE ani jednostką oceniającą zgodność z AI Act. "Zweryfikowane" w LLM EU oznacza udokumentowane, a nie prawnie certyfikowane.