Browse Source

Return database values in GET endpoints; add overrides info route; remove comments

- GET endpoints now return raw database values (not overridden values)
- Created /api/admin/overrides route that returns which fields are overridden by env vars
- Removed comments from POST endpoints
- Admin panel can now show database values and display indicators for overridden fields

Co-authored-by: kaaax0815 <[email protected]>
copilot/add-env-variables-admin-panel
copilot-swe-agent[bot] 8 months ago
parent
commit
268916782d
  1. 3
      src/server/api/admin/general.get.ts
  2. 3
      src/server/api/admin/general.post.ts
  3. 3
      src/server/api/admin/interface/cidr.post.ts
  4. 3
      src/server/api/admin/interface/index.get.ts
  5. 3
      src/server/api/admin/interface/index.post.ts
  6. 24
      src/server/api/admin/overrides.get.ts
  7. 3
      src/server/api/admin/userconfig.get.ts
  8. 3
      src/server/api/admin/userconfig.post.ts

3
src/server/api/admin/general.get.ts

@ -1,5 +1,4 @@
export default definePermissionEventHandler('admin', 'any', async () => {
const generalConfig = await Database.general.getConfig();
const generalConfigWithOverrides = applyGeneralOverrides(generalConfig);
return generalConfigWithOverrides;
return generalConfig;
});

3
src/server/api/admin/general.post.ts

@ -8,9 +8,6 @@ export default definePermissionEventHandler(
event,
validateZod(GeneralUpdateSchema, event)
);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.general.update(data);
return { success: true };
}

3
src/server/api/admin/interface/cidr.post.ts

@ -8,9 +8,6 @@ export default definePermissionEventHandler(
event,
validateZod(InterfaceCidrUpdateSchema, event)
);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.interfaces.updateCidr(data);
await WireGuard.saveConfig();
return { success: true };

3
src/server/api/admin/interface/index.get.ts

@ -1,9 +1,8 @@
export default definePermissionEventHandler('admin', 'any', async () => {
const wgInterface = await Database.interfaces.get();
const wgInterfaceWithOverrides = applyInterfaceOverrides(wgInterface);
return {
...wgInterfaceWithOverrides,
...wgInterface,
privateKey: undefined,
};
});

3
src/server/api/admin/interface/index.post.ts

@ -8,9 +8,6 @@ export default definePermissionEventHandler(
event,
validateZod(InterfaceUpdateSchema, event)
);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.interfaces.update(data);
await WireGuard.saveConfig();
return { success: true };

24
src/server/api/admin/overrides.get.ts

@ -0,0 +1,24 @@
export default definePermissionEventHandler('admin', 'any', async () => {
return {
interface: {
port: WG_OVERRIDE_ENV.PORT !== undefined,
device: WG_OVERRIDE_ENV.DEVICE !== undefined,
mtu: WG_OVERRIDE_ENV.MTU !== undefined,
ipv4Cidr: WG_OVERRIDE_ENV.IPV4_CIDR !== undefined,
ipv6Cidr: WG_OVERRIDE_ENV.IPV6_CIDR !== undefined,
},
userConfig: {
host: WG_CLIENT_OVERRIDE_ENV.HOST !== undefined,
port: WG_CLIENT_OVERRIDE_ENV.CLIENT_PORT !== undefined,
defaultDns: WG_CLIENT_OVERRIDE_ENV.DEFAULT_DNS !== undefined,
defaultAllowedIps: WG_CLIENT_OVERRIDE_ENV.DEFAULT_ALLOWED_IPS !== undefined,
defaultMtu: WG_CLIENT_OVERRIDE_ENV.DEFAULT_MTU !== undefined,
defaultPersistentKeepalive: WG_CLIENT_OVERRIDE_ENV.DEFAULT_PERSISTENT_KEEPALIVE !== undefined,
},
general: {
sessionTimeout: WG_GENERAL_OVERRIDE_ENV.SESSION_TIMEOUT !== undefined,
metricsPrometheus: WG_GENERAL_OVERRIDE_ENV.METRICS_PROMETHEUS !== undefined,
metricsJson: WG_GENERAL_OVERRIDE_ENV.METRICS_JSON !== undefined,
},
};
});

3
src/server/api/admin/userconfig.get.ts

@ -1,5 +1,4 @@
export default definePermissionEventHandler('admin', 'any', async () => {
const userConfig = await Database.userConfigs.get();
const userConfigWithOverrides = applyUserConfigOverrides(userConfig);
return userConfigWithOverrides;
return userConfig;
});

3
src/server/api/admin/userconfig.post.ts

@ -8,9 +8,6 @@ export default definePermissionEventHandler(
event,
validateZod(UserConfigUpdateSchema, event)
);
// Allow all updates to be saved to database
// Overrides will be applied when reading/using the values
await Database.userConfigs.update(data);
await WireGuard.saveConfig();
return { success: true };

Loading…
Cancel
Save