Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ packet as the image tag, migration plan, and recovery evidence:
| Posture area | Honest release statement |
| --- | --- |
| Data handling | Workflow arguments, results, history, memos, search attributes, visibility labels, command context, audit rows, exception messages, and operator notes can contain customer application data. [Workflow IDs](./defining-workflows/workflow-id.md#ids-are-visible-metadata), search attributes and labels are operator-visible metadata, not secret storage. Workflow IDs remain plaintext and are not covered by payload codecs. |
| Encryption | Use TLS for every production HTTP surface. At-rest encryption comes from your database, object storage, filesystem, queue, cache, and secret manager. The workflow package and server do not automatically encrypt each payload field. |
| Encryption | Use TLS for every production HTTP surface and configure [database TLS](./polyglot/server-config-reference.md#database-tls) on every Server role, including migrations. At-rest encryption comes from your database, object storage, filesystem, queue, cache, and secret manager. The workflow package and server do not automatically encrypt each payload field. |
| Compliance | The open-source package and self-hosted server provide controls and audit evidence, not a compliance certification by themselves. Claims such as SOC 2, HIPAA, PCI, ISO, or FedRAMP belong to your own program unless a hosted offering documents otherwise. |
| Audit logs | Workflow commands, schedule audit events, history export metadata, and service-call records provide durable operational evidence. They are not a complete SIEM, DLP system, immutable external ledger, or legal-hold system unless you add those components. |
| Support | Role-scoped credentials, TLS termination, backups, restore rehearsal, and narrow self-serve topologies are documented here. Advanced identity, mTLS rollout, private networking, custom policy engines, provider compliance, and bespoke topology review are support-led unless public docs say otherwise. |
Expand Down
38 changes: 37 additions & 1 deletion docs/polyglot/server-config-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,47 @@ Durable Workflow API knobs.
| --- | --- | --- |
| Application | `APP_NAME`, `APP_ENV`, `APP_KEY`, `APP_DEBUG`, `APP_URL`, `APP_VERSION`, locale, timezone, maintenance, and cipher settings | Laravel application runtime identity and boot behavior. |
| Logging | `LOG_CHANNEL`, `LOG_LEVEL`, `LOG_STDERR_FORMATTER`, stack, daily, Slack, and Papertrail settings | Laravel logging destinations, formatting and retention. |
| Database | `DB_CONNECTION`, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `DB_SOCKET`, `DB_URL`, charset, collation, and foreign-key settings | SQL state store for workflow, namespace, worker, and projection tables. |
| Database | `DB_CONNECTION`, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `DB_SOCKET`, `DB_URL`, `DB_SSLMODE` (`DB_SSL_MODE`), `DB_SSLROOTCERT` (`DB_SSL_ROOT_CERT`), `MYSQL_ATTR_SSL_CA`, charset, collation, and foreign-key settings | SQL state store for workflow, namespace, worker, and projection tables. See [database TLS](#database-tls). |
| Redis/cache/queue | `REDIS_*`, `QUEUE_CONNECTION`, `QUEUE_FAILED_DRIVER`, `CACHE_STORE`, `CACHE_PREFIX`, `SESSION_*` | Queue workers, cache locks, long-poll signaling, and web/session runtime support. |
| Filesystems/mail/broadcasting | `FILESYSTEM_DISK`, `MAIL_*`, `BROADCAST_*`, `PUSHER_*`, `AWS_*` | Framework integrations used by deployment-specific features. |
| Build/runtime | `MYSQL_VERSION`, `REDIS_VERSION`, `PHP_CLI_SERVER_WORKERS`, `VITE_APP_NAME`, `BCRYPT_ROUNDS` | Docker Compose images and framework runtime behavior. |

## Database TLS {#database-tls}

Set the same TLS settings on the API server, queue worker, bootstrap/migration
job and scheduler. PostgreSQL defaults to `prefer`; MySQL/MariaDB keep their
connection defaults when no mode is set. Neither default guarantees an
authenticated encrypted connection.

| `DB_SSLMODE` | PostgreSQL | MySQL / MariaDB |
| --- | --- | --- |
| `disable` | No TLS. | No TLS; conflicting TLS options are refused. |
| `allow`, `prefer` | Opportunistic TLS without an encryption or identity guarantee. | Refused. |
| `require` | Encryption required. | Encryption required with mysqlnd and OpenSSL. |
| `verify-ca` | Encryption and a trusted certificate chain required. | Refused: PDO mysqlnd cannot verify only the chain independently of the hostname. |
| `verify-full` | Encryption, trusted chain and matching hostname required. | Encryption, trusted chain and matching hostname required. |

`DB_SSL_MODE` aliases `DB_SSLMODE`; `DB_SSL_ROOT_CERT` aliases
`DB_SSLROOTCERT`. For certificate verification, mount a readable CA bundle at
the configured path in **every role**, including migrations. `MYSQL_ATTR_SSL_CA`
can supply the CA for explicit MySQL/MariaDB `verify-full`. Conflicting
canonical, alias or URL settings refuse startup. Required TLS needs an explicit
TCP hostname; Unix sockets are refused. Explicit MySQL/MariaDB TLS modes need
PDO MySQL with mysqlnd and OpenSSL.

```dotenv
DB_CONNECTION=pgsql
DB_HOST=database.example.com
DB_SSLMODE=verify-full
DB_SSLROOTCERT=/run/database-ca/ca.pem
```

Use the certificate's DNS hostname. With Helm, configure
`externalDatabase.sslMode` and `externalDatabase.tls.existingSecret` / `caKey`.
Create the Secret before installation or upgrade; the chart mounts its CA in
all four roles, including the bootstrap hook. Restart persistent roles after
changing environment settings because configuration is cached at startup.

## Container logs

Set `LOG_CHANNEL=stderr` on API, worker and scheduler containers so `docker logs`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Selbst gehostete Durable-Workflow-Bereitstellungen übernehmen die meisten Siche
| Bereich | Sachliche Veröffentlichungsaussage |
| --- | --- |
| Datenverarbeitung | Workflow-Argumente, Ergebnisse, Historie, Memos, Suchattribute, Sichtbarkeitslabels, Befehlskontext, Auditzeilen, Ausnahmemeldungen und Operatornotizen können Kundenanwendungsdaten enthalten. [Workflow-IDs](./defining-workflows/workflow-id.md#ids-are-visible-metadata), Suchattribute und Labels sind operatorsichtbare Metadaten, kein Geheimnisspeicher. Workflow-IDs bleiben Klartext und werden von Nutzdaten-Codecs nicht erfasst. |
| Verschlüsselung | TLS für jede produktive HTTP-Schnittstelle verwenden. Verschlüsselung ruhender Daten stammt aus Datenbank, Objektspeicher, Dateisystem, Warteschlange, Cache und Secret Manager. Workflow-Paket und Server verschlüsseln nicht automatisch jedes Nutzdatenfeld. |
| Verschlüsselung | TLS für jede produktive HTTP-Schnittstelle verwenden und [Datenbank-TLS](./polyglot/server-config-reference.md#database-tls) für jede Server-Rolle einschließlich Migrationen konfigurieren. Verschlüsselung ruhender Daten stammt aus Datenbank, Objektspeicher, Dateisystem, Warteschlange, Cache und Secret Manager. Workflow-Paket und Server verschlüsseln nicht automatisch jedes Nutzdatenfeld. |
| Compliance | Open-Source-Paket und selbst gehosteter Server liefern Maßnahmen und Auditnachweise, allein aber keine Compliance-Zertifizierung. Aussagen zu SOC 2, HIPAA, PCI, ISO oder FedRAMP gehören zu Ihrem eigenen Programm, sofern ein gehostetes Angebot nichts anderes dokumentiert. |
| Auditlogs | Workflow-Befehle, Zeitplan-Auditereignisse, Historienexportmetadaten und Dienstaufrufdatensätze liefern dauerhafte Betriebsnachweise. Ohne zusätzliche Komponenten bilden sie kein vollständiges SIEM, DLP-System, unveränderliches externes Hauptbuch oder System zur rechtlichen Aufbewahrung. |
| Unterstützung | Rollenbezogene Zugangsdaten, TLS-Terminierung, Sicherungen, Wiederherstellungsproben und eng begrenzte selbstständig nutzbare Topologien sind hier dokumentiert. Erweiterte Identität, mTLS-Rollout, private Netzwerke, eigene Richtlinienengines, Provider-Compliance und individuelle Topologieprüfung sind supportbegleitet, sofern öffentliche Dokumentation nichts anderes sagt. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,11 +279,48 @@ Infrastrukturvariablen konfigurieren Framework und Abhängigkeiten. Die Server-P
| --- | --- | --- |
| Anwendung | `APP_NAME`, `APP_ENV`, `APP_KEY`, `APP_DEBUG`, `APP_URL`, `APP_VERSION`, Sprach-, Zeitzonen-, Wartungs- und Verschlüsselungseinstellungen | Identität und Startverhalten der Laravel-Anwendung. |
| Protokollierung | `LOG_CHANNEL`, `LOG_LEVEL`, `LOG_STDERR_FORMATTER`, Einstellungen für stack, daily, Slack und Papertrail | Ziele, Formatierung und Aufbewahrung der Laravel-Protokolle. |
| Datenbank | `DB_CONNECTION`, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `DB_SOCKET`, `DB_URL`, Zeichensatz-, Sortier- und Fremdschlüsseleinstellungen | SQL-Zustandsspeicher für Workflow-, Namespace-, Worker- und Projektionstabellen. |
| Datenbank | `DB_CONNECTION`, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `DB_SOCKET`, `DB_URL`, `DB_SSLMODE` (`DB_SSL_MODE`), `DB_SSLROOTCERT` (`DB_SSL_ROOT_CERT`), `MYSQL_ATTR_SSL_CA`, Zeichensatz-, Sortier- und Fremdschlüsseleinstellungen | SQL-Zustandsspeicher für Workflow-, Namespace-, Worker- und Projektionstabellen. Siehe [Datenbank-TLS](#database-tls). |
| Redis/Cache/Queue | `REDIS_*`, `QUEUE_CONNECTION`, `QUEUE_FAILED_DRIVER`, `CACHE_STORE`, `CACHE_PREFIX`, `SESSION_*` | Queue-Worker, Cache-Sperren, Long-Poll-Signale und Web-/Sitzungsunterstützung. |
| Dateisysteme/E-Mail/Broadcasting | `FILESYSTEM_DISK`, `MAIL_*`, `BROADCAST_*`, `PUSHER_*`, `AWS_*` | Framework-Integrationen für bereitstellungsspezifische Funktionen. |
| Build/Laufzeit | `MYSQL_VERSION`, `REDIS_VERSION`, `PHP_CLI_SERVER_WORKERS`, `VITE_APP_NAME`, `BCRYPT_ROUNDS` | Docker-Compose-Images und Laufzeitverhalten des Frameworks. |

## Datenbank-TLS {#database-tls}

Setzen Sie dieselben TLS-Einstellungen für API-Server, Queue-Worker,
Bootstrap-/Migrationsjob und Scheduler. PostgreSQL verwendet standardmäßig
`prefer`; MySQL/MariaDB behalten ohne Modus ihre Verbindungsstandards. Keiner
dieser Standards garantiert eine authentifizierte, verschlüsselte Verbindung.

| `DB_SSLMODE` | PostgreSQL | MySQL / MariaDB |
| --- | --- | --- |
| `disable` | Kein TLS. | Kein TLS; widersprüchliche TLS-Optionen werden abgelehnt. |
| `allow`, `prefer` | Opportunistisches TLS ohne Verschlüsselungs- oder Identitätsgarantie. | Abgelehnt. |
| `require` | Verschlüsselung erforderlich. | Verschlüsselung mit mysqlnd und OpenSSL erforderlich. |
| `verify-ca` | Verschlüsselung und vertrauenswürdige Zertifikatskette erforderlich. | Abgelehnt: PDO mysqlnd kann die Kette nicht unabhängig vom Hostnamen prüfen. |
| `verify-full` | Verschlüsselung, vertrauenswürdige Kette und passender Hostname erforderlich. | Verschlüsselung, vertrauenswürdige Kette und passender Hostname erforderlich. |

`DB_SSL_MODE` ist ein Alias für `DB_SSLMODE`, `DB_SSL_ROOT_CERT` für
`DB_SSLROOTCERT`. Mounten Sie zur Zertifikatsprüfung ein lesbares CA-Bundle am
konfigurierten Pfad in **jeder Rolle**, auch für Migrationen. `MYSQL_ATTR_SSL_CA`
kann die CA für explizites MySQL-/MariaDB-`verify-full` liefern. Widersprüche
zwischen kanonischen Einstellungen, Aliasen oder URL verhindern den Start.
Erforderliches TLS braucht einen expliziten TCP-Hostnamen; Unix-Sockets werden
abgelehnt. Explizite MySQL-/MariaDB-TLS-Modi benötigen PDO MySQL mit mysqlnd und
OpenSSL.

```dotenv
DB_CONNECTION=pgsql
DB_HOST=database.example.com
DB_SSLMODE=verify-full
DB_SSLROOTCERT=/run/database-ca/ca.pem
```

Verwenden Sie den DNS-Hostnamen des Zertifikats. Konfigurieren Sie in Helm
`externalDatabase.sslMode` und `externalDatabase.tls.existingSecret` / `caKey`.
Erstellen Sie das Secret vor Installation oder Upgrade; das Chart mountet die
CA in allen vier Rollen einschließlich Bootstrap-Hook. Starten Sie dauerhafte
Rollen nach Umgebungsänderungen neu, da die Konfiguration beim Start gecacht wird.

## Container-Protokolle {#container-logs}

Setzen Sie `LOG_CHANNEL=stderr` für API-, Worker- und Scheduler-Container, damit
Expand Down
4 changes: 2 additions & 2 deletions i18n/de/source-hashes.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"defining-workflows/workflow-id.md": "91b94211e2f8f405895ad82cfe2ef9baadb7a2cbd06e9c1e7aa6362231e0d424",
"defining-workflows/workflow-status.md": "8e8cb27ff44c890d489d89bf166375acfdfaecabd990a2235e106fab1592d529",
"defining-workflows/workflows.md": "f467bc73de32aa5d722c61ce085065460382ae7dd44cea4625847d9fcdc4c97c",
"deployment.md": "56cd765dd3e8b723bea69c186f10d804a6992a1ceac4e86e0c996a30f0690102",
"deployment.md": "dd7cdad024a6b8eec3d0343677f4023214040d44f997139e5fc5ec1c41d2e756",
"failures-and-recovery.md": "b142a2edc4c9836bca2634b6a0a2358336f99103e9da04ed64053d12b74b796e",
"features/activity-execution-model.md": "e8c37520ae46a7efb30438f4fc06bf893c1df430cb1f92c48963697adaf09082",
"features/cancel-and-terminate.md": "c678fc7a0c9b11f0e1bee295aff259de9803219c0aa6769fb801622799e7deb1",
Expand Down Expand Up @@ -86,7 +86,7 @@
"polyglot/rust-cloud-quickstart.md": "2303434fc9302a81a8381ad4836423ef9952eb3201a4574c432254e3cb68c5f3",
"polyglot/rust.md": "32de05a771b5ee6d8cf54fdd408222372995ce29c8be63102abe58b977ac8ef0",
"polyglot/server-api-reference.md": "e94af77a13b341d6fdc9941d4ee94e5053ab932d2e77069b238eb33351414e83",
"polyglot/server-config-reference.md": "eb62395611f09ae88fc0b6a6c8b902a7ca27e9e8b0112c89b7756b75d56186e7",
"polyglot/server-config-reference.md": "c8d110939a91c49bbea32e732a85499917bf7b1739b03eed980c129e0987049b",
"polyglot/server-role-topology.md": "3d048f0c6b5f179399622508f51e67fff8aa5a6d5b2492533fc720eeec2c27f2",
"polyglot/server.md": "7950b0c82dac2940c30b0aa042f3105dc9bdc70b524600cce4ed6d311cda7171",
"polyglot/service-operations.md": "a2ee46ac8d2e4f18aed4e3cb47a4f0b36f51ccc67f1e841efb99f0297391cf27",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ migración y evidencia de recuperación:
| Área | Declaración honesta de publicación |
| --- | --- |
| Tratamiento de datos | Argumentos, resultados, historial, memos, atributos de búsqueda, etiquetas, contexto de comandos, auditoría, excepciones y notas pueden contener datos de la aplicación del cliente. Los [identificadores de workflow](./defining-workflows/workflow-id.md#ids-are-visible-metadata), atributos de búsqueda y etiquetas son metadatos visibles para operadores, no almacenes de secretos. Los identificadores siguen en texto claro y no los cubren los códecs de cargas. |
| Cifrado | Usa TLS en todas las interfaces HTTP de producción. El cifrado en reposo corresponde a tu base de datos, almacenamiento de objetos, sistema de archivos, cola, caché y gestor de secretos. El paquete y Server no cifran automáticamente cada campo de carga. |
| Cifrado | Usa TLS en todas las interfaces HTTP de producción y configura [TLS de base de datos](./polyglot/server-config-reference.md#database-tls) en cada rol del Server, incluidas las migraciones. El cifrado en reposo corresponde a tu base de datos, almacenamiento de objetos, sistema de archivos, cola, caché y gestor de secretos. El paquete y Server no cifran automáticamente cada campo de carga. |
| Cumplimiento | El paquete abierto y Server autogestionado ofrecen controles y evidencia de auditoría, no una certificación. SOC 2, HIPAA, PCI, ISO o FedRAMP corresponden a tu programa salvo que una oferta alojada documente otra cosa. |
| Registros de auditoría | Comandos de workflow, eventos de auditoría de programaciones, metadatos de exportación y llamadas de servicio aportan evidencia duradera. No son un SIEM completo, DLP, registro externo inmutable ni sistema de conservación legal salvo que añadas esos componentes. |
| Soporte | Aquí se documentan credenciales por rol, TLS, copias, ensayos de restauración y topologías autónomas acotadas. Identidad avanzada, despliegue mTLS, redes privadas, motores de políticas propios, cumplimiento del proveedor y revisión a medida requieren soporte salvo documentación pública en contrario. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,11 +279,47 @@ Las variables de infraestructura de ejecución controlan el framework y sus depe
| --- | --- | --- |
| Aplicación | `APP_NAME`, `APP_ENV`, `APP_KEY`, `APP_DEBUG`, `APP_URL`, `APP_VERSION`, idioma, zona horaria, mantenimiento y cifrado | Identidad y comportamiento de arranque de la aplicación Laravel. |
| Registros | `LOG_CHANNEL`, `LOG_LEVEL`, `LOG_STDERR_FORMATTER`, opciones de stack, daily, Slack y Papertrail | Destinos, formato y retención de registros de Laravel. |
| Base de datos | `DB_CONNECTION`, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `DB_SOCKET`, `DB_URL`, juego de caracteres, cotejamiento y claves foráneas | Almacén SQL de estado para tablas de workflows, namespaces, workers y proyecciones. |
| Base de datos | `DB_CONNECTION`, `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `DB_SOCKET`, `DB_URL`, `DB_SSLMODE` (`DB_SSL_MODE`), `DB_SSLROOTCERT` (`DB_SSL_ROOT_CERT`), `MYSQL_ATTR_SSL_CA`, juego de caracteres, cotejamiento y claves foráneas | Almacén SQL de estado para tablas de workflows, namespaces, workers y proyecciones. Consulta [TLS de base de datos](#database-tls). |
| Redis/caché/cola | `REDIS_*`, `QUEUE_CONNECTION`, `QUEUE_FAILED_DRIVER`, `CACHE_STORE`, `CACHE_PREFIX`, `SESSION_*` | Workers de cola, bloqueos de caché, señales de long polling y soporte web y de sesiones. |
| Archivos/correo/difusión | `FILESYSTEM_DISK`, `MAIL_*`, `BROADCAST_*`, `PUSHER_*`, `AWS_*` | Integraciones del framework usadas por funciones propias de cada despliegue. |
| Compilación/ejecución | `MYSQL_VERSION`, `REDIS_VERSION`, `PHP_CLI_SERVER_WORKERS`, `VITE_APP_NAME`, `BCRYPT_ROUNDS` | Imágenes de Docker Compose y comportamiento de ejecución del framework. |

## TLS de base de datos {#database-tls}

Configura los mismos valores TLS en el servidor API, el worker de cola, el
trabajo de inicialización/migración y el planificador. PostgreSQL usa `prefer`
por defecto; MySQL/MariaDB conservan sus valores de conexión si no se indica
modo. Ninguno garantiza una conexión cifrada y autenticada.

| `DB_SSLMODE` | PostgreSQL | MySQL / MariaDB |
| --- | --- | --- |
| `disable` | Sin TLS. | Sin TLS; se rechazan opciones TLS contradictorias. |
| `allow`, `prefer` | TLS oportunista sin garantía de cifrado o identidad. | Rechazados. |
| `require` | Cifrado obligatorio. | Cifrado obligatorio con mysqlnd y OpenSSL. |
| `verify-ca` | Cifrado y cadena de certificados de confianza obligatorios. | Rechazado: PDO mysqlnd no puede verificar solo la cadena sin verificar el hostname. |
| `verify-full` | Cifrado, cadena de confianza y hostname coincidente obligatorios. | Cifrado, cadena de confianza y hostname coincidente obligatorios. |

`DB_SSL_MODE` es alias de `DB_SSLMODE`; `DB_SSL_ROOT_CERT`, de `DB_SSLROOTCERT`.
Para verificar certificados, monta un archivo CA legible en la ruta configurada
en **todos los roles**, incluidas las migraciones. `MYSQL_ATTR_SSL_CA` puede
aportar la CA para `verify-full` explícito en MySQL/MariaDB. Los valores
contradictorios entre nombres canónicos, alias o URL impiden el arranque. TLS
obligatorio requiere un hostname TCP explícito; se rechazan sockets Unix. Los
modos TLS explícitos de MySQL/MariaDB necesitan PDO MySQL con mysqlnd y OpenSSL.

```dotenv
DB_CONNECTION=pgsql
DB_HOST=database.example.com
DB_SSLMODE=verify-full
DB_SSLROOTCERT=/run/database-ca/ca.pem
```

Usa el nombre DNS del certificado. En Helm, configura `externalDatabase.sslMode`
y `externalDatabase.tls.existingSecret` / `caKey`. Crea el Secret antes de instalar
o actualizar; el chart monta su CA en los cuatro roles, incluido el hook de
inicialización. Reinicia los roles persistentes al cambiar el entorno:
la configuración se almacena en caché al arrancar.

## Registros de contenedores {#container-logs}

Establece `LOG_CHANNEL=stderr` en los contenedores de API, workers y planificador
Expand Down
Loading
Loading