Browse Source

implement global config for allowed ips

pull/1720/head
Bernd Storath 5 months ago
parent
commit
84d9e5e1c4
  1. 2
      src/app/pages/clients/[id].vue
  2. 2
      src/server/database/migrations/0000_short_skin.sql
  3. 4
      src/server/database/migrations/meta/0000_snapshot.json
  4. 6
      src/server/database/migrations/meta/0001_snapshot.json
  5. 4
      src/server/database/migrations/meta/_journal.json
  6. 2
      src/server/database/repositories/client/schema.ts
  7. 1
      src/server/database/repositories/client/service.ts
  8. 2
      src/server/database/repositories/client/types.ts

2
src/app/pages/clients/[id].vue

@ -44,7 +44,7 @@
<FormHeading :description="$t('client.allowedIpsDesc')"> <FormHeading :description="$t('client.allowedIpsDesc')">
{{ $t('general.allowedIps') }} {{ $t('general.allowedIps') }}
</FormHeading> </FormHeading>
<FormArrayField v-model="data.allowedIps" name="allowedIps" /> <FormNullArrayField v-model="data.allowedIps" name="allowedIps" />
</FormGroup> </FormGroup>
<FormGroup> <FormGroup>
<FormHeading :description="$t('client.serverAllowedIpsDesc')"> <FormHeading :description="$t('client.serverAllowedIpsDesc')">

2
src/server/database/migrations/0000_short_skin.sql

@ -12,7 +12,7 @@ CREATE TABLE `clients_table` (
`public_key` text NOT NULL, `public_key` text NOT NULL,
`pre_shared_key` text NOT NULL, `pre_shared_key` text NOT NULL,
`expires_at` text, `expires_at` text,
`allowed_ips` text NOT NULL, `allowed_ips` text,
`server_allowed_ips` text NOT NULL, `server_allowed_ips` text NOT NULL,
`persistent_keepalive` integer NOT NULL, `persistent_keepalive` integer NOT NULL,
`mtu` integer NOT NULL, `mtu` integer NOT NULL,

4
src/server/database/migrations/meta/0000_snapshot.json

@ -1,7 +1,7 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "80307290-b752-4fc4-8ba4-c6d39222c7f5", "id": "8c2af02b-c4bd-4880-a9ad-b38805636208",
"prevId": "00000000-0000-0000-0000-000000000000", "prevId": "00000000-0000-0000-0000-000000000000",
"tables": { "tables": {
"clients_table": { "clients_table": {
@ -106,7 +106,7 @@
"name": "allowed_ips", "name": "allowed_ips",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"server_allowed_ips": { "server_allowed_ips": {

6
src/server/database/migrations/meta/0001_snapshot.json

@ -1,6 +1,6 @@
{ {
"id": "241a0a75-03d1-4b39-9a13-e7b1b621e8b2", "id": "a61263b1-9af1-4d2e-99e9-80d08127b545",
"prevId": "80307290-b752-4fc4-8ba4-c6d39222c7f5", "prevId": "8c2af02b-c4bd-4880-a9ad-b38805636208",
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"tables": { "tables": {
@ -106,7 +106,7 @@
"name": "allowed_ips", "name": "allowed_ips",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"server_allowed_ips": { "server_allowed_ips": {

4
src/server/database/migrations/meta/_journal.json

@ -5,14 +5,14 @@
{ {
"idx": 0, "idx": 0,
"version": "6", "version": "6",
"when": 1741354212954, "when": 1741355094140,
"tag": "0000_short_skin", "tag": "0000_short_skin",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 1, "idx": 1,
"version": "6", "version": "6",
"when": 1741354219144, "when": 1741355098159,
"tag": "0001_classy_the_stranger", "tag": "0001_classy_the_stranger",
"breakpoints": true "breakpoints": true
} }

2
src/server/database/repositories/client/schema.ts

@ -24,7 +24,7 @@ export const client = sqliteTable('clients_table', {
publicKey: text('public_key').notNull(), publicKey: text('public_key').notNull(),
preSharedKey: text('pre_shared_key').notNull(), preSharedKey: text('pre_shared_key').notNull(),
expiresAt: text('expires_at'), expiresAt: text('expires_at'),
allowedIps: text('allowed_ips', { mode: 'json' }).$type<string[]>().notNull(), allowedIps: text('allowed_ips', { mode: 'json' }).$type<string[]>(),
serverAllowedIps: text('server_allowed_ips', { mode: 'json' }) serverAllowedIps: text('server_allowed_ips', { mode: 'json' })
.$type<string[]>() .$type<string[]>()
.notNull(), .notNull(),

1
src/server/database/repositories/client/service.ts

@ -115,7 +115,6 @@ export class ClientService {
ipv4Address, ipv4Address,
ipv6Address, ipv6Address,
mtu: clientConfig.defaultMtu, mtu: clientConfig.defaultMtu,
allowedIps: clientConfig.defaultAllowedIps,
persistentKeepalive: clientConfig.defaultPersistentKeepalive, persistentKeepalive: clientConfig.defaultPersistentKeepalive,
serverAllowedIps: [], serverAllowedIps: [],
enabled: true, enabled: true,

2
src/server/database/repositories/client/types.ts

@ -61,7 +61,7 @@ export const ClientUpdateSchema = schemaForType<UpdateClientType>()(
postUp: HookSchema, postUp: HookSchema,
preDown: HookSchema, preDown: HookSchema,
postDown: HookSchema, postDown: HookSchema,
allowedIps: AllowedIpsSchema, allowedIps: AllowedIpsSchema.nullable(),
serverAllowedIps: serverAllowedIps, serverAllowedIps: serverAllowedIps,
mtu: MtuSchema, mtu: MtuSchema,
persistentKeepalive: PersistentKeepaliveSchema, persistentKeepalive: PersistentKeepaliveSchema,

Loading…
Cancel
Save