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
31 changes: 30 additions & 1 deletion docs/polyglot/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ routing misses, malformed payloads, and accepted handoffs.
| Command | Purpose | Important options |
| --- | --- | --- |
| `dw schedule:create` | Create a schedule. | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`, input options, `--json` |
| `dw schedule:list` | List schedules. | global output options |
| `dw schedule:list` | List schedules. | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` |
| `dw schedule:describe <schedule-id>` | Describe one schedule. | `--json` |
| `dw schedule:update <schedule-id>` | Update schedule spec or workflow input. | schedule create options, input options, `--json` |
| `dw schedule:pause <schedule-id>` | Pause a schedule. | `--note`, `--json` |
Expand All @@ -328,6 +328,35 @@ routing misses, malformed payloads, and accepted handoffs.
Use either `--cron` or `--interval` when creating interval-based schedules.
Use `--paused` for deploy-time registration that should not start work yet.

### Filter and page schedules {#schedule-list-filters}

`dw schedule:list` returns one filtered page in the resolved namespace. Omitting `--namespace` selects the resolved default namespace, not every namespace. Status, workflow type and visibility predicates combine with `AND`. The [normal published CLI and PHP Server qualification](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) verifies these options.

| CLI option | Server query parameter | Meaning |
| --- | --- | --- |
| `--status` | `status` | `active` or `paused`. |
| `--type` | `workflow_type` | Exact workflow type. |
| `--query` | `query` | Schedule visibility expression. |
| `--limit` | `page_size` | Page size from 1 to 200, default 50. |
| `--next-page-token` | `next_page_token` | Opaque continuation from the previous response. |

For an existing `production` namespace with a registered keyword attribute `Region`, list paused `orders.rollup` schedules in region `eu` on task queue `orders`:

```bash
dw schedule:list --namespace=production --status=paused --type=orders.rollup \
--query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json
```

Read `next_page_token` from the JSON response and set `NEXT_PAGE_TOKEN` to that value. Repeat the same namespace and filters for the next page:

```bash
dw schedule:list --namespace=production --status=paused --type=orders.rollup \
--query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json \
--next-page-token="$NEXT_PAGE_TOKEN"
```

Tokens belong to the namespace and filter selection. Start again without a token after changing filters or receiving a stale-cursor refusal. Each call reads a live page, not a frozen snapshot. See [schedule-list API constraints and refusal reasons](/docs/polyglot/server-api-reference#schedule-list-filters) for the supported query grammar and response fields.

## Worker And Task Queue Commands

| Command | Purpose | Important options |
Expand Down
29 changes: 29 additions & 0 deletions docs/polyglot/server-api-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -848,6 +848,35 @@ Search attribute names and types are part of the namespace search contract.
Avoid using high-cardinality attributes for operator dashboards or metric
labels.

### Schedule list filters and continuation {#schedule-list-filters}

`GET /api/schedules` reads the request namespace. The [normal published PHP Server qualification](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) verifies combined filters and continuation. Send the following query parameters, with normal URL encoding:

| Parameter | Accepted value |
| --- | --- |
| `status` | `active` or `paused`. |
| `workflow_type` | Nonempty workflow type, at most 255 characters. Whitespace alone is invalid. |
| `query` | Nonempty visibility expression, at most 2048 characters. |
| `page_size` | Integer from 1 to 200, default 50. |
| `next_page_token` | Nonempty opaque token, at most 8192 characters. |

Status, workflow type and query predicates combine with `AND`. A schedule visibility query accepts equality predicates joined by `AND`, such as `Region = "eu" AND TaskQueue = "orders"`. Built-in fields are `ScheduleId`, `Status`, `WorkflowType`, `TaskQueue` and `Note`. Other fields must be registered search attributes in the request namespace, with literals matching their types. Equality on a `keyword_list` attribute tests membership. Operators such as `OR`, `NOT`, `IN`, `LIKE` and range comparisons are unsupported and return `422`.

The response includes `namespace`, `schedules`, `schedule_count` for this page and `next_page_token`. Continue only when a token is returned. Pass it back unchanged with the same namespace, status, workflow type and query. The token is bound to the parsed filter selection. Pagination reads changing data rather than a snapshot. A deleted cursor, or one that no longer matches the filters, requires a fresh traversal without the token.

| HTTP / reason | Next action |
| --- | --- |
| `422` / `unsupported_schedule_list_filter` | Remove unsupported parameter names. |
| `422` / `validation_failed` | Correct the field validation errors. |
| `422` / `unsupported_schedule_visibility_field` | Use a built-in field or a registered attribute in this namespace. |
| `422` / `unsupported_schedule_visibility_predicate` | Use equality predicates joined by `AND`. |
| `400` / `malformed_schedule_page_token` | Use the returned token unchanged or restart without one. |
| `403` / `schedule_page_token_namespace_mismatch` | Use the original namespace or restart in the intended namespace. |
| `409` / `schedule_page_token_filter_mismatch` | Restart without a token after changing filters. |
| `409` / `stale_schedule_page_token` | Restart without a token against the current filtered set. |

[CLI schedule filtering and pagination examples](/docs/polyglot/cli-reference#schedule-list-filters) use the same contract. A list refusal includes the affected `field` and validation details. Inspect its reason before retrying.

## System Operations

System routes require admin role. They are explicit operator passes; prefer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ Duplikate, fehlende Routing-Ziele, ungültige Nutzlasten und angenommene Überga
| Befehl | Zweck | Wichtige Optionen |
| --- | --- | --- |
| `dw schedule:create` | Zeitplan erstellen. | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`, Eingabeoptionen, `--json` |
| `dw schedule:list` | Zeitpläne auflisten. | globale Ausgabeoptionen |
| `dw schedule:list` | Zeitpläne auflisten. | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` |
| `dw schedule:describe <schedule-id>` | Einen Zeitplan beschreiben. | `--json` |
| `dw schedule:update <schedule-id>` | Zeitplanspezifikation oder Workflow-Eingabe aktualisieren. | Optionen zum Erstellen, Eingabeoptionen, `--json` |
| `dw schedule:pause <schedule-id>` | Zeitplan pausieren. | `--note`, `--json` |
Expand All @@ -330,6 +330,35 @@ Verwenden Sie beim Erstellen intervallbasierter Zeitpläne entweder `--cron`
oder `--interval`. Verwenden Sie `--paused` für Registrierungen bei der
Bereitstellung, die noch keine Arbeit starten sollen.

### Zeitpläne filtern und seitenweise abrufen {#schedule-list-filters}

`dw schedule:list` liefert eine gefilterte Seite im aufgelösten Namespace. Ohne `--namespace` wird nur der aufgelöste Standard-Namespace ausgewählt, nicht jeder Namespace. Status, Workflow-Typ und Sichtbarkeitsprädikate werden mit `AND` verknüpft. Die [Prüfung der regulär veröffentlichten CLI- und PHP-Server-Artefakte](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) bestätigt diese Optionen.

| CLI-Option | Server-Abfrageparameter | Bedeutung |
| --- | --- | --- |
| `--status` | `status` | `active` oder `paused`. |
| `--type` | `workflow_type` | Exakter Workflow-Typ. |
| `--query` | `query` | Ausdruck für die Sichtbarkeit von Zeitplänen. |
| `--limit` | `page_size` | Seitengröße von 1 bis 200, Standard 50. |
| `--next-page-token` | `next_page_token` | Opakes Fortsetzungstoken aus der vorherigen Antwort. |

Listen Sie im vorhandenen Namespace `production` mit dem registrierten Keyword-Attribut `Region` die pausierten Zeitpläne von `orders.rollup` für Region `eu` und Task Queue `orders` auf:

```bash
dw schedule:list --namespace=production --status=paused --type=orders.rollup \
--query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json
```

Lesen Sie `next_page_token` aus der JSON-Antwort und setzen Sie `NEXT_PAGE_TOKEN` auf diesen Wert. Verwenden Sie für die nächste Seite denselben Namespace und dieselben Filter:

```bash
dw schedule:list --namespace=production --status=paused --type=orders.rollup \
--query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json \
--next-page-token="$NEXT_PAGE_TOKEN"
```

Tokens gehören zum Namespace und zur Filterauswahl. Beginnen Sie nach einer Filteränderung oder einer Ablehnung wegen eines veralteten Cursors erneut ohne Token. Jeder Aufruf liest eine aktuelle Seite, keinen unveränderlichen Snapshot. Die unterstützte Abfragesyntax und die Antwortfelder stehen unter [API-Grenzen und Ablehnungsgründen für Zeitplanlisten](/docs/polyglot/server-api-reference#schedule-list-filters).

## Worker- und Task-Warteschlangenbefehle {#worker-and-task-queue-commands}

| Befehl | Zweck | Wichtige Optionen |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -796,6 +796,35 @@ Zeitplanrouten sind Control-Plane-Routen.
Suchattributnamen und -typen gehören zum Namespace-Suchvertrag. Vermeiden Sie
Attribute mit hoher Kardinalität für Betriebsdashboards oder Metrikbezeichnungen.

### Filter und Fortsetzung für Zeitplanlisten {#schedule-list-filters}

`GET /api/schedules` liest den Namespace der Anfrage. Die [Prüfung des regulär veröffentlichten PHP Servers](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) bestätigt kombinierte Filter und Fortsetzung. Senden Sie folgende Abfrageparameter mit normaler URL-Kodierung:

| Parameter | Zulässiger Wert |
| --- | --- |
| `status` | `active` oder `paused`. |
| `workflow_type` | Nicht leerer Workflow-Typ mit höchstens 255 Zeichen. Nur Leerzeichen sind ungültig. |
| `query` | Nicht leerer Sichtbarkeitsausdruck mit höchstens 2048 Zeichen. |
| `page_size` | Ganzzahl von 1 bis 200, Standard 50. |
| `next_page_token` | Nicht leeres opakes Token mit höchstens 8192 Zeichen. |

Status, Workflow-Typ und Abfrageprädikate werden mit `AND` verknüpft. Eine Sichtbarkeitsabfrage für Zeitpläne unterstützt Gleichheitsprädikate mit `AND`, etwa `Region = "eu" AND TaskQueue = "orders"`. Die eingebauten Felder sind `ScheduleId`, `Status`, `WorkflowType`, `TaskQueue` und `Note`. Andere Felder müssen im Namespace der Anfrage registrierte Suchattribute sein, deren Literale zum jeweiligen Typ passen. Gleichheit bei einem Attribut vom Typ `keyword_list` prüft die Mitgliedschaft. Operatoren wie `OR`, `NOT`, `IN`, `LIKE` und Bereichsvergleiche werden nicht unterstützt und liefern `422`.

Die Antwort enthält `namespace`, `schedules`, `schedule_count` für diese Seite und `next_page_token`. Setzen Sie den Abruf nur fort, wenn ein Token zurückgegeben wird. Senden Sie es unverändert mit demselben Namespace, Status, Workflow-Typ und derselben Abfrage. Das Token ist an die geparste Filterauswahl gebunden. Die Seitennavigation liest veränderliche Daten statt eines Snapshots. Ein gelöschter Cursor oder einer, der nicht mehr den Filtern entspricht, erfordert einen neuen Durchlauf ohne Token.

| HTTP / Grund | Nächster Schritt |
| --- | --- |
| `422` / `unsupported_schedule_list_filter` | Entfernen Sie nicht unterstützte Parameternamen. |
| `422` / `validation_failed` | Korrigieren Sie die Validierungsfehler der Felder. |
| `422` / `unsupported_schedule_visibility_field` | Verwenden Sie ein eingebautes Feld oder ein registriertes Attribut dieses Namespace. |
| `422` / `unsupported_schedule_visibility_predicate` | Verwenden Sie Gleichheitsprädikate mit `AND`. |
| `400` / `malformed_schedule_page_token` | Verwenden Sie das zurückgegebene Token unverändert oder beginnen Sie ohne Token neu. |
| `403` / `schedule_page_token_namespace_mismatch` | Verwenden Sie den ursprünglichen Namespace oder beginnen Sie im gewünschten Namespace neu. |
| `409` / `schedule_page_token_filter_mismatch` | Beginnen Sie nach einer Filteränderung ohne Token neu. |
| `409` / `stale_schedule_page_token` | Beginnen Sie für die aktuelle Filterauswahl ohne Token neu. |

Die [CLI-Beispiele zum Filtern und seitenweisen Abrufen von Zeitplänen](/docs/polyglot/cli-reference#schedule-list-filters) verwenden denselben Vertrag. Eine Listenablehnung enthält das betroffene `field` und Validierungsdetails. Prüfen Sie vor einem erneuten Versuch den Grund.

## Systemoperationen {#system-operations}

Systemrouten benötigen die Admin-Rolle. Sie sind explizite Betriebsdurchläufe.
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 @@ -69,7 +69,7 @@
"polyglot/avro-value-protocol.md": "602e66c6288c1dd69d2b400c64e4739ad3a0493b5be269cee40f7848b11f260a",
"polyglot/cancellation.md": "a08aca914d8211d32184fd76f14e4f8bf47d40656e55364923013e3cece3b70d",
"polyglot/cli-python-parity.md": "acf1acbf15ca9cdf069154699c5fbf8c1d1fd3241a32d201ac10b8ec76c038be",
"polyglot/cli-reference.md": "b20db162aa91cc85ea64528a061753a99f053b33b6141664ce1194e711c641cc",
"polyglot/cli-reference.md": "03466a6598f69ed004b228fe270da852367a4446a0fcd010236591031d2ada84",
"polyglot/cli.mdx": "024a3f73e1c700a7fa142ec64a7edde03303f12507f4eb4a9161e0e944f7431b",
"polyglot/cloud-control-plane.md": "09a3487e496100dfcef854c56bc12cb8193c7267236cd992b7defc40b7ecb706",
"polyglot/deployment-modes.md": "ee38a2ca890e6ba5d52fffa1fa0bc65e64a1fc82e47af92463983e523d4e3f49",
Expand All @@ -85,7 +85,7 @@
"polyglot/python.md": "d55056ca7638df07b7267bc6d62e635b954957b99620478e861df90558860df3",
"polyglot/rust-cloud-quickstart.md": "2303434fc9302a81a8381ad4836423ef9952eb3201a4574c432254e3cb68c5f3",
"polyglot/rust.md": "af91b22c93a7fe6833df156371d99bb105740684915bc73af4576f6de2897e10",
"polyglot/server-api-reference.md": "e94af77a13b341d6fdc9941d4ee94e5053ab932d2e77069b238eb33351414e83",
"polyglot/server-api-reference.md": "b0a7bfa17ccaec0507ee97dfc1badac49fa5ff96f8178fa4ce5963bc8c6fe7d1",
"polyglot/server-config-reference.md": "b2dc3ddd188b078875cb46bf32b94053d89912c063c1687cc98ff5ba2baba812",
"polyglot/server-role-topology.md": "3d048f0c6b5f179399622508f51e67fff8aa5a6d5b2492533fc720eeec2c27f2",
"polyglot/server.md": "7950b0c82dac2940c30b0aa042f3105dc9bdc70b524600cce4ed6d311cda7171",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ Utiliza los campos de resultado del puente en lugar de inferir comportamiento so
| Comando | Finalidad | Opciones importantes |
| --- | --- | --- |
| `dw schedule:create` | Crear una programación. | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`, opciones de entrada, `--json` |
| `dw schedule:list` | Listar programaciones. | opciones globales de salida |
| `dw schedule:list` | Listar programaciones. | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` |
| `dw schedule:describe <schedule-id>` | Describir una programación. | `--json` |
| `dw schedule:update <schedule-id>` | Actualizar especificación o entrada de workflow. | opciones de creación, opciones de entrada, `--json` |
| `dw schedule:pause <schedule-id>` | Pausar una programación. | `--note`, `--json` |
Expand All @@ -224,6 +224,35 @@ Utiliza los campos de resultado del puente en lugar de inferir comportamiento so

Utiliza `--cron` o `--interval` al crear programaciones basadas en intervalos. Utiliza `--paused` para registrar durante el despliegue sin iniciar trabajo todavía.

### Filtrar y paginar programaciones {#schedule-list-filters}

`dw schedule:list` devuelve una página filtrada en el espacio de nombres resuelto. Si se omite `--namespace`, se selecciona el espacio predeterminado resuelto, no todos los espacios. El estado, el tipo de workflow y los predicados de visibilidad se combinan con `AND`. La [verificación de los artefactos publicados normales de CLI y PHP Server](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) confirma estas opciones.

| Opción de CLI | Parámetro de consulta de Server | Significado |
| --- | --- | --- |
| `--status` | `status` | `active` o `paused`. |
| `--type` | `workflow_type` | Tipo exacto de workflow. |
| `--query` | `query` | Expresión de visibilidad de programaciones. |
| `--limit` | `page_size` | Tamaño de página de 1 a 200, 50 por defecto. |
| `--next-page-token` | `next_page_token` | Token opaco de continuación de la respuesta anterior. |

En un espacio `production` existente con el atributo keyword `Region` registrado, liste las programaciones pausadas de `orders.rollup` en la región `eu` y la cola de tareas `orders`:

```bash
dw schedule:list --namespace=production --status=paused --type=orders.rollup \
--query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json
```

Lea `next_page_token` en la respuesta JSON y asigne su valor a `NEXT_PAGE_TOKEN`. Repita el mismo espacio de nombres y los mismos filtros para la página siguiente:

```bash
dw schedule:list --namespace=production --status=paused --type=orders.rollup \
--query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json \
--next-page-token="$NEXT_PAGE_TOKEN"
```

Los tokens pertenecen al espacio de nombres y a la selección de filtros. Empiece de nuevo sin token tras cambiar filtros o recibir un rechazo por cursor obsoleto. Cada llamada lee una página actual, no una instantánea fija. Consulte las [restricciones y motivos de rechazo de la API de listas de programaciones](/docs/polyglot/server-api-reference#schedule-list-filters) para conocer la gramática admitida y los campos de respuesta.

## Comandos de workers y colas {#worker-and-task-queue-commands}

| Comando | Finalidad | Opciones importantes |
Expand Down
Loading
Loading