Use pointer semantics for entity update inputs (SDK v0.2.15) - #248
Merged
Conversation
ChristensenJoe
approved these changes
Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Bumps the massdriver-sdk-go dependency and updates the
project,environment,and
componentupdate commands to match the SDK's newUpdateInputshape.The SDK changed
UpdateInput.Name/Descriptionfromstringto*string(and added
*boolfields elsewhere) so it can distinguish an unset fieldfrom an intentionally empty one. A nil pointer / nil map now means "leave
this value unchanged at the server."
Changes
v0.2.15(needed formass whoami; also brings the pointer-basedupdate inputs).
UpdateInputonly when its flag was explicitly passed (
cmd.Flags().Changed(...)), letting nilsignal "unchanged."
Get+ backfill. Previously each command fetched the currententity and re-sent every existing value so unset flags wouldn't blank the field. The
server now handles the merge, so this extra round-trip is gone.
nothing to update: set at least one of --name, --description, or --attributesinstead of silently making a meaningless API call that reported success.
Why it matters
Before the pointer change, an argument-less update would have blanked name/description
at the server — the old backfill fetch masked that. With the fetch removed, the explicit
guard makes the "nothing to update" case a clear error rather than a misleading
"✅ updated".
Testing
go build ./...andgo vet ./cmd/pass.