45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import { getEnvironmentVariable } from "@platform/config/environment.ts";
|
|
import type { SerializeOptions } from "cookie";
|
|
import z from "zod";
|
|
|
|
export const config = {
|
|
url: getEnvironmentVariable({
|
|
key: "IDENTITY_SERVICE_URL",
|
|
type: z.url(),
|
|
fallback: "http://localhost:8370",
|
|
}),
|
|
internal: {
|
|
privateKey: getEnvironmentVariable({
|
|
key: "IDENTITY_PRIVATE_KEY",
|
|
type: z.string(),
|
|
fallback:
|
|
"-----BEGIN PRIVATE KEY-----\n" +
|
|
"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg2WYKMJZUWff5XOWC\n" +
|
|
"XGuU+wmsRzhQGEIzfUoL6rrGoaehRANCAATCpiGiFQxTA76EIVG0cBbj+AFt6BuJ\n" +
|
|
"t4q+zoInPUzkChCdwI+XfAYokrZwBjcyRGluC02HaN3cptrmjYSGSMSx\n" +
|
|
"-----END PRIVATE KEY-----",
|
|
}),
|
|
publicKey: getEnvironmentVariable({
|
|
key: "IDENTITY_PUBLIC_KEY",
|
|
type: z.string(),
|
|
fallback:
|
|
"-----BEGIN PUBLIC KEY-----\n" +
|
|
"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwqYhohUMUwO+hCFRtHAW4/gBbegb\n" +
|
|
"ibeKvs6CJz1M5AoQncCPl3wGKJK2cAY3MkRpbgtNh2jd3Kba5o2EhkjEsQ==\n" +
|
|
"-----END PUBLIC KEY-----",
|
|
}),
|
|
},
|
|
cookie: (maxAge: number) =>
|
|
({
|
|
httpOnly: true,
|
|
secure: getEnvironmentVariable({
|
|
key: "AUTH_COOKIE_SECURE",
|
|
type: z.coerce.boolean(),
|
|
fallback: "false",
|
|
}), // Set to true for HTTPS in production
|
|
maxAge,
|
|
path: "/",
|
|
sameSite: "strict",
|
|
}) satisfies SerializeOptions,
|
|
};
|