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.
Files changed (74) hide show
  1. package/README.md +447 -315
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Index.controller.js","sourceRoot":"","sources":["../../../../source/server/controller/Index/Index.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAA8D;AAE9D,iGAE6C;AAE7C,kEAA0E;AAE1E;;;;;;GAMG;AACH;IAGE,YAAY,cAAsB;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACU,UAAU,CAAC,OAAuB;;YAC7C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,KAG1C,CAAC;YAEF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;gBAC1D,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,IAAA,oCAAsB,EAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACrF,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC7C,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC1C,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1E,CAAC;gBACD,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,EAAE,EAAE,gCAAgC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACtF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAClD,OAAO,IAAA,gCAAa,EAClB,wBAAW,CAAC,qBAAqB,EACjC,4BAA4B,CAC7B,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;;OAKG;IACU,WAAW,CAAC,OAAuB;;YAC9C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAItD,CAAC;YAEF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;gBAC1D,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1D,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,sCAAsC,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,IAAA,oCAAsB,EAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACrF,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC;gBACxD,MAAM,OAAO,GACX,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO;oBAC7C,CAAC,CAAE,MAAM,CAAC,OAAkB;oBAC5B,CAAC,CAAC,4BAA4B,CAAC;gBACnC,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAC9C,OAAO,IAAA,gCAAa,EAClB,wBAAW,CAAC,qBAAqB,EACjC,wBAAwB,CACzB,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;;OAKG;IACU,WAAW,CAAC,OAAuB;;YAC9C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAIrD,CAAC;YAEF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;gBAC1D,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAChD,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,IAAA,oCAAsB,EAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACrF,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC1C,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,CAAC;gBACD,OAAO,IAAA,gCAAa,EAAC,wBAAW,CAAC,EAAE,EAAE,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAClF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAC9C,OAAO,IAAA,gCAAa,EAClB,wBAAW,CAAC,qBAAqB,EACjC,wBAAwB,CACzB,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF"}
@@ -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":";;;;;;;;;;;;;;;AAGA,yCAA6D;AAC7D,8FAE0C;AAC1C,6DAA2D;AAC3D,+CAA4C;AAG5C,kBAAkB;AAClB,oEAA2C;AAC3C,oFAA2D;AAC3D,0EAAiD;AACjD,kFAAyD;AACzD,wEAA+C;AAC/C,4FAAmE;AACnE,4FAAmE;AACnE,sFAA6D;AAC7D,mEAAkF;AAClF,+EAAwE;AACxE,+DAA4D;AAe5D;;;;;GAKG;AACH,oBACE,OAAwB,EACxB,OAAsB,EACtB,IAAgB;;QAEhB,yCAAyC;QACzC,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAS,EAAE;YAC9B,MAAM,WAAW,GAAqB,IAAI,CAAC,KAAK,CAC9C,MAAM,IAAA,mBAAQ,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAC1C,CAAC;YACF,MAAM,KAAK,GAAoB,IAAA,gCAAa,EAC1C,wBAAW,CAAC,EAAE,EACd,oBAAoB,EACpB;gBACE,YAAY,EAAE,WAAW,CAAC,IAAI;gBAC9B,cAAc,EAAE,WAAW,CAAC,OAAO;gBACnC,WAAW,EAAE,WAAW,CAAC,MAAM;gBAC/B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,aAAa,EAAE,iBAAU;aAC1B,CACF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,CAAA,CAAC,CAAC;QAEH,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAS,EAAE;YAChC,MAAM,KAAK,GAAoB,IAAA,gCAAa,EAC1C,wBAAW,CAAC,EAAE,EACd,mBAAmB,EACnB;gBACE,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CACF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,CAAA,CAAC,CAAC;QAEH,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAoB,IAAA,gCAAa,EAC1C,wBAAW,CAAC,EAAE,EACd,kBAAkB,EAClB,sBAAe,CAChB,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAA,CAAC,CAAC;QAEH,sBAAsB;QACtB,OAAO,CAAC,GAAG,CACT,kBAAkB,EAClB,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,cAAc,CAAC,CAAC,EAAE,EAClG,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE;YACvB,OAAO,IAAI,0BAAe,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChE,CAAC,CAAA,CACF,CAAC;QAEF,yBAAyB;QACzB,OAAO,CAAC,QAAQ,CAAC,mBAAQ,EAAE;YACzB,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,cAAc,EAAE,4CAA4C;SAC7E,CAAC,CAAC;QAEH,6BAA6B;QAC7B,OAAO,CAAC,QAAQ,CAAC,2BAAgB,EAAE;YACjC,MAAM,EAAE,aAAa;YACrB,cAAc,EAAE,cAAc,EAAE,oDAAoD;SACrF,CAAC,CAAC;QAEH,4BAA4B;QAC5B,OAAO,CAAC,QAAQ,CAAC,0BAAe,EAAE;YAChC,MAAM,EAAE,YAAY;YACpB,cAAc,EAAE,cAAc,EAAE,mDAAmD;SACpF,CAAC,CAAC;QAEH,wBAAwB;QACxB,OAAO,CAAC,QAAQ,CAAC,sBAAW,EAAE;YAC5B,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,cAAc,EAAE,+CAA+C;SAChF,CAAC,CAAC;QAEH,kFAAkF;QAClF,OAAO,CAAC,QAAQ,CAAC,qBAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAElD,6DAA6D;QAC7D,OAAO,CAAC,QAAQ,CAAC,+BAAoB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,QAAQ,CAAC,+BAAoB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QAElE,uBAAuB;QACvB,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5C,OAAO,KAAK;iBACT,MAAM,CAAC,GAAG,CAAC;iBACX,IAAI,CACH,IAAA,gCAAa,EACX,wBAAW,CAAC,SAAS,EACrB,SAAS,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,YAAY,CACnD,CACF,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC;IACT,CAAC;CAAA"}
@@ -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"}
@@ -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
  };
@@ -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;IAEzB,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;CAC/B,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;CACnC,CAAC"}
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":";;;AACA,0DAA2E;AAC3E,iCAAoG;AAEpG;;;GAGG;AACH;IACE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAiC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAQ,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,MAAM,GAAG,uBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,iBAAiB,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,2BAAoB,CAAC,CAAC;QAC9D,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEjD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,2BAAoB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,sBAAsB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,MAAM,GAAG,uBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,iBAAiB,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,2BAAoB,GAAG,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,sBAAsB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,2BAAoB,EAAE,2BAAoB,GAAG,MAAM,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,eAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,sBAAsB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF;;AAED;;GAEG;AACH;IAAA;QACU,WAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAqD3C,CAAC;IAnDC;;OAEG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAiC,EAAE,CAAC;QAElD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,2BAAoB,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE3C,iEAAiE;YACjE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,IAAI,UAAU,CAAC,KAAK,CAAC,uCAAuC,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;YAED,IAAI,MAAM,GAAG,uBAAgB,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,iBAAiB,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,2BAAoB,GAAG,MAAM,EAAE,CAAC;gBACvD,MAAM,CAAC,qBAAqB;YAC9B,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,2BAAoB,GAAG,MAAM,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAAoB,GAAG,MAAM,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF;;AAED;;GAEG;AACH;IACE;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAY;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,sBAAsB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,sBAAsB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,2BAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,eAAe,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,OAAqB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAoB,EAAE,MAAW;QACrD,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,2BAAW,CAAC,SAAS,CAAC;YAC3B,KAAK,2BAAW,CAAC,SAAS,CAAC;YAC3B,KAAK,2BAAW,CAAC,SAAS;gBACxB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,UAAU,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,iBAAiB,CAAC;YACnC,KAAK,2BAAW,CAAC,iBAAiB,CAAC;YACnC,KAAK,2BAAW,CAAC,iBAAiB,CAAC;YACnC,KAAK,2BAAW,CAAC,mBAAmB;gBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,0BAA0B,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,eAAe;gBAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,gCAAgC,CAAC,CAAC;gBAC3F,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,qBAAqB;gBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClE,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,qCAAqC,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,eAAe;gBAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,0BAA0B,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,WAAW,CAAC;YAC7B,KAAK,2BAAW,CAAC,qBAAqB,CAAC;YACvC,KAAK,2BAAW,CAAC,qBAAqB;gBACpC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,8BAA8B,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,yBAAyB;gBACxC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpF,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,6CAA6C,CAAC,CAAC;gBACxG,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,yBAAyB;gBACxC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,iCAAiC,CAAC,CAAC;gBAC5F,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,SAAS;gBACxB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,oCAAoC,CAAC,CAAC;gBAC/F,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,eAAe;gBAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,0BAA0B,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,YAAY;gBAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBACnE,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,sCAAsC,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,UAAU;gBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClE,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,qCAAqC,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,YAAY;gBAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,0BAA0B,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,YAAY;gBAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAY,CAAC,uBAAuB,sBAAsB,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM;YAER,KAAK,2BAAW,CAAC,IAAI,CAAC;YACtB,KAAK,2BAAW,CAAC,UAAU,CAAC;YAC5B,KAAK,2BAAW,CAAC,iBAAiB,CAAC;YACnC,KAAK,2BAAW,CAAC,iBAAiB,CAAC;YACnC,KAAK,2BAAW,CAAC,kBAAkB,CAAC;YACpC,KAAK,2BAAW,CAAC,oBAAoB;gBACnC,qBAAqB;gBACrB,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,mBAAY,CAAC,eAAe,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAiB,EAAE,UAAkB,EAAE,OAAe,EAAE,KAAc;QAC/F,OAAO;YACL,EAAE,EAAE,SAAS;YACb,UAAU;YACV,OAAO;YACP,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,SAAiB,EAAE,OAAe,EAAE,IAAU;QACzE,OAAO;YACL,EAAE,EAAE,SAAS;YACb,UAAU,EAAE,iBAAU,CAAC,EAAE;YACzB,OAAO;YACP,IAAI;SACL,CAAC;IACJ,CAAC;CACF"}
@@ -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>;
@@ -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
- connectionManager.on('message', (connId, message, clientSocket) => __awaiter(this, void 0, void 0, function* () {
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":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../source/tcp/config/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6BAAmD;AAEnD,uEAAoE;AACpE,8DAA2D;AAC3D,iEAA8D;AAE9D,yCAA2C;AAC3C,iCAAoE;AACpE,0DAAqD;AACrD,gGAAgE;AAEhE;;;GAGG;AACH;yDACE,MAAc,EACd,IAAI,GAAW,uBAAgB,EAC/B,WAAW,GAAY,KAAK;QAE5B,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAClF,IAAI,MAAc,CAAC;QAEnB,0CAA0C;QAC1C,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;QAElD,mFAAmF;QACnF,6EAA6E;QAC7E,yEAAyE;QACzE,4DAA4D;QAC5D,4BAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE;YACjD,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,GAAG,IAAA,kBAAY,EAAC,CAAC,MAAc,EAAE,EAAE;YACvC,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA;AAED;;GAEG;AACH,SAAS,8BAA8B,CAAC,iBAAoC;IAC1E,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,YAAoB,EAAE,aAAqB,EAAE,EAAE;QACvF,OAAO,CAAC,GAAG,CAAC,kCAAkC,YAAY,SAAS,aAAa,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,YAAoB,EAAE,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,YAAoB,EAAE,EAAE;QACnE,OAAO,CAAC,KAAK,CAAC,oCAAoC,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAY,EAAE,YAAoB,EAAE,EAAE;QAC1E,OAAO,CAAC,KAAK,CAAC,2CAA2C,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,YAAoB,EAAE,QAAiB,EAAE,EAAE;QAChF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,oBAAoB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,YAAoB,EAAE,EAAE;QAC9D,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,YAAY,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,MAAc,EACd,iBAAoC,EACpC,cAA8B;IAE9B,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE7D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,sCAAsC;QACtC,MAAM,aAAa,GAAgB;YACjC,EAAE,EAAE,iBAAiB;YACrB,UAAU,EAAE,iBAAU,CAAC,mBAAmB;YAC1C,OAAO,EAAE,mBAAY,CAAC,eAAe;YACrC,KAAK,EAAE,mBAAY,CAAC,eAAe;SACpC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,wBAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,kFAAkF;IAClF,kFAAkF;IAClF,gFAAgF;IAChF,oEAAoE;IACpE,MAAM,SAAS,GAAG,CAAO,MAAc,EAAE,OAAmB,EAAE,YAAoB,EAAE,EAAE;QACpF,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,CAAC,2CAA2C;QAEhF,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACxF,CAAC,CAAA,CAAC;IACF,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE3C,MAAM,mBAAmB,GAAG,CAAC,mBAA2B,EAAE,EAAE;QAC1D,IAAI,mBAAmB,KAAK,YAAY;YAAE,OAAO,CAAC,uCAAuC;QACzF,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IACnE,CAAC,CAAC;IACF,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,SAAe,aAAa,CAC1B,YAAoB,EACpB,OAAmB,EACnB,MAAc,EACd,cAA8B,EAC9B,iBAAoC;;QAEpC,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YAElE,qBAAqB;YACrB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE7D,gBAAgB;YAChB,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAEpE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,oDAAoD,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC;YAED,4BAA4B;YAC5B,IAAI,OAAO,CAAC,OAAO,KAAK,2BAAW,CAAC,UAAU,EAAE,CAAC;gBAC/C,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAE7D,sBAAsB;YACtB,MAAM,aAAa,GAAgB;gBACjC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO;gBACzB,UAAU,EAAE,iBAAU,CAAC,qBAAqB;gBAC5C,OAAO,EAAE,mBAAY,CAAC,cAAc;gBACpC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;YAEF,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CAAA"}
@@ -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":"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"}
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;IAME,YAAY,OAAmB,EAAE,MAAc;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,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
+ {"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
- constructor(axioDB: AxioDB);
16
+ private authHandler;
17
+ constructor(axioDB: AxioDB, connectionManager: ConnectionManager, requireAuth?: boolean);
14
18
  /**
15
19
  * Handle incoming TCP request
16
20
  */