67185192fd
- Rename OVERRIDE_INTERFACE_* to WG_* (shorter, non-conflicting) - Add interface overrides: WG_PORT, WG_DEVICE, WG_MTU, WG_IPV4_CIDR, WG_IPV6_CIDR, WG_ENABLED - Add client config overrides: WG_HOST, WG_CLIENT_PORT, WG_DEFAULT_DNS, WG_DEFAULT_ALLOWED_IPS, WG_DEFAULT_MTU, WG_DEFAULT_PERSISTENT_KEEPALIVE - Add general config overrides: WG_SESSION_TIMEOUT, WG_METRICS_PROMETHEUS, WG_METRICS_JSON - Update all API endpoints to apply and filter overrides - Update documentation with all new environment variables - Exclude AmneziaWG parameters (j*, s*, i*, h*) as requested Co-authored-by: kaaax0815 <32197462+kaaax0815@users.noreply.github.com>
28 lines
777 B
TypeScript
28 lines
777 B
TypeScript
import { GeneralUpdateSchema } from '#db/repositories/general/types';
|
|
|
|
export default definePermissionEventHandler(
|
|
'admin',
|
|
'any',
|
|
async ({ event }) => {
|
|
const data = await readValidatedBody(
|
|
event,
|
|
validateZod(GeneralUpdateSchema, event)
|
|
);
|
|
|
|
// Remove overridden fields from the update data
|
|
const updateData = { ...data };
|
|
if (WG_GENERAL_OVERRIDE_ENV.SESSION_TIMEOUT !== undefined) {
|
|
delete updateData.sessionTimeout;
|
|
}
|
|
if (WG_GENERAL_OVERRIDE_ENV.METRICS_PROMETHEUS !== undefined) {
|
|
delete updateData.metricsPrometheus;
|
|
}
|
|
if (WG_GENERAL_OVERRIDE_ENV.METRICS_JSON !== undefined) {
|
|
delete updateData.metricsJson;
|
|
}
|
|
|
|
await Database.general.update(updateData);
|
|
return { success: true };
|
|
}
|
|
);
|