Skip to content

Commit 3a240d6

Browse files
committed
feat: add hostOverrides to external squad schemas and services
1 parent 1fc7d40 commit 3a240d6

File tree

26 files changed

+154
-62
lines changed

26 files changed

+154
-62
lines changed

libs/contract/commands/external-squads/update-external-squad.command.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { z } from 'zod';
22

3-
import { ExternalSquadSchema, ExternalSquadSubscriptionSettingsSchema } from '../../models';
3+
import {
4+
ExternalSquadHostOverridesSchema,
5+
ExternalSquadSchema,
6+
ExternalSquadSubscriptionSettingsSchema,
7+
} from '../../models';
48
import { getEndpointDetails, SUBSCRIPTION_TEMPLATE_TYPE } from '../../constants';
59
import { EXTERNAL_SQUADS_ROUTES, REST_API } from '../../api';
610

@@ -34,6 +38,7 @@ export namespace UpdateExternalSquadCommand {
3438
)
3539
.optional(),
3640
subscriptionSettings: ExternalSquadSubscriptionSettingsSchema.optional(),
41+
hostOverrides: ExternalSquadHostOverridesSchema.optional(),
3742
});
3843

3944
export type Request = z.infer<typeof RequestSchema>;

libs/contract/models/external-squad.schema.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { z } from 'zod';
22

3-
import { ExternalSquadSubscriptionSettingsSchema } from './external-squad-subscription-settings.schema';
3+
import {
4+
ExternalSquadSubscriptionSettingsSchema,
5+
ExternalSquadHostOverridesSchema,
6+
} from './external-squads';
47
import { SUBSCRIPTION_TEMPLATE_TYPE } from '../constants';
58

69
export const ExternalSquadSchema = z.object({
@@ -18,6 +21,7 @@ export const ExternalSquadSchema = z.object({
1821
}),
1922
),
2023
subscriptionSettings: z.nullable(ExternalSquadSubscriptionSettingsSchema),
24+
hostOverrides: z.nullable(ExternalSquadHostOverridesSchema),
2125

2226
createdAt: z
2327
.string()
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { HostsSchema } from '../hosts.schema';
2+
3+
export const ExternalSquadHostOverridesSchema = HostsSchema.pick({
4+
serverDescription: true,
5+
vlessRouteId: true,
6+
}).partial();

libs/contract/models/external-squad-subscription-settings.schema.ts renamed to libs/contract/models/external-squads/external-squad-subscription-settings.schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SubscriptionSettingsSchema } from './subscription-settings.schema';
1+
import { SubscriptionSettingsSchema } from '../subscription-settings.schema';
22

33
export const ExternalSquadSubscriptionSettingsSchema = SubscriptionSettingsSchema.pick({
44
profileTitle: true,
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './external-squad-host-overrides.schema';
2+
export * from './external-squad-subscription-settings.schema';

libs/contract/models/hosts.schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ export const HostsSchema = z.object({
2424
configProfileInboundUuid: z.string().uuid().nullable(),
2525
}),
2626

27-
serverDescription: z.string().nullable(),
27+
serverDescription: z.string().max(30).nullable(),
2828
tag: z.string().nullable(),
2929
isHidden: z.boolean().default(false),
3030
overrideSniFromAddress: z.boolean().default(false),
31-
vlessRouteId: z.number().int().nullable(),
31+
vlessRouteId: z.number().int().min(0).max(65535).nullable(),
3232
allowInsecure: z.boolean().default(false),
3333
shuffleHost: z.boolean(),
3434
mihomoX25519: z.boolean(),

libs/contract/models/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export * from './base-stat.schema';
55
export * from './config-profile-inbounds.schema';
66
export * from './config-profile.schema';
77
export * from './extended-users.schema';
8-
export * from './external-squad-subscription-settings.schema';
98
export * from './external-squad.schema';
9+
export * from './external-squads';
1010
export * from './happ.schema';
1111
export * from './hosts.schema';
1212
export * from './hwid-user-device.schema';

libs/contract/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@remnawave/backend-contract",
3-
"version": "2.2.28",
3+
"version": "2.2.31",
44
"public": true,
55
"license": "AGPL-3.0-only",
66
"description": "A contract library for Remnawave Backend. It can be used in backend and frontend.",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-- AlterTable
2+
ALTER TABLE "public"."external_squads" ADD COLUMN "host_overrides" JSONB,
3+
ALTER COLUMN "created_at" SET DEFAULT now(),
4+
ALTER COLUMN "updated_at" SET DEFAULT now();

prisma/schema.prisma

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,7 @@ model ExternalSquads {
548548
uuid String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
549549
name String @unique @map("name") @db.VarChar(30)
550550
subscriptionSettings Json? @map("subscription_settings")
551+
hostOverrides Json? @map("host_overrides")
551552
552553
createdAt DateTime @default(dbgenerated("now()")) @map("created_at")
553554
updatedAt DateTime @default(dbgenerated("now()")) @updatedAt @map("updated_at")

0 commit comments

Comments
 (0)