diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index e6815faec..e16d96498 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -23,6 +23,8 @@ COPY packages/indexing/package.json ./packages/indexing/ COPY packages/search/package.json ./packages/search/ COPY packages/orchestration/package.json ./packages/orchestration/ COPY packages/editing/package.json ./packages/editing/ +COPY packages/google-drive/package.json ./packages/google-drive/ +COPY packages/document-conversion-engine/package.json ./packages/document-conversion-engine/ COPY packages/collab/package.json ./packages/collab/ COPY packages/engine/package.json ./packages/engine/ COPY packages/schema-generator/package.json ./packages/schema-generator/ diff --git a/apps/web/Dockerfile.prebuilt b/apps/web/Dockerfile.prebuilt index 1c3a24abc..88a53fe66 100644 --- a/apps/web/Dockerfile.prebuilt +++ b/apps/web/Dockerfile.prebuilt @@ -28,6 +28,8 @@ COPY packages/indexing/package.json ./packages/indexing/ COPY packages/search/package.json ./packages/search/ COPY packages/orchestration/package.json ./packages/orchestration/ COPY packages/editing/package.json ./packages/editing/ +COPY packages/google-drive/package.json ./packages/google-drive/ +COPY packages/document-conversion-engine/package.json ./packages/document-conversion-engine/ COPY packages/collab/package.json ./packages/collab/ COPY packages/engine/package.json ./packages/engine/ COPY packages/schema-generator/package.json ./packages/schema-generator/ diff --git a/apps/web/src/app/api/connectors/google/oauth/callback/route.ts b/apps/web/src/app/api/connectors/google/oauth/callback/route.ts index 83d444335..ebca89333 100644 --- a/apps/web/src/app/api/connectors/google/oauth/callback/route.ts +++ b/apps/web/src/app/api/connectors/google/oauth/callback/route.ts @@ -16,14 +16,13 @@ import { users } from "~/server/db/schema"; import { isManagementRole, requireWorkspaceContext } from "~/lib/require-workspace-context"; import { GOOGLE_DRIVE_SCOPES, + OAUTH_STATE_COOKIE, getGoogleOAuthApp, getOAuthRedirectUrl, isDriveLinkingEnabled, } from "~/server/services/google-drive/config"; import { upsertGoogleConnection } from "~/server/services/google-drive/connections"; -import { OAUTH_STATE_COOKIE } from "../start/route"; - function redirectToWorkspace(request: Request, flag: string): NextResponse { const response = NextResponse.redirect( new URL(`/employer/documents?googleDrive=${flag}`, request.url) diff --git a/apps/web/src/app/api/connectors/google/oauth/start/route.ts b/apps/web/src/app/api/connectors/google/oauth/start/route.ts index 0e50499da..37bb3972f 100644 --- a/apps/web/src/app/api/connectors/google/oauth/start/route.ts +++ b/apps/web/src/app/api/connectors/google/oauth/start/route.ts @@ -15,13 +15,12 @@ import { buildAuthorizationUrl } from "@launchstack/google-drive"; import { isManagementRole, requireWorkspaceContext } from "~/lib/require-workspace-context"; import { GOOGLE_DRIVE_SCOPES, + OAUTH_STATE_COOKIE, getGoogleOAuthApp, getOAuthRedirectUrl, isDriveLinkingEnabled, } from "~/server/services/google-drive/config"; -export const OAUTH_STATE_COOKIE = "gdrive_oauth_state"; - export async function GET(request: Request) { if (!isDriveLinkingEnabled()) { return NextResponse.json({ error: "feature_disabled" }, { status: 404 }); diff --git a/apps/web/src/server/services/google-drive/config.ts b/apps/web/src/server/services/google-drive/config.ts index 4c8d0c1b3..264f4698f 100644 --- a/apps/web/src/server/services/google-drive/config.ts +++ b/apps/web/src/server/services/google-drive/config.ts @@ -12,6 +12,13 @@ import { env } from "~/env"; export const GOOGLE_DRIVE_PROVIDER = "google-drive"; +/** + * CSRF nonce cookie for the OAuth flow. Lives here, not in the route file: + * Next.js route modules may only export handler fields, and `next build` + * enforces that where plain typechecking does not. + */ +export const OAUTH_STATE_COOKIE = "gdrive_oauth_state"; + /** * drive.file only: the app can touch files it created, nothing else in the * user's Drive. openid+email identify which Google account holds the files. diff --git a/apps/worker/Dockerfile b/apps/worker/Dockerfile index 841e94c95..884e03f8c 100644 --- a/apps/worker/Dockerfile +++ b/apps/worker/Dockerfile @@ -27,6 +27,8 @@ COPY packages/indexing/package.json ./packages/indexing/ COPY packages/search/package.json ./packages/search/ COPY packages/orchestration/package.json ./packages/orchestration/ COPY packages/editing/package.json ./packages/editing/ +COPY packages/google-drive/package.json ./packages/google-drive/ +COPY packages/document-conversion-engine/package.json ./packages/document-conversion-engine/ COPY packages/collab/package.json ./packages/collab/ COPY packages/engine/package.json ./packages/engine/ COPY packages/schema-generator/package.json ./packages/schema-generator/