Skip to content

Conversation

@Rajanna-Karthik
Copy link
Contributor

  • feat: add atx fes integration for transform profiles

  • feat: implement Transform profile discovery via ATX FES with cache clearing

  • fix: remove unsupported eu-central-1 region from ATX FES endpoints

  • feat: add separate flow for RTS and ATX listavailableprofile api

  • fix: remove profile handling from atxnettransformserver

  • feat: separating qdev and aws transform

  • fix: fixing unit tests

  • fix: adding tests

  • fix: updating as per langugae server runtime updates

  • feat: add starttranform and workspace

  • feat: added getTransformInfo and its support methods

  • fix: with new runtimes

  • feat: add stopjob support

  • merged stopjob and added upload plan

  • chore: force use of new runtimes

  • fix: completed getting plan, worklogs, and final artifact

  • chore: deleting unused RPC messages

  • feat: added list worklogs before planning

  • fix: remove unused methods


Problem

Solution

License

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

* feat: add atx fes integration for transform profiles

* feat: implement Transform profile discovery via ATX FES with cache clearing

* fix: remove unsupported eu-central-1 region from ATX FES endpoints

* feat: add separate flow for RTS and ATX listavailableprofile api

* fix: remove profile handling from atxnettransformserver

* feat: separating qdev and aws transform

* fix: fixing unit tests

* fix: adding tests

* fix: updating as per langugae server runtime updates

* feat: add starttranform and workspace

* feat: added getTransformInfo and its support methods

* fix: with new runtimes

* feat: add stopjob support

* merged stopjob and added upload plan

* chore: force use of new runtimes

* fix: completed getting plan, worklogs, and final artifact

* chore: deleting unused RPC messages

* feat: added list worklogs before planning

* fix: remove unused methods

---------

Co-authored-by: Pranav Firake <[email protected]>
Co-authored-by: pranav firake <[email protected]>
Co-authored-by: Jordan Miao <[email protected]>
@Rajanna-Karthik Rajanna-Karthik requested a review from a team as a code owner November 22, 2025 02:14
@gzmiao8 gzmiao8 changed the base branch from atx-features-reInvent to main November 24, 2025 19:59
@pranav-firake pranav-firake changed the title Atx riv final (#2520) Adding ATX-FES apis support for transformation Nov 24, 2025
@XiaoxuanLu XiaoxuanLu closed this Nov 24, 2025
@XiaoxuanLu XiaoxuanLu reopened this Nov 24, 2025
return {
version,
servers: [AmazonQServiceServer, ...servers],
servers: [AmazonQServiceServer as any, ...servers],
Copy link
Contributor

Choose a reason for hiding this comment

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

why change this to as any

Comment on lines 16 to 17
export const createIAMRuntimeProps = createRuntimePropsFactory(AmazonQServiceServerIAM as any)
export const createTokenRuntimeProps = createRuntimePropsFactory(AmazonQServiceServerToken as any)
Copy link
Contributor

Choose a reason for hiding this comment

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

why are there all these casts to any?

Copy link
Contributor

Choose a reason for hiding this comment

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

reverted this change.

Copy link
Contributor

Choose a reason for hiding this comment

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

we still have these casts in 4 files

Comment on lines +45 to +52
AtxTokenServiceManager.initInstance({
credentialsProvider,
lsp,
workspace,
logging,
runtime,
sdkInitializator,
})
Copy link
Contributor

Choose a reason for hiding this comment

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

reiterating my previous request that all ATX-related changes to initialized by isolated into its own server factory

Copy link
Contributor

Choose a reason for hiding this comment

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

yes Richard, we will refactor this as fast follow up iterm.

Copy link
Contributor

Choose a reason for hiding this comment

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

Could yo update the comments with Todo? We don't want this part to be forgotten in the codebase

* PENDING_Q_PROFILE_UPDATE (only for identityCenter connection) waiting for Developer Profile to complete
* INITIALIZED - Service is initialized
*/

Copy link
Contributor

Choose a reason for hiding this comment

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

?

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 keep this comment

this.cancelActiveProfileChangeToken()
if (type === ('bearer' as CredentialsType)) {
// Only clear Q state when Q credentials are deleted
const hasQCredentials = this.features.credentialsProvider.hasCredentials('bearer' as CredentialsType)
Copy link
Contributor

Choose a reason for hiding this comment

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

i thought we established that both atx and q are of bearer tokens

Copy link
Contributor

Choose a reason for hiding this comment

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

reverted this change.

Comment on lines +485 to +489
public getAtxCodewhispererService(): CodeWhispererServiceToken {
throw new Error(
'ATX functionality has been moved to AtxTokenServiceManager. Use AtxTokenServiceManager.getInstance().getAtxCodewhispererService() instead.'
)
}
Copy link
Contributor

Choose a reason for hiding this comment

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

given that this was never in the q token manager service, why is this here?

Copy link
Contributor

Choose a reason for hiding this comment

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

reverted this change.

Copy link
Contributor

Choose a reason for hiding this comment

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

since this is not q, why is this in the q folder?

Copy link
Contributor

Choose a reason for hiding this comment

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

updated folder

Copy link
Contributor

Choose a reason for hiding this comment

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

awsTransform or netTransform? also should move AtxTokenServiceManager and atxTransformProfiles?

},
"dependencies": {
"@aws/language-server-runtimes": "0.3.6",
"@aws/language-server-runtimes": "0.3.8",
Copy link
Contributor

Choose a reason for hiding this comment

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

for all instances, use the caret notation. we rely on package-lock.json for the actual resolved version.

Suggested change
"@aws/language-server-runtimes": "0.3.8",
"@aws/language-server-runtimes": "^0.3.8",

Copy link
Contributor

Choose a reason for hiding this comment

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

updated this

Comment on lines 47 to 48
it('returns true when bearer-alternate credentials exist', () => {
features.credentialsProvider.hasCredentials.withArgs('bearer-alternate' as any).returns(true)
Copy link
Contributor

Choose a reason for hiding this comment

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

why do we still have all these references to 'bearer-alternate'? i thought this was now called 'atx-bearer'

Copy link
Contributor

Choose a reason for hiding this comment

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

reverted this change

Comment on lines +35 to +43
public static initInstance(features: QServiceManagerFeatures): AtxTokenServiceManager {
if (!AtxTokenServiceManager.instance) {
AtxTokenServiceManager.instance = new AtxTokenServiceManager(features)
return AtxTokenServiceManager.instance
}
// throw new Error('ATX Token Service Manager already initialized')
return AtxTokenServiceManager.instance
}

Copy link
Contributor

Choose a reason for hiding this comment

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

this is a little bit concerned

@codecov-commenter
Copy link

codecov-commenter commented Nov 25, 2025

Codecov Report

❌ Patch coverage is 15.91048% with 2743 lines in your changes missing coverage. Please review.
✅ Project coverage is 60.13%. Comparing base (adb95de) to head (483b4b7).

Files with missing lines Patch % Lines
...anguage-server/netTransform/atxTransformHandler.ts 0.00% 1841 Missing ⚠️
...ed/amazonQServiceManager/AtxTokenServiceManager.ts 34.98% 249 Missing ⚠️
...ared/amazonQServiceManager/atxTransformProfiles.ts 0.00% 150 Missing ⚠️
...guage-server/netTransform/atxNetTransformServer.ts 0.00% 125 Missing ⚠️
...rver/configuration/transformConfigurationServer.ts 70.52% 117 Missing ⚠️
...erer/src/language-server/netTransform/atxModels.ts 0.00% 95 Missing ⚠️
.../aws-lsp-codewhisperer/src/shared/amazonQServer.ts 11.76% 45 Missing ⚠️
...mazonQServiceManager/AmazonQTokenServiceManager.ts 54.32% 37 Missing ⚠️
...amazonQServiceManager/BaseAmazonQServiceManager.ts 24.13% 22 Missing ⚠️
.../amazonQServiceManager/AmazonQIAMServiceManager.ts 10.52% 17 Missing ⚠️
... and 6 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2521      +/-   ##
==========================================
- Coverage   62.37%   60.13%   -2.25%     
==========================================
  Files         270      276       +6     
  Lines       61794    65004    +3210     
  Branches     4063     4111      +48     
==========================================
+ Hits        38546    39088     +542     
- Misses      23165    25833    +2668     
  Partials       83       83              
Flag Coverage Δ
unittests 60.13% <15.91%> (-2.25%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

Choose a reason for hiding this comment

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

awsTransform or netTransform? also should move AtxTokenServiceManager and atxTransformProfiles?

Comment on lines 16 to 17
export const createIAMRuntimeProps = createRuntimePropsFactory(AmazonQServiceServerIAM as any)
export const createTokenRuntimeProps = createRuntimePropsFactory(AmazonQServiceServerToken as any)
Copy link
Contributor

Choose a reason for hiding this comment

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

we still have these casts in 4 files

"dependencies": {
"@aws/hello-world-lsp": "^0.0.1",
"@aws/language-server-runtimes": "0.3.6"
"@aws/language-server-runtimes": "0.3.8"
Copy link
Contributor

Choose a reason for hiding this comment

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

missed this one

Copy link
Contributor

Choose a reason for hiding this comment

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

updated both

* PENDING_Q_PROFILE_UPDATE (only for identityCenter connection) waiting for Developer Profile to complete
* INITIALIZED - Service is initialized
*/

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 keep this comment

private pushedCredentials: IamCredentials | undefined
private pushedToken: BearerToken | undefined

private pushedAtxCredentials: IamCredentials | undefined
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
private pushedAtxCredentials: IamCredentials | undefined

Comment on lines 171 to 173
if (qCreds && 'token' in qCreds && qCreds.token) {
this.logging.log(`Q token updated: ${qCreds.token.substring(0, 20)}...`)
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
if (qCreds && 'token' in qCreds && qCreds.token) {
this.logging.log(`Q token updated: ${qCreds.token.substring(0, 20)}...`)
}

const atxCredentialsProvider = runtime.getAtxCredentialsProvider()
this.log(`ATX credentials provider: ${!!atxCredentialsProvider}`)
const credentials = atxCredentialsProvider?.getCredentials('bearer')
this.log(`ATX credentials: ${!!credentials}`)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
this.log(`ATX credentials: ${!!credentials}`)

@manodnyab manodnyab changed the title Adding ATX-FES apis support for transformation feat: Adding ATX-FES apis support for transformation Nov 26, 2025
@XiaoxuanLu XiaoxuanLu merged commit 56ee489 into main Nov 26, 2025
10 of 11 checks passed
@XiaoxuanLu XiaoxuanLu deleted the karsraja-atx-final branch November 26, 2025 19:27
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.

8 participants