Support single-token Alpaca auth

This commit is contained in:
dirtydishes 2026-05-05 03:14:01 -04:00
parent dd32be7717
commit 5025de78b9
8 changed files with 63 additions and 20 deletions

View file

@ -41,6 +41,7 @@ const envSchema = z.object({
SYNTHETIC_EQUITIES_MODE: z.string().default(""),
// Alpaca (equities)
ALPACA_API_KEY: z.string().default(""),
ALPACA_KEY_ID: z.string().default(""),
ALPACA_SECRET_KEY: z.string().default(""),
ALPACA_REST_URL: z.string().default("https://data.alpaca.markets"),
@ -167,7 +168,17 @@ const selectAdapter = (name: string): EquityIngestAdapter => {
}
if (name === "alpaca") {
const hasApiKey = Boolean(env.ALPACA_API_KEY);
const hasKeyPair = Boolean(env.ALPACA_KEY_ID && env.ALPACA_SECRET_KEY);
if (!hasApiKey && !hasKeyPair) {
logger.warn("alpaca credentials missing; set ALPACA_API_KEY or ALPACA_KEY_ID and ALPACA_SECRET_KEY");
throw new Error(
"ALPACA_API_KEY or ALPACA_KEY_ID and ALPACA_SECRET_KEY are required for the alpaca adapter."
);
}
return createAlpacaEquitiesAdapter({
apiKey: env.ALPACA_API_KEY,
keyId: env.ALPACA_KEY_ID,
secretKey: env.ALPACA_SECRET_KEY,
restUrl: env.ALPACA_REST_URL,