{
  "schema": "durable-workflow.v2.php-sdk-conformance-contract",
  "version": 1,
  "status": "stable",
  "authority_url": "https://durable-workflow.github.io/platform-conformance/php-sdk-conformance.json",
  "conformance_suite": {
    "schema": "durable-workflow.v2.platform-conformance.suite",
    "url": "https://durable-workflow.github.io/platform-conformance-contract.json"
  },
  "purpose": "prove_the_released_framework_neutral_php_sdk_against_the_released_standalone_server",
  "product_boundary": {
    "remote_package": "durable-workflow/sdk",
    "remote_package_repository": "durable-workflow/sdk-php",
    "embedded_server_engine": "durable-workflow/workflow",
    "sdk_must_not_depend_on_embedded_engine": true,
    "server_keeps_embedded_engine_dependency": true
  },
  "artifact_policy": {
    "sdk": "Composer package durable-workflow/sdk:<exact published version>",
    "sdk_source": "https://packagist.org/packages/durable-workflow/sdk",
    "server": "Docker image durableworkflow/server:<matching exact published version or digest>",
    "payload_dependency": "Composer package apache/avro:<resolved official version>",
    "preferred_install": "dist",
    "local_product_source_checkouts_used_must_be_false": true,
    "path_and_vcs_repositories_forbidden": true,
    "compatibility_shims_for_prior_alpha_apis_forbidden": true
  },
  "topology": {
    "server_process": "exact_public_server_image",
    "client_process": "composer_installed_sdk_php_client",
    "worker_processes": [
      "initial_composer_installed_sdk_php_worker",
      "replacement_composer_installed_sdk_php_worker"
    ],
    "client_and_worker_process_ids_must_differ": true,
    "replacement_worker_process_id_must_differ": true
  },
  "required_scenarios": [
    "start_result",
    "signal_query",
    "update",
    "cancellation",
    "termination",
    "activities",
    "namespaces",
    "search_attributes",
    "schedules",
    "workflow_lifecycle",
    "failure_envelopes",
    "heartbeat",
    "worker_restart",
    "durable_replay"
  ],
  "required_evidence": [
    "client_processes",
    "worker_processes",
    "worker_identities",
    "artifact_version",
    "server_version",
    "server_image",
    "server_cluster_info",
    "artifact_source",
    "install_provenance",
    "apache_avro_provenance",
    "callback_counts",
    "history_assertions",
    "scenario_assertions",
    "local_product_source_checkouts_used"
  ],
  "history_requirements": [
    "activity_completed_before_worker_restart",
    "timer_scheduled_before_worker_restart",
    "timer_fired_after_worker_restart",
    "activity_callback_not_repeated_during_replay"
  ],
  "failure_routing": {
    "sdk": "sdk-php",
    "server": "server",
    "package-publication": "sdk-php-release",
    "runner": "conformance_harness"
  },
  "host_runner_contract": {
    "runner_id": "durable-workflow.v2.conformance.runner.workflow-lifecycle",
    "scenario_runner_id": "durable-workflow.v2.conformance.runner.php-sdk-published-artifacts",
    "result_schema": "durable-workflow.v2.php-sdk-conformance.result",
    "lifecycle_evidence_schema": "durable-workflow.v2.php-sdk-conformance.lifecycle-evidence",
    "required_environment": [
      "DW_PHP_SDK_VERSION",
      "DW_SERVER_VERSION",
      "DW_SERVER_IMAGE",
      "DW_PHP_SDK_CONFORMANCE_SERVER_URL"
    ],
    "docker_capable_host_required": true,
    "published_server_image_required": true,
    "published_packagist_sdk_required": true,
    "host_runner_implemented": true
  }
}
