Skip to content

server-zd v0.1.26

Choose a tag to compare

@longquanzheng longquanzheng released this 11 Nov 06:32
1492132

Breaking Changes

  • Removed FlowService.TriggerContinueAsNew and TriggerContinueAsNewRequest. The RPC previously returned UNIMPLEMENTED. Reference.
  • Removed FlowConfig.continue_as_new_threshold (2), continue_as_new_page_size_in_bytes (3), SearchFlowsRequest.include_continued_as_new (4), FlowStatus.FLOW_STATUS_CONTINUED_AS_NEW (7), FlowStartedOrContinuedHistoryEvent.continued_start (11), FlowContinuedStart, and FlowClosedHistoryEvent.continued_to_run_id (5). Their field numbers and names, and the enum number and name, are reserved where applicable. Reference.
  • A search query that compares ExecutionStatus with ContinuedAsNew, such as ExecutionStatus = 'ContinuedAsNew' or ExecutionStatus != 'ContinuedAsNew', fails with INVALID_ARGUMENT. Remove that predicate from stored queries. Reference.
  • Removed WaitForStepCompletionRequest.internal_handler_timeout_seconds (5) and WaitForAttributeRequest.internal_handler_timeout_seconds (4). The server ignored positive values. Reference.
  • Renamed FlowExecutionID to FlowRunID and both flow_execution_id fields to flow_run_id without changing field numbers. ProtoJSON field names change from flowExecutionId to flowRunId; update JSON clients and generated-code consumers. Reference.
  • Apply results change. Stop the standby and the active process, upgrade both binaries, then start the active process before the standby. A mixed-version pair diverges. Reference.

Added

  • FlowService.UploadFlowDefinitions, ListFlowDefinitions, and GetFlowDefinitions store and read Flow Definition Graph (FDG 2.0) JSON documents, one for each Flow type, so that Dex Web can render Flows without a definition directory. An upload keeps the stored document unless the new one differs and has a strictly later generated_at, or the request sets force. Errors use the new ERROR_SUB_STATUS_FLOW_DEFINITION_INVALID and ERROR_SUB_STATUS_FLOW_DEFINITION_RESPONSE_TOO_LARGE. Reference.
  • flowDefinitions.maxDefinitionBytes (default 8 MiB) limits one uploaded Flow definition. Reference.
  • The only new persisted data is one object per uploaded Flow type under PREFIX/registry/flow-definitions/. It is outside the log and snapshots, and older server binaries never read it, so they keep working on the same prefix. Reference.
  • dev and local accept --application-s3-listen and --application-s3-bucket. They serve one more S3-compatible bucket for applications on a loopback address, with its own store in application-s3 in the data directory. Applications cannot reach the server's own bucket through it. Reference.

Fixed

  • A Step that a decision or an RPC cancels after its wait consumed Channel messages, but before its Execute result was saved, no longer loses those messages. They return to the front of their Channel or ChannelMap instance in their original order, and another wait can consume them, so a message can reach Execute twice. The server still drops them when the Flow close cancels the Step: a stop, a Flow timeout, a failure that closes the Flow, or a decision that cancels it and closes with ForceComplete or ForceFail. A Step that a commit cancels also no longer consumes that commit's own publications. Reference.
  • A StartFlow retry with the request_id that started the latest run of the Flow ID no longer goes through the ID reuse policy. It returns that run with ignore_already_started_error, or ALREADY_EXISTS / FLOW_ALREADY_STARTED without it. Before, ID_REUSE_POLICY_ALLOW_IF_NO_RUNNING and ID_REUSE_POLICY_ALLOW_IF_PREVIOUS_EXISTS_ABNORMALLY started a second run for the retry, and ID_REUSE_POLICY_ALLOW_TERMINATE_IF_RUNNING terminated the run that the retried request had started. Reference.

See the change log.