axiodb 9.7.9 → 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 (144) hide show
  1. package/README.md +67 -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/AuthSeeder.service.d.ts +16 -0
  6. package/lib/Services/Auth/AuthSeeder.service.js +99 -0
  7. package/lib/Services/Auth/AuthSeeder.service.js.map +1 -0
  8. package/lib/Services/Auth/AuthService.service.d.ts +53 -0
  9. package/lib/Services/Auth/AuthService.service.js +221 -0
  10. package/lib/Services/Auth/AuthService.service.js.map +1 -0
  11. package/lib/Services/Auth/ConfigDatabase.service.d.ts +22 -0
  12. package/lib/Services/Auth/ConfigDatabase.service.js +47 -0
  13. package/lib/Services/Auth/ConfigDatabase.service.js.map +1 -0
  14. package/lib/Services/Auth/CookieCodec.helper.d.ts +10 -0
  15. package/lib/Services/Auth/CookieCodec.helper.js +30 -0
  16. package/lib/Services/Auth/CookieCodec.helper.js.map +1 -0
  17. package/lib/Services/Auth/LoginRateLimiter.service.d.ts +35 -0
  18. package/lib/Services/Auth/LoginRateLimiter.service.js +89 -0
  19. package/lib/Services/Auth/LoginRateLimiter.service.js.map +1 -0
  20. package/lib/Services/Auth/PasswordHasher.helper.d.ts +9 -0
  21. package/lib/Services/Auth/PasswordHasher.helper.js +54 -0
  22. package/lib/Services/Auth/PasswordHasher.helper.js.map +1 -0
  23. package/lib/Services/Auth/PermissionChecker.helper.d.ts +21 -0
  24. package/lib/Services/Auth/PermissionChecker.helper.js +41 -0
  25. package/lib/Services/Auth/PermissionChecker.helper.js.map +1 -0
  26. package/lib/Services/Auth/SessionStore.service.d.ts +23 -0
  27. package/lib/Services/Auth/SessionStore.service.js +96 -0
  28. package/lib/Services/Auth/SessionStore.service.js.map +1 -0
  29. package/lib/Services/Collection/collection.operation.d.ts +6 -0
  30. package/lib/Services/Collection/collection.operation.js +10 -0
  31. package/lib/Services/Collection/collection.operation.js.map +1 -1
  32. package/lib/Services/Index/Index.service.d.ts +20 -0
  33. package/lib/Services/Index/Index.service.js +25 -1
  34. package/lib/Services/Index/Index.service.js.map +1 -1
  35. package/lib/Services/Indexation.operation.d.ts +4 -0
  36. package/lib/Services/Indexation.operation.js +20 -6
  37. package/lib/Services/Indexation.operation.js.map +1 -1
  38. package/lib/client/AxioDBCloud.client.d.ts +20 -1
  39. package/lib/client/AxioDBCloud.client.js +54 -3
  40. package/lib/client/AxioDBCloud.client.js.map +1 -1
  41. package/lib/client/CollectionProxy.d.ts +4 -0
  42. package/lib/client/CollectionProxy.js +11 -0
  43. package/lib/client/CollectionProxy.js.map +1 -1
  44. package/lib/client/types/client.types.d.ts +8 -0
  45. package/lib/client/types/client.types.js.map +1 -1
  46. package/lib/config/Interfaces/Auth/auth.interface.d.ts +70 -0
  47. package/lib/config/Interfaces/Auth/auth.interface.js +4 -0
  48. package/lib/config/Interfaces/Auth/auth.interface.js.map +1 -0
  49. package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +2 -0
  50. package/lib/config/Keys/Permissions.d.ts +64 -0
  51. package/lib/config/Keys/Permissions.js +121 -0
  52. package/lib/config/Keys/Permissions.js.map +1 -0
  53. package/lib/server/config/keys.d.ts +2 -2
  54. package/lib/server/config/keys.js +109 -1
  55. package/lib/server/config/keys.js.map +1 -1
  56. package/lib/server/config/server.js +6 -0
  57. package/lib/server/config/server.js.map +1 -1
  58. package/lib/server/controller/Auth/Auth.controller.d.ts +12 -0
  59. package/lib/server/controller/Auth/Auth.controller.js +162 -0
  60. package/lib/server/controller/Auth/Auth.controller.js.map +1 -0
  61. package/lib/server/controller/Auth/RoleManagement.controller.d.ts +9 -0
  62. package/lib/server/controller/Auth/RoleManagement.controller.js +89 -0
  63. package/lib/server/controller/Auth/RoleManagement.controller.js.map +1 -0
  64. package/lib/server/controller/Auth/UserManagement.controller.d.ts +11 -0
  65. package/lib/server/controller/Auth/UserManagement.controller.js +122 -0
  66. package/lib/server/controller/Auth/UserManagement.controller.js.map +1 -0
  67. package/lib/server/controller/Collections/Collection.controller.js +10 -0
  68. package/lib/server/controller/Collections/Collection.controller.js.map +1 -1
  69. package/lib/server/controller/Database/Databse.controller.js +17 -0
  70. package/lib/server/controller/Database/Databse.controller.js.map +1 -1
  71. package/lib/server/controller/Index/Index.controller.d.ts +35 -0
  72. package/lib/server/controller/Index/Index.controller.js +148 -0
  73. package/lib/server/controller/Index/Index.controller.js.map +1 -0
  74. package/lib/server/controller/Operation/CRUD.controller.js +31 -0
  75. package/lib/server/controller/Operation/CRUD.controller.js.map +1 -1
  76. package/lib/server/helper/responseBuilder.helper.d.ts +8 -0
  77. package/lib/server/helper/responseBuilder.helper.js +11 -1
  78. package/lib/server/helper/responseBuilder.helper.js.map +1 -1
  79. package/lib/server/middleware/auth.middleware.d.ts +14 -0
  80. package/lib/server/middleware/auth.middleware.js +64 -0
  81. package/lib/server/middleware/auth.middleware.js.map +1 -0
  82. package/lib/server/middleware/permission.middleware.d.ts +6 -0
  83. package/lib/server/middleware/permission.middleware.js +36 -0
  84. package/lib/server/middleware/permission.middleware.js.map +1 -0
  85. package/lib/server/public/AxioControl/.vite/manifest.json +2 -2
  86. package/lib/server/public/AxioControl/.vite/ssr-manifest.json +10 -0
  87. package/lib/server/public/AxioControl/assets/index-D3V1EZ2f.css +1 -0
  88. package/lib/server/public/AxioControl/assets/index-DyJg6FRw.js +75 -0
  89. package/lib/server/public/AxioControl/index.html +2 -2
  90. package/lib/server/public/AxioControl/sw.js +1 -1
  91. package/lib/server/router/Router.js +18 -1
  92. package/lib/server/router/Router.js.map +1 -1
  93. package/lib/server/router/Routers/Auth.routes.d.ts +2 -0
  94. package/lib/server/router/Routers/Auth.routes.js +27 -0
  95. package/lib/server/router/Routers/Auth.routes.js.map +1 -0
  96. package/lib/server/router/Routers/Collection.routes.js +20 -3
  97. package/lib/server/router/Routers/Collection.routes.js.map +1 -1
  98. package/lib/server/router/Routers/DB.routes.js +8 -5
  99. package/lib/server/router/Routers/DB.routes.js.map +1 -1
  100. package/lib/server/router/Routers/Index.routes.d.ts +7 -0
  101. package/lib/server/router/Routers/Index.routes.js +38 -0
  102. package/lib/server/router/Routers/Index.routes.js.map +1 -0
  103. package/lib/server/router/Routers/Operation.routes.js +31 -10
  104. package/lib/server/router/Routers/Operation.routes.js.map +1 -1
  105. package/lib/server/router/Routers/RoleManagement.routes.d.ts +2 -0
  106. package/lib/server/router/Routers/RoleManagement.routes.js +28 -0
  107. package/lib/server/router/Routers/RoleManagement.routes.js.map +1 -0
  108. package/lib/server/router/Routers/UserManagement.routes.d.ts +2 -0
  109. package/lib/server/router/Routers/UserManagement.routes.js +38 -0
  110. package/lib/server/router/Routers/UserManagement.routes.js.map +1 -0
  111. package/lib/tcp/config/keys.d.ts +8 -0
  112. package/lib/tcp/config/keys.js +8 -0
  113. package/lib/tcp/config/keys.js.map +1 -1
  114. package/lib/tcp/config/permissions.d.ts +16 -0
  115. package/lib/tcp/config/permissions.js +46 -0
  116. package/lib/tcp/config/permissions.js.map +1 -0
  117. package/lib/tcp/config/protocol.js +13 -0
  118. package/lib/tcp/config/protocol.js.map +1 -1
  119. package/lib/tcp/config/server.d.ts +1 -1
  120. package/lib/tcp/config/server.js +28 -6
  121. package/lib/tcp/config/server.js.map +1 -1
  122. package/lib/tcp/connection/ConnectionManager.d.ts +19 -0
  123. package/lib/tcp/connection/ConnectionManager.js +31 -0
  124. package/lib/tcp/connection/ConnectionManager.js.map +1 -1
  125. package/lib/tcp/connection/RequestContext.d.ts +4 -1
  126. package/lib/tcp/connection/RequestContext.js +4 -1
  127. package/lib/tcp/connection/RequestContext.js.map +1 -1
  128. package/lib/tcp/handler/CommandHandler.d.ts +5 -1
  129. package/lib/tcp/handler/CommandHandler.js +34 -4
  130. package/lib/tcp/handler/CommandHandler.js.map +1 -1
  131. package/lib/tcp/handler/handlers/Auth.handler.d.ts +16 -0
  132. package/lib/tcp/handler/handlers/Auth.handler.js +91 -0
  133. package/lib/tcp/handler/handlers/Auth.handler.js.map +1 -0
  134. package/lib/tcp/handler/handlers/Operation.handler.d.ts +4 -0
  135. package/lib/tcp/handler/handlers/Operation.handler.js +27 -0
  136. package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
  137. package/lib/tcp/types/command.types.d.ts +2 -0
  138. package/lib/tcp/types/command.types.js +5 -0
  139. package/lib/tcp/types/command.types.js.map +1 -1
  140. package/lib/tcp/types/protocol.types.d.ts +2 -0
  141. package/lib/tcp/types/protocol.types.js.map +1 -1
  142. package/package.json +2 -1
  143. package/lib/server/public/AxioControl/assets/index-BRkVgnlw.js +0 -75
  144. package/lib/server/public/AxioControl/assets/index-C8TNGVxT.css +0 -1
@@ -25,8 +25,8 @@
25
25
  <meta name="twitter:card" content="summary_large_image" />
26
26
  <link rel="canonical" href="https://axiodb.in" />
27
27
  <link rel="icon" type="image/svg+xml" href="AXioDB.png" />
28
- <script type="module" crossorigin src="/assets/index-BRkVgnlw.js"></script>
29
- <link rel="stylesheet" crossorigin href="/assets/index-C8TNGVxT.css">
28
+ <script type="module" crossorigin src="/assets/index-DyJg6FRw.js"></script>
29
+ <link rel="stylesheet" crossorigin href="/assets/index-D3V1EZ2f.css">
30
30
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
31
31
 
32
32
  <body>
@@ -1 +1 @@
1
- if(!self.define){let e,i={};const s=(s,n)=>(s=new URL(s+".js",n).href,i[s]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()}).then(()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(i[t])return;let o={};const l=e=>s(e,t),d={module:{uri:t},exports:o,require:l};i[t]=Promise.all(n.map(e=>d[e]||l(e))).then(e=>(r(...e),o))}}define(["./workbox-5ffe50d4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/index-BRkVgnlw.js",revision:null},{url:"assets/index-C8TNGVxT.css",revision:null},{url:"index.html",revision:"e4c167a94e0eef17d1a607bca581d664"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"AXioDB.png",revision:"fda5a716a1f29b92f90cb38c5d2480af"},{url:"manifest.webmanifest",revision:"5b69f5e542199776b5e3a7bb87192471"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
1
+ if(!self.define){let e,i={};const s=(s,n)=>(s=new URL(s+".js",n).href,i[s]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()}).then(()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(i[t])return;let o={};const d=e=>s(e,t),l={module:{uri:t},exports:o,require:d};i[t]=Promise.all(n.map(e=>l[e]||d(e))).then(e=>(r(...e),o))}}define(["./workbox-5ffe50d4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/index-D3V1EZ2f.css",revision:null},{url:"assets/index-DyJg6FRw.js",revision:null},{url:"index.html",revision:"68b4ecfdeddf3ba0d6ae88089b246260"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"AXioDB.png",revision:"fda5a716a1f29b92f90cb38c5d2480af"},{url:"manifest.webmanifest",revision:"5b69f5e542199776b5e3a7bb87192471"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
@@ -20,8 +20,15 @@ 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"));
25
+ const Auth_routes_1 = __importDefault(require("./Routers/Auth.routes"));
26
+ const UserManagement_routes_1 = __importDefault(require("./Routers/UserManagement.routes"));
27
+ const RoleManagement_routes_1 = __importDefault(require("./Routers/RoleManagement.routes"));
24
28
  const Stats_controller_1 = __importDefault(require("../controller/Stats.controller"));
29
+ const auth_middleware_1 = require("../middleware/auth.middleware");
30
+ const permission_middleware_1 = require("../middleware/permission.middleware");
31
+ const Permissions_1 = require("../../config/Keys/Permissions");
25
32
  /**
26
33
  * Main router plugin for the AxioDB server
27
34
  * @param fastify - Fastify instance
@@ -57,7 +64,7 @@ function mainRouter(fastify, options, done) {
57
64
  return reply.status(200).send(Reply);
58
65
  }));
59
66
  // Get Dashboard Stats
60
- fastify.get("/dashboard-stats", (request, reply) => __awaiter(this, void 0, void 0, function* () {
67
+ fastify.get("/dashboard-stats", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DASHBOARD_VIEW)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () {
61
68
  return new Stats_controller_1.default(AxioDBInstance).getDashBoardStat();
62
69
  }));
63
70
  // Register the DB router
@@ -75,6 +82,16 @@ function mainRouter(fastify, options, done) {
75
82
  prefix: "/operation",
76
83
  AxioDBInstance: AxioDBInstance, // Pass the AxioDB instance to the Operation router
77
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
+ });
90
+ // Register Auth Router (login is public, session/password endpoints require auth)
91
+ fastify.register(Auth_routes_1.default, { prefix: "/auth" });
92
+ // Register User & Role Management Routers (Super Admin only)
93
+ fastify.register(UserManagement_routes_1.default, { prefix: "/auth/users" });
94
+ fastify.register(RoleManagement_routes_1.default, { prefix: "/auth/roles" });
78
95
  // Handle 404 Not Found
79
96
  fastify.setNotFoundHandler((request, reply) => {
80
97
  return reply
@@ -1 +1 @@
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,kFAAyD;AACzD,sFAA6D;AAe7D;;;;;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,CAAC,kBAAkB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE;YACvD,OAAO,IAAI,0BAAe,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChE,CAAC,CAAA,CAAC,CAAC;QAEH,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,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"}
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../source/server/router/Router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { FastifyInstance } from "fastify";
2
+ export default function authRouter(fastify: FastifyInstance): Promise<void>;
@@ -0,0 +1,27 @@
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 = authRouter;
16
+ const Auth_controller_1 = __importDefault(require("../../controller/Auth/Auth.controller"));
17
+ const auth_middleware_1 = require("../../middleware/auth.middleware");
18
+ // Auth Router - login is public, everything else requires a valid session.
19
+ function authRouter(fastify) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ fastify.post("/login", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Auth_controller_1.default().login(request, reply); }));
22
+ fastify.post("/logout", { preHandler: [auth_middleware_1.requireAuth] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Auth_controller_1.default().logout(request, reply); }));
23
+ fastify.get("/me", { preHandler: [auth_middleware_1.requireAuth] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Auth_controller_1.default().me(request, reply); }));
24
+ fastify.patch("/change-password", { preHandler: [auth_middleware_1.requireAuth] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Auth_controller_1.default().changePassword(request, reply); }));
25
+ });
26
+ }
27
+ //# sourceMappingURL=Auth.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/Auth.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4FAAmE;AACnE,sEAA+D;AAE/D,2EAA2E;AAC3E,oBAAyC,OAAwB;;QAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,yBAAc,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CAAC,CAAC;QAE7F,OAAO,CAAC,IAAI,CACV,SAAS,EACT,EAAE,UAAU,EAAE,CAAC,6BAAW,CAAC,EAAE,EAC7B,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,yBAAc,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACtE,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,KAAK,EACL,EAAE,UAAU,EAAE,CAAC,6BAAW,CAAC,EAAE,EAC7B,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,yBAAc,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CAClE,CAAC;QAEF,OAAO,CAAC,KAAK,CACX,kBAAkB,EAClB,EAAE,UAAU,EAAE,CAAC,6BAAW,CAAC,EAAE,EAC7B,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,yBAAc,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CAC9E,CAAC;IACJ,CAAC;CAAA"}
@@ -14,18 +14,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.default = collectionRouter;
16
16
  const Collection_controller_1 = __importDefault(require("../../controller/Collections/Collection.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");
17
20
  // Collection Router
18
21
  function collectionRouter(fastify, options) {
19
22
  return __awaiter(this, void 0, void 0, function* () {
20
23
  const { AxioDBInstance } = options;
21
24
  // Get All Collection
22
- fastify.get("/all/", (request, reply) => __awaiter(this, void 0, void 0, function* () {
25
+ fastify.get("/all/", {
26
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.COLLECTION_VIEW)],
27
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () {
23
28
  return new Collection_controller_1.default(AxioDBInstance).getCollections(request);
24
29
  }));
25
30
  // Create Collection
26
- fastify.post("/create-collection", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Collection_controller_1.default(AxioDBInstance).createCollection(request); }));
31
+ fastify.post("/create-collection", {
32
+ preHandler: [
33
+ auth_middleware_1.requireAuth,
34
+ auth_middleware_1.requireFreshPassword,
35
+ (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.COLLECTION_CREATE),
36
+ ],
37
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Collection_controller_1.default(AxioDBInstance).createCollection(request); }));
27
38
  // Delete Collection
28
- fastify.delete("/delete-collection/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Collection_controller_1.default(AxioDBInstance).deleteCollection(request); }));
39
+ fastify.delete("/delete-collection/", {
40
+ preHandler: [
41
+ auth_middleware_1.requireAuth,
42
+ auth_middleware_1.requireFreshPassword,
43
+ (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.COLLECTION_DELETE),
44
+ ],
45
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Collection_controller_1.default(AxioDBInstance).deleteCollection(request); }));
29
46
  });
30
47
  }
31
48
  //# sourceMappingURL=Collection.routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collection.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/Collection.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,+GAAsF;AAOtF,oBAAoB;AACpB,0BACE,OAAwB,EACxB,OAAsB;;QAEtB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5C,OAAO,IAAI,+BAAoB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1E,CAAC,CAAA,CAAC,CAAC;QAEH,oBAAoB;QACpB,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAC1D,OAAA,IAAI,+BAAoB,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CACnE,CAAC;QAEF,oBAAoB;QACpB,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAC7D,OAAA,IAAI,+BAAoB,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CACnE,CAAC;IACJ,CAAC;CAAA"}
1
+ {"version":3,"file":"Collection.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/Collection.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,+GAAsF;AACtF,sEAAqF;AACrF,kFAA2E;AAC3E,kEAA+D;AAO/D,oBAAoB;AACpB,0BACE,OAAwB,EACxB,OAAsB;;QAEtB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,qBAAqB;QACrB,OAAO,CAAC,GAAG,CACT,OAAO,EACP;YACE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,eAAe,CAAC,CAAC;SAChG,EACD,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE;YACvB,OAAO,IAAI,+BAAoB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1E,CAAC,CAAA,CACF,CAAC;QAEF,oBAAoB;QACpB,OAAO,CAAC,IAAI,CACV,oBAAoB,EACpB;YACE,UAAU,EAAE;gBACV,6BAAW;gBACX,sCAAoB;gBACpB,IAAA,yCAAiB,EAAC,yBAAW,CAAC,iBAAiB,CAAC;aACjD;SACF,EACD,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,+BAAoB,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC7F,CAAC;QAEF,oBAAoB;QACpB,OAAO,CAAC,MAAM,CACZ,qBAAqB,EACrB;YACE,UAAU,EAAE;gBACV,6BAAW;gBACX,sCAAoB;gBACpB,IAAA,yCAAiB,EAAC,yBAAW,CAAC,iBAAiB,CAAC;aACjD;SACF,EACD,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,+BAAoB,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC7F,CAAC;IACJ,CAAC;CAAA"}
@@ -15,23 +15,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.default = dbRouter;
16
16
  const Databse_controller_1 = __importDefault(require("../../controller/Database/Databse.controller"));
17
17
  const multipart_1 = __importDefault(require("@fastify/multipart"));
18
+ const auth_middleware_1 = require("../../middleware/auth.middleware");
19
+ const permission_middleware_1 = require("../../middleware/permission.middleware");
20
+ const Permissions_1 = require("../../../config/Keys/Permissions");
18
21
  // DB Routers
19
22
  function dbRouter(fastify, options) {
20
23
  return __awaiter(this, void 0, void 0, function* () {
21
24
  const { AxioDBInstance } = options; // Access the AxioDB instance passed from the main router
22
25
  fastify.register(multipart_1.default);
23
26
  // Get all databases
24
- fastify.get("/databases", (request) => __awaiter(this, void 0, void 0, function* () {
27
+ fastify.get("/databases", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DB_VIEW)] }, (request) => __awaiter(this, void 0, void 0, function* () {
25
28
  return new Databse_controller_1.default(AxioDBInstance).getDatabases();
26
29
  }));
27
30
  // Create a new database
28
- fastify.post("/create-database", (request) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).createDatabase(request); }));
31
+ fastify.post("/create-database", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DB_CREATE)] }, (request) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).createDatabase(request); }));
29
32
  // Delete a database
30
- fastify.delete("/delete-database", (request) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).deleteDatabase(request); }));
33
+ fastify.delete("/delete-database", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DB_DELETE)] }, (request) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).deleteDatabase(request); }));
31
34
  // Export Database
32
- fastify.get("/export-database/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).exportDatabase(request, reply); }));
35
+ fastify.get("/export-database/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DB_EXPORT)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).exportDatabase(request, reply); }));
33
36
  // Import Database
34
- fastify.post("/import-database/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).importDatabase(request, reply); }));
37
+ fastify.post("/import-database/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DB_IMPORT)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new Databse_controller_1.default(AxioDBInstance).importDatabase(request, reply); }));
35
38
  });
36
39
  }
37
40
  //# sourceMappingURL=DB.routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DB.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/DB.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,sGAA8E;AAC9E,mEAAkD;AAOlD,aAAa;AACb,kBACE,OAAwB,EACxB,OAAsB;;QAEtB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,CAAC,yDAAyD;QAC7F,OAAO,CAAC,QAAQ,CAAC,mBAAgB,CAAC,CAAC;QAEnC,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAO,OAAO,EAAE,EAAE;YAC1C,OAAO,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC;QAC/D,CAAC,CAAA,CAAC,CAAC;QAEH,wBAAwB;QACxB,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAO,OAAO,EAAE,EAAE,gDACjD,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC/D,CAAC;QAEF,oBAAoB;QACpB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAO,OAAO,EAAE,EAAE,gDACnD,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC/D,CAAC;QAEF,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACxD,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACtE,CAAC;QAEF,kBAAkB;QAClB,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACzD,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACtE,CAAC;IACJ,CAAC;CAAA"}
1
+ {"version":3,"file":"DB.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/DB.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,sGAA8E;AAC9E,mEAAkD;AAClD,sEAAqF;AACrF,kFAA2E;AAC3E,kEAA+D;AAO/D,aAAa;AACb,kBACE,OAAwB,EACxB,OAAsB;;QAEtB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,CAAC,yDAAyD;QAC7F,OAAO,CAAC,QAAQ,CAAC,mBAAgB,CAAC,CAAC;QAEnC,oBAAoB;QACpB,OAAO,CAAC,GAAG,CACT,YAAY,EACZ,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAC3F,CAAO,OAAO,EAAE,EAAE;YAChB,OAAO,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC;QAC/D,CAAC,CAAA,CACF,CAAC;QAEF,wBAAwB;QACxB,OAAO,CAAC,IAAI,CACV,kBAAkB,EAClB,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7F,CAAO,OAAO,EAAE,EAAE,gDAAC,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAClF,CAAC;QAEF,oBAAoB;QACpB,OAAO,CAAC,MAAM,CACZ,kBAAkB,EAClB,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7F,CAAO,OAAO,EAAE,EAAE,gDAAC,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAClF,CAAC;QAEF,kBAAkB;QAClB,OAAO,CAAC,GAAG,CACT,mBAAmB,EACnB,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACvB,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACxE,CAAC;QAEF,kBAAkB;QAClB,OAAO,CAAC,IAAI,CACV,mBAAmB,EACnB,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACvB,OAAA,IAAI,4BAAkB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACxE,CAAC;IACJ,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"}
@@ -14,28 +14,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.default = OperationRouter;
16
16
  const CRUD_controller_1 = __importDefault(require("../../controller/Operation/CRUD.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");
17
20
  // Collection Router
18
21
  function OperationRouter(fastify, options) {
19
22
  return __awaiter(this, void 0, void 0, function* () {
20
23
  const { AxioDBInstance } = options;
21
24
  // Get All Documents
22
- fastify.get("/all/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).getAllDocuments(request); }));
25
+ fastify.get("/all/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_VIEW)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).getAllDocuments(request); }));
23
26
  // Get Document by Query
24
- fastify.post("/all/by-query/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).getDocumentsByQuery(request); }));
27
+ fastify.post("/all/by-query/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_QUERY)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).getDocumentsByQuery(request); }));
25
28
  // Get Document by id
26
- fastify.get("/all/by-id/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).getDocumentsById(request); }));
29
+ fastify.get("/all/by-id/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_VIEW)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).getDocumentsById(request); }));
27
30
  // Create New Document
28
- fastify.post("/create/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).createNewDocument(request); }));
29
- fastify.post("/create-many/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).createManyNewDocument(request); }));
31
+ fastify.post("/create/", {
32
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_CREATE)],
33
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).createNewDocument(request); }));
34
+ fastify.post("/create-many/", {
35
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_CREATE)],
36
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).createManyNewDocument(request); }));
30
37
  // Update Document by Id
31
- fastify.put("/update/by-id/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).updateDocumentById(request); }));
38
+ fastify.put("/update/by-id/", {
39
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_UPDATE)],
40
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).updateDocumentById(request); }));
32
41
  // Update Document by Query
33
- fastify.put("/update/by-query/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).updateDocumentByQuery(request); }));
42
+ fastify.put("/update/by-query/", {
43
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_UPDATE)],
44
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).updateDocumentByQuery(request); }));
34
45
  // Delete Document by Id
35
- fastify.delete("/delete/by-id/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).deleteDocumentById(request); }));
46
+ fastify.delete("/delete/by-id/", {
47
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_DELETE)],
48
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).deleteDocumentById(request); }));
36
49
  // Delete Document by Query
37
- fastify.delete("/delete/by-query/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).deleteDocumentByQuery(request); }));
38
- fastify.post("/aggregate/", (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).runAggregation(request); }));
50
+ fastify.delete("/delete/by-query/", {
51
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_DELETE)],
52
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).deleteDocumentByQuery(request); }));
53
+ fastify.post("/aggregate/", {
54
+ preHandler: [
55
+ auth_middleware_1.requireAuth,
56
+ auth_middleware_1.requireFreshPassword,
57
+ (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.DOCUMENT_AGGREGATE),
58
+ ],
59
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new CRUD_controller_1.default(AxioDBInstance).runAggregation(request); }));
39
60
  });
40
61
  }
41
62
  //# sourceMappingURL=Operation.routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/Operation.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,iGAAwE;AAOxE,oBAAoB;AACpB,yBACE,OAAwB,EACxB,OAAsB;;QAEtB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAEnC,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAC5C,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC5D,CAAC;QAEF,wBAAwB;QACxB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACtD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAChE,CAAC;QAEF,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAClD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC7D,CAAC;QAEF,sBAAsB;QACtB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAChD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC9D,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACrD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAClE,CAAC;QAEF,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACrD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC/D,CAAC;QAEF,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACxD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAClE,CAAC;QAEF,wBAAwB;QACxB,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACxD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC/D,CAAC;QAEF,2BAA2B;QAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAC3D,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAClE,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDACnD,OAAA,IAAI,yBAAc,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC,CAAD,CAC3D,CAAC;IACJ,CAAC;CAAA"}
1
+ {"version":3,"file":"Operation.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/Operation.routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { FastifyInstance } from "fastify";
2
+ export default function roleManagementRouter(fastify: FastifyInstance): Promise<void>;
@@ -0,0 +1,28 @@
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 = roleManagementRouter;
16
+ const RoleManagement_controller_1 = __importDefault(require("../../controller/Auth/RoleManagement.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
+ // Role Management Router - Super Admin only (gated by role:* permissions).
21
+ function roleManagementRouter(fastify) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ fastify.get("/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.ROLE_VIEW)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new RoleManagement_controller_1.default().listRoles(request, reply); }));
24
+ fastify.post("/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.ROLE_CREATE)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new RoleManagement_controller_1.default().createRole(request, reply); }));
25
+ fastify.get("/permissions", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.ROLE_VIEW)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new RoleManagement_controller_1.default().listPermissions(request, reply); }));
26
+ });
27
+ }
28
+ //# sourceMappingURL=RoleManagement.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleManagement.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/RoleManagement.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gHAAuF;AACvF,sEAAqF;AACrF,kFAA2E;AAC3E,kEAA+D;AAE/D,2EAA2E;AAC3E,8BAAmD,OAAwB;;QACzE,OAAO,CAAC,GAAG,CACT,GAAG,EACH,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACnF,CAAC;QAEF,OAAO,CAAC,IAAI,CACV,GAAG,EACH,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,WAAW,CAAC,CAAC,EAAE,EAC/F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACpF,CAAC;QAEF,OAAO,CAAC,GAAG,CACT,cAAc,EACd,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACzF,CAAC;IACJ,CAAC;CAAA"}
@@ -0,0 +1,2 @@
1
+ import { FastifyInstance } from "fastify";
2
+ export default function userManagementRouter(fastify: FastifyInstance): Promise<void>;
@@ -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 = userManagementRouter;
16
+ const UserManagement_controller_1 = __importDefault(require("../../controller/Auth/UserManagement.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
+ // User Management Router - Super Admin only (gated by user:* permissions).
21
+ function userManagementRouter(fastify) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ fastify.get("/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.USER_VIEW)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new UserManagement_controller_1.default().listUsers(request, reply); }));
24
+ fastify.post("/", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.USER_CREATE)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new UserManagement_controller_1.default().createUser(request, reply); }));
25
+ fastify.patch("/:username/role", {
26
+ preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.USER_UPDATE_ROLE)],
27
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new UserManagement_controller_1.default().updateUserRole(request, reply); }));
28
+ fastify.patch("/:username/reset-password", {
29
+ preHandler: [
30
+ auth_middleware_1.requireAuth,
31
+ auth_middleware_1.requireFreshPassword,
32
+ (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.USER_RESET_PASSWORD),
33
+ ],
34
+ }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new UserManagement_controller_1.default().resetUserPassword(request, reply); }));
35
+ fastify.delete("/:username", { preHandler: [auth_middleware_1.requireAuth, auth_middleware_1.requireFreshPassword, (0, permission_middleware_1.requirePermission)(Permissions_1.PERMISSIONS.USER_DELETE)] }, (request, reply) => __awaiter(this, void 0, void 0, function* () { return new UserManagement_controller_1.default().deleteUser(request, reply); }));
36
+ });
37
+ }
38
+ //# sourceMappingURL=UserManagement.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserManagement.routes.js","sourceRoot":"","sources":["../../../../source/server/router/Routers/UserManagement.routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gHAAuF;AACvF,sEAAqF;AACrF,kFAA2E;AAC3E,kEAA+D;AAE/D,2EAA2E;AAC3E,8BAAmD,OAAwB;;QACzE,OAAO,CAAC,GAAG,CACT,GAAG,EACH,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACnF,CAAC;QAEF,OAAO,CAAC,IAAI,CACV,GAAG,EACH,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,WAAW,CAAC,CAAC,EAAE,EAC/F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACpF,CAAC;QAEF,OAAO,CAAC,KAAK,CACX,iBAAiB,EACjB;YACE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,gBAAgB,CAAC,CAAC;SACjG,EACD,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACxF,CAAC;QAEF,OAAO,CAAC,KAAK,CACX,2BAA2B,EAC3B;YACE,UAAU,EAAE;gBACV,6BAAW;gBACX,sCAAoB;gBACpB,IAAA,yCAAiB,EAAC,yBAAW,CAAC,mBAAmB,CAAC;aACnD;SACF,EACD,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CAC3F,CAAC;QAEF,OAAO,CAAC,MAAM,CACZ,YAAY,EACZ,EAAE,UAAU,EAAE,CAAC,6BAAW,EAAE,sCAAoB,EAAE,IAAA,yCAAiB,EAAC,yBAAW,CAAC,WAAW,CAAC,CAAC,EAAE,EAC/F,CAAO,OAAO,EAAE,KAAK,EAAE,EAAE,gDAAC,OAAA,IAAI,mCAAwB,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA,CAAA,CAAC,CAAD,CACpF,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"}