split in env required and dynamic values
This commit is contained in:
parent
f32143b7ac
commit
730c25a9a1
35 changed files with 491 additions and 198 deletions
|
@ -10,7 +10,6 @@ export type SettingString =
|
|||
| "club.website"
|
||||
| "app.custom_login_message"
|
||||
| "app.show_link_to_calendar"
|
||||
| "session.jwt_secret"
|
||||
| "session.jwt_expiration"
|
||||
| "session.refresh_expiration"
|
||||
| "session.pwa_refresh_expiration"
|
||||
|
@ -20,23 +19,17 @@ export type SettingString =
|
|||
| "mail.port"
|
||||
| "mail.secure"
|
||||
| "backup.interval"
|
||||
| "backup.copies"
|
||||
| "security.strict_limit"
|
||||
| "security.strict_limit_window"
|
||||
| "security.strict_limit_request_count"
|
||||
| "security.limit"
|
||||
| "security.limit_window"
|
||||
| "security.limit_request_count"
|
||||
| "security.trust_proxy";
|
||||
| "backup.copies";
|
||||
|
||||
export type SettingTypeAtom = "longstring" | "string" | "ms" | "number" | "boolean" | "url";
|
||||
export type SettingType = SettingTypeAtom | `${SettingTypeAtom}/crypt` | `${SettingTypeAtom}/rand`;
|
||||
|
||||
export const settingsType: {
|
||||
[key in SettingString]: {
|
||||
type: SettingType | SettingType[];
|
||||
type: SettingType | SettingTypeAtom[];
|
||||
default?: string | number | boolean | ms.StringValue;
|
||||
optional?: boolean;
|
||||
min?: number;
|
||||
};
|
||||
} = {
|
||||
"club.name": { type: "string", default: "FF Admin" },
|
||||
|
@ -45,7 +38,6 @@ export const settingsType: {
|
|||
"club.website": { type: "url", optional: true },
|
||||
"app.custom_login_message": { type: "string", optional: true },
|
||||
"app.show_link_to_calendar": { type: "boolean", default: true },
|
||||
"session.jwt_secret": { type: "longstring/rand", default: StringHelper.random(64) },
|
||||
"session.jwt_expiration": { type: "ms", default: "15m" },
|
||||
"session.refresh_expiration": { type: "ms", default: "1d" },
|
||||
"session.pwa_refresh_expiration": { type: "ms", default: "5d" },
|
||||
|
@ -54,15 +46,8 @@ export const settingsType: {
|
|||
"mail.host": { type: "url", optional: false },
|
||||
"mail.port": { type: "number", default: 587 },
|
||||
"mail.secure": { type: "boolean", default: false },
|
||||
"backup.interval": { type: "number", default: 1 },
|
||||
"backup.copies": { type: "number", default: 7 },
|
||||
"security.strict_limit": { type: "boolean", default: true },
|
||||
"security.strict_limit_window": { type: "ms", default: "15m" },
|
||||
"security.strict_limit_request_count": { type: "number", default: 15 },
|
||||
"security.limit": { type: "boolean", default: true },
|
||||
"security.limit_window": { type: "ms", default: "1m" },
|
||||
"security.limit_request_count": { type: "number", default: 500 },
|
||||
"security.trust_proxy": { type: ["boolean", "number"], optional: true },
|
||||
"backup.interval": { type: "number", default: 1, min: 1 },
|
||||
"backup.copies": { type: "number", default: 7, min: 1 },
|
||||
};
|
||||
|
||||
/** ENV Settings */
|
||||
|
@ -72,12 +57,20 @@ export type EnvSettingString =
|
|||
| "database.port"
|
||||
| "database.name"
|
||||
| "database.username"
|
||||
| "database.password";
|
||||
| "database.password"
|
||||
| "application.secret"
|
||||
| "security.strict_limit"
|
||||
| "security.strict_limit_window"
|
||||
| "security.strict_limit_request_count"
|
||||
| "security.limit"
|
||||
| "security.limit_window"
|
||||
| "security.limit_request_count"
|
||||
| "security.trust_proxy";
|
||||
|
||||
export const envSettingsType: {
|
||||
[key in EnvSettingString]: {
|
||||
type: SettingType | SettingType[];
|
||||
default?: string;
|
||||
default?: string | number | boolean;
|
||||
};
|
||||
} = {
|
||||
"database.type": { type: "string", default: "postgres" },
|
||||
|
@ -86,4 +79,12 @@ export const envSettingsType: {
|
|||
"database.name": { type: "string" },
|
||||
"database.username": { type: "string" },
|
||||
"database.password": { type: "string" },
|
||||
"application.secret": { type: "string" },
|
||||
"security.strict_limit": { type: "boolean", default: true },
|
||||
"security.strict_limit_window": { type: "ms", default: "15m" },
|
||||
"security.strict_limit_request_count": { type: "number", default: 15 },
|
||||
"security.limit": { type: "boolean", default: true },
|
||||
"security.limit_window": { type: "ms", default: "1m" },
|
||||
"security.limit_request_count": { type: "number", default: 500 },
|
||||
"security.trust_proxy": { type: ["boolean", "number", "string"] },
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue