axiodb 10.8.11 → 11.9.13
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/README.md +447 -315
- package/lib/Services/Auth/AuthEvents.service.d.ts +15 -0
- package/lib/Services/Auth/AuthEvents.service.js +17 -0
- package/lib/Services/Auth/AuthEvents.service.js.map +1 -0
- package/lib/Services/Auth/AuthService.service.js +4 -0
- package/lib/Services/Auth/AuthService.service.js.map +1 -1
- package/lib/Services/Auth/LoginRateLimiter.service.d.ts +35 -0
- package/lib/Services/Auth/LoginRateLimiter.service.js +89 -0
- package/lib/Services/Auth/LoginRateLimiter.service.js.map +1 -0
- package/lib/Services/Collection/collection.operation.d.ts +6 -0
- package/lib/Services/Collection/collection.operation.js +10 -0
- package/lib/Services/Collection/collection.operation.js.map +1 -1
- package/lib/Services/Index/Index.service.d.ts +20 -0
- package/lib/Services/Index/Index.service.js +25 -1
- package/lib/Services/Index/Index.service.js.map +1 -1
- package/lib/Services/Indexation.operation.d.ts +4 -0
- package/lib/Services/Indexation.operation.js +13 -4
- package/lib/Services/Indexation.operation.js.map +1 -1
- package/lib/client/AxioDBCloud.client.d.ts +20 -1
- package/lib/client/AxioDBCloud.client.js +54 -3
- package/lib/client/AxioDBCloud.client.js.map +1 -1
- package/lib/client/CollectionProxy.d.ts +4 -0
- package/lib/client/CollectionProxy.js +11 -0
- package/lib/client/CollectionProxy.js.map +1 -1
- package/lib/client/types/client.types.d.ts +8 -0
- package/lib/client/types/client.types.js.map +1 -1
- package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +2 -0
- package/lib/config/Keys/Permissions.d.ts +13 -0
- package/lib/config/Keys/Permissions.js +21 -1
- package/lib/config/Keys/Permissions.js.map +1 -1
- package/lib/server/config/keys.js +26 -0
- package/lib/server/config/keys.js.map +1 -1
- package/lib/server/controller/Auth/Auth.controller.js +9 -0
- package/lib/server/controller/Auth/Auth.controller.js.map +1 -1
- package/lib/server/controller/Index/Index.controller.d.ts +35 -0
- package/lib/server/controller/Index/Index.controller.js +148 -0
- package/lib/server/controller/Index/Index.controller.js.map +1 -0
- package/lib/server/router/Router.js +6 -0
- package/lib/server/router/Router.js.map +1 -1
- package/lib/server/router/Routers/Index.routes.d.ts +7 -0
- package/lib/server/router/Routers/Index.routes.js +38 -0
- package/lib/server/router/Routers/Index.routes.js.map +1 -0
- package/lib/tcp/config/keys.d.ts +8 -0
- package/lib/tcp/config/keys.js +8 -0
- package/lib/tcp/config/keys.js.map +1 -1
- package/lib/tcp/config/permissions.d.ts +16 -0
- package/lib/tcp/config/permissions.js +46 -0
- package/lib/tcp/config/permissions.js.map +1 -0
- package/lib/tcp/config/protocol.js +13 -0
- package/lib/tcp/config/protocol.js.map +1 -1
- package/lib/tcp/config/server.d.ts +1 -1
- package/lib/tcp/config/server.js +28 -6
- package/lib/tcp/config/server.js.map +1 -1
- package/lib/tcp/connection/ConnectionManager.d.ts +19 -0
- package/lib/tcp/connection/ConnectionManager.js +31 -0
- package/lib/tcp/connection/ConnectionManager.js.map +1 -1
- package/lib/tcp/connection/RequestContext.d.ts +4 -1
- package/lib/tcp/connection/RequestContext.js +4 -1
- package/lib/tcp/connection/RequestContext.js.map +1 -1
- package/lib/tcp/handler/CommandHandler.d.ts +5 -1
- package/lib/tcp/handler/CommandHandler.js +34 -4
- package/lib/tcp/handler/CommandHandler.js.map +1 -1
- package/lib/tcp/handler/handlers/Auth.handler.d.ts +16 -0
- package/lib/tcp/handler/handlers/Auth.handler.js +91 -0
- package/lib/tcp/handler/handlers/Auth.handler.js.map +1 -0
- package/lib/tcp/handler/handlers/Operation.handler.d.ts +4 -0
- package/lib/tcp/handler/handlers/Operation.handler.js +27 -0
- package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
- package/lib/tcp/types/command.types.d.ts +2 -0
- package/lib/tcp/types/command.types.js +5 -0
- package/lib/tcp/types/command.types.js.map +1 -1
- package/lib/tcp/types/protocol.types.d.ts +2 -0
- package/lib/tcp/types/protocol.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Index.controller.js","sourceRoot":"","sources":["../../../../source/server/controller/Index/Index.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ const promises_1 = require("node:fs/promises");
|
|
|
20
20
|
// All Sub Routers
|
|
21
21
|
const DB_routes_1 = __importDefault(require("./Routers/DB.routes"));
|
|
22
22
|
const Collection_routes_1 = __importDefault(require("./Routers/Collection.routes"));
|
|
23
|
+
const Index_routes_1 = __importDefault(require("./Routers/Index.routes"));
|
|
23
24
|
const Operation_routes_1 = __importDefault(require("./Routers/Operation.routes"));
|
|
24
25
|
const Auth_routes_1 = __importDefault(require("./Routers/Auth.routes"));
|
|
25
26
|
const UserManagement_routes_1 = __importDefault(require("./Routers/UserManagement.routes"));
|
|
@@ -81,6 +82,11 @@ function mainRouter(fastify, options, done) {
|
|
|
81
82
|
prefix: "/operation",
|
|
82
83
|
AxioDBInstance: AxioDBInstance, // Pass the AxioDB instance to the Operation router
|
|
83
84
|
});
|
|
85
|
+
// Register Index Router
|
|
86
|
+
fastify.register(Index_routes_1.default, {
|
|
87
|
+
prefix: "/index",
|
|
88
|
+
AxioDBInstance: AxioDBInstance, // Pass the AxioDB instance to the Index router
|
|
89
|
+
});
|
|
84
90
|
// Register Auth Router (login is public, session/password endpoints require auth)
|
|
85
91
|
fastify.register(Auth_routes_1.default, { prefix: "/auth" });
|
|
86
92
|
// Register User & Role Management Routers (Super Admin only)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../source/server/router/Router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../source/server/router/Router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FastifyInstance, FastifyPluginOptions } from "fastify";
|
|
2
|
+
import { AxioDB } from "../../../Services/Indexation.operation";
|
|
3
|
+
interface RouterOptions extends FastifyPluginOptions {
|
|
4
|
+
AxioDBInstance: AxioDB;
|
|
5
|
+
}
|
|
6
|
+
export default function indexRouter(fastify: FastifyInstance, options: RouterOptions): Promise<void>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.default = indexRouter;
|
|
16
|
+
const Index_controller_1 = __importDefault(require("../../controller/Index/Index.controller"));
|
|
17
|
+
const auth_middleware_1 = require("../../middleware/auth.middleware");
|
|
18
|
+
const permission_middleware_1 = require("../../middleware/permission.middleware");
|
|
19
|
+
const Permissions_1 = require("../../../config/Keys/Permissions");
|
|
20
|
+
// Index Router
|
|
21
|
+
function indexRouter(fastify, options) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const { AxioDBInstance } = options;
|
|
24
|
+
// List Indexes
|
|
25
|
+
fastify.get("/list", {
|
|
26
|
+
preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.INDEX_VIEW)],
|
|
27
|
+
}, (request) => __awaiter(this, void 0, void 0, function* () { return new Index_controller_1.default(AxioDBInstance).getIndexes(request); }));
|
|
28
|
+
// Create Index
|
|
29
|
+
fastify.post("/create", {
|
|
30
|
+
preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.INDEX_CREATE)],
|
|
31
|
+
}, (request) => __awaiter(this, void 0, void 0, function* () { return new Index_controller_1.default(AxioDBInstance).createIndex(request); }));
|
|
32
|
+
// Delete Index
|
|
33
|
+
fastify.delete("/delete", {
|
|
34
|
+
preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.INDEX_DELETE)],
|
|
35
|
+
}, (request) => __awaiter(this, void 0, void 0, function* () { return new Index_controller_1.default(AxioDBInstance).deleteIndex(request); }));
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=Index.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Index.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/Index.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,+FAAsE;AACtE,sEAAqF;AACrF,kFAA2E;AAC3E,kEAA+D;AAO/D,eAAe;AACf,qBACE,OAAwB,EACxB,OAAsB;;QAEtB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,eAAe;QACf,OAAO,CAAC,GAAG,CACT,OAAO,EACP;YACE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,UAAU,CAAC,CAAC;SAC3F,EACD,CAAO,OAAO,EAAE,EAAE,gDAAC,OAAA,IAAI,0BAAe,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC3E,CAAC;QAEF,eAAe;QACf,OAAO,CAAC,IAAI,CACV,SAAS,EACT;YACE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,YAAY,CAAC,CAAC;SAC7F,EACD,CAAO,OAAO,EAAE,EAAE,gDAAC,OAAA,IAAI,0BAAe,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC5E,CAAC;QAEF,eAAe;QACf,OAAO,CAAC,MAAM,CACZ,SAAS,EACT;YACE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,YAAY,CAAC,CAAC;SAC7F,EACD,CAAO,OAAO,EAAE,EAAE,gDAAC,OAAA,IAAI,0BAAe,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC5E,CAAC;IACJ,CAAC;CAAA"}
|
package/lib/tcp/config/keys.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare const StatusCode: {
|
|
|
26
26
|
readonly CONFLICT: 409;
|
|
27
27
|
readonly PAYLOAD_TOO_LARGE: 413;
|
|
28
28
|
readonly UNPROCESSABLE_ENTITY: 422;
|
|
29
|
+
readonly TOO_MANY_REQUESTS: 429;
|
|
29
30
|
readonly INTERNAL_SERVER_ERROR: 500;
|
|
30
31
|
readonly NOT_IMPLEMENTED: 501;
|
|
31
32
|
readonly SERVICE_UNAVAILABLE: 503;
|
|
@@ -40,6 +41,12 @@ export declare const ErrorMessage: {
|
|
|
40
41
|
readonly REQUEST_TIMEOUT: 'Request timeout';
|
|
41
42
|
readonly SERVER_OVERLOAD: 'Server is overloaded';
|
|
42
43
|
readonly INTERNAL_ERROR: 'Internal server error';
|
|
44
|
+
readonly AUTH_REQUIRED: 'Authentication required. Send an AUTHENTICATE command with username and password.';
|
|
45
|
+
readonly INVALID_CREDENTIALS: 'Invalid username or password';
|
|
46
|
+
readonly INSUFFICIENT_PERMISSIONS: 'Insufficient permissions for this operation';
|
|
47
|
+
readonly RESERVED_DATABASE: 'This is a reserved system database';
|
|
48
|
+
readonly TOO_MANY_LOGIN_ATTEMPTS: 'Too many failed login attempts. Try again later.';
|
|
49
|
+
readonly PASSWORD_CHANGE_REQUIRED: 'This account must change its password before it can be used over TCP. Log into the Control Server GUI to change the password, or authenticate with a different account that has already completed its password change.';
|
|
43
50
|
};
|
|
44
51
|
export declare const SuccessMessage: {
|
|
45
52
|
readonly PING_PONG: 'PONG';
|
|
@@ -56,4 +63,5 @@ export declare const SuccessMessage: {
|
|
|
56
63
|
readonly DOCUMENTS_DELETED: 'Documents deleted successfully';
|
|
57
64
|
readonly INDEX_CREATED: 'Index created successfully';
|
|
58
65
|
readonly INDEX_DROPPED: 'Index dropped successfully';
|
|
66
|
+
readonly AUTHENTICATED: 'Authenticated successfully';
|
|
59
67
|
};
|
package/lib/tcp/config/keys.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.StatusCode = {
|
|
|
37
37
|
CONFLICT: 409,
|
|
38
38
|
PAYLOAD_TOO_LARGE: 413,
|
|
39
39
|
UNPROCESSABLE_ENTITY: 422,
|
|
40
|
+
TOO_MANY_REQUESTS: 429,
|
|
40
41
|
// Server Errors
|
|
41
42
|
INTERNAL_SERVER_ERROR: 500,
|
|
42
43
|
NOT_IMPLEMENTED: 501,
|
|
@@ -53,6 +54,12 @@ exports.ErrorMessage = {
|
|
|
53
54
|
REQUEST_TIMEOUT: 'Request timeout',
|
|
54
55
|
SERVER_OVERLOAD: 'Server is overloaded',
|
|
55
56
|
INTERNAL_ERROR: 'Internal server error',
|
|
57
|
+
AUTH_REQUIRED: 'Authentication required. Send an AUTHENTICATE command with username and password.',
|
|
58
|
+
INVALID_CREDENTIALS: 'Invalid username or password',
|
|
59
|
+
INSUFFICIENT_PERMISSIONS: 'Insufficient permissions for this operation',
|
|
60
|
+
RESERVED_DATABASE: 'This is a reserved system database',
|
|
61
|
+
TOO_MANY_LOGIN_ATTEMPTS: 'Too many failed login attempts. Try again later.',
|
|
62
|
+
PASSWORD_CHANGE_REQUIRED: 'This account must change its password before it can be used over TCP. Log into the Control Server GUI to change the password, or authenticate with a different account that has already completed its password change.',
|
|
56
63
|
};
|
|
57
64
|
// Success Messages
|
|
58
65
|
exports.SuccessMessage = {
|
|
@@ -70,5 +77,6 @@ exports.SuccessMessage = {
|
|
|
70
77
|
DOCUMENTS_DELETED: 'Documents deleted successfully',
|
|
71
78
|
INDEX_CREATED: 'Index created successfully',
|
|
72
79
|
INDEX_DROPPED: 'Index dropped successfully',
|
|
80
|
+
AUTHENTICATED: 'Authenticated successfully',
|
|
73
81
|
};
|
|
74
82
|
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/tcp/config/keys.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uBAAuB;AACV,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAC5C,QAAA,eAAe,GAAG,IAAI,CAAC,CAAC,iCAAiC;AACzD,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEtD,iCAAiC;AACpB,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC,aAAa;AAC9C,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AACzC,QAAA,iBAAiB,GAAG,IAAI,CAAC,CAAC,YAAY;AAEnD,6BAA6B;AAChB,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,uBAAuB,GAAG,IAAI,CAAC,CAAC,WAAW;AAC3C,QAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEvD,yBAAyB;AACZ,QAAA,oBAAoB,GAAG,CAAC,CAAC,CAAC,mCAAmC;AAC7D,QAAA,QAAQ,GAAG,MAAM,CAAC;AAE/B,uBAAuB;AACV,QAAA,mBAAmB,GAAG,IAAI,CAAC,CAAC,MAAM;AAClC,QAAA,eAAe,GAAG,QAAA,gBAAgB,GAAG,QAAA,oBAAoB,CAAC;AAEvE,4BAA4B;AACf,QAAA,UAAU,GAAG;IACxB,UAAU;IACV,EAAE,EAAE,GAAG;IACP,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IAEf,gBAAgB;IAChB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,iBAAiB,EAAE,GAAG;IACtB,oBAAoB,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/tcp/config/keys.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uBAAuB;AACV,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAC5C,QAAA,eAAe,GAAG,IAAI,CAAC,CAAC,iCAAiC;AACzD,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEtD,iCAAiC;AACpB,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC,aAAa;AAC9C,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AACzC,QAAA,iBAAiB,GAAG,IAAI,CAAC,CAAC,YAAY;AAEnD,6BAA6B;AAChB,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,uBAAuB,GAAG,IAAI,CAAC,CAAC,WAAW;AAC3C,QAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEvD,yBAAyB;AACZ,QAAA,oBAAoB,GAAG,CAAC,CAAC,CAAC,mCAAmC;AAC7D,QAAA,QAAQ,GAAG,MAAM,CAAC;AAE/B,uBAAuB;AACV,QAAA,mBAAmB,GAAG,IAAI,CAAC,CAAC,MAAM;AAClC,QAAA,eAAe,GAAG,QAAA,gBAAgB,GAAG,QAAA,oBAAoB,CAAC;AAEvE,4BAA4B;AACf,QAAA,UAAU,GAAG;IACxB,UAAU;IACV,EAAE,EAAE,GAAG;IACP,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IAEf,gBAAgB;IAChB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,iBAAiB,EAAE,GAAG;IACtB,oBAAoB,EAAE,GAAG;IACzB,iBAAiB,EAAE,GAAG;IAEtB,gBAAgB;IAChB,qBAAqB,EAAE,GAAG;IAC1B,eAAe,EAAE,GAAG;IACpB,mBAAmB,EAAE,GAAG;CAChB,CAAC;AAEX,iBAAiB;AACJ,QAAA,YAAY,GAAG;IAC1B,sBAAsB,EAAE,wBAAwB;IAChD,iBAAiB,EAAE,8BAA8B;IACjD,eAAe,EAAE,iBAAiB;IAClC,uBAAuB,EAAE,6BAA6B;IACtD,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,sBAAsB;IACvC,cAAc,EAAE,uBAAuB;IACvC,aAAa,EAAE,mFAAmF;IAClG,mBAAmB,EAAE,8BAA8B;IACnD,wBAAwB,EAAE,6CAA6C;IACvE,iBAAiB,EAAE,oCAAoC;IACvD,uBAAuB,EAAE,kDAAkD;IAC3E,wBAAwB,EACtB,wNAAwN;CAClN,CAAC;AAEX,mBAAmB;AACN,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,2BAA2B;IACzC,UAAU,EAAE,+BAA+B;IAC3C,UAAU,EAAE,+BAA+B;IAC3C,kBAAkB,EAAE,iCAAiC;IACrD,kBAAkB,EAAE,iCAAiC;IACrD,iBAAiB,EAAE,gCAAgC;IACnD,kBAAkB,EAAE,iCAAiC;IACrD,gBAAgB,EAAE,+BAA+B;IACjD,iBAAiB,EAAE,gCAAgC;IACnD,gBAAgB,EAAE,+BAA+B;IACjD,iBAAiB,EAAE,gCAAgC;IACnD,aAAa,EAAE,4BAA4B;IAC3C,aAAa,EAAE,4BAA4B;IAC3C,aAAa,EAAE,4BAA4B;CACnC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CommandType } from '../types/command.types';
|
|
2
|
+
import { PermissionKey } from '../../config/Keys/Permissions';
|
|
3
|
+
/**
|
|
4
|
+
* Maps each data-plane TCP command to the RBAC permission key required to run it.
|
|
5
|
+
* Mirrors the GUI's per-route `requirePermission(key)` chain (see
|
|
6
|
+
* `source/server/router/Routers/*.routes.ts`) so TCP and GUI enforce identical rules
|
|
7
|
+
* against the same `config` DB users/roles.
|
|
8
|
+
*
|
|
9
|
+
* Commands with no entry here (and not in `TCP_AUTH_EXEMPT_COMMANDS`) still require a
|
|
10
|
+
* successful AUTHENTICATE, but no specific permission - currently only
|
|
11
|
+
* BEGIN/COMMIT/ROLLBACK_TRANSACTION, which fall straight through to the existing
|
|
12
|
+
* `NOT_IMPLEMENTED` response.
|
|
13
|
+
*/
|
|
14
|
+
export declare const TCP_COMMAND_PERMISSIONS: Partial<Record<CommandType, PermissionKey>>;
|
|
15
|
+
/** Commands that never require authentication, even when the TCP server has `TCPAuth` enabled. */
|
|
16
|
+
export declare const TCP_AUTH_EXEMPT_COMMANDS: ReadonlySet<CommandType>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TCP_AUTH_EXEMPT_COMMANDS = exports.TCP_COMMAND_PERMISSIONS = void 0;
|
|
4
|
+
const command_types_1 = require("../types/command.types");
|
|
5
|
+
const Permissions_1 = require("../../config/Keys/Permissions");
|
|
6
|
+
/**
|
|
7
|
+
* Maps each data-plane TCP command to the RBAC permission key required to run it.
|
|
8
|
+
* Mirrors the GUI's per-route `requirePermission(key)` chain (see
|
|
9
|
+
* `source/server/router/Routers/*.routes.ts`) so TCP and GUI enforce identical rules
|
|
10
|
+
* against the same `config` DB users/roles.
|
|
11
|
+
*
|
|
12
|
+
* Commands with no entry here (and not in `TCP_AUTH_EXEMPT_COMMANDS`) still require a
|
|
13
|
+
* successful AUTHENTICATE, but no specific permission - currently only
|
|
14
|
+
* BEGIN/COMMIT/ROLLBACK_TRANSACTION, which fall straight through to the existing
|
|
15
|
+
* `NOT_IMPLEMENTED` response.
|
|
16
|
+
*/
|
|
17
|
+
exports.TCP_COMMAND_PERMISSIONS = {
|
|
18
|
+
[command_types_1.CommandType.CREATE_DB]: Permissions_1.PERMISSIONS.DB_CREATE,
|
|
19
|
+
[command_types_1.CommandType.DELETE_DB]: Permissions_1.PERMISSIONS.DB_DELETE,
|
|
20
|
+
[command_types_1.CommandType.DB_EXISTS]: Permissions_1.PERMISSIONS.DB_VIEW,
|
|
21
|
+
[command_types_1.CommandType.GET_INSTANCE_INFO]: Permissions_1.PERMISSIONS.DASHBOARD_VIEW,
|
|
22
|
+
[command_types_1.CommandType.CREATE_COLLECTION]: Permissions_1.PERMISSIONS.COLLECTION_CREATE,
|
|
23
|
+
[command_types_1.CommandType.DELETE_COLLECTION]: Permissions_1.PERMISSIONS.COLLECTION_DELETE,
|
|
24
|
+
[command_types_1.CommandType.COLLECTION_EXISTS]: Permissions_1.PERMISSIONS.COLLECTION_VIEW,
|
|
25
|
+
[command_types_1.CommandType.GET_COLLECTION_INFO]: Permissions_1.PERMISSIONS.COLLECTION_VIEW,
|
|
26
|
+
[command_types_1.CommandType.INSERT_DOCUMENT]: Permissions_1.PERMISSIONS.DOCUMENT_CREATE,
|
|
27
|
+
[command_types_1.CommandType.INSERT_MANY_DOCUMENTS]: Permissions_1.PERMISSIONS.DOCUMENT_CREATE,
|
|
28
|
+
[command_types_1.CommandType.QUERY_DOCUMENTS]: Permissions_1.PERMISSIONS.DOCUMENT_QUERY,
|
|
29
|
+
[command_types_1.CommandType.QUERY_BY_ID]: Permissions_1.PERMISSIONS.DOCUMENT_VIEW,
|
|
30
|
+
[command_types_1.CommandType.UPDATE_DOCUMENT_BY_ID]: Permissions_1.PERMISSIONS.DOCUMENT_UPDATE,
|
|
31
|
+
[command_types_1.CommandType.UPDATE_DOCUMENTS_BY_QUERY]: Permissions_1.PERMISSIONS.DOCUMENT_UPDATE,
|
|
32
|
+
[command_types_1.CommandType.DELETE_DOCUMENT_BY_ID]: Permissions_1.PERMISSIONS.DOCUMENT_DELETE,
|
|
33
|
+
[command_types_1.CommandType.DELETE_DOCUMENTS_BY_QUERY]: Permissions_1.PERMISSIONS.DOCUMENT_DELETE,
|
|
34
|
+
[command_types_1.CommandType.AGGREGATE]: Permissions_1.PERMISSIONS.DOCUMENT_AGGREGATE,
|
|
35
|
+
[command_types_1.CommandType.TOTAL_DOCUMENTS]: Permissions_1.PERMISSIONS.DOCUMENT_VIEW,
|
|
36
|
+
[command_types_1.CommandType.CREATE_INDEX]: Permissions_1.PERMISSIONS.INDEX_CREATE,
|
|
37
|
+
[command_types_1.CommandType.DROP_INDEX]: Permissions_1.PERMISSIONS.INDEX_DELETE,
|
|
38
|
+
[command_types_1.CommandType.LIST_INDEXES]: Permissions_1.PERMISSIONS.INDEX_VIEW,
|
|
39
|
+
};
|
|
40
|
+
/** Commands that never require authentication, even when the TCP server has `TCPAuth` enabled. */
|
|
41
|
+
exports.TCP_AUTH_EXEMPT_COMMANDS = new Set([
|
|
42
|
+
command_types_1.CommandType.PING,
|
|
43
|
+
command_types_1.CommandType.DISCONNECT,
|
|
44
|
+
command_types_1.CommandType.AUTHENTICATE,
|
|
45
|
+
]);
|
|
46
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../source/tcp/config/permissions.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,+DAA2E;AAE3E;;;;;;;;;;GAUG;AACU,QAAA,uBAAuB,GAAgD;IAClF,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,SAAS;IAC9C,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,SAAS;IAC9C,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,OAAO;IAC5C,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,cAAc;IAE3D,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,iBAAiB;IAC9D,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,iBAAiB;IAC9D,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAC5D,CAAC,2BAAW,CAAC,mBAAmB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAE9D,CAAC,2BAAW,CAAC,eAAe,CAAC,EAAE,yBAAW,CAAC,eAAe;IAC1D,CAAC,2BAAW,CAAC,qBAAqB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAChE,CAAC,2BAAW,CAAC,eAAe,CAAC,EAAE,yBAAW,CAAC,cAAc;IACzD,CAAC,2BAAW,CAAC,WAAW,CAAC,EAAE,yBAAW,CAAC,aAAa;IACpD,CAAC,2BAAW,CAAC,qBAAqB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAChE,CAAC,2BAAW,CAAC,yBAAyB,CAAC,EAAE,yBAAW,CAAC,eAAe;IACpE,CAAC,2BAAW,CAAC,qBAAqB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAChE,CAAC,2BAAW,CAAC,yBAAyB,CAAC,EAAE,yBAAW,CAAC,eAAe;IACpE,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,kBAAkB;IACvD,CAAC,2BAAW,CAAC,eAAe,CAAC,EAAE,yBAAW,CAAC,aAAa;IAExD,CAAC,2BAAW,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,YAAY;IACpD,CAAC,2BAAW,CAAC,UAAU,CAAC,EAAE,yBAAW,CAAC,YAAY;IAClD,CAAC,2BAAW,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,UAAU;CACnD,CAAC;AAEF,kGAAkG;AACrF,QAAA,wBAAwB,GAA6B,IAAI,GAAG,CAAC;IACxE,2BAAW,CAAC,IAAI;IAChB,2BAAW,CAAC,UAAU;IACtB,2BAAW,CAAC,YAAY;CACzB,CAAC,CAAC"}
|
|
@@ -192,9 +192,22 @@ class MessageValidator {
|
|
|
192
192
|
throw new Error(`${keys_1.ErrorMessage.MISSING_REQUIRED_PARAMS}: dbName, collectionName, indexName`);
|
|
193
193
|
}
|
|
194
194
|
break;
|
|
195
|
+
case command_types_1.CommandType.LIST_INDEXES:
|
|
196
|
+
if (!params.dbName || !params.collectionName) {
|
|
197
|
+
throw new Error(`${keys_1.ErrorMessage.MISSING_REQUIRED_PARAMS}: dbName, collectionName`);
|
|
198
|
+
}
|
|
199
|
+
break;
|
|
200
|
+
case command_types_1.CommandType.AUTHENTICATE:
|
|
201
|
+
if (!params.username || !params.password) {
|
|
202
|
+
throw new Error(`${keys_1.ErrorMessage.MISSING_REQUIRED_PARAMS}: username, password`);
|
|
203
|
+
}
|
|
204
|
+
break;
|
|
195
205
|
case command_types_1.CommandType.PING:
|
|
196
206
|
case command_types_1.CommandType.DISCONNECT:
|
|
197
207
|
case command_types_1.CommandType.GET_INSTANCE_INFO:
|
|
208
|
+
case command_types_1.CommandType.BEGIN_TRANSACTION:
|
|
209
|
+
case command_types_1.CommandType.COMMIT_TRANSACTION:
|
|
210
|
+
case command_types_1.CommandType.ROLLBACK_TRANSACTION:
|
|
198
211
|
// No required params
|
|
199
212
|
break;
|
|
200
213
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../source/tcp/config/protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../source/tcp/config/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,4 @@ import { AxioDB } from '../../Services/Indexation.operation';
|
|
|
4
4
|
* TCP Server for AxioDB
|
|
5
5
|
* Provides remote access to AxioDB via TCP protocol
|
|
6
6
|
*/
|
|
7
|
-
export default function createAxioDBTCPServer(axioDB: AxioDB, port?: number): Promise<Server>;
|
|
7
|
+
export default function createAxioDBTCPServer(axioDB: AxioDB, port?: number, requireAuth?: boolean): Promise<Server>;
|
package/lib/tcp/config/server.js
CHANGED
|
@@ -8,6 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.default = createAxioDBTCPServer;
|
|
13
16
|
const net_1 = require("net");
|
|
@@ -17,17 +20,25 @@ const RequestContext_1 = require("../connection/RequestContext");
|
|
|
17
20
|
const protocol_1 = require("./protocol");
|
|
18
21
|
const keys_1 = require("./keys");
|
|
19
22
|
const command_types_1 = require("../types/command.types");
|
|
23
|
+
const AuthEvents_service_1 = __importDefault(require("../../Services/Auth/AuthEvents.service"));
|
|
20
24
|
/**
|
|
21
25
|
* TCP Server for AxioDB
|
|
22
26
|
* Provides remote access to AxioDB via TCP protocol
|
|
23
27
|
*/
|
|
24
28
|
function createAxioDBTCPServer(axioDB_1) {
|
|
25
|
-
return __awaiter(this, arguments, void 0, function* (axioDB, port = keys_1.DEFAULT_TCP_PORT) {
|
|
29
|
+
return __awaiter(this, arguments, void 0, function* (axioDB, port = keys_1.DEFAULT_TCP_PORT, requireAuth = false) {
|
|
26
30
|
const connectionManager = new ConnectionManager_1.ConnectionManager();
|
|
27
|
-
const commandHandler = new CommandHandler_1.CommandHandler(axioDB);
|
|
31
|
+
const commandHandler = new CommandHandler_1.CommandHandler(axioDB, connectionManager, requireAuth);
|
|
28
32
|
let server;
|
|
29
33
|
// Setup connection manager event handlers
|
|
30
34
|
setupConnectionManagerHandlers(connectionManager);
|
|
35
|
+
// Bridge GUI-side auth mutations (role change, password reset, deletion) into this
|
|
36
|
+
// TCP server's own connection state - see AuthEvents.service.ts. AxioDB is a
|
|
37
|
+
// singleton with at most one TCP server per process, so this is a single
|
|
38
|
+
// process-lifetime subscription, not a per-connection leak.
|
|
39
|
+
AuthEvents_service_1.default.on('user-revoked', (username) => {
|
|
40
|
+
connectionManager.revokeAuthForUser(username);
|
|
41
|
+
});
|
|
31
42
|
// Create TCP server
|
|
32
43
|
server = (0, net_1.createServer)((socket) => {
|
|
33
44
|
handleNewConnection(socket, connectionManager, commandHandler);
|
|
@@ -94,12 +105,23 @@ function handleNewConnection(socket, connectionManager, commandHandler) {
|
|
|
94
105
|
socket.end();
|
|
95
106
|
return;
|
|
96
107
|
}
|
|
97
|
-
// Setup message handler
|
|
98
|
-
|
|
108
|
+
// Setup message handler. Registered as a named listener (rather than an anonymous
|
|
109
|
+
// closure kept forever) so it can be removed on disconnect - otherwise every past
|
|
110
|
+
// connection leaves a permanent no-op listener on the shared ConnectionManager,
|
|
111
|
+
// and every subsequent message pays O(n) dead-listener invocations.
|
|
112
|
+
const onMessage = (connId, message, clientSocket) => __awaiter(this, void 0, void 0, function* () {
|
|
99
113
|
if (connId !== connectionId)
|
|
100
114
|
return; // Only handle messages for this connection
|
|
101
115
|
yield handleMessage(connId, message, clientSocket, commandHandler, connectionManager);
|
|
102
|
-
})
|
|
116
|
+
});
|
|
117
|
+
connectionManager.on('message', onMessage);
|
|
118
|
+
const onConnectionRemoved = (removedConnectionId) => {
|
|
119
|
+
if (removedConnectionId !== connectionId)
|
|
120
|
+
return; // Not this connection - keep listening
|
|
121
|
+
connectionManager.off('message', onMessage);
|
|
122
|
+
connectionManager.off('connection:removed', onConnectionRemoved);
|
|
123
|
+
};
|
|
124
|
+
connectionManager.on('connection:removed', onConnectionRemoved);
|
|
103
125
|
}
|
|
104
126
|
/**
|
|
105
127
|
* Handle incoming message
|
|
@@ -108,7 +130,7 @@ function handleMessage(connectionId, message, socket, commandHandler, connection
|
|
|
108
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
109
131
|
try {
|
|
110
132
|
// Create request context
|
|
111
|
-
const context = new RequestContext_1.RequestContext(message, socket);
|
|
133
|
+
const context = new RequestContext_1.RequestContext(message, socket, connectionId);
|
|
112
134
|
// Handle the request
|
|
113
135
|
const response = yield commandHandler.handleRequest(context);
|
|
114
136
|
// Send response
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../source/tcp/config/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../source/tcp/config/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { Socket } from 'net';
|
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { MessageBuffer } from '../config/protocol';
|
|
4
4
|
import { TCPResponse } from '../types/protocol.types';
|
|
5
|
+
import { AuthenticatedUser } from '../../config/Interfaces/Auth/auth.interface';
|
|
5
6
|
/**
|
|
6
7
|
* Connection metadata
|
|
7
8
|
*/
|
|
@@ -11,6 +12,8 @@ interface ConnectionInfo {
|
|
|
11
12
|
connectedAt: number;
|
|
12
13
|
lastActivity: number;
|
|
13
14
|
requestCount: number;
|
|
15
|
+
/** Set once a successful AUTHENTICATE command has run on this connection. Lives for the socket's lifetime. */
|
|
16
|
+
authUser?: AuthenticatedUser;
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
19
|
* Connection Manager - Manages all active TCP connections
|
|
@@ -35,6 +38,22 @@ export declare class ConnectionManager extends EventEmitter {
|
|
|
35
38
|
* Get connection info
|
|
36
39
|
*/
|
|
37
40
|
getConnection(connectionId: string): ConnectionInfo | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Mark a connection as authenticated, following a successful AUTHENTICATE command.
|
|
43
|
+
*/
|
|
44
|
+
setAuthUser(connectionId: string, authUser: AuthenticatedUser): void;
|
|
45
|
+
/**
|
|
46
|
+
* Get the authenticated identity for a connection, if AUTHENTICATE has succeeded.
|
|
47
|
+
*/
|
|
48
|
+
getAuthUser(connectionId: string): AuthenticatedUser | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Clears the cached authenticated identity for every connection belonging to a
|
|
51
|
+
* given username, following a role change, password reset, or account deletion
|
|
52
|
+
* elsewhere (see AuthEvents). The connection itself is left open - the next
|
|
53
|
+
* command on it will simply be treated as unauthenticated again, mirroring how a
|
|
54
|
+
* revoked GUI session cookie stops working without forcibly closing the browser tab.
|
|
55
|
+
*/
|
|
56
|
+
revokeAuthForUser(username: string): void;
|
|
38
57
|
/**
|
|
39
58
|
* Get total active connections
|
|
40
59
|
*/
|
|
@@ -74,6 +74,37 @@ class ConnectionManager extends events_1.EventEmitter {
|
|
|
74
74
|
getConnection(connectionId) {
|
|
75
75
|
return this.connections.get(connectionId);
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Mark a connection as authenticated, following a successful AUTHENTICATE command.
|
|
79
|
+
*/
|
|
80
|
+
setAuthUser(connectionId, authUser) {
|
|
81
|
+
const info = this.connections.get(connectionId);
|
|
82
|
+
if (info) {
|
|
83
|
+
info.authUser = authUser;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the authenticated identity for a connection, if AUTHENTICATE has succeeded.
|
|
88
|
+
*/
|
|
89
|
+
getAuthUser(connectionId) {
|
|
90
|
+
var _a;
|
|
91
|
+
return (_a = this.connections.get(connectionId)) === null || _a === void 0 ? void 0 : _a.authUser;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Clears the cached authenticated identity for every connection belonging to a
|
|
95
|
+
* given username, following a role change, password reset, or account deletion
|
|
96
|
+
* elsewhere (see AuthEvents). The connection itself is left open - the next
|
|
97
|
+
* command on it will simply be treated as unauthenticated again, mirroring how a
|
|
98
|
+
* revoked GUI session cookie stops working without forcibly closing the browser tab.
|
|
99
|
+
*/
|
|
100
|
+
revokeAuthForUser(username) {
|
|
101
|
+
var _a;
|
|
102
|
+
for (const info of this.connections.values()) {
|
|
103
|
+
if (((_a = info.authUser) === null || _a === void 0 ? void 0 : _a.username) === username) {
|
|
104
|
+
info.authUser = undefined;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
77
108
|
/**
|
|
78
109
|
* Get total active connections
|
|
79
110
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../../source/tcp/connection/ConnectionManager.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AACtC,iDAAkE;AAElE,yCAA2E;
|
|
1
|
+
{"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../../source/tcp/connection/ConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,12 @@ import { TCPRequest } from '../types/protocol.types';
|
|
|
7
7
|
export declare class RequestContext {
|
|
8
8
|
readonly request: TCPRequest;
|
|
9
9
|
readonly socket: Socket;
|
|
10
|
+
readonly connectionId: string;
|
|
10
11
|
readonly remoteAddress: string;
|
|
12
|
+
/** Bare client IP (no port), used as the login rate limiter's key. */
|
|
13
|
+
readonly remoteIp: string;
|
|
11
14
|
readonly timestamp: number;
|
|
12
|
-
constructor(request: TCPRequest, socket: Socket);
|
|
15
|
+
constructor(request: TCPRequest, socket: Socket, connectionId: string);
|
|
13
16
|
/**
|
|
14
17
|
* Get request ID (correlation ID)
|
|
15
18
|
*/
|
|
@@ -6,9 +6,12 @@ exports.RequestContext = void 0;
|
|
|
6
6
|
* Provides a unified interface similar to HTTP request/response
|
|
7
7
|
*/
|
|
8
8
|
class RequestContext {
|
|
9
|
-
constructor(request, socket) {
|
|
9
|
+
constructor(request, socket, connectionId) {
|
|
10
|
+
var _a;
|
|
10
11
|
this.request = request;
|
|
11
12
|
this.socket = socket;
|
|
13
|
+
this.connectionId = connectionId;
|
|
14
|
+
this.remoteIp = (_a = socket.remoteAddress) !== null && _a !== void 0 ? _a : 'unknown';
|
|
12
15
|
this.remoteAddress = `${socket.remoteAddress}:${socket.remotePort}`;
|
|
13
16
|
this.timestamp = Date.now();
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.js","sourceRoot":"","sources":["../../../source/tcp/connection/RequestContext.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH;
|
|
1
|
+
{"version":3,"file":"RequestContext.js","sourceRoot":"","sources":["../../../source/tcp/connection/RequestContext.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH;IASE,YAAY,OAAmB,EAAE,MAAc,EAAE,YAAoB;;QACnE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,SAAG,MAAM,CAAC,aAAa,mCAAI,SAAS,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { AxioDB } from '../../Services/Indexation.operation';
|
|
2
2
|
import { TCPResponse } from '../types/protocol.types';
|
|
3
3
|
import { RequestContext } from '../connection/RequestContext';
|
|
4
|
+
import { ConnectionManager } from '../connection/ConnectionManager';
|
|
4
5
|
/**
|
|
5
6
|
* Command Handler - Main dispatcher for TCP commands
|
|
6
7
|
* Routes commands to appropriate handlers
|
|
7
8
|
*/
|
|
8
9
|
export declare class CommandHandler {
|
|
9
10
|
private axioDB;
|
|
11
|
+
private connectionManager;
|
|
12
|
+
private requireAuth;
|
|
10
13
|
private dbHandler;
|
|
11
14
|
private collectionHandler;
|
|
12
15
|
private operationHandler;
|
|
13
|
-
|
|
16
|
+
private authHandler;
|
|
17
|
+
constructor(axioDB: AxioDB, connectionManager: ConnectionManager, requireAuth?: boolean);
|
|
14
18
|
/**
|
|
15
19
|
* Handle incoming TCP request
|
|
16
20
|
*/
|