Skip to content

Commit 21e63e1

Browse files
committed
fix(auth): detect nested grok oauth credentials
1 parent 5455ccf commit 21e63e1

4 files changed

Lines changed: 22 additions & 3 deletions

File tree

packages/api/src/services/project-auth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ const grokUserSettingsCredentialMarkers: ReadonlyArray<RegExp> = [
241241
/"accessToken"\s*:\s*"[^"]+"/u,
242242
/"refreshToken"\s*:\s*"[^"]+"/u,
243243
/"authToken"\s*:\s*"[^"]+"/u,
244-
/"oauth"\s*:\s*\{[^}]*"(?:apiKey|accessToken|access_token|authToken|refreshToken|refresh_token|token)"\s*:\s*"[^"]+"/su
244+
/"oauth"\s*:\s*\{[\s\S]*?"(?:apiKey|accessToken|access_token|authToken|refreshToken|refresh_token|token)"\s*:\s*"[^"]+"/u
245245
]
246246

247247
const hasGrokUserSettingsCredentials = (

packages/app/src/lib/usecases/auth-grok-helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ const grokUserSettingsCredentialMarkers: ReadonlyArray<RegExp> = [
178178
/"accessToken"\s*:\s*"[^"]+"/u,
179179
/"refreshToken"\s*:\s*"[^"]+"/u,
180180
/"authToken"\s*:\s*"[^"]+"/u,
181-
/"oauth"\s*:\s*\{[^}]*"(?:apiKey|accessToken|access_token|authToken|refreshToken|refresh_token|token)"\s*:\s*"[^"]+"/su
181+
/"oauth"\s*:\s*\{[\s\S]*?"(?:apiKey|accessToken|access_token|authToken|refreshToken|refresh_token|token)"\s*:\s*"[^"]+"/u
182182
]
183183

184184
const hasGrokUserSettingsCredentials = (content: string): boolean =>

packages/lib/src/usecases/auth-grok-helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ const grokUserSettingsCredentialMarkers: ReadonlyArray<RegExp> = [
177177
/"accessToken"\s*:\s*"[^"]+"/u,
178178
/"refreshToken"\s*:\s*"[^"]+"/u,
179179
/"authToken"\s*:\s*"[^"]+"/u,
180-
/"oauth"\s*:\s*\{[^}]*"(?:apiKey|accessToken|access_token|authToken|refreshToken|refresh_token|token)"\s*:\s*"[^"]+"/su
180+
/"oauth"\s*:\s*\{[\s\S]*?"(?:apiKey|accessToken|access_token|authToken|refreshToken|refresh_token|token)"\s*:\s*"[^"]+"/u
181181
]
182182

183183
const hasGrokUserSettingsCredentials = (content: string): boolean =>

packages/lib/tests/usecases/auth-grok.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,25 @@ describe("authGrokLogin", () => {
181181
})
182182
).pipe(Effect.provide(NodeContext.layer)))
183183

184+
it.effect("detects nested oauth user settings as Grok credentials", () =>
185+
withTempDir((root) =>
186+
Effect.gen(function*(_) {
187+
const fs = yield* _(FileSystem.FileSystem)
188+
const path = yield* _(Path.Path)
189+
const accountPath = path.join(root, "default")
190+
191+
const detected = yield* _(
192+
detectUserSettingsPayload(fs, path, accountPath, {
193+
oauth: {
194+
meta: {},
195+
accessToken: "oauth-token"
196+
}
197+
})
198+
)
199+
expect(detected).toBe(true)
200+
})
201+
).pipe(Effect.provide(NodeContext.layer)))
202+
184203
it.effect("does not treat bootstrap user settings as Grok credentials", () =>
185204
withTempDir((root) =>
186205
Effect.gen(function*(_) {

0 commit comments

Comments
 (0)