temporalio / temporalio/features

[Feature Request] No history JSON conversion if already done

Open
#121 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
32
Forks
28
Avg merge
1d 9h
Merged PRs (30d)
7

Description

Is your feature request related to a problem? Please describe.

Today the JSON output from UI and tctl isn't in proto JSON format for enums so we have to change it in each SDK so we can load into history object via proto JSON tools.

Some (all?) history JSON converters will perform this enum conversion (prefixing, snake-casing, and uppercasing) even if it has already been done. This prevents us from potentially changing the output of UI/tctl to use proper proto JSON with this conversion already done.

Describe the solution you'd like

Make sure all SDKs only perform the enum conversion if not already done. Meaning they should ignore conversion if already done by the incoming JSON. Specifically tests should confirm that unconverted and converted JSON both work when provided to the replay API.

Specific issues

Contributor guide

No contributing guide indexed for this repository

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

Start at each SDK's history JSON converter and replay API tests; the issue names Go, Java, TypeScript, Python, and PHP as targets, with Python linked to issue #118. Done means replay accepts both unconverted and already converted enum JSON without applying conversion twice, with coverage for each applicable SDK.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, java, php, python, typescript
Domain
api, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.