Add delete_user_alias action#107
Conversation
Adds a new connector action that deletes an email alias from a Google Workspace user account. This enables offboarding automations to remove aliases created automatically when a user's primary email is changed. Changes: - Add UserAliasService field to GoogleWorkspaceClient - Add DeleteUserAlias client method calling UsersAliasesService.Delete - Initialize alias service with admin.directory.user.alias write scope - Add delete_user_alias action schema accepting user_id and alias args - Handle 404 as idempotent success (alias already removed) - Add comprehensive tests for the new action Fixes: CXH-1554
| if _, err := mail.ParseAddress(alias); err != nil { | ||
| return nil, nil, fmt.Errorf("invalid alias email address: %s", alias) | ||
| } | ||
|
|
There was a problem hiding this comment.
🟡 Suggestion: The alias argument is user-provided input included verbatim in the error message via %s. While mail.ParseAddress validates it's a valid email address, consider that this string also flows into the generic error at line 810 (fmt.Errorf("...failed to delete alias %s for user %s: %w", alias, userId, err)). This is consistent with other handlers in this file, so low risk, but worth noting that user-supplied values appear in error strings.
Connector PR Review: Add delete_user_alias actionBlocking Issues: 0 | Suggestions: 2 | Threads Resolved: 0 Review SummaryThis PR adds a new Security IssuesNone found. Correctness IssuesNone found. Suggestions
Prompt for AI agents |
Summary
Adds a new
delete_user_aliasconnector action that removes an email alias from a Google Workspace user account. This enables offboarding automations to clean up aliases that Google Workspace automatically creates when a user's primary email is changed viachange_user_primary_email.Changes
pkg/client/client.go: AddedUserAliasServicefield andDeleteUserAliasmethod that callsUsersAliasesService.Delete(userKey, alias)pkg/connector/connector.go: InitializeUserAliasServicewithadmin.directory.user.aliaswrite scope (upgraded from readonly)pkg/connector/user_actions.go: Addeddelete_user_aliasaction schema (acceptsuser_idandaliasargs) and handler with:pkg/connector/user_actions_test.go: 6 tests covering success, idempotent 404, missing args, invalid email, and nil serviceScope change
The connector's alias scope is upgraded from
admin.directory.user.alias.readonlytoadmin.directory.user.alias(write). ThegetServicehelper's scope upgrade mechanism means existing deployments with only the readonly scope will automatically attempt the write scope.Fixes: CXH-1554
Automated PR Notice
This PR was automatically created by c1-dev-bot as a potential implementation.
This code requires: