Merged in feature/redis (pull request #1478)
Distributed cache * cache deleteKey now uses an options object instead of a lonely argument variable fuzzy * merge * remove debug logs and cleanup * cleanup * add fault handling * add fault handling * add pid when logging redis client creation * add identifier when logging redis client creation * cleanup * feat: add redis-api as it's own app * feature: use http wrapper for redis * feat: add the possibility to fallback to unstable_cache * Add error handling if redis cache is unresponsive * add logging for unstable_cache * merge * don't cache errors * fix: metadatabase on branchdeploys * Handle when /en/destinations throws add ErrorBoundary * Add sentry-logging when ErrorBoundary catches exception * Fix error handling for distributed cache * cleanup code * Added Application Insights back * Update generateApiKeys script and remove duplicate * Merge branch 'feature/redis' of bitbucket.org:scandic-swap/web into feature/redis * merge Approved-by: Linus Flood
This commit is contained in:
committed by
Linus Flood
parent
a8304e543e
commit
fa63b20ed0
56
apps/redis-api/src/env.ts
Normal file
56
apps/redis-api/src/env.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import { createEnv } from "@t3-oss/env-core";
|
||||
import { z } from "zod";
|
||||
|
||||
const redisConnectionRegex =
|
||||
/^((?<username>.*?):(?<password>.*?)@)?(?<host>.*?):(?<port>\d+)$/;
|
||||
export const env = createEnv({
|
||||
server: {
|
||||
IS_PROD: z
|
||||
.boolean()
|
||||
.default(false)
|
||||
.transform(
|
||||
() =>
|
||||
process.env.BUN_ENV === "production" ||
|
||||
process.env.NODE_ENV === "production"
|
||||
),
|
||||
IS_DEV: z
|
||||
.boolean()
|
||||
.default(false)
|
||||
.transform(
|
||||
() =>
|
||||
process.env.BUN_ENV === "development" ||
|
||||
process.env.NODE_ENV === "development"
|
||||
),
|
||||
VERSION: z.string().min(1).default("development"),
|
||||
PORT: z.coerce.number().default(3001),
|
||||
REDIS_CONNECTION: z.string().regex(redisConnectionRegex),
|
||||
|
||||
PRIMARY_API_KEY:
|
||||
process.env.NODE_ENV === "development"
|
||||
? z.string().optional()
|
||||
: z.string().min(10),
|
||||
|
||||
SECONDARY_API_KEY:
|
||||
process.env.NODE_ENV === "development"
|
||||
? z.string().optional()
|
||||
: z.string().min(10),
|
||||
},
|
||||
runtimeEnv: {
|
||||
...process.env,
|
||||
},
|
||||
});
|
||||
|
||||
const redisMatch = env.REDIS_CONNECTION.match(redisConnectionRegex);
|
||||
if (!redisMatch?.groups) {
|
||||
throw new Error("Invalid REDIS_CONNECTION format");
|
||||
}
|
||||
|
||||
export const redisConfig = {
|
||||
host: redisMatch.groups.host,
|
||||
port: Number(redisMatch.groups.port),
|
||||
username: redisMatch.groups.username,
|
||||
password: redisMatch.groups.password,
|
||||
};
|
||||
|
||||
console.log("env", env);
|
||||
console.log("redisConfig", redisConfig);
|
||||
Reference in New Issue
Block a user