diff --git a/docs/polyglot/cli-reference.md b/docs/polyglot/cli-reference.md index deaa68da6cc..04c60b87f7a 100644 --- a/docs/polyglot/cli-reference.md +++ b/docs/polyglot/cli-reference.md @@ -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 ` | Describe one schedule. | `--json` | | `dw schedule:update ` | Update schedule spec or workflow input. | schedule create options, input options, `--json` | | `dw schedule:pause ` | Pause a schedule. | `--note`, `--json` | @@ -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 | diff --git a/docs/polyglot/server-api-reference.md b/docs/polyglot/server-api-reference.md index 098434d4f8b..708dead9446 100644 --- a/docs/polyglot/server-api-reference.md +++ b/docs/polyglot/server-api-reference.md @@ -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 diff --git a/i18n/de/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md b/i18n/de/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md index bdae0ea2a10..86d73165016 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md @@ -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 ` | Einen Zeitplan beschreiben. | `--json` | | `dw schedule:update ` | Zeitplanspezifikation oder Workflow-Eingabe aktualisieren. | Optionen zum Erstellen, Eingabeoptionen, `--json` | | `dw schedule:pause ` | Zeitplan pausieren. | `--note`, `--json` | @@ -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 | diff --git a/i18n/de/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md b/i18n/de/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md index e402aa94197..4900b67f1e3 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md @@ -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. diff --git a/i18n/de/source-hashes.json b/i18n/de/source-hashes.json index 5f2cf249aab..c305d7b1bca 100644 --- a/i18n/de/source-hashes.json +++ b/i18n/de/source-hashes.json @@ -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", @@ -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", diff --git a/i18n/es/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md b/i18n/es/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md index da239f38343..c2fb727518f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md @@ -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 ` | Describir una programación. | `--json` | | `dw schedule:update ` | Actualizar especificación o entrada de workflow. | opciones de creación, opciones de entrada, `--json` | | `dw schedule:pause ` | Pausar una programación. | `--note`, `--json` | @@ -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 | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md b/i18n/es/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md index 9e8e7b7ea99..aad083d9309 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md @@ -610,6 +610,35 @@ Las programaciones son rutas del plano de control. Los nombres y tipos de atributos forman parte del contrato de búsqueda del espacio. Evita atributos de alta cardinalidad en paneles operativos o etiquetas de métricas. +### Filtros y continuación de listas de programaciones {#schedule-list-filters} + +`GET /api/schedules` lee el espacio de nombres de la solicitud. La [verificación de PHP Server publicado mediante instalación normal](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) confirma los filtros combinados y la continuación. Envíe estos parámetros de consulta con la codificación URL habitual: + +| Parámetro | Valor admitido | +| --- | --- | +| `status` | `active` o `paused`. | +| `workflow_type` | Tipo de workflow no vacío, de hasta 255 caracteres. No puede contener solo espacios. | +| `query` | Expresión de visibilidad no vacía, de hasta 2048 caracteres. | +| `page_size` | Entero de 1 a 200, 50 por defecto. | +| `next_page_token` | Token opaco no vacío, de hasta 8192 caracteres. | + +El estado, el tipo de workflow y los predicados de consulta se combinan con `AND`. Una consulta de visibilidad de programaciones admite predicados de igualdad unidos por `AND`, como `Region = "eu" AND TaskQueue = "orders"`. Los campos integrados son `ScheduleId`, `Status`, `WorkflowType`, `TaskQueue` y `Note`. Los demás campos deben ser atributos de búsqueda registrados en el espacio de nombres de la solicitud, con literales que correspondan a sus tipos. La igualdad en un atributo `keyword_list` comprueba la pertenencia. Operadores como `OR`, `NOT`, `IN`, `LIKE` y las comparaciones de rango no se admiten y devuelven `422`. + +La respuesta incluye `namespace`, `schedules`, `schedule_count` para esta página y `next_page_token`. Continúe solo si se devuelve un token. Envíelo sin cambios con el mismo espacio de nombres, estado, tipo de workflow y consulta. El token está vinculado a la selección de filtros analizada. La paginación lee datos cambiantes, no una instantánea. Si se elimina el cursor o deja de coincidir con los filtros, inicie un recorrido nuevo sin token. + +| HTTP / motivo | Acción siguiente | +| --- | --- | +| `422` / `unsupported_schedule_list_filter` | Quite los nombres de parámetros no admitidos. | +| `422` / `validation_failed` | Corrija los errores de validación de campos. | +| `422` / `unsupported_schedule_visibility_field` | Use un campo integrado o un atributo registrado en este espacio de nombres. | +| `422` / `unsupported_schedule_visibility_predicate` | Use predicados de igualdad unidos por `AND`. | +| `400` / `malformed_schedule_page_token` | Use el token recibido sin cambios o empiece de nuevo sin él. | +| `403` / `schedule_page_token_namespace_mismatch` | Use el espacio de nombres original o empiece de nuevo en el deseado. | +| `409` / `schedule_page_token_filter_mismatch` | Empiece de nuevo sin token después de cambiar los filtros. | +| `409` / `stale_schedule_page_token` | Empiece de nuevo sin token sobre el conjunto filtrado actual. | + +Los [ejemplos de filtrado y paginación de programaciones en CLI](/docs/polyglot/cli-reference#schedule-list-filters) usan el mismo contrato. Un rechazo de lista incluye el campo `field` afectado y los detalles de validación. Revise el motivo antes de reintentar. + ## Operaciones del sistema {#system-operations} Requieren admin. Son pasadas explícitas del operador; en automatización consulta el estado antes de ejecutar una pasada. diff --git a/i18n/es/source-hashes.json b/i18n/es/source-hashes.json index 5f2cf249aab..c305d7b1bca 100644 --- a/i18n/es/source-hashes.json +++ b/i18n/es/source-hashes.json @@ -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", @@ -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", diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md b/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md index 66efe27f261..cad203f803f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md @@ -324,7 +324,7 @@ formées et transmissions acceptées. | Commande | Rôle | Options importantes | | --- | --- | --- | | `dw schedule:create` | Créer une planification. | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`, options d'entrée, `--json` | -| `dw schedule:list` | Lister les planifications. | options globales de sortie | +| `dw schedule:list` | Lister les planifications. | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` | | `dw schedule:describe ` | Décrire une planification. | `--json` | | `dw schedule:update ` | Mettre à jour la spécification de planification ou l'entrée du workflow. | options de création de planification, options d'entrée, `--json` | | `dw schedule:pause ` | Suspendre une planification. | `--note`, `--json` | @@ -336,6 +336,35 @@ formées et transmissions acceptées. Utilisez `--cron` ou `--interval` pour créer des planifications par intervalle. Utilisez `--paused` pour les inscrire au déploiement sans démarrer le travail. +### Filtrer et paginer les planifications {#schedule-list-filters} + +`dw schedule:list` renvoie une page filtrée dans l’espace de noms résolu. Sans `--namespace`, seul l’espace par défaut résolu est sélectionné, pas tous les espaces. Le statut, le type de workflow et les prédicats de visibilité se combinent avec `AND`. La [qualification des artefacts CLI et PHP Server publiés normalement](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) vérifie ces options. + +| Option CLI | Paramètre de requête Server | Signification | +| --- | --- | --- | +| `--status` | `status` | `active` ou `paused`. | +| `--type` | `workflow_type` | Type exact de workflow. | +| `--query` | `query` | Expression de visibilité des planifications. | +| `--limit` | `page_size` | Taille de page de 1 à 200, 50 par défaut. | +| `--next-page-token` | `next_page_token` | Jeton opaque de continuation de la réponse précédente. | + +Dans un espace `production` existant où l’attribut keyword `Region` est enregistré, listez les planifications suspendues de `orders.rollup` dans la région `eu` et la file de tâches `orders` : + +```bash +dw schedule:list --namespace=production --status=paused --type=orders.rollup \ + --query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json +``` + +Lisez `next_page_token` dans la réponse JSON et affectez cette valeur à `NEXT_PAGE_TOKEN`. Reprenez le même espace de noms et les mêmes filtres pour la page suivante : + +```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" +``` + +Les jetons appartiennent à l’espace de noms et à la sélection de filtres. Recommencez sans jeton après un changement de filtres ou un refus pour curseur périmé. Chaque appel lit une page actuelle, pas un instantané fixe. Consultez les [contraintes et motifs de refus de l’API de liste des planifications](/docs/polyglot/server-api-reference#schedule-list-filters) pour la grammaire acceptée et les champs de réponse. + ## Commandes des workers et files de tâches {#worker-and-task-queue-commands} | Commande | Rôle | Options importantes | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md b/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md index 07a6ae4505b..2403ce76532 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md @@ -819,6 +819,35 @@ Les noms et types d'attributs font partie du contrat de recherche de l'espace de noms. Évitez les attributs à forte cardinalité dans les tableaux de bord opérateurs et les étiquettes de métriques. +### Filtres et continuation des listes de planifications {#schedule-list-filters} + +`GET /api/schedules` lit l’espace de noms de la requête. La [qualification de PHP Server publié avec une installation normale](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) vérifie les filtres combinés et la continuation. Envoyez les paramètres suivants avec l’encodage URL habituel : + +| Paramètre | Valeur acceptée | +| --- | --- | +| `status` | `active` ou `paused`. | +| `workflow_type` | Type de workflow non vide, de 255 caractères au maximum. Les espaces seuls sont invalides. | +| `query` | Expression de visibilité non vide, de 2048 caractères au maximum. | +| `page_size` | Entier de 1 à 200, 50 par défaut. | +| `next_page_token` | Jeton opaque non vide, de 8192 caractères au maximum. | + +Le statut, le type de workflow et les prédicats de requête se combinent avec `AND`. Une requête de visibilité des planifications accepte des prédicats d’égalité reliés par `AND`, par exemple `Region = "eu" AND TaskQueue = "orders"`. Les champs intégrés sont `ScheduleId`, `Status`, `WorkflowType`, `TaskQueue` et `Note`. Les autres champs doivent être des attributs de recherche enregistrés dans l’espace de noms de la requête, avec des littéraux correspondant à leurs types. L’égalité sur un attribut `keyword_list` teste l’appartenance. Les opérateurs tels que `OR`, `NOT`, `IN`, `LIKE` et les comparaisons d’intervalle ne sont pas acceptés et renvoient `422`. + +La réponse contient `namespace`, `schedules`, `schedule_count` pour cette page et `next_page_token`. Continuez uniquement si un jeton est renvoyé. Transmettez-le sans modification avec les mêmes espace de noms, statut, type de workflow et requête. Le jeton est lié à la sélection de filtres analysée. La pagination lit des données évolutives plutôt qu’un instantané. Un curseur supprimé ou ne correspondant plus aux filtres impose un nouveau parcours sans jeton. + +| HTTP / motif | Action suivante | +| --- | --- | +| `422` / `unsupported_schedule_list_filter` | Supprimez les noms de paramètres non acceptés. | +| `422` / `validation_failed` | Corrigez les erreurs de validation des champs. | +| `422` / `unsupported_schedule_visibility_field` | Utilisez un champ intégré ou un attribut enregistré dans cet espace de noms. | +| `422` / `unsupported_schedule_visibility_predicate` | Utilisez des prédicats d’égalité reliés par `AND`. | +| `400` / `malformed_schedule_page_token` | Utilisez le jeton reçu sans modification ou recommencez sans jeton. | +| `403` / `schedule_page_token_namespace_mismatch` | Utilisez l’espace de noms d’origine ou recommencez dans l’espace voulu. | +| `409` / `schedule_page_token_filter_mismatch` | Recommencez sans jeton après un changement de filtres. | +| `409` / `stale_schedule_page_token` | Recommencez sans jeton sur l’ensemble filtré actuel. | + +Les [exemples CLI de filtrage et de pagination des planifications](/docs/polyglot/cli-reference#schedule-list-filters) suivent le même contrat. Un refus de liste indique le champ `field` concerné et les détails de validation. Examinez le motif avant de réessayer. + ## Opérations système {#system-operations} Les routes système exigent le rôle admin. Ce sont des passes opérateur diff --git a/i18n/fr/source-hashes.json b/i18n/fr/source-hashes.json index 5f2cf249aab..c305d7b1bca 100644 --- a/i18n/fr/source-hashes.json +++ b/i18n/fr/source-hashes.json @@ -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", @@ -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", diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md b/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md index 01c90fef07c..56603680f73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md @@ -213,7 +213,7 @@ HTTP 状態だけから動作を推測せず、ブリッジ結果フィールド | コマンド | 用途 | 主なオプション | | --- | --- | --- | | `dw schedule:create` | スケジュールを作成。 | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`、入力オプション、`--json` | -| `dw schedule:list` | スケジュールを一覧。 | グローバル出力オプション | +| `dw schedule:list` | スケジュールを一覧。 | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` | | `dw schedule:describe ` | 1スケジュールを説明。 | `--json` | | `dw schedule:update ` | スケジュール仕様・入力を更新。 | 作成オプション、入力オプション、`--json` | | `dw schedule:pause ` | 一時停止。 | `--note`, `--json` | @@ -224,6 +224,35 @@ HTTP 状態だけから動作を推測せず、ブリッジ結果フィールド 間隔ベースのスケジュールを作るときは `--cron` または `--interval` のどちらかを使います。デプロイ時に登録してもまだ開始したくない場合は `--paused` を使います。 +### スケジュールの絞り込みとページ取得 {#schedule-list-filters} + +`dw schedule:list` は、解決された名前空間から絞り込み済みの1ページを返します。`--namespace` を省略すると、解決された既定の名前空間だけが対象になり、すべての名前空間は対象になりません。ステータス、ワークフロー型、可視性の条件は `AND` で結合されます。これらのオプションは[通常の公開 CLI と PHP Server の検証](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227)で確認しています。 + +| CLI オプション | Server のクエリパラメーター | 意味 | +| --- | --- | --- | +| `--status` | `status` | `active` または `paused`。 | +| `--type` | `workflow_type` | 完全一致のワークフロー型。 | +| `--query` | `query` | スケジュールの可視性クエリ。 | +| `--limit` | `page_size` | 1〜200件。既定は50件。 | +| `--next-page-token` | `next_page_token` | 前のレスポンスから取得した不透明な継続トークン。 | + +既存の `production` 名前空間に keyword 属性 `Region` が登録されている場合、リージョン `eu`、タスクキュー `orders` の一時停止中の `orders.rollup` スケジュールを取得します。 + +```bash +dw schedule:list --namespace=production --status=paused --type=orders.rollup \ + --query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json +``` + +JSON レスポンスの `next_page_token` を読み、その値を `NEXT_PAGE_TOKEN` に設定します。次のページでも同じ名前空間とフィルターを指定します。 + +```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" +``` + +トークンは名前空間とフィルターの組み合わせに属します。フィルターを変更した場合や、古いカーソルとして拒否された場合は、トークンなしで最初から取得してください。各呼び出しは現在のページを読み取り、固定スナップショットを読み取るわけではありません。対応するクエリ構文とレスポンスフィールドは、[スケジュール一覧 API の制約と拒否理由](/docs/polyglot/server-api-reference#schedule-list-filters)を参照してください。 + ## Worker とタスクキューのコマンド {#worker-and-task-queue-commands} | コマンド | 用途 | 主なオプション | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md b/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md index 30b0a3d2e5a..714b2935ed0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md @@ -610,6 +610,35 @@ Worker はリース ID、試行、タスク ID、ハートビートエンドポ 検索属性名と型は名前空間検索契約の一部です。運用ダッシュボードやメトリクスラベルに、値の種類が多い高カーディナリティ属性を使うのは避けてください。 +### スケジュール一覧のフィルターと継続 {#schedule-list-filters} + +`GET /api/schedules` はリクエストの名前空間を読み取ります。[通常の公開 PHP Server の検証](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227)で、フィルターの組み合わせと継続取得を確認しています。次のクエリパラメーターを通常の URL エンコードで送信します。 + +| パラメーター | 受け付ける値 | +| --- | --- | +| `status` | `active` または `paused`。 | +| `workflow_type` | 空でないワークフロー型。最大255文字。空白のみは無効です。 | +| `query` | 空でない可視性クエリ。最大2048文字。 | +| `page_size` | 1〜200の整数。既定は50。 | +| `next_page_token` | 空でない不透明なトークン。最大8192文字。 | + +ステータス、ワークフロー型、クエリ条件は `AND` で結合されます。スケジュールの可視性クエリは、`Region = "eu" AND TaskQueue = "orders"` のように、等値条件を `AND` で結合する構文に対応します。組み込みフィールドは `ScheduleId`、`Status`、`WorkflowType`、`TaskQueue`、`Note` です。それ以外はリクエストの名前空間に登録された検索属性であり、リテラルがその型に一致する必要があります。`keyword_list` 属性の等値条件は要素の包含を調べます。`OR`、`NOT`、`IN`、`LIKE`、範囲比較などは対応しておらず、`422` を返します。 + +レスポンスには `namespace`、`schedules`、このページの `schedule_count`、`next_page_token` が含まれます。トークンが返された場合だけ継続します。同じ名前空間、ステータス、ワークフロー型、クエリを指定し、トークンを変更せずに返してください。トークンは解析済みのフィルターの組み合わせに結び付いています。ページ取得は変化するデータを読み取り、スナップショットではありません。カーソルが削除された場合やフィルターに一致しなくなった場合は、トークンなしで最初から取得する必要があります。 + +| HTTP / 理由 | 次の操作 | +| --- | --- | +| `422` / `unsupported_schedule_list_filter` | 未対応のパラメーター名を削除してください。 | +| `422` / `validation_failed` | フィールドの検証エラーを修正してください。 | +| `422` / `unsupported_schedule_visibility_field` | 組み込みフィールドか、この名前空間に登録された属性を使用してください。 | +| `422` / `unsupported_schedule_visibility_predicate` | 等値条件を `AND` で結合してください。 | +| `400` / `malformed_schedule_page_token` | 返されたトークンを変更せずに使用するか、トークンなしで最初から取得してください。 | +| `403` / `schedule_page_token_namespace_mismatch` | 元の名前空間を使うか、目的の名前空間で最初から取得してください。 | +| `409` / `schedule_page_token_filter_mismatch` | フィルターを変更した後は、トークンなしで最初から取得してください。 | +| `409` / `stale_schedule_page_token` | 現在の絞り込み結果をトークンなしで最初から取得してください。 | + +[CLI のスケジュール絞り込みとページ取得の例](/docs/polyglot/cli-reference#schedule-list-filters)も同じ契約に従います。一覧取得の拒否には、対象の `field` と検証の詳細が含まれます。再試行の前に理由を確認してください。 + ## システム操作 {#system-operations} システムルートには admin ロールが必要です。明示的な運用処理であり、自動化では pass の前に status ルートを使ってください。 diff --git a/i18n/ja/source-hashes.json b/i18n/ja/source-hashes.json index 5f2cf249aab..c305d7b1bca 100644 --- a/i18n/ja/source-hashes.json +++ b/i18n/ja/source-hashes.json @@ -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", @@ -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", diff --git a/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md b/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md index 6729eb41a12..73213199ce4 100644 --- a/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md +++ b/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md @@ -308,7 +308,7 @@ para duplicatas, falhas de roteamento, payloads malformados e transferências ac | Comando | Finalidade | Opções importantes | | --- | --- | --- | | `dw schedule:create` | Cria um agendamento. | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`, opções de entrada, `--json` | -| `dw schedule:list` | Lista agendamentos. | opções globais de saída | +| `dw schedule:list` | Lista agendamentos. | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` | | `dw schedule:describe ` | Descreve um agendamento. | `--json` | | `dw schedule:update ` | Atualiza especificação ou entrada do workflow. | opções de criação de agendamento, opções de entrada, `--json` | | `dw schedule:pause ` | Pausa um agendamento. | `--note`, `--json` | @@ -320,6 +320,35 @@ para duplicatas, falhas de roteamento, payloads malformados e transferências ac Use `--cron` ou `--interval` ao criar agendamentos por intervalo. Use `--paused` para registrar na implantação sem iniciar trabalho ainda. +### Filtrar e paginar agendamentos {#schedule-list-filters} + +`dw schedule:list` retorna uma página filtrada no namespace resolvido. Omitir `--namespace` seleciona apenas o namespace padrão resolvido, não todos os namespaces. Status, tipo de workflow e predicados de visibilidade se combinam com `AND`. A [qualificação dos artefatos publicados normais de CLI e PHP Server](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) verifica essas opções. + +| Opção da CLI | Parâmetro de consulta do Server | Significado | +| --- | --- | --- | +| `--status` | `status` | `active` ou `paused`. | +| `--type` | `workflow_type` | Tipo exato de workflow. | +| `--query` | `query` | Expressão de visibilidade de agendamentos. | +| `--limit` | `page_size` | Tamanho de página de 1 a 200, padrão 50. | +| `--next-page-token` | `next_page_token` | Token opaco de continuação da resposta anterior. | + +Em um namespace `production` existente com o atributo keyword `Region` registrado, liste os agendamentos pausados de `orders.rollup` na região `eu` e na fila de tarefas `orders`: + +```bash +dw schedule:list --namespace=production --status=paused --type=orders.rollup \ + --query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json +``` + +Leia `next_page_token` na resposta JSON e atribua esse valor a `NEXT_PAGE_TOKEN`. Repita o mesmo namespace e os mesmos filtros para a próxima página: + +```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" +``` + +Os tokens pertencem ao namespace e à seleção de filtros. Reinicie sem token após alterar filtros ou receber uma recusa por cursor obsoleto. Cada chamada lê uma página atual, não um snapshot fixo. Consulte as [restrições e os motivos de recusa da API de listagem de agendamentos](/docs/polyglot/server-api-reference#schedule-list-filters) para ver a gramática aceita e os campos da resposta. + ## Comandos de workers e filas de tarefas {#worker-and-task-queue-commands} | Comando | Finalidade | Opções importantes | diff --git a/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md b/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md index 60291209c30..2fa8dd16de8 100644 --- a/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md +++ b/i18n/pt-BR/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md @@ -791,6 +791,35 @@ Rotas de agendamento são rotas do plano de controle. Nomes e tipos de atributos fazem parte do contrato de busca do namespace. Evite atributos de alta cardinalidade em painéis de operação ou rótulos de métricas. +### Filtros e continuação da listagem de agendamentos {#schedule-list-filters} + +`GET /api/schedules` lê o namespace da requisição. A [qualificação do PHP Server publicado com instalação normal](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) verifica filtros combinados e continuação. Envie os seguintes parâmetros de consulta com a codificação URL habitual: + +| Parâmetro | Valor aceito | +| --- | --- | +| `status` | `active` ou `paused`. | +| `workflow_type` | Tipo de workflow não vazio, com até 255 caracteres. Apenas espaços não são válidos. | +| `query` | Expressão de visibilidade não vazia, com até 2048 caracteres. | +| `page_size` | Inteiro de 1 a 200, padrão 50. | +| `next_page_token` | Token opaco não vazio, com até 8192 caracteres. | + +Status, tipo de workflow e predicados da consulta se combinam com `AND`. Uma consulta de visibilidade de agendamentos aceita predicados de igualdade unidos por `AND`, como `Region = "eu" AND TaskQueue = "orders"`. Os campos integrados são `ScheduleId`, `Status`, `WorkflowType`, `TaskQueue` e `Note`. Os demais campos precisam ser atributos de busca registrados no namespace da requisição, com literais compatíveis com seus tipos. A igualdade em um atributo `keyword_list` testa a presença do elemento. Operadores como `OR`, `NOT`, `IN`, `LIKE` e comparações de intervalo não são aceitos e retornam `422`. + +A resposta inclui `namespace`, `schedules`, `schedule_count` desta página e `next_page_token`. Continue somente quando houver um token. Envie-o sem alterações com o mesmo namespace, status, tipo de workflow e consulta. O token está vinculado à seleção de filtros analisada. A paginação lê dados em alteração, não um snapshot. Um cursor excluído, ou que não corresponde mais aos filtros, exige uma nova travessia sem token. + +| HTTP / motivo | Próxima ação | +| --- | --- | +| `422` / `unsupported_schedule_list_filter` | Remova os nomes de parâmetros não aceitos. | +| `422` / `validation_failed` | Corrija os erros de validação dos campos. | +| `422` / `unsupported_schedule_visibility_field` | Use um campo integrado ou um atributo registrado neste namespace. | +| `422` / `unsupported_schedule_visibility_predicate` | Use predicados de igualdade unidos por `AND`. | +| `400` / `malformed_schedule_page_token` | Use o token recebido sem alterações ou reinicie sem ele. | +| `403` / `schedule_page_token_namespace_mismatch` | Use o namespace original ou reinicie no namespace desejado. | +| `409` / `schedule_page_token_filter_mismatch` | Reinicie sem token depois de alterar os filtros. | +| `409` / `stale_schedule_page_token` | Reinicie sem token no conjunto filtrado atual. | + +Os [exemplos de filtragem e paginação de agendamentos na CLI](/docs/polyglot/cli-reference#schedule-list-filters) usam o mesmo contrato. Uma recusa de listagem inclui o campo `field` afetado e os detalhes de validação. Confira o motivo antes de tentar novamente. + ## Operações do sistema {#system-operations} Rotas do sistema exigem admin. São passagens explícitas de operador; prefira diff --git a/i18n/pt-BR/source-hashes.json b/i18n/pt-BR/source-hashes.json index 5f2cf249aab..c305d7b1bca 100644 --- a/i18n/pt-BR/source-hashes.json +++ b/i18n/pt-BR/source-hashes.json @@ -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", @@ -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", diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md b/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md index 398d87bc48a..cca89d27d59 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md @@ -307,7 +307,7 @@ dw bridge:webhook pagerduty \ | Команда | Призначення | Важливі параметри | | --- | --- | --- | | `dw schedule:create` | Створити schedule. | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`, параметри вводу, `--json` | -| `dw schedule:list` | Показати schedule. | глобальні параметри виводу | +| `dw schedule:list` | Показати schedule. | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` | | `dw schedule:describe ` | Описати один schedule. | `--json` | | `dw schedule:update ` | Оновити специфікацію schedule чи ввід workflow. | параметри створення schedule, параметри вводу, `--json` | | `dw schedule:pause ` | Призупинити schedule. | `--note`, `--json` | @@ -319,6 +319,35 @@ dw bridge:webhook pagerduty \ Під час створення schedule використовуйте `--cron` або `--interval`. `--paused` дозволяє зареєструвати schedule під час розгортання без запуску роботи. +### Фільтрування та сторінки розкладів {#schedule-list-filters} + +`dw schedule:list` повертає одну відфільтровану сторінку у визначеному просторі імен. Без `--namespace` вибирається визначений простір імен за замовчуванням, а не всі простори. Статус, тип workflow і предикати видимості поєднуються через `AND`. Ці параметри перевірено на [звичайних опублікованих артефактах CLI та PHP Server](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227). + +| Параметр CLI | Параметр запиту Server | Значення | +| --- | --- | --- | +| `--status` | `status` | `active` або `paused`. | +| `--type` | `workflow_type` | Точний тип workflow. | +| `--query` | `query` | Вираз видимості розкладів. | +| `--limit` | `page_size` | Розмір сторінки від 1 до 200, за замовчуванням 50. | +| `--next-page-token` | `next_page_token` | Непрозорий токен продовження з попередньої відповіді. | + +Для наявного простору імен `production` із зареєстрованим атрибутом типу keyword `Region` виведіть призупинені розклади `orders.rollup` регіону `eu` у черзі завдань `orders`: + +```bash +dw schedule:list --namespace=production --status=paused --type=orders.rollup \ + --query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json +``` + +Прочитайте `next_page_token` із JSON-відповіді та запишіть це значення в `NEXT_PAGE_TOKEN`. Для наступної сторінки повторіть той самий простір імен і фільтри: + +```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" +``` + +Токен належить простору імен і набору фільтрів. Після зміни фільтрів або відмови через застарілий курсор почніть знову без токена. Кожен виклик читає поточну сторінку, а не незмінний знімок. Підтримувану граматику запитів і поля відповіді наведено в [обмеженнях API списку розкладів і причинах відмов](/docs/polyglot/server-api-reference#schedule-list-filters). + ## Команди worker і черг завдань {#worker-and-task-queue-commands} | Команда | Призначення | Важливі параметри | diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md b/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md index 3b98f2f884b..02326ac3532 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md @@ -762,6 +762,35 @@ poll завдань workflow, activity і query містить машиночи Назви й типи атрибутів пошуку є контрактом namespace. Не використовуйте атрибути з великою кількістю унікальних значень для панелей чи міток метрик. +### Фільтри списку розкладів і продовження {#schedule-list-filters} + +`GET /api/schedules` читає простір імен запиту. [Перевірка звичайного опублікованого PHP Server](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227) підтверджує поєднання фільтрів і продовження. Передавайте такі параметри запиту зі звичайним URL-кодуванням: + +| Параметр | Допустиме значення | +| --- | --- | +| `status` | `active` або `paused`. | +| `workflow_type` | Непорожній тип workflow, не більше 255 символів. Самі пробіли недопустимі. | +| `query` | Непорожній вираз видимості, не більше 2048 символів. | +| `page_size` | Ціле число від 1 до 200, за замовчуванням 50. | +| `next_page_token` | Непорожній непрозорий токен, не більше 8192 символів. | + +Статус, тип workflow і предикати запиту поєднуються через `AND`. Запит видимості розкладів підтримує предикати рівності, поєднані через `AND`, наприклад `Region = "eu" AND TaskQueue = "orders"`. Вбудовані поля: `ScheduleId`, `Status`, `WorkflowType`, `TaskQueue` і `Note`. Інші поля мають бути зареєстрованими атрибутами пошуку в просторі імен запиту, а літерали мають відповідати їхнім типам. Рівність для атрибута `keyword_list` перевіряє наявність елемента. Оператори `OR`, `NOT`, `IN`, `LIKE` та порівняння діапазонів не підтримуються й повертають `422`. + +Відповідь містить `namespace`, `schedules`, `schedule_count` для цієї сторінки та `next_page_token`. Продовжуйте лише за наявності токена. Передавайте його без змін із тим самим простором імен, статусом, типом workflow і запитом. Токен прив’язаний до розібраного набору фільтрів. Сторінки читаються зі змінюваних даних, а не зі знімка. Якщо курсор видалено або він більше не відповідає фільтрам, почніть новий обхід без токена. + +| HTTP / причина | Наступна дія | +| --- | --- | +| `422` / `unsupported_schedule_list_filter` | Видаліть непідтримувані назви параметрів. | +| `422` / `validation_failed` | Виправте помилки перевірки полів. | +| `422` / `unsupported_schedule_visibility_field` | Використайте вбудоване поле або зареєстрований атрибут у цьому просторі імен. | +| `422` / `unsupported_schedule_visibility_predicate` | Використайте предикати рівності, поєднані через `AND`. | +| `400` / `malformed_schedule_page_token` | Передайте отриманий токен без змін або почніть знову без нього. | +| `403` / `schedule_page_token_namespace_mismatch` | Використайте початковий простір імен або почніть знову в потрібному. | +| `409` / `schedule_page_token_filter_mismatch` | Після зміни фільтрів почніть знову без токена. | +| `409` / `stale_schedule_page_token` | Почніть знову без токена для поточного відфільтрованого набору. | + +[Приклади фільтрування та сторінок розкладів у CLI](/docs/polyglot/cli-reference#schedule-list-filters) використовують той самий контракт. Відмова списку містить відповідне поле `field` і подробиці перевірки. Перевірте причину перед повторною спробою. + ## Системні операції {#system-operations} Системні маршрути вимагають admin. Це явні операторські проходи. diff --git a/i18n/uk/source-hashes.json b/i18n/uk/source-hashes.json index 5f2cf249aab..c305d7b1bca 100644 --- a/i18n/uk/source-hashes.json +++ b/i18n/uk/source-hashes.json @@ -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", @@ -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", diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md index a1189b7ad47..a8695fa1223 100644 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md +++ b/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/cli-reference.md @@ -213,7 +213,7 @@ dw bridge:webhook pagerduty \ | 命令 | 用途 | 重要选项 | | --- | --- | --- | | `dw schedule:create` | 创建计划。 | `--schedule-id`, `--workflow-type`, `--cron`, `--interval`, `--task-queue`, `--timezone`, `--execution-timeout`, `--run-timeout`, `--overlap-policy`, `--jitter`, `--max-runs`, `--paused`, `--note`, 输入选项, `--json` | -| `dw schedule:list` | 列出计划。 | 全局输出选项 | +| `dw schedule:list` | 列出计划。 | `--status`, `--type`, `--query`, `--limit`, `--next-page-token`, `--json` | | `dw schedule:describe ` | 描述一个计划。 | `--json` | | `dw schedule:update ` | 更新计划规范或工作流输入。 | 计划创建选项, 输入选项, `--json` | | `dw schedule:pause ` | 暂停计划。 | `--note`, `--json` | @@ -224,6 +224,35 @@ dw bridge:webhook pagerduty \ 创建基于时间间隔的计划时,使用 `--cron` 或 `--interval` 之一。部署时注册但暂不启动工作时,使用 `--paused`。 +### 筛选计划并分页读取 {#schedule-list-filters} + +`dw schedule:list` 在解析后的命名空间中返回一页筛选结果。省略 `--namespace` 时,只查询解析后的默认命名空间,不会查询所有命名空间。状态、工作流类型和可见性条件通过 `AND` 组合。这些选项已通过[常规发布 CLI 和 PHP Server 的验证](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227)。 + +| CLI 选项 | Server 查询参数 | 含义 | +| --- | --- | --- | +| `--status` | `status` | `active` 或 `paused`。 | +| `--type` | `workflow_type` | 精确匹配的工作流类型。 | +| `--query` | `query` | 计划可见性表达式。 | +| `--limit` | `page_size` | 每页1至200条,默认50条。 | +| `--next-page-token` | `next_page_token` | 上一次响应返回的不透明继续令牌。 | + +对于已存在且已注册 keyword 属性 `Region` 的 `production` 命名空间,列出区域为 `eu`、任务队列为 `orders`、已暂停的 `orders.rollup` 计划: + +```bash +dw schedule:list --namespace=production --status=paused --type=orders.rollup \ + --query='Region = "eu" AND TaskQueue = "orders"' --limit=25 --json +``` + +读取 JSON 响应中的 `next_page_token`,将其值赋给 `NEXT_PAGE_TOKEN`。下一页继续使用相同的命名空间和筛选条件: + +```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" +``` + +令牌属于特定命名空间和筛选条件。更改筛选条件或收到游标过期拒绝后,应不带令牌重新遍历。每次调用读取当前页面,并非固定快照。支持的查询语法和响应字段见[计划列表 API 约束与拒绝原因](/docs/polyglot/server-api-reference#schedule-list-filters)。 + ## Worker 与任务队列命令 {#worker-and-task-queue-commands} | 命令 | 用途 | 重要选项 | diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md index d58ada142b8..ece8119116a 100644 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md +++ b/i18n/zh-Hans/docusaurus-plugin-content-docs/current/polyglot/server-api-reference.md @@ -609,6 +609,35 @@ Worker 应将租约 ID、尝试、任务 ID 和心跳端点视为 Server 签发 搜索属性名称和类型是命名空间搜索契约的一部分。避免在运维仪表盘或指标标签中使用高基数属性。 +### 计划列表筛选与继续读取 {#schedule-list-filters} + +`GET /api/schedules` 读取请求所属的命名空间。[常规发布 PHP Server 的验证](https://github.com/durable-workflow/durable-workflow.github.io/issues/402#issuecomment-6370122227)已确认组合筛选和继续读取行为。以下查询参数使用正常的 URL 编码发送: + +| 参数 | 允许的值 | +| --- | --- | +| `status` | `active` 或 `paused`。 | +| `workflow_type` | 非空工作流类型,最多255个字符。仅空白字符无效。 | +| `query` | 非空可见性表达式,最多2048个字符。 | +| `page_size` | 1至200的整数,默认50。 | +| `next_page_token` | 非空的不透明令牌,最多8192个字符。 | + +状态、工作流类型和查询条件通过 `AND` 组合。计划可见性查询支持以 `AND` 连接的等值条件,例如 `Region = "eu" AND TaskQueue = "orders"`。内置字段为 `ScheduleId`、`Status`、`WorkflowType`、`TaskQueue` 和 `Note`。其他字段必须是在请求命名空间中注册的搜索属性,字面量必须符合其类型。对 `keyword_list` 属性的等值条件检查元素是否包含在列表中。`OR`、`NOT`、`IN`、`LIKE` 和范围比较等操作不受支持,会返回 `422`。 + +响应包含 `namespace`、`schedules`、当前页的 `schedule_count` 和 `next_page_token`。仅在返回令牌时继续读取。使用相同的命名空间、状态、工作流类型和查询,将令牌原样传回。令牌绑定解析后的筛选条件。分页读取的是不断变化的数据,并非快照。若游标已被删除或不再符合筛选条件,需要不带令牌重新遍历。 + +| HTTP / 原因 | 下一步 | +| --- | --- | +| `422` / `unsupported_schedule_list_filter` | 删除不支持的参数名。 | +| `422` / `validation_failed` | 修正字段验证错误。 | +| `422` / `unsupported_schedule_visibility_field` | 使用内置字段或此命名空间中已注册的属性。 | +| `422` / `unsupported_schedule_visibility_predicate` | 使用以 `AND` 连接的等值条件。 | +| `400` / `malformed_schedule_page_token` | 原样使用返回的令牌,或不带令牌重新开始。 | +| `403` / `schedule_page_token_namespace_mismatch` | 使用原命名空间,或在目标命名空间中重新开始。 | +| `409` / `schedule_page_token_filter_mismatch` | 更改筛选条件后,不带令牌重新开始。 | +| `409` / `stale_schedule_page_token` | 对当前筛选结果不带令牌重新遍历。 | + +[CLI 计划筛选与分页示例](/docs/polyglot/cli-reference#schedule-list-filters)使用同一契约。列表拒绝响应包含相关 `field` 和验证详情。重试前请检查拒绝原因。 + ## 系统操作 {#system-operations} 系统路由要求 admin 角色。它们是显式运维轮次;自动化应优先读取状态路由,再调用执行轮次路由。 diff --git a/i18n/zh-Hans/source-hashes.json b/i18n/zh-Hans/source-hashes.json index 5f2cf249aab..c305d7b1bca 100644 --- a/i18n/zh-Hans/source-hashes.json +++ b/i18n/zh-Hans/source-hashes.json @@ -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", @@ -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",