Skip to content

Feature/400 delete namespace#737

Open
shanginn wants to merge 2 commits intotemporalio:masterfrom
shanginn:feature/400-delete-namespace
Open

Feature/400 delete namespace#737
shanginn wants to merge 2 commits intotemporalio:masterfrom
shanginn:feature/400-delete-namespace

Conversation

@shanginn
Copy link
Copy Markdown
Contributor

What was changed

This MR adds a repo-canonical SDK client for Temporal operator APIs and exposes namespace deletion through the PHP SDK.

The main change is a new OperatorClient / OperatorClientInterface generated from Temporal's OperatorServiceClient, so SDK users can call operator RPCs, including
DeleteNamespace, without reimplementing the shared gRPC client layer in user code.

To support that cleanly, the shared gRPC client plumbing was generalized so workflow and operator clients use the same SDK behavior for connection handling, metadata,
interceptors, retries, and call context.

While validating the change, I also fixed the test and harness issues required to keep the branch green repo-wide:

  • functional tests now consistently use the configured Temporal address
  • time-skipping fallback was hardened for environments where that RPC is unavailable
  • paused-activity coverage was stabilized and heartbeat response compatibility was improved
  • the arch test was updated to avoid the protobuf class redeclaration warning

Why?

Issue #400 is about deleting namespaces through the PHP SDK in the same way other SDK-supported APIs are accessed.

The generated Temporal operator stub already existed, but it was not exposed through the SDK’s own client abstraction. That meant users had to bypass the SDK conventions or
duplicate internal client behavior just to use DeleteNamespace.

This MR makes operator APIs first-class in the SDK, keeps the implementation aligned with the existing client architecture, and ensures the full repository still passes its checks
after the change.

Checklist

  1. Closes [Feature Request] Expose OperatorServiceClient  #400

  2. How was this tested:

  • composer validate --strict
  • vendor/bin/php-cs-fixer fix --dry-run -v --diff --show-progress dots --sequential --allow-unsupported-php-version=yes
  • vendor/bin/psalm --no-cache --threads=1
  • composer test:unit
  • COMPOSER_PROCESS_TIMEOUT=0 TEMPORAL_ADDRESS=127.0.0.1:17234 composer test:func
  • COMPOSER_PROCESS_TIMEOUT=0 TEMPORAL_ADDRESS=127.0.0.1:17233 composer test:accept-fast
  • COMPOSER_PROCESS_TIMEOUT=0 TEMPORAL_ADDRESS=127.0.0.1:17233 composer test:accept-slow
  • COMPOSER_PROCESS_TIMEOUT=0 TEMPORAL_ADDRESS=127.0.0.1:17233 composer test:accept
  • composer test:arch
  1. Any docs updates needed?
  • README was updated with an OperatorClient example that includes namespace deletion

@shanginn shanginn requested review from a team, roxblnfk and wolfy-j as code owners March 30, 2026 04:37
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 30, 2026

@shanginn is attempting to deploy a commit to the Temporal Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Expose OperatorServiceClient

1 participant