Skip to content

v2.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@seambot seambot released this 20 Aug 00:22
· 5 commits to main since this release
v2.0.0-beta.1
532c997
  • feat!: unify the SDK with the Seam SDKs for other languages (cc0e93f)

Features

  • add SeamWebhook for verifying webhook events (bb387dd)

BREAKING CHANGES

  • The SDK is rebuilt on the shared Seam SDK architecture
    as v2. The RestSharp/Newtonsoft runtime is replaced by System.Net.Http
    and System.Text.Json with no third-party dependencies, and the public
    surface changes throughout.

Added

  • Personal access token authentication with a workspace id, and a
    SeamWithoutWorkspaceClient for listing and creating workspaces.
  • Environment configuration: SEAM_API_KEY, SEAM_PERSONAL_ACCESS_TOKEN,
    SEAM_WORKSPACE_ID, and SEAM_ENDPOINT, consulted only when no
    credential is passed explicitly.
  • Token format validation with specific errors for the wrong kind of
    token.
  • Static factories: SeamClient.FromApiKey, FromPersonalAccessToken, and
    FromHttpClient for a fully preconfigured client.
  • Retries: idempotent requests retry twice on transport errors,
    timeouts, 429, and 5xx with exponential backoff and jitter, honoring
    Retry-After; POST and PATCH are never retried.
  • seam-sdk-name and seam-sdk-version headers on every request.
  • waitForActionAttempt: every endpoint returning an action attempt now
    waits for it by default (10s timeout, 1s polling), raising
    SeamActionAttemptFailedException or SeamActionAttemptTimeoutException,
    configurable per client and per call via ActionAttemptWait.
  • Pagination: SeamPage, Pagination metadata, and SeamPaginator with
    FirstPageAsync, NextPageAsync, FlattenToListAsync, and IAsyncEnumerable
    iteration; paginated endpoints emit ListPageAsync and ListPager.
  • A typed exception hierarchy rooted at SeamException, carrying the
    Seam error code, status code, and seam-request-id.
  • CancellationToken support on every endpoint method.
  • Optional for nullable parameters, distinguishing omitted from an
    explicit JSON null (Null.Value).
  • A test suite covering the shared SDK behavior matrix, run against
    @seamapi/fake-seam-connect.

Changed

  • The client is SeamClient with a SeamClientOptions object; the raw
    HttpClient is exposed as SeamClient.Client.
  • Endpoint methods are async-only and take a single request object with
    compile-time-required members; route namespaces are nested
    (seam.Acs.Users) instead of reversed flat names (UsersAcs).
  • Generated code moved to src/Seam/Routes and src/Seam/Models, is
    deleted and regenerated wholesale, and unknown union variants now
    preserve their raw payload.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01UxKRzX7AFRz33NyFQgfgK9