diff --git a/.env.example b/.env.example index 39a0559ec8..cbcbcfcfba 100644 --- a/.env.example +++ b/.env.example @@ -166,6 +166,16 @@ TALE_AUDIT_SIGNING_KEY=4f8c2a9e7b1d6035e4a8c2f9d7b3061a5e8c4f2a9d7b30615e4c8a2f9 # Generate manually with: openssl rand -hex 32 # SANDBOX_TOKEN= +# ============================================================================ +# OPTIONAL: Sandbox agent turn orphan window +# ============================================================================ +# How long (ms) an in-sandbox coding-agent turn (Claude Code / OpenCode / +# Codex) may sit with nobody draining its output before the sandbox daemon +# reaps it. A SLIDING window, re-armed on every drain attach — not an absolute +# cap on the turn. Raise it when long agent turns on a slow host are reaped as +# orphans; defaults to 30 minutes. +# TALE_EXTERNAL_TURN_DEADLINE_MS=1800000 + # ============================================================================ # REQUIRED: Sandbox LLM Gateway management auth # ============================================================================ diff --git a/SCREENSHOTS.md b/SCREENSHOTS.md index 070719880a..62fc45b9a3 100644 --- a/SCREENSHOTS.md +++ b/SCREENSHOTS.md @@ -125,20 +125,17 @@ Approvals before actions ship — and the controls around them. The Guardrails governance page showing three status cards — content safety off, PII detection off, the moderation provider not configured — above the recent-events feed and the organization's custom instructions
Guardrails — content safety, PII detection, and a moderation provider, layered per message - - The Run-code policy governance page showing the Denylist and Allowlist mode radiogroup above the Python allow and deny list text areas -
Run-code policy — allowlist or denylist what sandboxed code may use - - - The Security and Monitoring governance page showing login-attempt limit fields and the password-policy character-class requirements
Security & monitoring — login-attempt limits and password policy + + The Data subject requests governance page showing the cooling-off window, dual-approval toggle, and daily-limit fields above the erasure-requests table, which holds one pending request with 24 hours left before execution
Data subject requests — GDPR Art. 17 erasure with cooling-off and dual approval + diff --git a/docs/de/develop/mcp-endpoint.md b/docs/de/develop/mcp-endpoint.md index 97a3698413..8886fea948 100644 --- a/docs/de/develop/mcp-endpoint.md +++ b/docs/de/develop/mcp-endpoint.md @@ -75,11 +75,11 @@ Nimm `run_deployed`, wenn die Automatisierung schnell ist und du einen Aufruf mi | Tool | Was es tut | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| `search_capabilities` | Alles durchsuchen, was diese Organisation kann — ihre Automatisierungen, Connectorsaktionen, Skills und Tools. | +| `search_capabilities` | Alles durchsuchen, was diese Organisation kann — ihre deployten Automatisierungen, nach Name und Beschreibung. | | `invoke_capability` | Eine Capability per id aufrufen. Eine Aktion, die die Organisation gated, antwortet mit einem Pending-Approval-Ergebnis, statt zu laufen. | | `get_knowledge` | Passagen aus dem Wissen der Organisation abrufen — ihren Dokumenten und ihren gecrawlten Webseiten. | -In dieser Version hält die Registry die deployten Automatisierungen der Organisation — `invoke_capability` auf einer davon ist derselbe Akt wie `run_deployed`. Builtin-Tools, Skills und externe MCP-Server sind hier nicht registriert; ein Aufruf, der zu einem davon führt, antwortet mit einer lesbaren Ablehnung, nicht mit einem Fehler. Eine Capability, die die Organisation hinter eine Freigabe stellt, läuft nicht lautlos — `invoke_capability` antwortet mit einem Pending-Approval-Ergebnis, das das Modell weitergeben kann. +In dieser Version hält die Registry die deployten Automatisierungen der Organisation — `invoke_capability` auf einer davon ist derselbe Akt wie `run_deployed`. Builtin-Tools, Connector-Aktionen, Skills und externe MCP-Server gehören nicht zu dieser Registry; eine id, die keine deployte Automatisierung ist, bekommt eine lesbare Ablehnung, keinen Fehler. Eine Capability, die die Organisation hinter eine Freigabe stellt, läuft nicht lautlos — `invoke_capability` antwortet mit einem Pending-Approval-Ergebnis, das das Modell weitergeben kann. ## Was der Schlüssel darf diff --git a/docs/de/platform/admin/governance/audit-logs.md b/docs/de/platform/admin/governance/audit-logs.md index 164ac19a65..7d026187f5 100644 --- a/docs/de/platform/admin/governance/audit-logs.md +++ b/docs/de/platform/admin/governance/audit-logs.md @@ -1,6 +1,6 @@ --- title: Audit-Logs -description: Das chronologische Protokoll von wer-was-getan-hat in deiner Organisation — Anmeldungen, Rollenänderungen, Anbieter-Bearbeitungen, Agent-Bearbeitungen, Run-code-Aufrufe. Admins und Inhaber lesen das, wenn ein Audit fragt, wer eine Ressource wann angefasst hat. +description: Das chronologische Protokoll von wer-was-getan-hat in deiner Organisation — Anmeldungen, Rollenänderungen, Anbieter-Bearbeitungen, Agent-Bearbeitungen. Admins und Inhaber lesen das, wenn ein Audit fragt, wer eine Ressource wann angefasst hat. --- Das Audit-Log ist die unveränderliche Aufzeichnung jeder folgenreichen Aktion in deiner Organisation. Jede Anmeldung, Rollenänderung, Anbieter-Bearbeitung, Agent-Speicherung, Workflow-Ausführung und jeder Sandbox-Aufruf landet hier mit Akteur, Ressource, Vorher-/Nachher-Status und Zeitstempel. Admins und Inhaber lesen das, wenn ein Audit fragt, wer eine Ressource wann angefasst hat, wenn ein Compliance-Officer einen Export braucht, oder wenn etwas schiefläuft und die Frage ist _wer hat um 03:14 was geändert_. @@ -50,4 +50,4 @@ Audit-Zeilen sind unveränderlich: Bearbeitungen und Löschungen werden selbst a ## Wo das hingehört -Das Audit-Log ist die Leseseite jedes anderen Governance-Features: Legal Hold benennt die platzierten Holds, Anfragen betroffener Personen protokollieren jeden Cascade-Schritt, die Run-code-Richtlinie protokolliert die URLs, die jede Sandbox zu erreichen versuchte. Wenn eine Frage mit _wer, wann, was_ beginnt, ist das Audit-Log die Antwort. Die Begleitseite ist die [Aufbewahrungsrichtlinie](/de/platform/admin/governance/policies-and-limits) — sie steuert, wie lange diese Zeilen bleiben, bevor Cleanup sie entfernt. +Das Audit-Log ist die Leseseite jedes anderen Governance-Features: Legal Hold benennt die platzierten Holds, Anfragen betroffener Personen protokollieren jeden Cascade-Schritt. Wenn eine Frage mit _wer, wann, was_ beginnt, ist das Audit-Log die Antwort. Die Begleitseite ist die [Aufbewahrungsrichtlinie](/de/platform/admin/governance/policies-and-limits) — sie steuert, wie lange diese Zeilen bleiben, bevor Cleanup sie entfernt. diff --git a/docs/de/platform/admin/governance/run-code-policy.md b/docs/de/platform/admin/governance/run-code-policy.md deleted file mode 100644 index b928c26334..0000000000 --- a/docs/de/platform/admin/governance/run-code-policy.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Run-code-Richtlinie -description: Die Paket-Zulassungsliste und -Sperrliste, die regeln, was sandgeboxtes Run code installieren darf. ---- - -Run-code-Richtlinie ist die Oberfläche, auf der du entscheidest, welche Python- und Node-Pakete die Sandbox zur Laufzeit installieren kann. Skills mit Skripten und das Run-code-Tool laufen beide in derselben Sandbox; diese Richtlinie ist die einzige Naht, an der du anziehst oder lockerst, was sie installieren dürfen. Admins und Inhaber lesen diese Seite, wenn ein Agent eine neue Bibliothek braucht oder wenn ein Audit fragt, warum ein Paket zu einem bestimmten Zeitpunkt blockiert war. - - - -![Die Governance-Seite Run-code-Richtlinie mit Zulassungsliste als gewähltem Standardmodus, darunter eine Python-Zulassungsliste mit pandas, numpy, scipy und scikit-learn, eine Python-Sperrliste mit paramiko, fabric, pexpect und scapy sowie eine Node-Zulassungsliste mit axios, date-fns, dayjs und lodash.](/images/platform/governance-run-code-policy.webp) - - - -## Ein durchgespielter Wechsel - -Der Standardmodus ist **Sperrliste** mit leerer Liste, was bedeutet, dass jedes Paket installierbar ist. Um auf eine kuratierte Menge zu wechseln, öffne **Einstellungen > Richtlinien > Run-code-Pakete**, ändere den Modus auf **Zulassungsliste** und liste die Pakete unter **Python-Zulassungsliste** und **Node-Zulassungsliste** auf, denen du vertraust. Speichern, und der nächste Sandbox-Lauf, der ein Paket außerhalb der Liste anfordert, scheitert mit dem Grund **nicht auf der Zulassungsliste** im Audit-Ereignis. - -## Die zwei Modi - -| Name | Default | Beschreibung | -| --------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| Zulassungsliste | aus | Nur die aufgelisteten Pakete installieren; alles andere wird abgelehnt. Nutz das, wenn ein Regulierer die freigegebenen Bibliotheken benennt. | -| Sperrliste | an | Jedes Paket installiert außer den aufgelisteten. Nutz das, wenn eine kleine Menge als schlecht bekannt ist und der Rest vertraut wird. | - -## Die vier Listen - -Jeder Modus liest aus zwei Listen — Python und Node. Ein Paket pro Zeile oder kommagetrennt. Versionsangaben werden automatisch entfernt (`pandas==2.1` entspricht `pandas`), sodass die Richtlinie namensbasiert ist und Bibliotheks-Upgrades übersteht. Scoped Node-Pakete (`@scope/pkg`) werden unterstützt. - -Der Modus gilt global: Im Allowlist-Modus lesen beide Sprachen ihre Zulassungslisten, im Denylist-Modus beide ihre Sperrlisten. Die Listen selbst sind pro Sprache — Python und Node halten je ihr eigenes Set. - -## Der Tester - -Das Test-Panel auf derselben Seite erlaubt dir, pip- oder npm-Spezifikationen einzufügen und zu sehen, ob jede unter dem aktuellen Entwurf durchgehen würde. Es verwendet deine ungespeicherten Änderungen, sodass du vor dem Speichern iterieren kannst. Jede Spezifikation wird geparst, von ihrer Versionsangabe befreit und gegen die Listen abgeglichen; das Panel meldet **Erlaubt** oder **Abgelehnt** mit der Begründung — passt-zur-Zulassungsliste, nicht-auf-der-Zulassungsliste, passt-zur-Sperrliste, nicht-auf-der-Sperrliste. - -## Netzwerk-Egress und Skills - -Die Paket-Richtlinie regelt, _was_ in der Sandbox läuft. Dieselbe Sandbox läuft Skill-Skripte — siehe die [Skills-Konzeptseite](/de/platform/agents/skills). Ausgehendes Netzwerk aus Sandbox-Code ist standardmäßig offen, Cloud-Metadaten und private Adressbereiche sind immer blockiert; bei selbst gehosteten Deployments kann der Operator es auf Deployment-Ebene auf eine Hostname-Zulassungsliste einschränken — die Anleitung steht in [Hardening](/de/self-hosted/operate/security/hardening). Behandle das Veröffentlichen eines Skills mit Skript als Erweiterung der Vertrauensfläche für jeden Agent, der es aufnimmt; die Paket-Richtlinie und die Egress-Richtlinie des Deployments entscheiden zusammen, was das Skript tun darf. - -## Wo das hingehört - -Run-code-Richtlinie ist die Schleuse auf der Sandbox, die sowohl das Run-code-Tool als auch Skill-Skripte trägt. Das begleitende Konzept ist [Agent-Skills](/de/platform/agents/skills) — es deckt ab, wann ein Skript als Skill veröffentlicht wird und warum die Paket-Richtlinie die tragende Schleuse ist. Die begleitende Governance-Seite ist [Audit-Logs](/de/platform/admin/governance/audit-logs) — jede abgelehnte Paket-Installation landet dort mit der Spezifikation und der Begründung. diff --git a/docs/de/self-hosted/configuration/environment-reference.md b/docs/de/self-hosted/configuration/environment-reference.md index 95e1eaa2d5..b541066666 100644 --- a/docs/de/self-hosted/configuration/environment-reference.md +++ b/docs/de/self-hosted/configuration/environment-reference.md @@ -182,6 +182,14 @@ Re-Ranking ist standardmässig deaktiviert, weil es Latenz pro Query addiert und Lass es unset, um die Standard-Sitzungsdauer zu behalten. Wenn gesetzt, läuft eine inaktive Sitzung serverseitig ab, sobald das Fenster verstrichen ist, während eine aktive sich bei jeder Anfrage weiter verschiebt. Org-Admins können das wirksame Fenster pro Organisation verkürzen — niemals über diese Obergrenze hinaus verlängern — über die [Governance-Richtlinie zur Sitzungs-Leerlaufzeit](/de/platform/admin/governance/policies-and-limits); inaktive Sitzungen unter dieser Richtlinie widerruft ein Lauf, der etwa alle fünf Minuten läuft. +## Sandbox-Agent-Turns + +| Name | Default | Beschreibung | +| -------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TALE_EXTERNAL_TURN_DEADLINE_MS` | `1800000` (30 Min.) | **Optional.** Wie lange ein Coding-Agent-Turn in der Sandbox (Claude Code, OpenCode, Codex) ohne Abnehmer seiner Ausgabe liegen darf, bevor der Sandbox-Daemon ihn abräumt. Ein gleitendes Fenster, das bei jedem Wiederanbinden der Plattform neu startet — keine absolute Obergrenze für den Turn. Millisekunden. | + +Erhöhe den Wert, wenn lange Agent-Turns auf einem langsamen Host als abgeräumte Waisen zurückkommen; die Plattform bindet sich selbst wieder an, das Fenster beendet also nur einen Turn, dessen Abnehmerkette gestorben ist. Das Backend liest ihn beim Start — starte `backend-api backend-worker` nach einer Änderung neu. + ## Video-Link-Ingestion (yt-dlp) Liest Tale einen Video-Link ein, holt es dessen Transkript für den Agenten. YouTube blockiert automatisierten Zugriff von Rechenzentrums-/Server-IPs, sodass dies bei einer Cloud-Bereitstellung fehlschlagen kann. Die Bereitstellung bringt standardmäßig einen PO-Token-Provider verdrahtet mit (das vollständige Bild liefert [Video-Ingestion](/de/self-hosted/configuration/video-ingestion)); die Optionen unten sind optionale Überschreibungen und Eskalationen. Keine garantiert eine Umgehung — eine saubere Ausgangs-IP ist der wirksamste Hebel. Vom Backend-Worker gelesen und bei jeder Ingestion neu ausgewertet, sodass eine Änderung ohne Neustart greift. diff --git a/docs/de/self-hosted/operate/security/hardening.md b/docs/de/self-hosted/operate/security/hardening.md index 55f14fca3b..26ecf462ac 100644 --- a/docs/de/self-hosted/operate/security/hardening.md +++ b/docs/de/self-hosted/operate/security/hardening.md @@ -67,7 +67,7 @@ Der Hardening-Hebel ist `SANDBOX_EGRESS_ALLOWLIST`. Setz die Variable in `.env` SANDBOX_EGRESS_ALLOWLIST=^pypi\.org$|^files\.pythonhosted\.org$|^registry\.npmjs\.org$|^objects\.githubusercontent\.com$|^codeload\.github\.com$|^github\.com$|^api\.github\.com$ ``` -Halt die Liste kurz und bevorzuge spezifische Hosts gegenüber Wildcards. Paket-Installationen regelt separat die [Run-Code-Richtlinie](/de/platform/admin/governance/run-code-policy). +Halt die Liste kurz und bevorzuge spezifische Hosts gegenüber Wildcards. ## Monitoring diff --git a/docs/de/tutorials/videos/connectors.md b/docs/de/tutorials/videos/connectors.md index dfc6e40bcb..d99d7033e7 100644 --- a/docs/de/tutorials/videos/connectors.md +++ b/docs/de/tutorials/videos/connectors.md @@ -24,9 +24,8 @@ Der MCP-Abschnitt (1:09–1:45) wurde im Panel **MCP-Server** der früheren Vers | 0:52 | Der Gewinn: Tiefenrecherche gibt es, weil Tavily angebunden ist | | 1:09 | MCP: eure eigenen Werkzeuge, den Agenten wie eingebaute serviert | | 1:27 | Freigabe-Flags pro Werkzeug — eingebaut aussehen heißt nicht vertrauen | -| 1:45 | Die letzte Tür: Sandbox-Code, Egress standardmäßig zu, schließt im Zweifel | | 2:07 | Das Muster an jeder Tür | ## Wie es weitergeht -Der [Connectors-Überblick](/de/platform/connectors/overview) behandelt Verbinden und Teilen; [MCP-Server](/de/platform/connectors/mcp-servers), was in dieser Version an der MCP-Tür steht. Zur Netzgrenze lies die [Run-Code-Richtlinie](/de/platform/admin/governance/run-code-policy) — und was ein angebundener Connector freischaltet, zeigen die [Automatisierungs-Konzepte](/de/platform/automations/concepts). +Der [Connectors-Überblick](/de/platform/connectors/overview) behandelt Verbinden und Teilen; [MCP-Server](/de/platform/connectors/mcp-servers), was in dieser Version an der MCP-Tür steht. Zur Netzgrenze lies [Hardening](/de/self-hosted/operate/security/hardening) — und was ein angebundener Connector freischaltet, zeigen die [Automatisierungs-Konzepte](/de/platform/automations/concepts). diff --git a/docs/de/tutorials/videos/tale-for-developers.md b/docs/de/tutorials/videos/tale-for-developers.md index 70864ecedb..3676fb8ae1 100644 --- a/docs/de/tutorials/videos/tale-for-developers.md +++ b/docs/de/tutorials/videos/tale-for-developers.md @@ -1,9 +1,9 @@ --- title: Bonus — Tale für Entwickler -description: Die Runde für die Bauenden - begrenzte API-Schlüssel, die vier API-Türen, Webhook-Auslöser, Harnesses und die Run-Code-Richtlinie, die alles einhegt. +description: Die Runde für die Bauenden - begrenzte API-Schlüssel, die vier API-Türen, Webhook-Auslöser und Harnesses, die in eingehegten Sandboxes arbeiten. --- -Alles, was die Serie gezeigt hat, trägt eine API darunter. Die Bonus-Episode geht die Entwickler-Oberfläche ab: benannte, widerrufbare API-Schlüssel; REST, MCP, WebDAV und Sandbox-Runtimes; Webhooks, die Agenten aus jedem System auslösen; die Harnesses — Claude Code, Cursor — in isolierten Containern; und die Run-Code-Richtlinie, die benennt, was installiert werden darf und wohin Code sich verbinden darf. Starke Werkzeuge, eingehegter Wirkungsradius. +Alles, was die Serie gezeigt hat, trägt eine API darunter. Die Bonus-Episode geht die Entwickler-Oberfläche ab: benannte, widerrufbare API-Schlüssel; REST, MCP, WebDAV und Sandbox-Runtimes; Webhooks, die Agenten aus jedem System auslösen; die Harnesses — Claude Code, Cursor — in isolierten Containern. Starke Werkzeuge, eingehegter Wirkungsradius.