Skip to content

[Testing] Enhance local runner validation #466

Open
0 of 1 issue completed
Open

Description

@dhegberg

Migration from aws/aws-durable-execution-sdk-python-testing#26


Context

Implement backend service worker validation rules in local runner

Technical Requirements

  • Implement backend service worker validation rules in local runner
  • Add corresponding exception handling for new validation errors
  • Update existing tests to handle new validation logic

Acceptance Criteria

  • Backend service worker validation rules implemented in local runner
  • Exception handling added for new validation errors
  • Existing tests updated to handle new validation logic

Proposed direction

This issue is not ready to work on yet. The maintainers are still working through the most suitable design approach to take here.

Align local checkpoint validation with the AWS Lambda service in two stages.

First, validate raw OperationUpdate data against the constraints in the Lambda service model. Run this before typed conversion, execution lookup, idempotency, checkpoint-token checks, or state changes. Load the constraint metadata once from Botocore. Use one formatter to return the same HTTP 400 ValidationException messages as the service. Both WebRunner and DurableFunctionTestRunner must use this validator.

Second, keep validation that depends on existing execution state in CheckpointValidator. Those rules continue returning InvalidParameterValueException.

This design keeps model constraints in one place. It also preserves the service's validation order and separates request validation from stateful checkpoint rules. Python SDK issue 836: reject invalid checkpoint SubType values is the first concrete case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-decisionStill needs a decision from maintainers. Not ready to work on yet.not-readyNot ready to work on yet. Please do not work on this issue.pkg:testingPackage: aws-durable-execution-sdk-python-testing

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions