Skip to content

Conversation

liramon1
Copy link
Contributor

@liramon1 liramon1 commented Aug 4, 2025

Problem

The IAM authentication changes assume that the language server and language client exchange IAM credentials in plaintext through the listProfiles and updateProfile endpoints. Sensitive data, like IAM credentials, should instead be encrypted in-transit to follow best security practices.

Solution

This is part of #572.

  • Encrypt profiles returned by listProfiles and sendProfileChanged
  • Decrypt profiles sent to updateProfile

This is a breaking change since language clients must decrypt listProfiles responses. Be sure to merge this alongside language-servers and aws-toolkit-vscode.

License

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@@ -141,7 +141,7 @@ export interface ListProfilesResult {
// Potential error codes: E_UNKNOWN | E_TIMEOUT | E_RUNTIME_NOT_SUPPORTED | E_CANNOT_READ_SHARED_CONFIG
export const listProfilesRequestType = new ProtocolRequestType<
ListProfilesParams,
ListProfilesResult,
ListProfilesResult | string,
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we avoid having two different types of responses? Clients written in different languages will receive a json blob, and cannot reliably differentiate a structured type from a string.

@liramon1 liramon1 changed the title feat: encrypt updateProfile and listProfiles endpoints feat: encrypt profile endpoints Aug 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants