temporalio / temporalio/temporal

Auth plugin design

Open
#8,636 6 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
23.2k
Forks
1.9k
Avg merge
2d 8h
Merged PRs (30d)
228

Description

Is your feature request related to a problem? Please describe.
Compiling external services, temporal server, for custom authentication is inconvenient.

Describe the solution you'd like
Authentication provides a plugin architecture where one doesn't need to compile temporal-server.

Describe alternatives you've considered

  1. Golang's plugin package - https://github.com/cwjenkins/temporal/pull/1/files (quick draft that works)
  2. Hashicorp plugin package - https://github.com/hashicorp/go-plugin
  3. wazero/wasm as a plugin - https://github.com/knqyf263/go-plugin (this is a wrapper for reference)

Additional context
Each has their drawbacks...

  1. Go's plugin package isn't very friendly which they are very open about on the packages page
  2. hashi's is over RPC so its a bit of a performance hit
  3. wasm is more work than desirable to get extensions going.

Curious to converse given we like temporal thus far and we are going the compile w/ custom auth route, but looking to discuss what other options may be avail.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no repository files, tests, or entry points. Start by examining how custom authentication is compiled into temporal-server, then compare the Go plugin, Hashicorp plugin, and wazero/WASM approaches described in the issue. Done would require an agreed plugin architecture and defined authentication integration behavior, which the issue does not yet specify.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
authentication
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.