Skip to content

Commit f73a425

Browse files
feat(ask_sb): Fallback on fromNodeProviderChain if access key or sessionToken are not provided (#513)
1 parent b217fbe commit f73a425

File tree

4 files changed

+1116
-108
lines changed

4 files changed

+1116
-108
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
- Added fallback to default the Node.JS AWS SDK's `fromNodeProviderChain` when no credentials are provided for a bedrock config. [#513](https://github.com/sourcebot-dev/sourcebot/pull/513)
12+
1013
### Fixed
1114
- Fixed "At least one project, user, or group must be specified" for GitLab configs with `all` in web configurator. [#512](https://github.com/sourcebot-dev/sourcebot/pull/512)
1215

packages/web/package.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,19 @@
1212
"stripe:listen": "stripe listen --forward-to http://localhost:3000/api/stripe"
1313
},
1414
"dependencies": {
15-
"@ai-sdk/amazon-bedrock": "^3.0.3",
16-
"@ai-sdk/anthropic": "^2.0.1",
17-
"@ai-sdk/azure": "^2.0.5",
18-
"@ai-sdk/deepseek": "^1.0.2",
19-
"@ai-sdk/google": "^2.0.3",
20-
"@ai-sdk/google-vertex": "^3.0.4",
21-
"@ai-sdk/mistral": "^2.0.1",
22-
"@ai-sdk/openai": "^2.0.5",
23-
"@ai-sdk/openai-compatible": "^1.0.2",
24-
"@ai-sdk/react": "^2.0.8",
25-
"@ai-sdk/xai": "^2.0.2",
15+
"@ai-sdk/amazon-bedrock": "^3.0.22",
16+
"@ai-sdk/anthropic": "^2.0.17",
17+
"@ai-sdk/azure": "^2.0.32",
18+
"@ai-sdk/deepseek": "^1.0.18",
19+
"@ai-sdk/google": "^2.0.14",
20+
"@ai-sdk/google-vertex": "^3.0.27",
21+
"@ai-sdk/mistral": "^2.0.14",
22+
"@ai-sdk/openai": "^2.0.32",
23+
"@ai-sdk/openai-compatible": "^1.0.18",
24+
"@ai-sdk/react": "^2.0.45",
25+
"@ai-sdk/xai": "^2.0.20",
2626
"@auth/prisma-adapter": "^2.7.4",
27+
"@aws-sdk/credential-providers": "^3.890.0",
2728
"@codemirror/commands": "^6.6.0",
2829
"@codemirror/lang-cpp": "^6.0.2",
2930
"@codemirror/lang-css": "^6.3.0",
@@ -109,7 +110,7 @@
109110
"@vercel/otel": "^1.13.0",
110111
"@viz-js/lang-dot": "^1.0.4",
111112
"@xiechao/codemirror-lang-handlebars": "^1.0.4",
112-
"ai": "^5.0.8",
113+
"ai": "^5.0.45",
113114
"ajv": "^8.17.1",
114115
"bcryptjs": "^3.0.2",
115116
"chokidar": "^4.0.3",

packages/web/src/features/chat/actions.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,18 @@ import { createOpenAI, OpenAIResponsesProviderOptions } from "@ai-sdk/openai";
1818
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
1919
import { LanguageModelV2 as AISDKLanguageModelV2 } from "@ai-sdk/provider";
2020
import { createXai } from '@ai-sdk/xai';
21+
import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
2122
import { createOpenRouter } from '@openrouter/ai-sdk-provider';
2223
import { getTokenFromConfig } from "@sourcebot/crypto";
2324
import { ChatVisibility, OrgRole, Prisma, PrismaClient } from "@sourcebot/db";
2425
import { LanguageModel } from "@sourcebot/schemas/v3/languageModel.type";
26+
import { Token } from "@sourcebot/schemas/v3/shared.type";
2527
import { loadConfig } from "@sourcebot/shared";
2628
import { generateText, JSONValue } from "ai";
2729
import fs from 'fs';
2830
import { StatusCodes } from "http-status-codes";
2931
import path from 'path';
3032
import { LanguageModelInfo, SBChatMessage } from "./types";
31-
import { Token } from "@sourcebot/schemas/v3/shared.type";
3233

3334
export const createChat = async (domain: string) => sew(() =>
3435
withAuth((userId) =>
@@ -396,6 +397,11 @@ export const _getAISDKLanguageModelAndOptions = async (config: LanguageModel, or
396397
headers: config.headers
397398
? await extractLanguageModelKeyValuePairs(config.headers, orgId, prisma)
398399
: undefined,
400+
// Fallback to the default Node.js credential provider chain if no credentials are provided.
401+
// See: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromnodeproviderchain
402+
credentialProvider: !config.accessKeyId && !config.accessKeySecret && !config.sessionToken
403+
? fromNodeProviderChain()
404+
: undefined,
399405
});
400406

401407
return {

0 commit comments

Comments
 (0)