From 3f2de2c5eff53accb442a2dbbb398be416786acc Mon Sep 17 00:00:00 2001 From: x032205 Date: Thu, 12 Jun 2025 20:36:34 -0400 Subject: [PATCH] Rename API token mentions to access token --- .../azure-devops/azure-devops-fns.ts | 24 +++++++++---------- .../azure-devops/azure-devops-schemas.ts | 12 +++++----- .../azure-devops/azure-devops-service.ts | 4 ++-- .../SignUpInvitePage/SignUpInvitePage.tsx | 2 +- .../AzureDevOpsConnectionForm.tsx | 10 ++++---- .../OauthCallbackPage/OauthCallbackPage.tsx | 6 ++--- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts b/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts index b5aa1f9af..644747353 100644 --- a/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts +++ b/backend/src/services/app-connection/azure-devops/azure-devops-fns.ts @@ -108,7 +108,7 @@ export const getAzureDevopsConnection = async ( if (!("accessToken" in credentials)) { throw new BadRequestError({ message: "Invalid API token credentials" }); } - // For API token, return the basic auth token directly + // For access token, return the basic auth token directly return credentials.accessToken; default: @@ -189,16 +189,16 @@ export const validateAzureDevOpsConnectionCredentials = async (config: TAzureDev }; case AzureDevOpsConnectionMethod.AccessToken: - const apiTokenCredentials = inputCredentials as { accessToken: string; orgName?: string }; + const accessTokenCredentials = inputCredentials as { accessToken: string; orgName?: string }; try { - if (apiTokenCredentials.orgName) { + if (accessTokenCredentials.orgName) { // Validate against specific organization const response = await request.get( - `${IntegrationUrls.AZURE_DEVOPS_API_URL}/${encodeURIComponent(apiTokenCredentials.orgName)}/_apis/projects?api-version=7.2-preview.2&$top=1`, + `${IntegrationUrls.AZURE_DEVOPS_API_URL}/${encodeURIComponent(accessTokenCredentials.orgName)}/_apis/projects?api-version=7.2-preview.2&$top=1`, { headers: { - Authorization: `Basic ${Buffer.from(`:${apiTokenCredentials.accessToken}`).toString("base64")}` + Authorization: `Basic ${Buffer.from(`:${accessTokenCredentials.accessToken}`).toString("base64")}` } } ); @@ -210,8 +210,8 @@ export const validateAzureDevOpsConnectionCredentials = async (config: TAzureDev } return { - accessToken: apiTokenCredentials.accessToken, - orgName: apiTokenCredentials.orgName + accessToken: accessTokenCredentials.accessToken, + orgName: accessTokenCredentials.orgName }; } // Validate via profile and discover organizations @@ -219,7 +219,7 @@ export const validateAzureDevOpsConnectionCredentials = async (config: TAzureDev `https://app.vssps.visualstudio.com/_apis/profile/profiles/me?api-version=7.1`, { headers: { - Authorization: `Basic ${Buffer.from(`:${apiTokenCredentials.accessToken}`).toString("base64")}` + Authorization: `Basic ${Buffer.from(`:${accessTokenCredentials.accessToken}`).toString("base64")}` } } ); @@ -230,7 +230,7 @@ export const validateAzureDevOpsConnectionCredentials = async (config: TAzureDev value: Array<{ accountId: string; accountName: string; accountUri: string }>; }>(`https://app.vssps.visualstudio.com/_apis/accounts?api-version=7.1`, { headers: { - Authorization: `Basic ${Buffer.from(`:${apiTokenCredentials.accessToken}`).toString("base64")}` + Authorization: `Basic ${Buffer.from(`:${accessTokenCredentials.accessToken}`).toString("base64")}` } }); organizations = orgsResponse.data.value || []; @@ -239,7 +239,7 @@ export const validateAzureDevOpsConnectionCredentials = async (config: TAzureDev } return { - accessToken: apiTokenCredentials.accessToken, + accessToken: accessTokenCredentials.accessToken, userDisplayName: profileResponse.data.displayName, organizations: organizations.map((org) => ({ accountId: org.accountId, @@ -249,9 +249,9 @@ export const validateAzureDevOpsConnectionCredentials = async (config: TAzureDev }; } catch (error) { if (error instanceof AxiosError) { - const errorMessage = apiTokenCredentials.orgName + const errorMessage = accessTokenCredentials.orgName ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - `Failed to validate API token for organization '${apiTokenCredentials.orgName}': ${error.response?.data?.message || error.message}` + `Failed to validate access token for organization '${accessTokenCredentials.orgName}': ${error.response?.data?.message || error.message}` : `Invalid Azure DevOps Personal Access Token: ${error.response?.status === 401 ? "Token is invalid or expired" : error.message}`; throw new BadRequestError({ message: errorMessage }); diff --git a/backend/src/services/app-connection/azure-devops/azure-devops-schemas.ts b/backend/src/services/app-connection/azure-devops/azure-devops-schemas.ts index 9d3735fcd..e07ed008d 100644 --- a/backend/src/services/app-connection/azure-devops/azure-devops-schemas.ts +++ b/backend/src/services/app-connection/azure-devops/azure-devops-schemas.ts @@ -28,12 +28,12 @@ export const AzureDevOpsConnectionOAuthOutputCredentialsSchema = z.object({ expiresAt: z.number() }); -export const AzureDevOpsConnectionApiTokenInputCredentialsSchema = z.object({ +export const AzureDevOpsConnectionAccessTokenInputCredentialsSchema = z.object({ accessToken: z.string().trim().min(1, "Access Token required"), orgName: z.string().trim().min(1, "Organization name required") }); -export const AzureDevOpsConnectionApiTokenOutputCredentialsSchema = z.object({ +export const AzureDevOpsConnectionAccessTokenOutputCredentialsSchema = z.object({ accessToken: z.string(), orgName: z.string() }); @@ -51,7 +51,7 @@ export const ValidateAzureDevOpsConnectionCredentialsSchema = z.discriminatedUni method: z .literal(AzureDevOpsConnectionMethod.AccessToken) .describe(AppConnections.CREATE(AppConnection.AzureDevOps).method), - credentials: AzureDevOpsConnectionApiTokenInputCredentialsSchema.describe( + credentials: AzureDevOpsConnectionAccessTokenInputCredentialsSchema.describe( AppConnections.CREATE(AppConnection.AzureDevOps).credentials ) }) @@ -64,7 +64,7 @@ export const CreateAzureDevOpsConnectionSchema = ValidateAzureDevOpsConnectionCr export const UpdateAzureDevOpsConnectionSchema = z .object({ credentials: z - .union([AzureDevOpsConnectionOAuthInputCredentialsSchema, AzureDevOpsConnectionApiTokenInputCredentialsSchema]) + .union([AzureDevOpsConnectionOAuthInputCredentialsSchema, AzureDevOpsConnectionAccessTokenInputCredentialsSchema]) .optional() .describe(AppConnections.UPDATE(AppConnection.AzureDevOps).credentials) }) @@ -83,7 +83,7 @@ export const AzureDevOpsConnectionSchema = z.intersection( }), z.object({ method: z.literal(AzureDevOpsConnectionMethod.AccessToken), - credentials: AzureDevOpsConnectionApiTokenOutputCredentialsSchema + credentials: AzureDevOpsConnectionAccessTokenOutputCredentialsSchema }) ]) ); @@ -98,7 +98,7 @@ export const SanitizedAzureDevOpsConnectionSchema = z.discriminatedUnion("method }), BaseAzureDevOpsConnectionSchema.extend({ method: z.literal(AzureDevOpsConnectionMethod.AccessToken), - credentials: AzureDevOpsConnectionApiTokenOutputCredentialsSchema.pick({ + credentials: AzureDevOpsConnectionAccessTokenOutputCredentialsSchema.pick({ orgName: true }) }) diff --git a/backend/src/services/app-connection/azure-devops/azure-devops-service.ts b/backend/src/services/app-connection/azure-devops/azure-devops-service.ts index 2048bfeac..a85430e4d 100644 --- a/backend/src/services/app-connection/azure-devops/azure-devops-service.ts +++ b/backend/src/services/app-connection/azure-devops/azure-devops-service.ts @@ -46,7 +46,7 @@ const getAuthHeaders = (appConnection: TAzureDevOpsConnection, accessToken: stri Accept: "application/json" }; case AzureDevOpsConnectionMethod.AccessToken: - // For API token, create Basic auth header + // For access token, create Basic auth header const basicAuthToken = Buffer.from(`user:${accessToken}`).toString("base64"); return { Authorization: `Basic ${basicAuthToken}`, @@ -64,7 +64,7 @@ const listAzureDevOpsProjects = async ( ): Promise => { const accessToken = await getAzureDevopsConnection(appConnection.id, appConnectionDAL, kmsService); - // Both OAuth and API Token methods use organization name from credentials + // Both OAuth and access Token methods use organization name from credentials const credentials = appConnection.credentials as { orgName: string }; const { orgName } = credentials; diff --git a/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx b/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx index 9cb739736..fe27e5d7d 100644 --- a/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx +++ b/frontend/src/pages/auth/SignUpInvitePage/SignUpInvitePage.tsx @@ -27,8 +27,8 @@ import { } from "@app/hooks/api/auth/queries"; import { MfaMethod } from "@app/hooks/api/auth/types"; import { fetchOrganizations } from "@app/hooks/api/organization/queries"; -import { ProjectType } from "@app/hooks/api/workspace/types"; import { isLoggedIn } from "@app/hooks/api/reactQuery"; +import { ProjectType } from "@app/hooks/api/workspace/types"; // eslint-disable-next-line new-cap const client = new jsrp.client(); diff --git a/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AppConnectionForm/AzureDevOpsConnectionForm.tsx b/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AppConnectionForm/AzureDevOpsConnectionForm.tsx index 2bab181ba..3c29c0f82 100644 --- a/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AppConnectionForm/AzureDevOpsConnectionForm.tsx +++ b/frontend/src/pages/organization/AppConnections/AppConnectionsPage/components/AppConnectionForm/AzureDevOpsConnectionForm.tsx @@ -21,11 +21,11 @@ import { GenericAppConnectionsFields } from "./GenericAppConnectionFields"; -type ApiTokenForm = z.infer; +type AccessTokenForm = z.infer; type Props = { appConnection?: TAzureDevOpsConnection; - onSubmit: (formData: ApiTokenForm) => Promise; + onSubmit: (formData: AccessTokenForm) => Promise; }; // Base schema with common fields @@ -41,7 +41,7 @@ const oauthSchema = baseSchema.extend({ orgName: z.string().trim().min(1, "Organization name is required") }); -const apiTokenSchema = baseSchema.extend({ +const accessTokenSchema = baseSchema.extend({ method: z.literal(AzureDevOpsConnectionMethod.AccessToken), credentials: z.object({ accessToken: z.string().trim().min(1, "Access Token is required"), @@ -50,7 +50,7 @@ const apiTokenSchema = baseSchema.extend({ }); // Union schema -const formSchema = z.discriminatedUnion("method", [oauthSchema, apiTokenSchema]); +const formSchema = z.discriminatedUnion("method", [oauthSchema, accessTokenSchema]); type FormData = z.infer; @@ -230,7 +230,7 @@ export const AzureDevOpsConnectionForm = ({ appConnection, onSubmit }: Props) => )} - {/* API Token-specific fields */} + {/* Access Token-specific fields */} {selectedMethod === AzureDevOpsConnectionMethod.AccessToken && ( <> ["credentials"]; -type ApiTokenCredentials = Extract< +type AccessTokenCredentials = Extract< TAzureDevOpsConnection, { method: AzureDevOpsConnectionMethod.AccessToken } >["credentials"]; type AzureDevOpsFormData = BaseFormData & Pick & - (Pick | Pick); + (Pick | Pick); type FormDataMap = { [AppConnection.GitHub]: GithubFormData & { app: AppConnection.GitHub }; @@ -287,7 +287,7 @@ export const OAuthCallbackPage = () => { try { if (!("tenantId" in formData)) { - throw new Error("Expected OAuth form data but got API token data"); + throw new Error("Expected OAuth form data but got access token data"); } if (connectionId) {