@remnawave/backend-contract 2.9.13 → 2.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/backend/api/controllers/system.d.ts +1 -0
- package/build/backend/api/controllers/system.d.ts.map +1 -1
- package/build/backend/api/controllers/system.js +1 -0
- package/build/backend/api/routes.d.ts +1 -0
- package/build/backend/api/routes.d.ts.map +1 -1
- package/build/backend/api/routes.js +1 -0
- package/build/backend/commands/hwid/create-user-hwid-device.command.js +1 -1
- package/build/backend/commands/system/get-http-stats.command.d.ts +18 -0
- package/build/backend/commands/system/get-http-stats.command.d.ts.map +1 -0
- package/build/backend/commands/system/get-http-stats.command.js +22 -0
- package/build/backend/commands/system/index.d.ts +1 -0
- package/build/backend/commands/system/index.d.ts.map +1 -1
- package/build/backend/commands/system/index.js +1 -0
- package/build/backend/constants/cache-keys/cache-keys.constants.d.ts +2 -0
- package/build/backend/constants/cache-keys/cache-keys.constants.d.ts.map +1 -1
- package/build/backend/constants/cache-keys/cache-keys.constants.js +2 -0
- package/build/backend/constants/errors/errors.d.ts +10 -0
- package/build/backend/constants/errors/errors.d.ts.map +1 -1
- package/build/backend/constants/errors/errors.js +10 -0
- package/build/frontend/api/controllers/system.js +1 -0
- package/build/frontend/api/routes.js +1 -0
- package/build/frontend/commands/hwid/create-user-hwid-device.command.js +1 -1
- package/build/frontend/commands/system/get-http-stats.command.js +22 -0
- package/build/frontend/commands/system/index.js +1 -0
- package/build/frontend/constants/cache-keys/cache-keys.constants.js +2 -0
- package/build/frontend/constants/errors/errors.js +10 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../api/controllers/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAC;AAEnD,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../api/controllers/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAC;AAEnD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAiBhB,CAAC"}
|
|
@@ -131,6 +131,7 @@ export declare const REST_API: {
|
|
|
131
131
|
readonly NODES_STATS: "/api/system/stats/nodes";
|
|
132
132
|
readonly NODES_METRICS: "/api/system/nodes/metrics";
|
|
133
133
|
readonly RECAP: "/api/system/stats/recap";
|
|
134
|
+
readonly HTTP: "/api/system/stats/http";
|
|
134
135
|
};
|
|
135
136
|
readonly TOOLS: {
|
|
136
137
|
readonly GENERATE_X25519: "/api/system/tools/x25519/generate";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../api/routes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAG,MAAe,CAAC;AACpC,eAAO,MAAM,YAAY,EAAG,UAAmB,CAAC;AAChD,eAAO,MAAM,WAAW,EAAG,SAAkB,CAAC;AAE9C,eAAO,MAAM,kBAAkB,EAAG,gBAAyB,CAAC;AAC5D,eAAO,MAAM,cAAc,EAAG,uBAAgC,CAAC;AAC/D,eAAO,MAAM,YAAY,EAAG,wBAAiC,CAAC;AAC9D,eAAO,MAAM,WAAW,EAAG,uBAAgC,CAAC;AAE5D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;gCAyBE,MAAM;;;;;;;;;;;qCAcD,MAAM;;gCAGX,MAAM;;;;;oCAOF,MAAM;qCAIL,MAAM;qCAIN,MAAM;;2CAKA,MAAM;;;;;;;;;;;;;;gCAkBjB,MAAM;qCAGD,MAAM;0CAED,MAAM;sDAEM,MAAM;;qCAMvB,MAAM;oCAIP,MAAM;2CAIC,MAAM;iDAIA,MAAM;;;8BAOzB,MAAM;6CAES,MAAM;0CAIT,MAAM;;;;;;;;;;;;;;;;;;;;;;kCAyBd,MAAM;uCAED,MAAM;;;;;;qCASR,MAAM;gCAEX,MAAM
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../api/routes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAG,MAAe,CAAC;AACpC,eAAO,MAAM,YAAY,EAAG,UAAmB,CAAC;AAChD,eAAO,MAAM,WAAW,EAAG,SAAkB,CAAC;AAE9C,eAAO,MAAM,kBAAkB,EAAG,gBAAyB,CAAC;AAC5D,eAAO,MAAM,cAAc,EAAG,uBAAgC,CAAC;AAC/D,eAAO,MAAM,YAAY,EAAG,wBAAiC,CAAC;AAC9D,eAAO,MAAM,WAAW,EAAG,uBAAgC,CAAC;AAE5D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;gCAyBE,MAAM;;;;;;;;;;;qCAcD,MAAM;;gCAGX,MAAM;;;;;oCAOF,MAAM;qCAIL,MAAM;qCAIN,MAAM;;2CAKA,MAAM;;;;;;;;;;;;;;gCAkBjB,MAAM;qCAGD,MAAM;0CAED,MAAM;sDAEM,MAAM;;qCAMvB,MAAM;oCAIP,MAAM;2CAIC,MAAM;iDAIA,MAAM;;;8BAOzB,MAAM;6CAES,MAAM;0CAIT,MAAM;;;;;;;;;;;;;;;;;;;;;;kCAyBd,MAAM;uCAED,MAAM;;;;;;qCASR,MAAM;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAoCT,MAAM;;gCAKH,MAAM;;;;;;;;;;;;;;mDAiBa,MAAM;;;;;;;;;0CAYf,MAAM;kCAId,MAAM;6CAIK,MAAM;iDAIF,MAAM;;;6CAMV,MAAM;;qDAKE,MAAM;;;;;;qCAStB,MAAM;gCAIX,MAAM;sDAIgB,MAAM;6DAIC,MAAM;;;;;;;;;;qCAa9B,MAAM;gCAIX,MAAM;0CAII,MAAM;;uCAKT,MAAM;0CAEH,MAAM;;;;;;;;;;yCAWP,MAAM;8CAED,MAAM;;;;6CAMP,MAAM;;;gDAKH,MAAM;;;;;;;;;;;;;;;;qCAiBjB,MAAM;gCAIX,MAAM;;uCAKC,MAAM;0CAEH,MAAM;;;;;;;;;;;6BAYnB,MAAM;;;gCAIH,MAAM;;;;;;;;6BAST,MAAM;;;gCAIH,MAAM;;;;;;;;;;;;;;;;;uCAkBC,MAAM;;;;yCAKJ,MAAM;;;;2CAKJ,MAAM;;;6CAIJ,MAAM;;;;;6CAMN,MAAM;qDAEE,MAAM;6CAEd,MAAM;qDAEE,MAAM;;;;;iCAM1B,MAAM;oCAEH,MAAM;;;iCAIT,MAAM;oCAEH,MAAM;;;CAIvB,CAAC"}
|
|
@@ -168,6 +168,7 @@ exports.REST_API = {
|
|
|
168
168
|
NODES_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_STATS}`,
|
|
169
169
|
NODES_METRICS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_METRICS}`,
|
|
170
170
|
RECAP: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.RECAP}`,
|
|
171
|
+
HTTP: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.HTTP}`,
|
|
171
172
|
},
|
|
172
173
|
TOOLS: {
|
|
173
174
|
GENERATE_X25519: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.GENERATE_X25519}`,
|
|
@@ -11,7 +11,7 @@ var CreateUserHwidDeviceCommand;
|
|
|
11
11
|
CreateUserHwidDeviceCommand.TSQ_url = CreateUserHwidDeviceCommand.url;
|
|
12
12
|
CreateUserHwidDeviceCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.HWID_ROUTES.CREATE_USER_HWID_DEVICE, 'post', 'Create a user HWID device', { scope: 'create', kind: 'write' });
|
|
13
13
|
CreateUserHwidDeviceCommand.RequestBodySchema = zod_1.z.object({
|
|
14
|
-
hwid: zod_1.z.string(),
|
|
14
|
+
hwid: zod_1.z.string().regex(/^[a-zA-Z0-9=-]{10,64}$/),
|
|
15
15
|
userUuid: zod_1.z.uuid(),
|
|
16
16
|
platform: zod_1.z.optional(zod_1.z.string()),
|
|
17
17
|
osVersion: zod_1.z.optional(zod_1.z.string()),
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare namespace GetHttpStatsCommand {
|
|
3
|
+
const url: "/api/system/stats/http";
|
|
4
|
+
const TSQ_url: "/api/system/stats/http";
|
|
5
|
+
const endpointDetails: import("../../constants").EndpointDetails;
|
|
6
|
+
const ResponseSchema: z.ZodObject<{
|
|
7
|
+
response: z.ZodObject<{
|
|
8
|
+
routes: z.ZodArray<z.ZodObject<{
|
|
9
|
+
method: z.ZodString;
|
|
10
|
+
route: z.ZodString;
|
|
11
|
+
count: z.ZodInt32;
|
|
12
|
+
}, z.core.$strip>>;
|
|
13
|
+
total: z.ZodInt32;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
type Response = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=get-http-stats.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-http-stats.command.d.ts","sourceRoot":"","sources":["../../../../commands/system/get-http-stats.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,GAAG,0BAA6B,CAAC;IACvC,MAAM,OAAO,0BAAM,CAAC;IAEpB,MAAM,eAAe,2CAK3B,CAAC;IAEK,MAAM,cAAc;;;;;;;;;qBAWzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetHttpStatsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const api_1 = require("../../api");
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
var GetHttpStatsCommand;
|
|
8
|
+
(function (GetHttpStatsCommand) {
|
|
9
|
+
GetHttpStatsCommand.url = api_1.REST_API.SYSTEM.STATS.HTTP;
|
|
10
|
+
GetHttpStatsCommand.TSQ_url = GetHttpStatsCommand.url;
|
|
11
|
+
GetHttpStatsCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.STATS.HTTP, 'get', 'Get HTTP Stats', { scope: 'http', kind: 'read' });
|
|
12
|
+
GetHttpStatsCommand.ResponseSchema = zod_1.z.object({
|
|
13
|
+
response: zod_1.z.object({
|
|
14
|
+
routes: zod_1.z.array(zod_1.z.object({
|
|
15
|
+
method: zod_1.z.string(),
|
|
16
|
+
route: zod_1.z.string(),
|
|
17
|
+
count: zod_1.z.int32().nonnegative(),
|
|
18
|
+
})),
|
|
19
|
+
total: zod_1.z.int32().nonnegative(),
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
})(GetHttpStatsCommand || (exports.GetHttpStatsCommand = GetHttpStatsCommand = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,0BAA0B,CAAC"}
|
|
@@ -23,3 +23,4 @@ __exportStar(require("./get-remnawave-health.command"), exports);
|
|
|
23
23
|
__exportStar(require("./get-stats.command"), exports);
|
|
24
24
|
__exportStar(require("./testers"), exports);
|
|
25
25
|
__exportStar(require("./tools"), exports);
|
|
26
|
+
__exportStar(require("./get-http-stats.command"), exports);
|
|
@@ -13,6 +13,7 @@ export declare const CACHE_KEYS: {
|
|
|
13
13
|
readonly NODE_XRAY_UPTIME: (uuid: string) => string;
|
|
14
14
|
readonly RAW_INBOUND: (uuid: string) => string;
|
|
15
15
|
readonly XRAY_JSON_TEMPLATE: (uuid: string) => string;
|
|
16
|
+
readonly EXTERNAL_SQUAD_TEMPLATE_NAME: (uuid: string, type: TSubscriptionTemplateType) => string;
|
|
16
17
|
};
|
|
17
18
|
export declare const CACHE_KEYS_TTL: {
|
|
18
19
|
readonly REMNAWAVE_SETTINGS: 86400;
|
|
@@ -23,6 +24,7 @@ export declare const CACHE_KEYS_TTL: {
|
|
|
23
24
|
readonly NODE_XRAY_UPTIME: 16;
|
|
24
25
|
readonly RAW_INBOUND: 3600;
|
|
25
26
|
readonly XRAY_JSON_TEMPLATE: 3600;
|
|
27
|
+
readonly EXTERNAL_SQUAD_TEMPLATE_NAME: 3600;
|
|
26
28
|
};
|
|
27
29
|
export declare const INTERNAL_CACHE_KEYS: {
|
|
28
30
|
readonly NODE_USER_USAGE_PREFIX: "node_user_usage:";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-keys.constants.d.ts","sourceRoot":"","sources":["../../../../constants/cache-keys/cache-keys.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,eAAO,MAAM,UAAU;;6CAEa,MAAM;2CACR,MAAM,QAAQ,yBAAyB;kDAEhC,MAAM;oDACJ,MAAM;;sCAEpB,MAAM;uCACL,MAAM;uCACN,MAAM;mCACV,MAAM;sCACH,MAAM;iCACX,MAAM;wCACC,MAAM;
|
|
1
|
+
{"version":3,"file":"cache-keys.constants.d.ts","sourceRoot":"","sources":["../../../../constants/cache-keys/cache-keys.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,eAAO,MAAM,UAAU;;6CAEa,MAAM;2CACR,MAAM,QAAQ,yBAAyB;kDAEhC,MAAM;oDACJ,MAAM;;sCAEpB,MAAM;uCACL,MAAM;uCACN,MAAM;mCACV,MAAM;sCACH,MAAM;iCACX,MAAM;wCACC,MAAM;kDACI,MAAM,QAAQ,yBAAyB;CAEtE,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;uCAEF,MAAM;;;;CAK1B,CAAC;AAEX,eAAO,MAAM,uBAAuB;;CAE1B,CAAC"}
|
|
@@ -15,6 +15,7 @@ exports.CACHE_KEYS = {
|
|
|
15
15
|
NODE_XRAY_UPTIME: (uuid) => `node_xray_uptime:${uuid}`,
|
|
16
16
|
RAW_INBOUND: (uuid) => `raw_inbound:${uuid}`,
|
|
17
17
|
XRAY_JSON_TEMPLATE: (uuid) => `xray_json_template:${uuid}`,
|
|
18
|
+
EXTERNAL_SQUAD_TEMPLATE_NAME: (uuid, type) => `external_squad_template_name:${uuid}:${type}`,
|
|
18
19
|
};
|
|
19
20
|
exports.CACHE_KEYS_TTL = {
|
|
20
21
|
REMNAWAVE_SETTINGS: 86400, // 1 day
|
|
@@ -25,6 +26,7 @@ exports.CACHE_KEYS_TTL = {
|
|
|
25
26
|
NODE_XRAY_UPTIME: 16, // 16 seconds
|
|
26
27
|
RAW_INBOUND: 3600, // 1 hour
|
|
27
28
|
XRAY_JSON_TEMPLATE: 3600, // 1 hour
|
|
29
|
+
EXTERNAL_SQUAD_TEMPLATE_NAME: 3600, // 1 hour
|
|
28
30
|
};
|
|
29
31
|
exports.INTERNAL_CACHE_KEYS = {
|
|
30
32
|
NODE_USER_USAGE_PREFIX: 'node_user_usage:',
|
|
@@ -1179,5 +1179,15 @@ export declare const ERRORS: {
|
|
|
1179
1179
|
readonly message: "Either nodeUuid or name must be provided";
|
|
1180
1180
|
readonly httpCode: 400;
|
|
1181
1181
|
};
|
|
1182
|
+
readonly CUSTOM_RAW_REMARK_VALIDATION_ERROR: {
|
|
1183
|
+
readonly code: "A231";
|
|
1184
|
+
readonly message: "Invalid custom raw remark";
|
|
1185
|
+
readonly httpCode: 500;
|
|
1186
|
+
readonly withMessage: (message: string) => {
|
|
1187
|
+
code: string;
|
|
1188
|
+
message: string;
|
|
1189
|
+
httpCode: number;
|
|
1190
|
+
};
|
|
1191
|
+
};
|
|
1182
1192
|
};
|
|
1183
1193
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../constants/errors/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAwJY,MAAM;;;;;;;;;;wCAUN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA4IN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA2qBN,MAAM
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../constants/errors/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAwJY,MAAM;;;;;;;;;;wCAUN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA4IN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA2qBN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA0KN,MAAM;;;;;;CAM3B,CAAC"}
|
|
@@ -1150,4 +1150,14 @@ exports.ERRORS = {
|
|
|
1150
1150
|
message: 'Either nodeUuid or name must be provided',
|
|
1151
1151
|
httpCode: 400,
|
|
1152
1152
|
},
|
|
1153
|
+
CUSTOM_RAW_REMARK_VALIDATION_ERROR: {
|
|
1154
|
+
code: 'A231',
|
|
1155
|
+
message: 'Invalid custom raw remark',
|
|
1156
|
+
httpCode: 500,
|
|
1157
|
+
withMessage: (message) => ({
|
|
1158
|
+
code: 'A231',
|
|
1159
|
+
message,
|
|
1160
|
+
httpCode: 500,
|
|
1161
|
+
}),
|
|
1162
|
+
},
|
|
1153
1163
|
};
|
|
@@ -168,6 +168,7 @@ exports.REST_API = {
|
|
|
168
168
|
NODES_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_STATS}`,
|
|
169
169
|
NODES_METRICS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_METRICS}`,
|
|
170
170
|
RECAP: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.RECAP}`,
|
|
171
|
+
HTTP: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.HTTP}`,
|
|
171
172
|
},
|
|
172
173
|
TOOLS: {
|
|
173
174
|
GENERATE_X25519: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.GENERATE_X25519}`,
|
|
@@ -11,7 +11,7 @@ var CreateUserHwidDeviceCommand;
|
|
|
11
11
|
CreateUserHwidDeviceCommand.TSQ_url = CreateUserHwidDeviceCommand.url;
|
|
12
12
|
CreateUserHwidDeviceCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.HWID_ROUTES.CREATE_USER_HWID_DEVICE, 'post', 'Create a user HWID device', { scope: 'create', kind: 'write' });
|
|
13
13
|
CreateUserHwidDeviceCommand.RequestBodySchema = zod_1.z.object({
|
|
14
|
-
hwid: zod_1.z.string(),
|
|
14
|
+
hwid: zod_1.z.string().regex(/^[a-zA-Z0-9=-]{10,64}$/),
|
|
15
15
|
userUuid: zod_1.z.uuid(),
|
|
16
16
|
platform: zod_1.z.optional(zod_1.z.string()),
|
|
17
17
|
osVersion: zod_1.z.optional(zod_1.z.string()),
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetHttpStatsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const api_1 = require("../../api");
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
var GetHttpStatsCommand;
|
|
8
|
+
(function (GetHttpStatsCommand) {
|
|
9
|
+
GetHttpStatsCommand.url = api_1.REST_API.SYSTEM.STATS.HTTP;
|
|
10
|
+
GetHttpStatsCommand.TSQ_url = GetHttpStatsCommand.url;
|
|
11
|
+
GetHttpStatsCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.STATS.HTTP, 'get', 'Get HTTP Stats', { scope: 'http', kind: 'read' });
|
|
12
|
+
GetHttpStatsCommand.ResponseSchema = zod_1.z.object({
|
|
13
|
+
response: zod_1.z.object({
|
|
14
|
+
routes: zod_1.z.array(zod_1.z.object({
|
|
15
|
+
method: zod_1.z.string(),
|
|
16
|
+
route: zod_1.z.string(),
|
|
17
|
+
count: zod_1.z.int32().nonnegative(),
|
|
18
|
+
})),
|
|
19
|
+
total: zod_1.z.int32().nonnegative(),
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
})(GetHttpStatsCommand || (exports.GetHttpStatsCommand = GetHttpStatsCommand = {}));
|
|
@@ -23,3 +23,4 @@ __exportStar(require("./get-remnawave-health.command"), exports);
|
|
|
23
23
|
__exportStar(require("./get-stats.command"), exports);
|
|
24
24
|
__exportStar(require("./testers"), exports);
|
|
25
25
|
__exportStar(require("./tools"), exports);
|
|
26
|
+
__exportStar(require("./get-http-stats.command"), exports);
|
|
@@ -15,6 +15,7 @@ exports.CACHE_KEYS = {
|
|
|
15
15
|
NODE_XRAY_UPTIME: (uuid) => `node_xray_uptime:${uuid}`,
|
|
16
16
|
RAW_INBOUND: (uuid) => `raw_inbound:${uuid}`,
|
|
17
17
|
XRAY_JSON_TEMPLATE: (uuid) => `xray_json_template:${uuid}`,
|
|
18
|
+
EXTERNAL_SQUAD_TEMPLATE_NAME: (uuid, type) => `external_squad_template_name:${uuid}:${type}`,
|
|
18
19
|
};
|
|
19
20
|
exports.CACHE_KEYS_TTL = {
|
|
20
21
|
REMNAWAVE_SETTINGS: 86400, // 1 day
|
|
@@ -25,6 +26,7 @@ exports.CACHE_KEYS_TTL = {
|
|
|
25
26
|
NODE_XRAY_UPTIME: 16, // 16 seconds
|
|
26
27
|
RAW_INBOUND: 3600, // 1 hour
|
|
27
28
|
XRAY_JSON_TEMPLATE: 3600, // 1 hour
|
|
29
|
+
EXTERNAL_SQUAD_TEMPLATE_NAME: 3600, // 1 hour
|
|
28
30
|
};
|
|
29
31
|
exports.INTERNAL_CACHE_KEYS = {
|
|
30
32
|
NODE_USER_USAGE_PREFIX: 'node_user_usage:',
|
|
@@ -1150,4 +1150,14 @@ exports.ERRORS = {
|
|
|
1150
1150
|
message: 'Either nodeUuid or name must be provided',
|
|
1151
1151
|
httpCode: 400,
|
|
1152
1152
|
},
|
|
1153
|
+
CUSTOM_RAW_REMARK_VALIDATION_ERROR: {
|
|
1154
|
+
code: 'A231',
|
|
1155
|
+
message: 'Invalid custom raw remark',
|
|
1156
|
+
httpCode: 500,
|
|
1157
|
+
withMessage: (message) => ({
|
|
1158
|
+
code: 'A231',
|
|
1159
|
+
message,
|
|
1160
|
+
httpCode: 500,
|
|
1161
|
+
}),
|
|
1162
|
+
},
|
|
1153
1163
|
};
|
package/package.json
CHANGED