Skip to content

Commit d9a6070

Browse files
authored
feat: Enabled /dev and /transform with builderId auth (#4214)
1 parent 0fb6a1a commit d9a6070

File tree

7 files changed

+13
-18
lines changed

7 files changed

+13
-18
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/auth/AuthController.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ class AuthController {
2828
val connectionState = checkBearerConnectionValidity(project, BearerTokenFeatureSet.Q)
2929
val codeWhispererState = checkBearerConnectionValidity(project, BearerTokenFeatureSet.CODEWHISPERER)
3030

31-
// CW chat is enabled for Builder and IDC users, Amazon Q is only valid for IDC users
31+
// CW chat is enabled for Builder and IDC users, same for Amazon Q
3232
return AuthNeededStates(
3333
chat = getAuthNeededState(connectionState, codeWhispererState),
34-
amazonQ = getAuthNeededState(connectionState, codeWhispererState, true)
34+
amazonQ = getAuthNeededState(connectionState, codeWhispererState)
3535
)
3636
}
3737

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqFeatureDev/auth/FeatureDevAuthUtils.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ import software.aws.toolkits.jetbrains.core.gettingstarted.editor.checkBearerCon
1111

1212
fun isFeatureDevAvailable(project: Project): Boolean {
1313
val connection = checkBearerConnectionValidity(project, BearerTokenFeatureSet.Q)
14-
return connection.connectionType == ActiveConnectionType.IAM_IDC && connection is ActiveConnection.ValidBearer
14+
return (connection.connectionType == ActiveConnectionType.IAM_IDC || connection.connectionType == ActiveConnectionType.BUILDER_ID) &&
15+
connection is ActiveConnection.ValidBearer
1516
}

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/toolwindow/CodeModernizerBottomToolWindowFactory.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ import com.intellij.openapi.project.Project
99
import com.intellij.openapi.wm.ToolWindow
1010
import com.intellij.openapi.wm.ToolWindowFactory
1111
import com.intellij.ui.components.JBScrollPane
12-
import software.aws.toolkits.jetbrains.services.amazonq.isQSupportedInThisVersion
1312
import software.aws.toolkits.jetbrains.services.codemodernizer.panels.managers.CodeModernizerBottomWindowPanelManager
14-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
15-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererExpired
16-
import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend
13+
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.isCodeTransformAvailable
1714
import software.aws.toolkits.resources.message
1815

1916
class CodeModernizerBottomToolWindowFactory : ToolWindowFactory, DumbAware {
@@ -35,7 +32,7 @@ class CodeModernizerBottomToolWindowFactory : ToolWindowFactory, DumbAware {
3532
toolWindow.stripeTitle = message("codemodernizer.toolwindow.label_no_job")
3633
}
3734
override fun shouldBeAvailable(project: Project): Boolean =
38-
isCodeWhispererEnabled(project) && !isCodeWhispererExpired(project) && !isRunningOnRemoteBackend() && isQSupportedInThisVersion()
35+
isCodeTransformAvailable(project)
3936

4037
companion object {
4138
const val id = "aws.codewhisperer.codetransform"

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/utils/CodeTransformSharedUtils.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import software.aws.toolkits.jetbrains.core.gettingstarted.editor.ActiveConnecti
99
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.ActiveConnectionType
1010
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.BearerTokenFeatureSet
1111
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.checkBearerConnectionValidity
12+
import software.aws.toolkits.jetbrains.services.amazonq.isQSupportedInThisVersion
13+
import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend
1214
import java.time.Instant
1315

1416
fun calculateTotalLatency(startTime: Instant, endTime: Instant) = (endTime.toEpochMilli() - startTime.toEpochMilli()).toInt()
@@ -20,6 +22,8 @@ fun isIntellij(): Boolean {
2022

2123
fun isCodeTransformAvailable(project: Project): Boolean {
2224
if (!isIntellij()) return false
25+
if (isRunningOnRemoteBackend() || !isQSupportedInThisVersion()) return false
2326
val connection = checkBearerConnectionValidity(project, BearerTokenFeatureSet.Q)
24-
return connection.connectionType == ActiveConnectionType.IAM_IDC && connection is ActiveConnection.ValidBearer
27+
return (connection.connectionType == ActiveConnectionType.IAM_IDC || connection.connectionType == ActiveConnectionType.BUILDER_ID) &&
28+
connection is ActiveConnection.ValidBearer
2529
}

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/pinning/QConnection.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,13 @@ package software.aws.toolkits.jetbrains.core.credentials.pinning
66
import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection
77
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
88
import software.aws.toolkits.jetbrains.core.credentials.sono.Q_SCOPES
9-
import software.aws.toolkits.jetbrains.core.credentials.sono.Q_SCOPES_UNAVAILABLE_BUILDER_ID
10-
import software.aws.toolkits.jetbrains.core.credentials.sono.isSono
119

1210
class QConnection : FeatureWithPinnedConnection {
1311
override val featureId = "aws.q"
1412
override val featureName = "Amazon Q"
1513

1614
override fun supportsConnectionType(connection: ToolkitConnection): Boolean {
1715
if (connection is AwsBearerTokenConnection) {
18-
if (connection.isSono()) {
19-
return (Q_SCOPES - Q_SCOPES_UNAVAILABLE_BUILDER_ID).all { it in connection.scopes }
20-
}
2116
return Q_SCOPES.all { it in connection.scopes }
2217
}
2318

plugins/toolkit/jetbrains-core/src/software/aws/toolkits/jetbrains/core/gettingstarted/SetupAuthenticationDialog.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
4242
import software.aws.toolkits.jetbrains.core.credentials.UserConfigSsoSessionProfile
4343
import software.aws.toolkits.jetbrains.core.credentials.loginSso
4444
import software.aws.toolkits.jetbrains.core.credentials.sono.IDENTITY_CENTER_ROLE_ACCESS_SCOPE
45-
import software.aws.toolkits.jetbrains.core.credentials.sono.Q_SCOPES_UNAVAILABLE_BUILDER_ID
4645
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_REGION
4746
import software.aws.toolkits.jetbrains.core.credentials.sono.SONO_URL
4847
import software.aws.toolkits.jetbrains.core.gettingstarted.editor.getSourceOfEntry
@@ -344,8 +343,7 @@ class SetupAuthenticationDialog(
344343

345344
SetupAuthenticationTabs.BUILDER_ID -> {
346345
authType = CredentialSourceId.AwsId
347-
val newScopes = if (featureId == FeatureId.Q || featureId == FeatureId.Codewhisperer) scopes - Q_SCOPES_UNAVAILABLE_BUILDER_ID else scopes
348-
loginSso(project, SONO_URL, SONO_REGION, newScopes)
346+
loginSso(project, SONO_URL, SONO_REGION, scopes)
349347
}
350348

351349
SetupAuthenticationTabs.IAM_LONG_LIVED -> {

plugins/toolkit/resources/resources/software/aws/toolkits/resources/MessagesBundle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,7 @@ codemodernizer.notification.info.view_troubleshooting_guide=View troubleshooting
647647
codemodernizer.notification.warn.invalid_project.description.reason.invalid_jdk_versions=We could not find an upgrade eligible application.
648648
codemodernizer.notification.warn.invalid_project.description.reason.missing_content_roots=We could not find an upgrade eligible application. We currently support upgrade of Maven Java applications of version 8 and 11.
649649
codemodernizer.notification.warn.invalid_project.description.reason.no_valid_files=We could not find a valid configuration file for the project. We currently support Maven build tool and require a POM.xml to identify build configurations.
650-
codemodernizer.notification.warn.invalid_project.description.reason.not_logged_in=We can not start the transform as you are not logged in with sso, please log in to CodeWhisperer using SSO.
650+
codemodernizer.notification.warn.invalid_project.description.reason.not_logged_in=We cannot start the transformation as you are not logged in with Identity Center or Builder ID. Also ensure that you are not using IntelliJ version 232.8660.185 and that you are not developing on a remote host (uncommon).
651651
codemodernizer.notification.warn.invalid_project.description.reason.remote_backend=We do not support transforming projects running on a remote backend.
652652
codemodernizer.notification.warn.invalid_project.description.reason.unknown=We could not find an upgrade eligible application. We currently support upgrade of Java applications of version 8 and 11.
653653
codemodernizer.notification.warn.maven_failed.content=We were unable to build and package your project and its dependencies. Please fix the issues shown in the opened build window and try again.

0 commit comments

Comments
 (0)