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.
- package/README.md +67 -2
- package/lib/Services/Auth/AuthEvents.service.d.ts +15 -0
- package/lib/Services/Auth/AuthEvents.service.js +17 -0
- package/lib/Services/Auth/AuthEvents.service.js.map +1 -0
- package/lib/Services/Auth/AuthSeeder.service.d.ts +16 -0
- package/lib/Services/Auth/AuthSeeder.service.js +99 -0
- package/lib/Services/Auth/AuthSeeder.service.js.map +1 -0
- package/lib/Services/Auth/AuthService.service.d.ts +53 -0
- package/lib/Services/Auth/AuthService.service.js +221 -0
- package/lib/Services/Auth/AuthService.service.js.map +1 -0
- package/lib/Services/Auth/ConfigDatabase.service.d.ts +22 -0
- package/lib/Services/Auth/ConfigDatabase.service.js +47 -0
- package/lib/Services/Auth/ConfigDatabase.service.js.map +1 -0
- package/lib/Services/Auth/CookieCodec.helper.d.ts +10 -0
- package/lib/Services/Auth/CookieCodec.helper.js +30 -0
- package/lib/Services/Auth/CookieCodec.helper.js.map +1 -0
- package/lib/Services/Auth/LoginRateLimiter.service.d.ts +35 -0
- package/lib/Services/Auth/LoginRateLimiter.service.js +89 -0
- package/lib/Services/Auth/LoginRateLimiter.service.js.map +1 -0
- package/lib/Services/Auth/PasswordHasher.helper.d.ts +9 -0
- package/lib/Services/Auth/PasswordHasher.helper.js +54 -0
- package/lib/Services/Auth/PasswordHasher.helper.js.map +1 -0
- package/lib/Services/Auth/PermissionChecker.helper.d.ts +21 -0
- package/lib/Services/Auth/PermissionChecker.helper.js +41 -0
- package/lib/Services/Auth/PermissionChecker.helper.js.map +1 -0
- package/lib/Services/Auth/SessionStore.service.d.ts +23 -0
- package/lib/Services/Auth/SessionStore.service.js +96 -0
- package/lib/Services/Auth/SessionStore.service.js.map +1 -0
- package/lib/Services/Collection/collection.operation.d.ts +6 -0
- package/lib/Services/Collection/collection.operation.js +10 -0
- package/lib/Services/Collection/collection.operation.js.map +1 -1
- package/lib/Services/Index/Index.service.d.ts +20 -0
- package/lib/Services/Index/Index.service.js +25 -1
- package/lib/Services/Index/Index.service.js.map +1 -1
- package/lib/Services/Indexation.operation.d.ts +4 -0
- package/lib/Services/Indexation.operation.js +20 -6
- package/lib/Services/Indexation.operation.js.map +1 -1
- package/lib/client/AxioDBCloud.client.d.ts +20 -1
- package/lib/client/AxioDBCloud.client.js +54 -3
- package/lib/client/AxioDBCloud.client.js.map +1 -1
- package/lib/client/CollectionProxy.d.ts +4 -0
- package/lib/client/CollectionProxy.js +11 -0
- package/lib/client/CollectionProxy.js.map +1 -1
- package/lib/client/types/client.types.d.ts +8 -0
- package/lib/client/types/client.types.js.map +1 -1
- package/lib/config/Interfaces/Auth/auth.interface.d.ts +70 -0
- package/lib/config/Interfaces/Auth/auth.interface.js +4 -0
- package/lib/config/Interfaces/Auth/auth.interface.js.map +1 -0
- package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +2 -0
- package/lib/config/Keys/Permissions.d.ts +64 -0
- package/lib/config/Keys/Permissions.js +121 -0
- package/lib/config/Keys/Permissions.js.map +1 -0
- package/lib/server/config/keys.d.ts +2 -2
- package/lib/server/config/keys.js +109 -1
- package/lib/server/config/keys.js.map +1 -1
- package/lib/server/config/server.js +6 -0
- package/lib/server/config/server.js.map +1 -1
- package/lib/server/controller/Auth/Auth.controller.d.ts +12 -0
- package/lib/server/controller/Auth/Auth.controller.js +162 -0
- package/lib/server/controller/Auth/Auth.controller.js.map +1 -0
- package/lib/server/controller/Auth/RoleManagement.controller.d.ts +9 -0
- package/lib/server/controller/Auth/RoleManagement.controller.js +89 -0
- package/lib/server/controller/Auth/RoleManagement.controller.js.map +1 -0
- package/lib/server/controller/Auth/UserManagement.controller.d.ts +11 -0
- package/lib/server/controller/Auth/UserManagement.controller.js +122 -0
- package/lib/server/controller/Auth/UserManagement.controller.js.map +1 -0
- package/lib/server/controller/Collections/Collection.controller.js +10 -0
- package/lib/server/controller/Collections/Collection.controller.js.map +1 -1
- package/lib/server/controller/Database/Databse.controller.js +17 -0
- package/lib/server/controller/Database/Databse.controller.js.map +1 -1
- package/lib/server/controller/Index/Index.controller.d.ts +35 -0
- package/lib/server/controller/Index/Index.controller.js +148 -0
- package/lib/server/controller/Index/Index.controller.js.map +1 -0
- package/lib/server/controller/Operation/CRUD.controller.js +31 -0
- package/lib/server/controller/Operation/CRUD.controller.js.map +1 -1
- package/lib/server/helper/responseBuilder.helper.d.ts +8 -0
- package/lib/server/helper/responseBuilder.helper.js +11 -1
- package/lib/server/helper/responseBuilder.helper.js.map +1 -1
- package/lib/server/middleware/auth.middleware.d.ts +14 -0
- package/lib/server/middleware/auth.middleware.js +64 -0
- package/lib/server/middleware/auth.middleware.js.map +1 -0
- package/lib/server/middleware/permission.middleware.d.ts +6 -0
- package/lib/server/middleware/permission.middleware.js +36 -0
- package/lib/server/middleware/permission.middleware.js.map +1 -0
- package/lib/server/public/AxioControl/.vite/manifest.json +2 -2
- package/lib/server/public/AxioControl/.vite/ssr-manifest.json +10 -0
- package/lib/server/public/AxioControl/assets/index-D3V1EZ2f.css +1 -0
- package/lib/server/public/AxioControl/assets/index-DyJg6FRw.js +75 -0
- package/lib/server/public/AxioControl/index.html +2 -2
- package/lib/server/public/AxioControl/sw.js +1 -1
- package/lib/server/router/Router.js +18 -1
- package/lib/server/router/Router.js.map +1 -1
- package/lib/server/router/Routers/Auth.routes.d.ts +2 -0
- package/lib/server/router/Routers/Auth.routes.js +27 -0
- package/lib/server/router/Routers/Auth.routes.js.map +1 -0
- package/lib/server/router/Routers/Collection.routes.js +20 -3
- package/lib/server/router/Routers/Collection.routes.js.map +1 -1
- package/lib/server/router/Routers/DB.routes.js +8 -5
- package/lib/server/router/Routers/DB.routes.js.map +1 -1
- package/lib/server/router/Routers/Index.routes.d.ts +7 -0
- package/lib/server/router/Routers/Index.routes.js +38 -0
- package/lib/server/router/Routers/Index.routes.js.map +1 -0
- package/lib/server/router/Routers/Operation.routes.js +31 -10
- package/lib/server/router/Routers/Operation.routes.js.map +1 -1
- package/lib/server/router/Routers/RoleManagement.routes.d.ts +2 -0
- package/lib/server/router/Routers/RoleManagement.routes.js +28 -0
- package/lib/server/router/Routers/RoleManagement.routes.js.map +1 -0
- package/lib/server/router/Routers/UserManagement.routes.d.ts +2 -0
- package/lib/server/router/Routers/UserManagement.routes.js +38 -0
- package/lib/server/router/Routers/UserManagement.routes.js.map +1 -0
- package/lib/tcp/config/keys.d.ts +8 -0
- package/lib/tcp/config/keys.js +8 -0
- package/lib/tcp/config/keys.js.map +1 -1
- package/lib/tcp/config/permissions.d.ts +16 -0
- package/lib/tcp/config/permissions.js +46 -0
- package/lib/tcp/config/permissions.js.map +1 -0
- package/lib/tcp/config/protocol.js +13 -0
- package/lib/tcp/config/protocol.js.map +1 -1
- package/lib/tcp/config/server.d.ts +1 -1
- package/lib/tcp/config/server.js +28 -6
- package/lib/tcp/config/server.js.map +1 -1
- package/lib/tcp/connection/ConnectionManager.d.ts +19 -0
- package/lib/tcp/connection/ConnectionManager.js +31 -0
- package/lib/tcp/connection/ConnectionManager.js.map +1 -1
- package/lib/tcp/connection/RequestContext.d.ts +4 -1
- package/lib/tcp/connection/RequestContext.js +4 -1
- package/lib/tcp/connection/RequestContext.js.map +1 -1
- package/lib/tcp/handler/CommandHandler.d.ts +5 -1
- package/lib/tcp/handler/CommandHandler.js +34 -4
- package/lib/tcp/handler/CommandHandler.js.map +1 -1
- package/lib/tcp/handler/handlers/Auth.handler.d.ts +16 -0
- package/lib/tcp/handler/handlers/Auth.handler.js +91 -0
- package/lib/tcp/handler/handlers/Auth.handler.js.map +1 -0
- package/lib/tcp/handler/handlers/Operation.handler.d.ts +4 -0
- package/lib/tcp/handler/handlers/Operation.handler.js +27 -0
- package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
- package/lib/tcp/types/command.types.d.ts +2 -0
- package/lib/tcp/types/command.types.js +5 -0
- package/lib/tcp/types/command.types.js.map +1 -1
- package/lib/tcp/types/protocol.types.d.ts +2 -0
- package/lib/tcp/types/protocol.types.js.map +1 -1
- package/package.json +2 -1
- package/lib/server/public/AxioControl/assets/index-BRkVgnlw.js +0 -75
- 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-
|
|
29
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
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
|
|
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;
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../source/server/router/Router.ts"],"names":[],"mappings":"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"}
|
|
@@ -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/",
|
|
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",
|
|
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/",
|
|
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;
|
|
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;
|
|
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/",
|
|
29
|
-
|
|
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/",
|
|
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/",
|
|
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/",
|
|
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/",
|
|
38
|
-
|
|
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;
|
|
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,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,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"}
|
package/lib/tcp/config/keys.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare const StatusCode: {
|
|
|
26
26
|
readonly CONFLICT: 409;
|
|
27
27
|
readonly PAYLOAD_TOO_LARGE: 413;
|
|
28
28
|
readonly UNPROCESSABLE_ENTITY: 422;
|
|
29
|
+
readonly TOO_MANY_REQUESTS: 429;
|
|
29
30
|
readonly INTERNAL_SERVER_ERROR: 500;
|
|
30
31
|
readonly NOT_IMPLEMENTED: 501;
|
|
31
32
|
readonly SERVICE_UNAVAILABLE: 503;
|
|
@@ -40,6 +41,12 @@ export declare const ErrorMessage: {
|
|
|
40
41
|
readonly REQUEST_TIMEOUT: 'Request timeout';
|
|
41
42
|
readonly SERVER_OVERLOAD: 'Server is overloaded';
|
|
42
43
|
readonly INTERNAL_ERROR: 'Internal server error';
|
|
44
|
+
readonly AUTH_REQUIRED: 'Authentication required. Send an AUTHENTICATE command with username and password.';
|
|
45
|
+
readonly INVALID_CREDENTIALS: 'Invalid username or password';
|
|
46
|
+
readonly INSUFFICIENT_PERMISSIONS: 'Insufficient permissions for this operation';
|
|
47
|
+
readonly RESERVED_DATABASE: 'This is a reserved system database';
|
|
48
|
+
readonly TOO_MANY_LOGIN_ATTEMPTS: 'Too many failed login attempts. Try again later.';
|
|
49
|
+
readonly PASSWORD_CHANGE_REQUIRED: 'This account must change its password before it can be used over TCP. Log into the Control Server GUI to change the password, or authenticate with a different account that has already completed its password change.';
|
|
43
50
|
};
|
|
44
51
|
export declare const SuccessMessage: {
|
|
45
52
|
readonly PING_PONG: 'PONG';
|
|
@@ -56,4 +63,5 @@ export declare const SuccessMessage: {
|
|
|
56
63
|
readonly DOCUMENTS_DELETED: 'Documents deleted successfully';
|
|
57
64
|
readonly INDEX_CREATED: 'Index created successfully';
|
|
58
65
|
readonly INDEX_DROPPED: 'Index dropped successfully';
|
|
66
|
+
readonly AUTHENTICATED: 'Authenticated successfully';
|
|
59
67
|
};
|
package/lib/tcp/config/keys.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.StatusCode = {
|
|
|
37
37
|
CONFLICT: 409,
|
|
38
38
|
PAYLOAD_TOO_LARGE: 413,
|
|
39
39
|
UNPROCESSABLE_ENTITY: 422,
|
|
40
|
+
TOO_MANY_REQUESTS: 429,
|
|
40
41
|
// Server Errors
|
|
41
42
|
INTERNAL_SERVER_ERROR: 500,
|
|
42
43
|
NOT_IMPLEMENTED: 501,
|
|
@@ -53,6 +54,12 @@ exports.ErrorMessage = {
|
|
|
53
54
|
REQUEST_TIMEOUT: 'Request timeout',
|
|
54
55
|
SERVER_OVERLOAD: 'Server is overloaded',
|
|
55
56
|
INTERNAL_ERROR: 'Internal server error',
|
|
57
|
+
AUTH_REQUIRED: 'Authentication required. Send an AUTHENTICATE command with username and password.',
|
|
58
|
+
INVALID_CREDENTIALS: 'Invalid username or password',
|
|
59
|
+
INSUFFICIENT_PERMISSIONS: 'Insufficient permissions for this operation',
|
|
60
|
+
RESERVED_DATABASE: 'This is a reserved system database',
|
|
61
|
+
TOO_MANY_LOGIN_ATTEMPTS: 'Too many failed login attempts. Try again later.',
|
|
62
|
+
PASSWORD_CHANGE_REQUIRED: 'This account must change its password before it can be used over TCP. Log into the Control Server GUI to change the password, or authenticate with a different account that has already completed its password change.',
|
|
56
63
|
};
|
|
57
64
|
// Success Messages
|
|
58
65
|
exports.SuccessMessage = {
|
|
@@ -70,5 +77,6 @@ exports.SuccessMessage = {
|
|
|
70
77
|
DOCUMENTS_DELETED: 'Documents deleted successfully',
|
|
71
78
|
INDEX_CREATED: 'Index created successfully',
|
|
72
79
|
INDEX_DROPPED: 'Index dropped successfully',
|
|
80
|
+
AUTHENTICATED: 'Authenticated successfully',
|
|
73
81
|
};
|
|
74
82
|
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/tcp/config/keys.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uBAAuB;AACV,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAC5C,QAAA,eAAe,GAAG,IAAI,CAAC,CAAC,iCAAiC;AACzD,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEtD,iCAAiC;AACpB,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC,aAAa;AAC9C,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AACzC,QAAA,iBAAiB,GAAG,IAAI,CAAC,CAAC,YAAY;AAEnD,6BAA6B;AAChB,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,uBAAuB,GAAG,IAAI,CAAC,CAAC,WAAW;AAC3C,QAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEvD,yBAAyB;AACZ,QAAA,oBAAoB,GAAG,CAAC,CAAC,CAAC,mCAAmC;AAC7D,QAAA,QAAQ,GAAG,MAAM,CAAC;AAE/B,uBAAuB;AACV,QAAA,mBAAmB,GAAG,IAAI,CAAC,CAAC,MAAM;AAClC,QAAA,eAAe,GAAG,QAAA,gBAAgB,GAAG,QAAA,oBAAoB,CAAC;AAEvE,4BAA4B;AACf,QAAA,UAAU,GAAG;IACxB,UAAU;IACV,EAAE,EAAE,GAAG;IACP,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IAEf,gBAAgB;IAChB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,iBAAiB,EAAE,GAAG;IACtB,oBAAoB,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/tcp/config/keys.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uBAAuB;AACV,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAC5C,QAAA,eAAe,GAAG,IAAI,CAAC,CAAC,iCAAiC;AACzD,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEtD,iCAAiC;AACpB,QAAA,uBAAuB,GAAG,KAAK,CAAC,CAAC,aAAa;AAC9C,QAAA,kBAAkB,GAAG,KAAK,CAAC,CAAC,aAAa;AACzC,QAAA,iBAAiB,GAAG,IAAI,CAAC,CAAC,YAAY;AAEnD,6BAA6B;AAChB,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,uBAAuB,GAAG,IAAI,CAAC,CAAC,WAAW;AAC3C,QAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;AAEvD,yBAAyB;AACZ,QAAA,oBAAoB,GAAG,CAAC,CAAC,CAAC,mCAAmC;AAC7D,QAAA,QAAQ,GAAG,MAAM,CAAC;AAE/B,uBAAuB;AACV,QAAA,mBAAmB,GAAG,IAAI,CAAC,CAAC,MAAM;AAClC,QAAA,eAAe,GAAG,QAAA,gBAAgB,GAAG,QAAA,oBAAoB,CAAC;AAEvE,4BAA4B;AACf,QAAA,UAAU,GAAG;IACxB,UAAU;IACV,EAAE,EAAE,GAAG;IACP,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IAEf,gBAAgB;IAChB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,iBAAiB,EAAE,GAAG;IACtB,oBAAoB,EAAE,GAAG;IACzB,iBAAiB,EAAE,GAAG;IAEtB,gBAAgB;IAChB,qBAAqB,EAAE,GAAG;IAC1B,eAAe,EAAE,GAAG;IACpB,mBAAmB,EAAE,GAAG;CAChB,CAAC;AAEX,iBAAiB;AACJ,QAAA,YAAY,GAAG;IAC1B,sBAAsB,EAAE,wBAAwB;IAChD,iBAAiB,EAAE,8BAA8B;IACjD,eAAe,EAAE,iBAAiB;IAClC,uBAAuB,EAAE,6BAA6B;IACtD,sBAAsB,EAAE,wBAAwB;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,sBAAsB;IACvC,cAAc,EAAE,uBAAuB;IACvC,aAAa,EAAE,mFAAmF;IAClG,mBAAmB,EAAE,8BAA8B;IACnD,wBAAwB,EAAE,6CAA6C;IACvE,iBAAiB,EAAE,oCAAoC;IACvD,uBAAuB,EAAE,kDAAkD;IAC3E,wBAAwB,EACtB,wNAAwN;CAClN,CAAC;AAEX,mBAAmB;AACN,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,2BAA2B;IACzC,UAAU,EAAE,+BAA+B;IAC3C,UAAU,EAAE,+BAA+B;IAC3C,kBAAkB,EAAE,iCAAiC;IACrD,kBAAkB,EAAE,iCAAiC;IACrD,iBAAiB,EAAE,gCAAgC;IACnD,kBAAkB,EAAE,iCAAiC;IACrD,gBAAgB,EAAE,+BAA+B;IACjD,iBAAiB,EAAE,gCAAgC;IACnD,gBAAgB,EAAE,+BAA+B;IACjD,iBAAiB,EAAE,gCAAgC;IACnD,aAAa,EAAE,4BAA4B;IAC3C,aAAa,EAAE,4BAA4B;IAC3C,aAAa,EAAE,4BAA4B;CACnC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CommandType } from '../types/command.types';
|
|
2
|
+
import { PermissionKey } from '../../config/Keys/Permissions';
|
|
3
|
+
/**
|
|
4
|
+
* Maps each data-plane TCP command to the RBAC permission key required to run it.
|
|
5
|
+
* Mirrors the GUI's per-route `requirePermission(key)` chain (see
|
|
6
|
+
* `source/server/router/Routers/*.routes.ts`) so TCP and GUI enforce identical rules
|
|
7
|
+
* against the same `config` DB users/roles.
|
|
8
|
+
*
|
|
9
|
+
* Commands with no entry here (and not in `TCP_AUTH_EXEMPT_COMMANDS`) still require a
|
|
10
|
+
* successful AUTHENTICATE, but no specific permission - currently only
|
|
11
|
+
* BEGIN/COMMIT/ROLLBACK_TRANSACTION, which fall straight through to the existing
|
|
12
|
+
* `NOT_IMPLEMENTED` response.
|
|
13
|
+
*/
|
|
14
|
+
export declare const TCP_COMMAND_PERMISSIONS: Partial<Record<CommandType, PermissionKey>>;
|
|
15
|
+
/** Commands that never require authentication, even when the TCP server has `TCPAuth` enabled. */
|
|
16
|
+
export declare const TCP_AUTH_EXEMPT_COMMANDS: ReadonlySet<CommandType>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TCP_AUTH_EXEMPT_COMMANDS = exports.TCP_COMMAND_PERMISSIONS = void 0;
|
|
4
|
+
const command_types_1 = require("../types/command.types");
|
|
5
|
+
const Permissions_1 = require("../../config/Keys/Permissions");
|
|
6
|
+
/**
|
|
7
|
+
* Maps each data-plane TCP command to the RBAC permission key required to run it.
|
|
8
|
+
* Mirrors the GUI's per-route `requirePermission(key)` chain (see
|
|
9
|
+
* `source/server/router/Routers/*.routes.ts`) so TCP and GUI enforce identical rules
|
|
10
|
+
* against the same `config` DB users/roles.
|
|
11
|
+
*
|
|
12
|
+
* Commands with no entry here (and not in `TCP_AUTH_EXEMPT_COMMANDS`) still require a
|
|
13
|
+
* successful AUTHENTICATE, but no specific permission - currently only
|
|
14
|
+
* BEGIN/COMMIT/ROLLBACK_TRANSACTION, which fall straight through to the existing
|
|
15
|
+
* `NOT_IMPLEMENTED` response.
|
|
16
|
+
*/
|
|
17
|
+
exports.TCP_COMMAND_PERMISSIONS = {
|
|
18
|
+
[command_types_1.CommandType.CREATE_DB]: Permissions_1.PERMISSIONS.DB_CREATE,
|
|
19
|
+
[command_types_1.CommandType.DELETE_DB]: Permissions_1.PERMISSIONS.DB_DELETE,
|
|
20
|
+
[command_types_1.CommandType.DB_EXISTS]: Permissions_1.PERMISSIONS.DB_VIEW,
|
|
21
|
+
[command_types_1.CommandType.GET_INSTANCE_INFO]: Permissions_1.PERMISSIONS.DASHBOARD_VIEW,
|
|
22
|
+
[command_types_1.CommandType.CREATE_COLLECTION]: Permissions_1.PERMISSIONS.COLLECTION_CREATE,
|
|
23
|
+
[command_types_1.CommandType.DELETE_COLLECTION]: Permissions_1.PERMISSIONS.COLLECTION_DELETE,
|
|
24
|
+
[command_types_1.CommandType.COLLECTION_EXISTS]: Permissions_1.PERMISSIONS.COLLECTION_VIEW,
|
|
25
|
+
[command_types_1.CommandType.GET_COLLECTION_INFO]: Permissions_1.PERMISSIONS.COLLECTION_VIEW,
|
|
26
|
+
[command_types_1.CommandType.INSERT_DOCUMENT]: Permissions_1.PERMISSIONS.DOCUMENT_CREATE,
|
|
27
|
+
[command_types_1.CommandType.INSERT_MANY_DOCUMENTS]: Permissions_1.PERMISSIONS.DOCUMENT_CREATE,
|
|
28
|
+
[command_types_1.CommandType.QUERY_DOCUMENTS]: Permissions_1.PERMISSIONS.DOCUMENT_QUERY,
|
|
29
|
+
[command_types_1.CommandType.QUERY_BY_ID]: Permissions_1.PERMISSIONS.DOCUMENT_VIEW,
|
|
30
|
+
[command_types_1.CommandType.UPDATE_DOCUMENT_BY_ID]: Permissions_1.PERMISSIONS.DOCUMENT_UPDATE,
|
|
31
|
+
[command_types_1.CommandType.UPDATE_DOCUMENTS_BY_QUERY]: Permissions_1.PERMISSIONS.DOCUMENT_UPDATE,
|
|
32
|
+
[command_types_1.CommandType.DELETE_DOCUMENT_BY_ID]: Permissions_1.PERMISSIONS.DOCUMENT_DELETE,
|
|
33
|
+
[command_types_1.CommandType.DELETE_DOCUMENTS_BY_QUERY]: Permissions_1.PERMISSIONS.DOCUMENT_DELETE,
|
|
34
|
+
[command_types_1.CommandType.AGGREGATE]: Permissions_1.PERMISSIONS.DOCUMENT_AGGREGATE,
|
|
35
|
+
[command_types_1.CommandType.TOTAL_DOCUMENTS]: Permissions_1.PERMISSIONS.DOCUMENT_VIEW,
|
|
36
|
+
[command_types_1.CommandType.CREATE_INDEX]: Permissions_1.PERMISSIONS.INDEX_CREATE,
|
|
37
|
+
[command_types_1.CommandType.DROP_INDEX]: Permissions_1.PERMISSIONS.INDEX_DELETE,
|
|
38
|
+
[command_types_1.CommandType.LIST_INDEXES]: Permissions_1.PERMISSIONS.INDEX_VIEW,
|
|
39
|
+
};
|
|
40
|
+
/** Commands that never require authentication, even when the TCP server has `TCPAuth` enabled. */
|
|
41
|
+
exports.TCP_AUTH_EXEMPT_COMMANDS = new Set([
|
|
42
|
+
command_types_1.CommandType.PING,
|
|
43
|
+
command_types_1.CommandType.DISCONNECT,
|
|
44
|
+
command_types_1.CommandType.AUTHENTICATE,
|
|
45
|
+
]);
|
|
46
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../source/tcp/config/permissions.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AACrD,+DAA2E;AAE3E;;;;;;;;;;GAUG;AACU,QAAA,uBAAuB,GAAgD;IAClF,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,SAAS;IAC9C,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,SAAS;IAC9C,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,OAAO;IAC5C,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,cAAc;IAE3D,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,iBAAiB;IAC9D,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,iBAAiB;IAC9D,CAAC,2BAAW,CAAC,iBAAiB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAC5D,CAAC,2BAAW,CAAC,mBAAmB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAE9D,CAAC,2BAAW,CAAC,eAAe,CAAC,EAAE,yBAAW,CAAC,eAAe;IAC1D,CAAC,2BAAW,CAAC,qBAAqB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAChE,CAAC,2BAAW,CAAC,eAAe,CAAC,EAAE,yBAAW,CAAC,cAAc;IACzD,CAAC,2BAAW,CAAC,WAAW,CAAC,EAAE,yBAAW,CAAC,aAAa;IACpD,CAAC,2BAAW,CAAC,qBAAqB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAChE,CAAC,2BAAW,CAAC,yBAAyB,CAAC,EAAE,yBAAW,CAAC,eAAe;IACpE,CAAC,2BAAW,CAAC,qBAAqB,CAAC,EAAE,yBAAW,CAAC,eAAe;IAChE,CAAC,2BAAW,CAAC,yBAAyB,CAAC,EAAE,yBAAW,CAAC,eAAe;IACpE,CAAC,2BAAW,CAAC,SAAS,CAAC,EAAE,yBAAW,CAAC,kBAAkB;IACvD,CAAC,2BAAW,CAAC,eAAe,CAAC,EAAE,yBAAW,CAAC,aAAa;IAExD,CAAC,2BAAW,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,YAAY;IACpD,CAAC,2BAAW,CAAC,UAAU,CAAC,EAAE,yBAAW,CAAC,YAAY;IAClD,CAAC,2BAAW,CAAC,YAAY,CAAC,EAAE,yBAAW,CAAC,UAAU;CACnD,CAAC;AAEF,kGAAkG;AACrF,QAAA,wBAAwB,GAA6B,IAAI,GAAG,CAAC;IACxE,2BAAW,CAAC,IAAI;IAChB,2BAAW,CAAC,UAAU;IACtB,2BAAW,CAAC,YAAY;CACzB,CAAC,CAAC"}
|