Skip to content

fix!: support empty or default fields when updating templates #19256

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Aug 12, 2025

Conversation

rafrdz
Copy link
Contributor

@rafrdz rafrdz commented Aug 8, 2025

Breaking change: Field types in codersdk.UpdateTemplateMeta for Icon, Description, and DisplayName moved to *string

Summary

In this pull request we're updating the UpdateTemplateMeta struct to allow DisplayName, Description, and Icon to be set as empty "" or default to the value from the template if not provided in an update call.

Fixes #19036

The bug

The reported bug occurred when clients were attempting to update a metadata field in a template via an edit call. When the request was decoded into an UpdateTemplateMeta struct the default values for fields in the struct were used to update the template even if they weren't provided. This led to fields like Icon being set to "" (the default value).

Changes

To allow for specific fields to be set to "" these fields were updated to be *string as opposed to string. This allows for clients to set these fields as "" in an update request or they will default to the template value if they are not provided in the update request (will be nil).

Added tests to confirm empty and nil values and updated other tests that use these fields.

Copy link

github-actions bot commented Aug 8, 2025

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@rafrdz
Copy link
Contributor Author

rafrdz commented Aug 8, 2025

I have read the CLA Document and I hereby sign the CLA

cdrci2 added a commit to coder/cla that referenced this pull request Aug 8, 2025
@rafrdz rafrdz marked this pull request as ready for review August 8, 2025 19:31
@rafrdz rafrdz requested a review from Emyrk August 8, 2025 19:33
@rafrdz rafrdz changed the title fix: support empty or default icons/descriptions when updating templates fix: support empty or default fields when updating templates Aug 8, 2025
@Emyrk
Copy link
Member

Emyrk commented Aug 12, 2025

Can we add a ! to the title? -> fix!

This is a breaking change for the codersdk, so we should mark this commit as such.

Copy link
Member

@Emyrk Emyrk left a comment

Choose a reason for hiding this comment

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

LG 👍

Just throw the ! in the commit title, fix!:. Add to the description the breaking change is the field types in codersdk.UpdateTemplateMeta for icon, description, and displayname moved to *string

Interestingly, the typescript types are unchanged because omitempty was included. So the typscript was already correct ❤️

	readonly display_name?: string;
	readonly description?: string;
	readonly icon?: string;

@Emyrk Emyrk changed the title fix: support empty or default fields when updating templates fix!: support empty or default fields when updating templates Aug 12, 2025
@github-actions github-actions bot added the release/breaking This label is applied to PRs to detect breaking changes as part of the release process label Aug 12, 2025
@rafrdz rafrdz merged commit aab2ccd into main Aug 12, 2025
39 checks passed
@rafrdz rafrdz deleted the rafrdz/fix-icon-removed branch August 12, 2025 16:37
@github-actions github-actions bot locked and limited conversation to collaborators Aug 12, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
release/breaking This label is applied to PRs to detect breaking changes as part of the release process
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bug: Templates PATCH request issue
2 participants