Skip to content

docs: refresh codec server page#4483

Open
lennessyy wants to merge 12 commits intomainfrom
codec-server-refresh
Open

docs: refresh codec server page#4483
lennessyy wants to merge 12 commits intomainfrom
codec-server-refresh

Conversation

@lennessyy
Copy link
Copy Markdown
Contributor

@lennessyy lennessyy commented Apr 23, 2026

What does this PR do?

  • Refreshes the codec page, add use case, and more detailed explanation and up-to-date concepts

Notes to reviewers

┆Attachments: EDU-6261 docs: refresh codec server page

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 23, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
temporal-documentation Ready Ready Preview, Comment Apr 28, 2026 9:35pm

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

📖 Docs PR preview links

Comment thread docs/encyclopedia/data-conversion/codec-server.mdx Outdated
Comment thread docs/encyclopedia/data-conversion/codec-server.mdx
Copy link
Copy Markdown
Contributor

@drewhoskins-temporal drewhoskins-temporal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is so much better, thank you! Minor nits plus check w/ security.

Comment thread docs/encyclopedia/data-conversion/codec-server.mdx Outdated
Comment thread docs/encyclopedia/data-conversion/codec-server.mdx Outdated
Comment thread docs/encyclopedia/data-conversion/codec-server.mdx Outdated
Comment thread docs/encyclopedia/data-conversion/codec-server.mdx Outdated
You implement the transformation logic once in a Payload Codec, then host that logic in a Codec Server so the Web UI and
CLI can use it remotely.

## Authorization
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good but somebody from security, perhaps Kent Gruber, should have a look.

Co-authored-by: Drew Hoskins <drew.hoskins@temporal.io>
Comment thread docs/encyclopedia/data-conversion/codec-server.mdx Outdated
Comment thread docs/encyclopedia/data-conversion/codec-server.mdx Outdated
@lennessyy lennessyy marked this pull request as ready for review April 28, 2026 21:34
@lennessyy lennessyy requested a review from a team as a code owner April 28, 2026 21:34
- **Operating from the CLI.** Use commands like `temporal workflow show` and `temporal workflow execute` with readable
data, even when payloads are encrypted at rest.
- **Encoding inputs from the UI and CLI.** When you start or signal a Workflow from the Web UI or CLI, the Codec Server
can encode the input before it reaches the Temporal Service, so sensitive data is never sent in plaintext.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nit: "never sent in plaintext" is partially true, relative to the Temporal Service, but plaintext does cross from the user's browser/CLI to the Codec Server, ideally over TLS:

Suggested change
can encode the input before it reaches the Temporal Service, so sensitive data is never sent in plaintext.
can encode the input before it reaches the Temporal Service, so the Temporal Service never sees
plaintext (the input still travels from your browser or CLI to the Codec Server, which is why HTTPS
matters in any non-loopback deployment).

Comment on lines +77 to +78
Your Codec Server should use the same Payload Codec implementation as your Workers to ensure consistent encoding and
decoding.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Your Codec Server should use the same Payload Codec implementation as your Workers to ensure consistent encoding and
decoding.
decoding. Because the Codec Server often holds the same keys as your Workers, treat its
host with the same trust as a Worker; anyone who can call it has effective decrypt parity.

decoding.

Most SDKs provide example Codec Server implementation samples, listed here:
## Codec Server vs. Payload Codec
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few points here we could consider clarifying:

  1. HTTPS should be required for any non-loopback deployment.
  2. JWT verification != authorization: verifying the JWT signature only proves the token came from your IdP or Temporal Cloud. Ideally, the codec server would additionally check the token's claims authorize the namespace in X-Namespace. This generally requires additional API calls today to be made from the Codec Server, since it's not encoded in the JWT itself, since the Auth0 minted JWT for Temporal Cloud is used to access more than one namespace in a web UI session.
  3. Auth guidance: the "better" option is actually "Include cross-origin credentials", instead of "Pass the user access token". With it, customer codec server developers could use an existing organization-wide authentication provider (via the user browser’s cookies for an IdP) instead of the Auth0-minted JWT for Temporal Cloud. There's lots of nuance here, maybe we include diagrams for the two auth options?

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.

3 participants