mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-30 19:32:27 +00:00
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import { normalizeSecretInput } from "../utils/normalize-secret-input.js";
|
|
|
|
const AWS_BEARER_ENV = "AWS_BEARER_TOKEN_BEDROCK";
|
|
const AWS_ACCESS_KEY_ENV = "AWS_ACCESS_KEY_ID";
|
|
const AWS_SECRET_KEY_ENV = "AWS_SECRET_ACCESS_KEY";
|
|
const AWS_PROFILE_ENV = "AWS_PROFILE";
|
|
|
|
export type ResolvedProviderAuth = {
|
|
apiKey?: string;
|
|
profileId?: string;
|
|
source: string;
|
|
mode: "api-key" | "oauth" | "token" | "aws-sdk";
|
|
};
|
|
|
|
export function resolveAwsSdkEnvVarName(env: NodeJS.ProcessEnv = process.env): string | undefined {
|
|
if (env[AWS_BEARER_ENV]?.trim()) {
|
|
return AWS_BEARER_ENV;
|
|
}
|
|
if (env[AWS_ACCESS_KEY_ENV]?.trim() && env[AWS_SECRET_KEY_ENV]?.trim()) {
|
|
return AWS_ACCESS_KEY_ENV;
|
|
}
|
|
if (env[AWS_PROFILE_ENV]?.trim()) {
|
|
return AWS_PROFILE_ENV;
|
|
}
|
|
return undefined;
|
|
}
|
|
|
|
export function requireApiKey(auth: ResolvedProviderAuth, provider: string): string {
|
|
const key = normalizeSecretInput(auth.apiKey);
|
|
if (key) {
|
|
return key;
|
|
}
|
|
throw new Error(`No API key resolved for provider "${provider}" (auth mode: ${auth.mode}).`);
|
|
}
|