axiodb 10.8.11 → 11.9.12

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.
Files changed (74) hide show
  1. package/README.md +45 -2
  2. package/lib/Services/Auth/AuthEvents.service.d.ts +15 -0
  3. package/lib/Services/Auth/AuthEvents.service.js +17 -0
  4. package/lib/Services/Auth/AuthEvents.service.js.map +1 -0
  5. package/lib/Services/Auth/AuthService.service.js +4 -0
  6. package/lib/Services/Auth/AuthService.service.js.map +1 -1
  7. package/lib/Services/Auth/LoginRateLimiter.service.d.ts +35 -0
  8. package/lib/Services/Auth/LoginRateLimiter.service.js +89 -0
  9. package/lib/Services/Auth/LoginRateLimiter.service.js.map +1 -0
  10. package/lib/Services/Collection/collection.operation.d.ts +6 -0
  11. package/lib/Services/Collection/collection.operation.js +10 -0
  12. package/lib/Services/Collection/collection.operation.js.map +1 -1
  13. package/lib/Services/Index/Index.service.d.ts +20 -0
  14. package/lib/Services/Index/Index.service.js +25 -1
  15. package/lib/Services/Index/Index.service.js.map +1 -1
  16. package/lib/Services/Indexation.operation.d.ts +4 -0
  17. package/lib/Services/Indexation.operation.js +13 -4
  18. package/lib/Services/Indexation.operation.js.map +1 -1
  19. package/lib/client/AxioDBCloud.client.d.ts +20 -1
  20. package/lib/client/AxioDBCloud.client.js +54 -3
  21. package/lib/client/AxioDBCloud.client.js.map +1 -1
  22. package/lib/client/CollectionProxy.d.ts +4 -0
  23. package/lib/client/CollectionProxy.js +11 -0
  24. package/lib/client/CollectionProxy.js.map +1 -1
  25. package/lib/client/types/client.types.d.ts +8 -0
  26. package/lib/client/types/client.types.js.map +1 -1
  27. package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +2 -0
  28. package/lib/config/Keys/Permissions.d.ts +13 -0
  29. package/lib/config/Keys/Permissions.js +21 -1
  30. package/lib/config/Keys/Permissions.js.map +1 -1
  31. package/lib/server/config/keys.js +26 -0
  32. package/lib/server/config/keys.js.map +1 -1
  33. package/lib/server/controller/Auth/Auth.controller.js +9 -0
  34. package/lib/server/controller/Auth/Auth.controller.js.map +1 -1
  35. package/lib/server/controller/Index/Index.controller.d.ts +35 -0
  36. package/lib/server/controller/Index/Index.controller.js +148 -0
  37. package/lib/server/controller/Index/Index.controller.js.map +1 -0
  38. package/lib/server/router/Router.js +6 -0
  39. package/lib/server/router/Router.js.map +1 -1
  40. package/lib/server/router/Routers/Index.routes.d.ts +7 -0
  41. package/lib/server/router/Routers/Index.routes.js +38 -0
  42. package/lib/server/router/Routers/Index.routes.js.map +1 -0
  43. package/lib/tcp/config/keys.d.ts +8 -0
  44. package/lib/tcp/config/keys.js +8 -0
  45. package/lib/tcp/config/keys.js.map +1 -1
  46. package/lib/tcp/config/permissions.d.ts +16 -0
  47. package/lib/tcp/config/permissions.js +46 -0
  48. package/lib/tcp/config/permissions.js.map +1 -0
  49. package/lib/tcp/config/protocol.js +13 -0
  50. package/lib/tcp/config/protocol.js.map +1 -1
  51. package/lib/tcp/config/server.d.ts +1 -1
  52. package/lib/tcp/config/server.js +28 -6
  53. package/lib/tcp/config/server.js.map +1 -1
  54. package/lib/tcp/connection/ConnectionManager.d.ts +19 -0
  55. package/lib/tcp/connection/ConnectionManager.js +31 -0
  56. package/lib/tcp/connection/ConnectionManager.js.map +1 -1
  57. package/lib/tcp/connection/RequestContext.d.ts +4 -1
  58. package/lib/tcp/connection/RequestContext.js +4 -1
  59. package/lib/tcp/connection/RequestContext.js.map +1 -1
  60. package/lib/tcp/handler/CommandHandler.d.ts +5 -1
  61. package/lib/tcp/handler/CommandHandler.js +34 -4
  62. package/lib/tcp/handler/CommandHandler.js.map +1 -1
  63. package/lib/tcp/handler/handlers/Auth.handler.d.ts +16 -0
  64. package/lib/tcp/handler/handlers/Auth.handler.js +91 -0
  65. package/lib/tcp/handler/handlers/Auth.handler.js.map +1 -0
  66. package/lib/tcp/handler/handlers/Operation.handler.d.ts +4 -0
  67. package/lib/tcp/handler/handlers/Operation.handler.js +27 -0
  68. package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
  69. package/lib/tcp/types/command.types.d.ts +2 -0
  70. package/lib/tcp/types/command.types.js +5 -0
  71. package/lib/tcp/types/command.types.js.map +1 -1
  72. package/lib/tcp/types/protocol.types.d.ts +2 -0
  73. package/lib/tcp/types/protocol.types.js.map +1 -1
  74. package/package.json +1 -1
package/README.md CHANGED
@@ -162,9 +162,47 @@ const results = await users.query({ role: "admin" })
162
162
  await client.disconnect();
163
163
  ```
164
164
 
165
+ ### 🔐 TCP Authentication (NEW!)
166
+
167
+ TCP connections are unauthenticated by default (same as before). Opt in with `TCPAuth: true` to require a username/password on every connection, reusing the **exact same accounts and roles** as the GUI's RBAC system (see [Authentication & Access Control](#authentication--access-control-v98)) — one set of credentials for both.
168
+
169
+ ```javascript
170
+ // Server
171
+ const db = new AxioDB({ TCP: true, TCPAuth: true, RootName: 'MyDB', CustomPath: '.' });
172
+ ```
173
+
174
+ ```javascript
175
+ // Client - pass credentials in the constructor options; connect() authenticates automatically
176
+ const client = new AxioDBCloud("axiodb://localhost:27019", {
177
+ username: 'admin',
178
+ password: 'admin',
179
+ });
180
+ await client.connect();
181
+
182
+ console.log(client.authenticatedUser); // { username, role, mustChangePassword }
183
+ ```
184
+
185
+ Or authenticate after connecting, e.g. if credentials are supplied at runtime:
186
+
187
+ ```javascript
188
+ const client = new AxioDBCloud("axiodb://localhost:27019");
189
+ await client.connect();
190
+ await client.login('admin', 'admin');
191
+ ```
192
+
193
+ **What's enforced:**
194
+ - Every command except `PING`/`DISCONNECT`/`AUTHENTICATE` requires a prior successful login on that connection.
195
+ - The same role permissions as the GUI apply per command (e.g. a `View`-role user gets `403` on `CREATE_DB`).
196
+ - The same per-IP login rate limiter as the GUI: 5 failed attempts within 15 minutes locks that IP out for 15 minutes (`429 Too Many Requests`), shared across both TCP and GUI login attempts from that IP.
197
+ - **Accounts that still need their forced password change are rejected outright** (`403`), not allowed through with a warning — there's no TCP command to change a password today, so log into the GUI (`http://localhost:27018`) to complete it first, or authenticate with an account that already has.
198
+ - If a Super Admin resets a user's password, changes their role, or deletes them via the GUI while that user has an open TCP connection, the TCP connection is immediately forced to re-authenticate on its next command.
199
+
200
+ **Known limitations:** the TCP protocol itself is unencrypted (no TLS) — deploy behind a private network, VPN, or your own TLS termination if connecting over an untrusted network. There's currently no TCP command to change a password; that must go through the GUI.
201
+
165
202
  ### Features
166
203
 
167
204
  ✅ **35+ Commands** - Full CRUD, aggregation, indexing
205
+ ✅ **Optional Authentication (NEW!)** - Shared RBAC with the GUI, per-IP rate limiting, forced-password-change enforcement
168
206
  ✅ **Auto-Reconnect** - Exponential backoff with up to 10 retry attempts
169
207
  ✅ **Heartbeat Monitoring** - PING/PONG every 30 seconds
170
208
  ✅ **Request Correlation** - UUID-based request/response matching
@@ -274,6 +312,10 @@ You'll be forced to change this password on first login (this applies to every a
274
312
 
275
313
  A Super Admin can create additional roles from the predefined permission catalogue and create new users with any role. Sessions are held only in server memory (never persisted to disk) and are tied to an httpOnly cookie, so restarting the server logs everyone out.
276
314
 
315
+ **Login rate limiting (NEW!):** after 5 failed login attempts from the same IP within 15 minutes, that IP is locked out for 15 minutes (`429 Too Many Requests`) — regardless of username. This limiter is shared with [TCP AUTHENTICATE attempts](#tcp-authentication-new), so brute-forcing either surface counts against the same per-IP cooldown.
316
+
317
+ **Index management:** the Control Server also exposes `GET /api/index/list`, `POST /api/index/create`, and `DELETE /api/index/delete`, gated by the same `index:view` / `index:create` / `index:delete` permissions (View role gets view-only, Admin and Super Admin get all three).
318
+
277
319
  > **Security note:** RBAC protects the Control Server's HTTP API; it is still intended for trusted local/network access, not public internet exposure.
278
320
 
279
321
  ---
@@ -429,8 +471,9 @@ console.log(results);
429
471
  - `delete(query: object): Deleter`
430
472
  - `aggregate(pipeline: object[]): Aggregation`
431
473
  - `startSession(options?: SessionOptions): Session`
432
- - `createIndex(fieldName: string): Promise<SuccessInterface>`
474
+ - `newIndex(...fieldNames: string[]): Promise<SuccessInterface>`
433
475
  - `dropIndex(indexName: string): Promise<SuccessInterface | ErrorInterface>`
476
+ - `getIndexes(): Promise<SuccessInterface | ErrorInterface>` — lists all indexes registered on the collection (**NEW!**)
434
477
 
435
478
  ### Reader
436
479
 
@@ -545,7 +588,7 @@ Yes. Full type definitions are included — no separate `@types` package needed.
545
588
  No. AxioDB requires Node.js (v20+) and the filesystem. Server-side and desktop only.
546
589
 
547
590
  **Q: What is AxioDBCloud?**
548
- TCP-based remote access for AxioDB. Deploy AxioDB in Docker, connect from multiple clients with the exact same API. Supports 1,000+ concurrent connections with auto-reconnect.
591
+ TCP-based remote access for AxioDB. Deploy AxioDB in Docker, connect from multiple clients with the exact same API. Supports 1,000+ concurrent connections with auto-reconnect. Optional username/password authentication (`TCPAuth: true`) reuses the same RBAC accounts as the GUI.
549
592
 
550
593
  ---
551
594
 
@@ -0,0 +1,15 @@
1
+ import { EventEmitter } from "events";
2
+ /**
3
+ * Process-wide event bus for auth state changes that need to propagate beyond the
4
+ * HTTP SessionStore - namely, TCP connections holding a cached `AuthenticatedUser`
5
+ * (see ConnectionManager) for a user whose role, password, or account was just
6
+ * changed via AuthService.
7
+ *
8
+ * Services/Auth owns this abstraction; tcp/ subscribes to it (see tcp/config/server.ts).
9
+ * Dependency direction stays tcp -> Services/Auth, same as everywhere else in the
10
+ * codebase - Services/Auth never imports from tcp/, avoiding a layering violation.
11
+ */
12
+ declare class AuthEvents extends EventEmitter {
13
+ }
14
+ declare const _default: AuthEvents;
15
+ export default _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const events_1 = require("events");
4
+ /**
5
+ * Process-wide event bus for auth state changes that need to propagate beyond the
6
+ * HTTP SessionStore - namely, TCP connections holding a cached `AuthenticatedUser`
7
+ * (see ConnectionManager) for a user whose role, password, or account was just
8
+ * changed via AuthService.
9
+ *
10
+ * Services/Auth owns this abstraction; tcp/ subscribes to it (see tcp/config/server.ts).
11
+ * Dependency direction stays tcp -> Services/Auth, same as everywhere else in the
12
+ * codebase - Services/Auth never imports from tcp/, avoiding a layering violation.
13
+ */
14
+ class AuthEvents extends events_1.EventEmitter {
15
+ }
16
+ exports.default = new AuthEvents();
17
+ //# sourceMappingURL=AuthEvents.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthEvents.service.js","sourceRoot":"","sources":["../../../source/Services/Auth/AuthEvents.service.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC;;;;;;;;;GASG;AACH,MAAM,UAAW,SAAQ,qBAAY;CAAG;kBAEzB,IAAI,UAAU,EAAE"}
@@ -16,6 +16,7 @@ const PasswordHasher_helper_1 = __importDefault(require("./PasswordHasher.helper
16
16
  const ConfigDatabase_service_1 = __importDefault(require("./ConfigDatabase.service"));
17
17
  const PermissionChecker_helper_1 = __importDefault(require("./PermissionChecker.helper"));
18
18
  const SessionStore_service_1 = __importDefault(require("./SessionStore.service"));
19
+ const AuthEvents_service_1 = __importDefault(require("./AuthEvents.service"));
19
20
  const Permissions_1 = require("../../config/Keys/Permissions");
20
21
  /**
21
22
  * Business logic for login, password management, and user/role administration.
@@ -115,6 +116,7 @@ class AuthService {
115
116
  .update({ username })
116
117
  .UpdateOne({ passwordHash, mustChangePassword: true });
117
118
  SessionStore_service_1.default.revokeSessionsForUser(username);
119
+ AuthEvents_service_1.default.emit("user-revoked", username);
118
120
  return { success: true, message: "Password reset successfully" };
119
121
  });
120
122
  }
@@ -137,6 +139,7 @@ class AuthService {
137
139
  .update({ username })
138
140
  .UpdateOne({ role: newRole });
139
141
  SessionStore_service_1.default.revokeSessionsForUser(username);
142
+ AuthEvents_service_1.default.emit("user-revoked", username);
140
143
  return { success: true, message: "Role updated successfully" };
141
144
  });
142
145
  }
@@ -154,6 +157,7 @@ class AuthService {
154
157
  }
155
158
  yield ConfigDatabase_service_1.default.getUsersCollection().delete({ username }).deleteOne();
156
159
  SessionStore_service_1.default.revokeSessionsForUser(username);
160
+ AuthEvents_service_1.default.emit("user-revoked", username);
157
161
  return { success: true, message: "User deleted successfully" };
158
162
  });
159
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AuthService.service.js","sourceRoot":"","sources":["../../../source/Services/Auth/AuthService.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthService.service.js","sourceRoot":"","sources":["../../../source/Services/Auth/AuthService.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * In-memory, per-IP login rate limiter shared by the GUI's /auth/login route and the
3
+ * TCP AUTHENTICATE command - one failure counter per client IP regardless of which
4
+ * transport the attempt came in on. Never persisted to disk, reset on process restart,
5
+ * same lifecycle as SessionStore.
6
+ *
7
+ * True sliding window (not fixed): each failure is timestamped, and a lockout triggers
8
+ * once LOGIN_RATE_LIMIT_MAX_ATTEMPTS failures fall within the trailing
9
+ * LOGIN_RATE_LIMIT_WINDOW_MS from "now" - not a fixed bucket that resets wholesale once
10
+ * its start time expires. E.g. 4 failures at minute 0 and a 5th at minute 14 still locks
11
+ * (all 5 are within the trailing 15-minute window), whereas a fixed window anchored at
12
+ * minute 0 would have already rolled over and missed it.
13
+ *
14
+ * Deliberately IP-only (not IP+username): simpler to reason about, at the cost of
15
+ * clients behind a shared/NAT IP being able to lock each other out. Acceptable for the
16
+ * trusted-network deployment model this whole RBAC system targets.
17
+ */
18
+ declare class LoginRateLimiter {
19
+ private static instance;
20
+ private readonly attempts;
21
+ private sweepIntervalHandle;
22
+ static getInstance(): LoginRateLimiter;
23
+ /** Milliseconds remaining before this IP may attempt login again, or 0 if it's clear. */
24
+ getCooldownRemaining(ip: string): number;
25
+ /** Records a failed login attempt, locking the IP out once the threshold is crossed. */
26
+ recordFailure(ip: string): void;
27
+ /** Clears the failure counter for an IP following a successful login. */
28
+ recordSuccess(ip: string): void;
29
+ /** Clears every tracked IP's failure counter and any active lockouts. */
30
+ clearAll(): void;
31
+ startCleanupSweep(): void;
32
+ stopCleanupSweep(): void;
33
+ }
34
+ declare const _default: LoginRateLimiter;
35
+ export default _default;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Permissions_1 = require("../../config/Keys/Permissions");
4
+ /**
5
+ * In-memory, per-IP login rate limiter shared by the GUI's /auth/login route and the
6
+ * TCP AUTHENTICATE command - one failure counter per client IP regardless of which
7
+ * transport the attempt came in on. Never persisted to disk, reset on process restart,
8
+ * same lifecycle as SessionStore.
9
+ *
10
+ * True sliding window (not fixed): each failure is timestamped, and a lockout triggers
11
+ * once LOGIN_RATE_LIMIT_MAX_ATTEMPTS failures fall within the trailing
12
+ * LOGIN_RATE_LIMIT_WINDOW_MS from "now" - not a fixed bucket that resets wholesale once
13
+ * its start time expires. E.g. 4 failures at minute 0 and a 5th at minute 14 still locks
14
+ * (all 5 are within the trailing 15-minute window), whereas a fixed window anchored at
15
+ * minute 0 would have already rolled over and missed it.
16
+ *
17
+ * Deliberately IP-only (not IP+username): simpler to reason about, at the cost of
18
+ * clients behind a shared/NAT IP being able to lock each other out. Acceptable for the
19
+ * trusted-network deployment model this whole RBAC system targets.
20
+ */
21
+ class LoginRateLimiter {
22
+ constructor() {
23
+ this.attempts = new Map();
24
+ }
25
+ static getInstance() {
26
+ if (!LoginRateLimiter.instance) {
27
+ LoginRateLimiter.instance = new LoginRateLimiter();
28
+ }
29
+ return LoginRateLimiter.instance;
30
+ }
31
+ /** Milliseconds remaining before this IP may attempt login again, or 0 if it's clear. */
32
+ getCooldownRemaining(ip) {
33
+ const record = this.attempts.get(ip);
34
+ if (!(record === null || record === void 0 ? void 0 : record.lockedUntil)) {
35
+ return 0;
36
+ }
37
+ const remaining = record.lockedUntil - Date.now();
38
+ if (remaining <= 0) {
39
+ this.attempts.delete(ip);
40
+ return 0;
41
+ }
42
+ return remaining;
43
+ }
44
+ /** Records a failed login attempt, locking the IP out once the threshold is crossed. */
45
+ recordFailure(ip) {
46
+ var _a;
47
+ const now = Date.now();
48
+ const record = (_a = this.attempts.get(ip)) !== null && _a !== void 0 ? _a : { failureTimestamps: [] };
49
+ // Slide the window: drop failures older than the trailing window before counting.
50
+ record.failureTimestamps = record.failureTimestamps.filter((t) => now - t <= Permissions_1.LOGIN_RATE_LIMIT_WINDOW_MS);
51
+ record.failureTimestamps.push(now);
52
+ if (record.failureTimestamps.length >= Permissions_1.LOGIN_RATE_LIMIT_MAX_ATTEMPTS) {
53
+ record.lockedUntil = now + Permissions_1.LOGIN_RATE_LIMIT_COOLDOWN_MS;
54
+ }
55
+ this.attempts.set(ip, record);
56
+ }
57
+ /** Clears the failure counter for an IP following a successful login. */
58
+ recordSuccess(ip) {
59
+ this.attempts.delete(ip);
60
+ }
61
+ /** Clears every tracked IP's failure counter and any active lockouts. */
62
+ clearAll() {
63
+ this.attempts.clear();
64
+ }
65
+ startCleanupSweep() {
66
+ if (this.sweepIntervalHandle) {
67
+ return;
68
+ }
69
+ this.sweepIntervalHandle = setInterval(() => {
70
+ const now = Date.now();
71
+ for (const [ip, record] of this.attempts) {
72
+ record.failureTimestamps = record.failureTimestamps.filter((t) => now - t <= Permissions_1.LOGIN_RATE_LIMIT_WINDOW_MS);
73
+ const unlocked = !record.lockedUntil || record.lockedUntil <= now;
74
+ if (record.failureTimestamps.length === 0 && unlocked) {
75
+ this.attempts.delete(ip);
76
+ }
77
+ }
78
+ }, Permissions_1.LOGIN_RATE_LIMIT_SWEEP_INTERVAL_MS);
79
+ this.sweepIntervalHandle.unref();
80
+ }
81
+ stopCleanupSweep() {
82
+ if (this.sweepIntervalHandle) {
83
+ clearInterval(this.sweepIntervalHandle);
84
+ this.sweepIntervalHandle = undefined;
85
+ }
86
+ }
87
+ }
88
+ exports.default = LoginRateLimiter.getInstance();
89
+ //# sourceMappingURL=LoginRateLimiter.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoginRateLimiter.service.js","sourceRoot":"","sources":["../../../source/Services/Auth/LoginRateLimiter.service.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,12 @@ export default class Collection {
49
49
  * or if the caller lacks necessary permissions).
50
50
  */
51
51
  dropIndex(indexName: string): Promise<ErrorInterface | SuccessInterface>;
52
+ /**
53
+ * Lists all indexes currently registered for this collection.
54
+ *
55
+ * @returns A promise that resolves with the result returned by IndexManager.listIndexes.
56
+ */
57
+ getIndexes(): Promise<ErrorInterface | SuccessInterface>;
52
58
  /**
53
59
  * Inserts a document into the collection.
54
60
  * @param {object} data - The data to be inserted.
@@ -141,6 +141,16 @@ class Collection {
141
141
  return yield this.IndexManager.dropIndex(indexName);
142
142
  });
143
143
  }
144
+ /**
145
+ * Lists all indexes currently registered for this collection.
146
+ *
147
+ * @returns A promise that resolves with the result returned by IndexManager.listIndexes.
148
+ */
149
+ getIndexes() {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ return yield this.IndexManager.listIndexes();
152
+ });
153
+ }
144
154
  /**
145
155
  * Inserts a document into the collection.
146
156
  * @param {object} data - The data to be inserted.
@@ -1 +1 @@
1
- {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,11 @@ import FileManager from "../../engine/Filesystem/FileManager";
3
3
  import FolderManager from "../../engine/Filesystem/FolderManager";
4
4
  import Converter from "../../Helper/Converter.helper";
5
5
  import ResponseHelper from "../../Helper/response.helper";
6
+ export interface IndexMetaEntry {
7
+ indexFieldName: string;
8
+ fileName: string;
9
+ path: string;
10
+ }
6
11
  export declare class IndexManager {
7
12
  readonly path: string;
8
13
  readonly indexFolderPath: string;
@@ -76,6 +81,21 @@ export declare class IndexManager {
76
81
  * @throws {Error} May propagate errors from underlying file operations if those utilities throw.
77
82
  */
78
83
  dropIndex(indexName: string): Promise<SuccessInterface | ErrorInterface>;
84
+ /**
85
+ * Lists all indexes currently registered for this collection.
86
+ *
87
+ * Reads the index metadata file (`index.meta.json`) and returns its parsed entries as-is —
88
+ * this is a pure read of the same metadata `createIndex`/`dropIndex` already maintain, no new
89
+ * storage format is introduced.
90
+ *
91
+ * @returns A promise that resolves to a SuccessInterface containing the list of index metadata
92
+ * entries (`{ indexFieldName, fileName, path }`), or an ErrorInterface if the metadata
93
+ * file could not be read.
94
+ *
95
+ * @example
96
+ * const result = await service.listIndexes();
97
+ */
98
+ listIndexes(): Promise<SuccessInterface | ErrorInterface>;
79
99
  /**
80
100
  * Ensures the index folder and the index metadata file exist, creating them if necessary.
81
101
  *
@@ -96,7 +96,6 @@ class IndexManager {
96
96
  });
97
97
  yield this.fileManager.WriteFile(this.indexMetaPath, this.converter.ToString(indexMeta));
98
98
  EffectedIndexes.push(indexName);
99
- return this.ResponseHelper.Success(`Indexes: ${EffectedIndexes.join(", ")} created Indexes: ${FailedIndexes.join(", ")}`);
100
99
  }
101
100
  else {
102
101
  FailedIndexes.push(indexName);
@@ -104,6 +103,7 @@ class IndexManager {
104
103
  }
105
104
  }
106
105
  }
106
+ return this.ResponseHelper.Success(`Indexes: ${EffectedIndexes.join(", ")} created Indexes: ${FailedIndexes.join(", ")}`);
107
107
  });
108
108
  }
109
109
  /**
@@ -151,6 +151,30 @@ class IndexManager {
151
151
  }
152
152
  });
153
153
  }
154
+ /**
155
+ * Lists all indexes currently registered for this collection.
156
+ *
157
+ * Reads the index metadata file (`index.meta.json`) and returns its parsed entries as-is —
158
+ * this is a pure read of the same metadata `createIndex`/`dropIndex` already maintain, no new
159
+ * storage format is introduced.
160
+ *
161
+ * @returns A promise that resolves to a SuccessInterface containing the list of index metadata
162
+ * entries (`{ indexFieldName, fileName, path }`), or an ErrorInterface if the metadata
163
+ * file could not be read.
164
+ *
165
+ * @example
166
+ * const result = await service.listIndexes();
167
+ */
168
+ listIndexes() {
169
+ return __awaiter(this, void 0, void 0, function* () {
170
+ const indexMetaContent = yield this.fileManager.ReadFile(this.indexMetaPath);
171
+ if (indexMetaContent.status) {
172
+ const indexMeta = this.converter.ToObject(indexMetaContent.data);
173
+ return this.ResponseHelper.Success(indexMeta);
174
+ }
175
+ return this.ResponseHelper.Error("Failed to read index metadata");
176
+ });
177
+ }
154
178
  /**
155
179
  * Ensures the index folder and the index metadata file exist, creating them if necessary.
156
180
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Index.service.js","sourceRoot":"","sources":["../../../source/Services/Index/Index.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.service.js","sourceRoot":"","sources":["../../../source/Services/Index/Index.service.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,12 @@ import { AxioDBOptions } from "../config/Interfaces/Operation/Indexation.operati
8
8
  * @param {string} options.RootName - Custom name for the database root folder. Defaults to "AxioDB".
9
9
  * @param {string} options.CustomPath - Custom path for database storage. Defaults to current directory.
10
10
  * @param {boolean} options.TCP - Enable/disable TCP server (port 27019). Defaults to false.
11
+ * @param {boolean} options.TCPAuth - Require username/password authentication (same RBAC users as the GUI) for TCP connections. Defaults to false.
11
12
  * @returns {AxioDB} - Returns the instance of AxioDB.
12
13
  * @example
13
14
  * const db = new AxioDB({ GUI: true, RootName: "MyDB", CustomPath: "./data" });
15
+ * @example
16
+ * const db = new AxioDB({ TCP: true, TCPAuth: true, RootName: "MyDB", CustomPath: "./data" });
14
17
  */
15
18
  export declare class AxioDB {
16
19
  private readonly RootName;
@@ -23,6 +26,7 @@ export declare class AxioDB {
23
26
  private DatabaseMap;
24
27
  private GUI;
25
28
  private TCP;
29
+ private TCPAuth;
26
30
  constructor(options?: AxioDBOptions);
27
31
  /**
28
32
  * Initializes the root directory for the AxioDB.
@@ -30,6 +30,7 @@ const server_1 = __importDefault(require("../server/config/server"));
30
30
  const server_2 = __importDefault(require("../tcp/config/server"));
31
31
  const AuthSeeder_service_1 = __importDefault(require("./Auth/AuthSeeder.service"));
32
32
  const Permissions_1 = require("../config/Keys/Permissions");
33
+ const LoginRateLimiter_service_1 = __importDefault(require("./Auth/LoginRateLimiter.service"));
33
34
  /**
34
35
  * Class representing the AxioDB database.
35
36
  * @param {AxioDBOptions} options - Configuration options for AxioDB
@@ -37,19 +38,23 @@ const Permissions_1 = require("../config/Keys/Permissions");
37
38
  * @param {string} options.RootName - Custom name for the database root folder. Defaults to "AxioDB".
38
39
  * @param {string} options.CustomPath - Custom path for database storage. Defaults to current directory.
39
40
  * @param {boolean} options.TCP - Enable/disable TCP server (port 27019). Defaults to false.
41
+ * @param {boolean} options.TCPAuth - Require username/password authentication (same RBAC users as the GUI) for TCP connections. Defaults to false.
40
42
  * @returns {AxioDB} - Returns the instance of AxioDB.
41
43
  * @example
42
44
  * const db = new AxioDB({ GUI: true, RootName: "MyDB", CustomPath: "./data" });
45
+ * @example
46
+ * const db = new AxioDB({ TCP: true, TCPAuth: true, RootName: "MyDB", CustomPath: "./data" });
43
47
  */
44
48
  class AxioDB {
45
49
  constructor(options = {}) {
46
50
  this.GUI = Keys_1.General.DBMS_GUI_Enable;
47
51
  this.TCP = false;
52
+ this.TCPAuth = false;
48
53
  if (AxioDB._instance) {
49
54
  throw new Error("Only one instance of AxioDB is allowed.");
50
55
  }
51
56
  AxioDB._instance = this;
52
- const { GUI, RootName, CustomPath, TCP } = options;
57
+ const { GUI, RootName, CustomPath, TCP, TCPAuth } = options;
53
58
  // Default Vlaues
54
59
  this.RootName = RootName || Keys_1.General.DBMS_Name; // Set the root name
55
60
  this.currentPATH = path_1.default.resolve(CustomPath || "."); // Set the current path
@@ -57,10 +62,11 @@ class AxioDB {
57
62
  this.folderManager = new FolderManager_1.default(); // Initialize the FolderManager class
58
63
  this.Converter = new Converter_helper_1.default(); // Initialize the Converter class
59
64
  this.ResponseHelper = new response_helper_1.default(); // Initialize the ResponseHelper class
60
- this.initializeRoot(); // Ensure root initialization
61
65
  this.DatabaseMap = new Map(); // Initialize the DatabaseMap
62
66
  this.GUI = GUI !== undefined ? GUI : Keys_1.General.DBMS_GUI_Enable; // Set GUI option
63
67
  this.TCP = TCP !== undefined ? TCP : false; // Set TCP option
68
+ this.TCPAuth = TCPAuth !== undefined ? TCPAuth : false; // Set TCPAuth option
69
+ this.initializeRoot(); // Ensure root initialization (reads GUI/TCP/TCPAuth, so runs after they're set)
64
70
  }
65
71
  /**
66
72
  * Initializes the root directory for the AxioDB.
@@ -85,14 +91,17 @@ class AxioDB {
85
91
  console.log(`AxioDB folder created at: ${this.currentPATH}`);
86
92
  }
87
93
  }
88
- if (this.GUI) {
94
+ if (this.GUI || (this.TCP && this.TCPAuth)) {
89
95
  yield new AuthSeeder_service_1.default(this).seedIfNeeded(); // Ensure config DB, RBAC seed data exist before accepting requests
96
+ LoginRateLimiter_service_1.default.startCleanupSweep(); // Only relevant once some auth surface (GUI or TCPAuth) is active
97
+ }
98
+ if (this.GUI) {
90
99
  Console_helper_1.default.green("Starting AxioDB Control Server...");
91
100
  (0, server_1.default)(this); // Start the web Control Server with the AxioDB instance
92
101
  }
93
102
  if (this.TCP) {
94
103
  Console_helper_1.default.green("Starting AxioDB TCP Server...");
95
- (0, server_2.default)(this); // Start the TCP Server with the AxioDB instance
104
+ (0, server_2.default)(this, undefined, this.TCPAuth); // Start the TCP Server with the AxioDB instance
96
105
  }
97
106
  });
98
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}