Merged
Conversation
BRBussy
requested changes
Jan 22, 2026
- Simplify UserProfile protobuf message by removing FirstName, LastName, and ContactDetails fields - Update CreateUserProfile to return UserProfile directly instead of response wrapper - Rename GetMyUserProfile to GetUserProfileByUser for clarity - Regenerate all language bindings (Go, Python) and documentation examples - Update service interface and mock implementations Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
BRBussy
requested changes
Jan 27, 2026
BRBussy
requested changes
Jan 27, 2026
- Add comprehensive field comments to UserProfile message (user_profile.proto): * user: Link to associated user resource * local: Locale/language preference (IETF BCP 47 format) * profile_picture_url: Avatar image URL * display_name: User's display identifier * display_currency: Preferred currency for UI display * reporting_currency: Currency for financial reporting - Add field comment to User message (user.proto): * mobile_number: Phone number for MFA, notifications, and contact All comments follow existing documentation style with clear descriptions of field purpose, expected formats, and business context. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
BRBussy
requested changes
Jan 28, 2026
…onym handling Proto changes: - Add required validation on UserProfile.user field with proper format checking - Add optional BCP 47 validation on UserProfile.locale field - Add optional URI validation on UserProfile.profile_picture_url field - Fix typo: MobileNumber.verfied -> MobileNumber.verified - Remove unused CreateUserProfileRequest message - Remove unused sorting import from user_profile service Test changes: - Remove SearchUsersRequest validation tests (method was removed) - Add comprehensive validation tests for UserProfile and service requests - Add tests for locale (BCP 47) and profile_picture_url (URI) validation Doc generator fixes (protoc-gen-meshdoc): - Fix kebabCase() to handle acronyms properly (CreateAPIUser -> create-api-user) - Fix snakeCase() with same acronym handling for consistency - Add goPascalCase() for Go identifiers (api_user -> APIUser) - Add comprehensive tests for case conversion functions - Rename API user doc directories from a-p-i-user to api-user format Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add resolutions field to root package.json to force baseline-browser-mapping to latest version (2.9.19) for all transitive dependencies. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.
Summary
This PR introduces a new UserProfile service to the IAM domain and makes several improvements to the codebase.
New UserProfile Service
Adds a complete UserProfile management API under
meshtrade/iam/user_profile/v1:Service Methods:
UpdateUserProfile- Update profile settings (display name, locale, currencies, etc.)GetUserProfile- Retrieve a profile by its resource nameGetUserProfileByUser- Retrieve a profile by the associated user resource nameListUserProfiles- List all accessible user profilesUserProfile Fields:
name- Unique resource identifier (user_profiles/{ULIDv2})owner/owners- Group ownership hierarchyuser- Associated user resource referencedisplay_name- User's display name (required)locale- Language/locale preference (BCP 47 format)profile_picture_url- Avatar/profile image URLdisplay_currency/reporting_currency- Currency preferencesNew IAM Roles:
ROLE_IAM_USER_PROFILE_ADMINROLE_IAM_USER_PROFILE_VIEWERUser Model Updates
MobileNumbermessage type withvalue,verified, andreset_reasonfieldsmobile_numberfield to theUsermessage for phone-based MFA and notificationsAPI Cleanup
SearchUsersRPC method and related request/response messages from UserServiceDoc Generator Improvements
kebabCase,snakeCase,goPascalCase)CreateAPIUsernow correctly becomescreate-api-user(notcreate-a-p-i-user)GetHTTPResponsebecomesget-http-response(notget-h-t-t-p-response)case_conversion_test.goGenerated Code
Full SDK generation across all targets:
__init__.pyexportsOther Changes
MobileNumbertypo (was inconsistently cased)baseline-browser-mappingdependency to fix Docusaurus build warningTest Plan
buf lintpasses./dev/tool.sh allcompletes successfullyyarn build)yarn build:docs)🤖 Generated with Claude Code