axiodb 9.7.9 → 10.8.11

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 (85) hide show
  1. package/README.md +22 -0
  2. package/lib/Services/Auth/AuthSeeder.service.d.ts +16 -0
  3. package/lib/Services/Auth/AuthSeeder.service.js +99 -0
  4. package/lib/Services/Auth/AuthSeeder.service.js.map +1 -0
  5. package/lib/Services/Auth/AuthService.service.d.ts +53 -0
  6. package/lib/Services/Auth/AuthService.service.js +217 -0
  7. package/lib/Services/Auth/AuthService.service.js.map +1 -0
  8. package/lib/Services/Auth/ConfigDatabase.service.d.ts +22 -0
  9. package/lib/Services/Auth/ConfigDatabase.service.js +47 -0
  10. package/lib/Services/Auth/ConfigDatabase.service.js.map +1 -0
  11. package/lib/Services/Auth/CookieCodec.helper.d.ts +10 -0
  12. package/lib/Services/Auth/CookieCodec.helper.js +30 -0
  13. package/lib/Services/Auth/CookieCodec.helper.js.map +1 -0
  14. package/lib/Services/Auth/PasswordHasher.helper.d.ts +9 -0
  15. package/lib/Services/Auth/PasswordHasher.helper.js +54 -0
  16. package/lib/Services/Auth/PasswordHasher.helper.js.map +1 -0
  17. package/lib/Services/Auth/PermissionChecker.helper.d.ts +21 -0
  18. package/lib/Services/Auth/PermissionChecker.helper.js +41 -0
  19. package/lib/Services/Auth/PermissionChecker.helper.js.map +1 -0
  20. package/lib/Services/Auth/SessionStore.service.d.ts +23 -0
  21. package/lib/Services/Auth/SessionStore.service.js +96 -0
  22. package/lib/Services/Auth/SessionStore.service.js.map +1 -0
  23. package/lib/Services/Indexation.operation.js +8 -3
  24. package/lib/Services/Indexation.operation.js.map +1 -1
  25. package/lib/config/Interfaces/Auth/auth.interface.d.ts +70 -0
  26. package/lib/config/Interfaces/Auth/auth.interface.js +4 -0
  27. package/lib/config/Interfaces/Auth/auth.interface.js.map +1 -0
  28. package/lib/config/Keys/Permissions.d.ts +51 -0
  29. package/lib/config/Keys/Permissions.js +101 -0
  30. package/lib/config/Keys/Permissions.js.map +1 -0
  31. package/lib/server/config/keys.d.ts +2 -2
  32. package/lib/server/config/keys.js +83 -1
  33. package/lib/server/config/keys.js.map +1 -1
  34. package/lib/server/config/server.js +6 -0
  35. package/lib/server/config/server.js.map +1 -1
  36. package/lib/server/controller/Auth/Auth.controller.d.ts +12 -0
  37. package/lib/server/controller/Auth/Auth.controller.js +153 -0
  38. package/lib/server/controller/Auth/Auth.controller.js.map +1 -0
  39. package/lib/server/controller/Auth/RoleManagement.controller.d.ts +9 -0
  40. package/lib/server/controller/Auth/RoleManagement.controller.js +89 -0
  41. package/lib/server/controller/Auth/RoleManagement.controller.js.map +1 -0
  42. package/lib/server/controller/Auth/UserManagement.controller.d.ts +11 -0
  43. package/lib/server/controller/Auth/UserManagement.controller.js +122 -0
  44. package/lib/server/controller/Auth/UserManagement.controller.js.map +1 -0
  45. package/lib/server/controller/Collections/Collection.controller.js +10 -0
  46. package/lib/server/controller/Collections/Collection.controller.js.map +1 -1
  47. package/lib/server/controller/Database/Databse.controller.js +17 -0
  48. package/lib/server/controller/Database/Databse.controller.js.map +1 -1
  49. package/lib/server/controller/Operation/CRUD.controller.js +31 -0
  50. package/lib/server/controller/Operation/CRUD.controller.js.map +1 -1
  51. package/lib/server/helper/responseBuilder.helper.d.ts +8 -0
  52. package/lib/server/helper/responseBuilder.helper.js +11 -1
  53. package/lib/server/helper/responseBuilder.helper.js.map +1 -1
  54. package/lib/server/middleware/auth.middleware.d.ts +14 -0
  55. package/lib/server/middleware/auth.middleware.js +64 -0
  56. package/lib/server/middleware/auth.middleware.js.map +1 -0
  57. package/lib/server/middleware/permission.middleware.d.ts +6 -0
  58. package/lib/server/middleware/permission.middleware.js +36 -0
  59. package/lib/server/middleware/permission.middleware.js.map +1 -0
  60. package/lib/server/public/AxioControl/.vite/manifest.json +2 -2
  61. package/lib/server/public/AxioControl/.vite/ssr-manifest.json +10 -0
  62. package/lib/server/public/AxioControl/assets/index-D3V1EZ2f.css +1 -0
  63. package/lib/server/public/AxioControl/assets/index-DyJg6FRw.js +75 -0
  64. package/lib/server/public/AxioControl/index.html +2 -2
  65. package/lib/server/public/AxioControl/sw.js +1 -1
  66. package/lib/server/router/Router.js +12 -1
  67. package/lib/server/router/Router.js.map +1 -1
  68. package/lib/server/router/Routers/Auth.routes.d.ts +2 -0
  69. package/lib/server/router/Routers/Auth.routes.js +27 -0
  70. package/lib/server/router/Routers/Auth.routes.js.map +1 -0
  71. package/lib/server/router/Routers/Collection.routes.js +20 -3
  72. package/lib/server/router/Routers/Collection.routes.js.map +1 -1
  73. package/lib/server/router/Routers/DB.routes.js +8 -5
  74. package/lib/server/router/Routers/DB.routes.js.map +1 -1
  75. package/lib/server/router/Routers/Operation.routes.js +31 -10
  76. package/lib/server/router/Routers/Operation.routes.js.map +1 -1
  77. package/lib/server/router/Routers/RoleManagement.routes.d.ts +2 -0
  78. package/lib/server/router/Routers/RoleManagement.routes.js +28 -0
  79. package/lib/server/router/Routers/RoleManagement.routes.js.map +1 -0
  80. package/lib/server/router/Routers/UserManagement.routes.d.ts +2 -0
  81. package/lib/server/router/Routers/UserManagement.routes.js +38 -0
  82. package/lib/server/router/Routers/UserManagement.routes.js.map +1 -0
  83. package/package.json +2 -1
  84. package/lib/server/public/AxioControl/assets/index-BRkVgnlw.js +0 -75
  85. package/lib/server/public/AxioControl/assets/index-C8TNGVxT.css +0 -1
@@ -0,0 +1,21 @@
1
+ /**
2
+ * In-process cache of roleName -> permission keys, avoiding a disk read on every
3
+ * single request. Hydrated once at server bootstrap (AuthSeeder) and kept in sync
4
+ * whenever a new role is created (AuthService.createRole).
5
+ */
6
+ declare class PermissionChecker {
7
+ private static instance;
8
+ private readonly rolePermissions;
9
+ static getInstance(): PermissionChecker;
10
+ setRolePermissions(roleName: string, permissions: string[]): void;
11
+ hydrate(roles: {
12
+ roleName: string;
13
+ permissions: string[];
14
+ }[]): void;
15
+ getPermissionsForRole(roleName: string): string[];
16
+ roleHasPermission(roleName: string, permissionKey: string): boolean;
17
+ roleExists(roleName: string): boolean;
18
+ listRoleNames(): string[];
19
+ }
20
+ declare const _default: PermissionChecker;
21
+ export default _default;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * In-process cache of roleName -> permission keys, avoiding a disk read on every
5
+ * single request. Hydrated once at server bootstrap (AuthSeeder) and kept in sync
6
+ * whenever a new role is created (AuthService.createRole).
7
+ */
8
+ class PermissionChecker {
9
+ constructor() {
10
+ this.rolePermissions = new Map();
11
+ }
12
+ static getInstance() {
13
+ if (!PermissionChecker.instance) {
14
+ PermissionChecker.instance = new PermissionChecker();
15
+ }
16
+ return PermissionChecker.instance;
17
+ }
18
+ setRolePermissions(roleName, permissions) {
19
+ this.rolePermissions.set(roleName, permissions);
20
+ }
21
+ hydrate(roles) {
22
+ for (const role of roles) {
23
+ this.rolePermissions.set(role.roleName, role.permissions);
24
+ }
25
+ }
26
+ getPermissionsForRole(roleName) {
27
+ var _a;
28
+ return (_a = this.rolePermissions.get(roleName)) !== null && _a !== void 0 ? _a : [];
29
+ }
30
+ roleHasPermission(roleName, permissionKey) {
31
+ return this.getPermissionsForRole(roleName).includes(permissionKey);
32
+ }
33
+ roleExists(roleName) {
34
+ return this.rolePermissions.has(roleName);
35
+ }
36
+ listRoleNames() {
37
+ return Array.from(this.rolePermissions.keys());
38
+ }
39
+ }
40
+ exports.default = PermissionChecker.getInstance();
41
+ //# sourceMappingURL=PermissionChecker.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionChecker.helper.js","sourceRoot":"","sources":["../../../source/Services/Auth/PermissionChecker.helper.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,MAAM,iBAAiB;IAAvB;QAEmB,oBAAe,GAA0B,IAAI,GAAG,EAAE,CAAC;IAkCtE,CAAC;IAhCQ,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAEM,kBAAkB,CAAC,QAAgB,EAAE,WAAqB;QAC/D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAEM,OAAO,CAAC,KAAoD;QACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEM,qBAAqB,CAAC,QAAgB;;QAC3C,aAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC;IAClD,CAAC;IAEM,iBAAiB,CAAC,QAAgB,EAAE,aAAqB;QAC9D,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAEM,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,aAAa;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;kBAEc,iBAAiB,CAAC,WAAW,EAAE"}
@@ -0,0 +1,23 @@
1
+ import { SessionRecord } from "../../config/Interfaces/Auth/auth.interface";
2
+ /**
3
+ * In-memory-only session store for the Control Server. Sessions never touch disk
4
+ * and are lost on process restart by design - this is the literal "store the
5
+ * session on server in memory only" requirement.
6
+ */
7
+ declare class SessionStore {
8
+ private static instance;
9
+ private readonly sessions;
10
+ private sweepIntervalHandle;
11
+ static getInstance(): SessionStore;
12
+ createSession(username: string, role: string, mustChangePassword: boolean): SessionRecord;
13
+ getSession(sid: string): SessionRecord | null;
14
+ touchSession(sid: string): void;
15
+ updateSessionMustChangePassword(sid: string, mustChangePassword: boolean): void;
16
+ revokeSession(sid: string): void;
17
+ revokeSessionsForUser(username: string): void;
18
+ countActiveSessions(): number;
19
+ startCleanupSweep(): void;
20
+ stopCleanupSweep(): void;
21
+ }
22
+ declare const _default: SessionStore;
23
+ export default _default;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const crypto_1 = require("crypto");
4
+ const Permissions_1 = require("../../config/Keys/Permissions");
5
+ /**
6
+ * In-memory-only session store for the Control Server. Sessions never touch disk
7
+ * and are lost on process restart by design - this is the literal "store the
8
+ * session on server in memory only" requirement.
9
+ */
10
+ class SessionStore {
11
+ constructor() {
12
+ this.sessions = new Map();
13
+ }
14
+ static getInstance() {
15
+ if (!SessionStore.instance) {
16
+ SessionStore.instance = new SessionStore();
17
+ }
18
+ return SessionStore.instance;
19
+ }
20
+ createSession(username, role, mustChangePassword) {
21
+ const sid = (0, crypto_1.randomBytes)(32).toString("hex");
22
+ const now = Date.now();
23
+ const record = {
24
+ sid,
25
+ username,
26
+ role,
27
+ mustChangePassword,
28
+ createdAt: now,
29
+ lastSeenAt: now,
30
+ expiresAt: now + Permissions_1.SESSION_TTL_MS,
31
+ };
32
+ this.sessions.set(sid, record);
33
+ return record;
34
+ }
35
+ getSession(sid) {
36
+ const record = this.sessions.get(sid);
37
+ if (!record) {
38
+ return null;
39
+ }
40
+ if (record.expiresAt <= Date.now()) {
41
+ this.sessions.delete(sid);
42
+ return null;
43
+ }
44
+ return record;
45
+ }
46
+ touchSession(sid) {
47
+ const record = this.sessions.get(sid);
48
+ if (!record) {
49
+ return;
50
+ }
51
+ const now = Date.now();
52
+ record.lastSeenAt = now;
53
+ record.expiresAt = now + Permissions_1.SESSION_TTL_MS;
54
+ }
55
+ updateSessionMustChangePassword(sid, mustChangePassword) {
56
+ const record = this.sessions.get(sid);
57
+ if (record) {
58
+ record.mustChangePassword = mustChangePassword;
59
+ }
60
+ }
61
+ revokeSession(sid) {
62
+ this.sessions.delete(sid);
63
+ }
64
+ revokeSessionsForUser(username) {
65
+ for (const [sid, record] of this.sessions) {
66
+ if (record.username === username) {
67
+ this.sessions.delete(sid);
68
+ }
69
+ }
70
+ }
71
+ countActiveSessions() {
72
+ return this.sessions.size;
73
+ }
74
+ startCleanupSweep() {
75
+ if (this.sweepIntervalHandle) {
76
+ return;
77
+ }
78
+ this.sweepIntervalHandle = setInterval(() => {
79
+ const now = Date.now();
80
+ for (const [sid, record] of this.sessions) {
81
+ if (record.expiresAt <= now) {
82
+ this.sessions.delete(sid);
83
+ }
84
+ }
85
+ }, Permissions_1.SESSION_SWEEP_INTERVAL_MS);
86
+ this.sweepIntervalHandle.unref();
87
+ }
88
+ stopCleanupSweep() {
89
+ if (this.sweepIntervalHandle) {
90
+ clearInterval(this.sweepIntervalHandle);
91
+ this.sweepIntervalHandle = undefined;
92
+ }
93
+ }
94
+ }
95
+ exports.default = SessionStore.getInstance();
96
+ //# sourceMappingURL=SessionStore.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionStore.service.js","sourceRoot":"","sources":["../../../source/Services/Auth/SessionStore.service.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,8 @@ const StatusCode_1 = require("../config/Keys/StatusCode");
28
28
  const response_helper_1 = __importDefault(require("../Helper/response.helper"));
29
29
  const server_1 = __importDefault(require("../server/config/server"));
30
30
  const server_2 = __importDefault(require("../tcp/config/server"));
31
+ const AuthSeeder_service_1 = __importDefault(require("./Auth/AuthSeeder.service"));
32
+ const Permissions_1 = require("../config/Keys/Permissions");
31
33
  /**
32
34
  * Class representing the AxioDB database.
33
35
  * @param {AxioDBOptions} options - Configuration options for AxioDB
@@ -84,6 +86,7 @@ class AxioDB {
84
86
  }
85
87
  }
86
88
  if (this.GUI) {
89
+ yield new AuthSeeder_service_1.default(this).seedIfNeeded(); // Ensure config DB, RBAC seed data exist before accepting requests
87
90
  Console_helper_1.default.green("Starting AxioDB Control Server...");
88
91
  (0, server_1.default)(this); // Start the web Control Server with the AxioDB instance
89
92
  }
@@ -142,14 +145,16 @@ class AxioDB {
142
145
  const totalSize = yield this.folderManager.GetDirectorySize(path_1.default.resolve(this.currentPATH));
143
146
  // check if all data is returned
144
147
  if ("data" in totalDatabases && "data" in totalSize) {
148
+ // Hide the reserved RBAC "config" database from user-facing database listings
149
+ const visibleDatabases = totalDatabases.data.filter((db) => db.toLowerCase() !== Permissions_1.RESERVED_DB_NAME);
145
150
  const FinalDatabaseInfo = {
146
151
  CurrentPath: this.currentPATH,
147
152
  RootName: this.RootName,
148
153
  TotalSize: parseFloat(totalSize.data),
149
- TotalDatabases: `${totalDatabases.data.length} Databases`,
150
- ListOfDatabases: totalDatabases.data,
154
+ TotalDatabases: `${visibleDatabases.length} Databases`,
155
+ ListOfDatabases: visibleDatabases,
151
156
  DatabaseMap: this.DatabaseMap,
152
- AllDatabasesPaths: totalDatabases.data.map((db) => path_1.default.join(this.currentPATH, db)),
157
+ AllDatabasesPaths: visibleDatabases.map((db) => path_1.default.join(this.currentPATH, db)),
153
158
  };
154
159
  return this.ResponseHelper.Success(FinalDatabaseInfo);
155
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Indexation.operation.js","sourceRoot":"","sources":["../../source/Services/Indexation.operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /** Document shape stored in the `config.users` collection. */
2
+ export interface UserDocument {
3
+ documentId?: string;
4
+ username: string;
5
+ passwordHash: string;
6
+ role: string;
7
+ mustChangePassword: boolean;
8
+ isActive: boolean;
9
+ createdAt: string;
10
+ updatedAt?: string;
11
+ }
12
+ /** Document shape stored in the `config.roles` collection. */
13
+ export interface RoleDocument {
14
+ documentId?: string;
15
+ roleName: string;
16
+ permissions: string[];
17
+ isSystemRole: boolean;
18
+ createdAt: string;
19
+ }
20
+ /** Document shape stored in the `config.permissions` collection. */
21
+ export interface PermissionDocument {
22
+ documentId?: string;
23
+ key: string;
24
+ group: string;
25
+ description: string;
26
+ }
27
+ /** In-memory session record kept only for the lifetime of the server process. */
28
+ export interface SessionRecord {
29
+ sid: string;
30
+ username: string;
31
+ role: string;
32
+ mustChangePassword: boolean;
33
+ createdAt: number;
34
+ lastSeenAt: number;
35
+ expiresAt: number;
36
+ }
37
+ /** Payload embedded (base64url-encoded) inside the session cookie. Never trust `username`/`role` from this - it only carries the lookup key. */
38
+ export interface CookiePayload {
39
+ sid: string;
40
+ iat: number;
41
+ }
42
+ /** Public shape returned to the frontend describing the authenticated caller. */
43
+ export interface AuthenticatedUser {
44
+ username: string;
45
+ role: string;
46
+ mustChangePassword: boolean;
47
+ }
48
+ export interface LoginRequestBody {
49
+ username: string;
50
+ password: string;
51
+ }
52
+ export interface ChangePasswordRequestBody {
53
+ currentPassword: string;
54
+ newPassword: string;
55
+ }
56
+ export interface CreateUserRequestBody {
57
+ username: string;
58
+ password: string;
59
+ role: string;
60
+ }
61
+ export interface ResetPasswordRequestBody {
62
+ newPassword: string;
63
+ }
64
+ export interface UpdateUserRoleRequestBody {
65
+ role: string;
66
+ }
67
+ export interface CreateRoleRequestBody {
68
+ roleName: string;
69
+ permissions: string[];
70
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Interfaces for the Control Server RBAC + Authentication feature.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=auth.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.interface.js","sourceRoot":"","sources":["../../../../source/config/Interfaces/Auth/auth.interface.ts"],"names":[],"mappings":";AAAA,mEAAmE"}
@@ -0,0 +1,51 @@
1
+ export declare const PERMISSIONS: {
2
+ readonly DB_VIEW: "db:view";
3
+ readonly DB_CREATE: "db:create";
4
+ readonly DB_DELETE: "db:delete";
5
+ readonly DB_EXPORT: "db:export";
6
+ readonly DB_IMPORT: "db:import";
7
+ readonly COLLECTION_VIEW: "collection:view";
8
+ readonly COLLECTION_CREATE: "collection:create";
9
+ readonly COLLECTION_DELETE: "collection:delete";
10
+ readonly DOCUMENT_VIEW: "document:view";
11
+ readonly DOCUMENT_QUERY: "document:query";
12
+ readonly DOCUMENT_CREATE: "document:create";
13
+ readonly DOCUMENT_UPDATE: "document:update";
14
+ readonly DOCUMENT_DELETE: "document:delete";
15
+ readonly DOCUMENT_AGGREGATE: "document:aggregate";
16
+ readonly DASHBOARD_VIEW: "dashboard:view";
17
+ readonly USER_VIEW: "user:view";
18
+ readonly USER_CREATE: "user:create";
19
+ readonly USER_UPDATE_ROLE: "user:update-role";
20
+ readonly USER_RESET_PASSWORD: "user:reset-password";
21
+ readonly USER_DELETE: "user:delete";
22
+ readonly ROLE_VIEW: "role:view";
23
+ readonly ROLE_CREATE: "role:create";
24
+ };
25
+ export type PermissionKey = (typeof PERMISSIONS)[keyof typeof PERMISSIONS];
26
+ interface PermissionCatalogueEntry {
27
+ key: PermissionKey;
28
+ group: string;
29
+ description: string;
30
+ }
31
+ export declare const PERMISSION_CATALOGUE: PermissionCatalogueEntry[];
32
+ export declare const ALL_PERMISSION_KEYS: string[];
33
+ export declare const SUPER_ADMIN_ROLE = "Super Admin";
34
+ export declare const ADMIN_ROLE = "Admin";
35
+ export declare const VIEW_ROLE = "View";
36
+ export declare const PREDEFINED_ROLES: {
37
+ roleName: string;
38
+ permissions: string[];
39
+ }[];
40
+ export declare const RESERVED_DB_NAME = "config";
41
+ /** The `config` database backs the RBAC system and must never be reachable through the generic Database/Collection/Operation routes. */
42
+ export declare function isReservedDatabaseName(name: string): boolean;
43
+ export declare const CONFIG_USERS_COLLECTION = "users";
44
+ export declare const CONFIG_ROLES_COLLECTION = "roles";
45
+ export declare const CONFIG_PERMISSIONS_COLLECTION = "permissions";
46
+ export declare const DEFAULT_ADMIN_USERNAME = "admin";
47
+ export declare const DEFAULT_ADMIN_PASSWORD = "admin";
48
+ export declare const SESSION_COOKIE_NAME = "axiodb_session";
49
+ export declare const SESSION_TTL_MS: number;
50
+ export declare const SESSION_SWEEP_INTERVAL_MS: number;
51
+ export {};
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ // Predefined permission catalogue and role matrix for the Control Server's RBAC system.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SESSION_SWEEP_INTERVAL_MS = exports.SESSION_TTL_MS = exports.SESSION_COOKIE_NAME = exports.DEFAULT_ADMIN_PASSWORD = exports.DEFAULT_ADMIN_USERNAME = exports.CONFIG_PERMISSIONS_COLLECTION = exports.CONFIG_ROLES_COLLECTION = exports.CONFIG_USERS_COLLECTION = exports.RESERVED_DB_NAME = exports.PREDEFINED_ROLES = exports.VIEW_ROLE = exports.ADMIN_ROLE = exports.SUPER_ADMIN_ROLE = exports.ALL_PERMISSION_KEYS = exports.PERMISSION_CATALOGUE = exports.PERMISSIONS = void 0;
5
+ exports.isReservedDatabaseName = isReservedDatabaseName;
6
+ exports.PERMISSIONS = {
7
+ DB_VIEW: "db:view",
8
+ DB_CREATE: "db:create",
9
+ DB_DELETE: "db:delete",
10
+ DB_EXPORT: "db:export",
11
+ DB_IMPORT: "db:import",
12
+ COLLECTION_VIEW: "collection:view",
13
+ COLLECTION_CREATE: "collection:create",
14
+ COLLECTION_DELETE: "collection:delete",
15
+ DOCUMENT_VIEW: "document:view",
16
+ DOCUMENT_QUERY: "document:query",
17
+ DOCUMENT_CREATE: "document:create",
18
+ DOCUMENT_UPDATE: "document:update",
19
+ DOCUMENT_DELETE: "document:delete",
20
+ DOCUMENT_AGGREGATE: "document:aggregate",
21
+ DASHBOARD_VIEW: "dashboard:view",
22
+ USER_VIEW: "user:view",
23
+ USER_CREATE: "user:create",
24
+ USER_UPDATE_ROLE: "user:update-role",
25
+ USER_RESET_PASSWORD: "user:reset-password",
26
+ USER_DELETE: "user:delete",
27
+ ROLE_VIEW: "role:view",
28
+ ROLE_CREATE: "role:create",
29
+ };
30
+ exports.PERMISSION_CATALOGUE = [
31
+ { key: exports.PERMISSIONS.DB_VIEW, group: "Database", description: "View the list of databases and dashboard database counts" },
32
+ { key: exports.PERMISSIONS.DB_CREATE, group: "Database", description: "Create new databases" },
33
+ { key: exports.PERMISSIONS.DB_DELETE, group: "Database", description: "Delete databases" },
34
+ { key: exports.PERMISSIONS.DB_EXPORT, group: "Database", description: "Export a database as a compressed archive" },
35
+ { key: exports.PERMISSIONS.DB_IMPORT, group: "Database", description: "Import a database from a compressed archive" },
36
+ { key: exports.PERMISSIONS.COLLECTION_VIEW, group: "Collection", description: "View collections inside a database" },
37
+ { key: exports.PERMISSIONS.COLLECTION_CREATE, group: "Collection", description: "Create new collections" },
38
+ { key: exports.PERMISSIONS.COLLECTION_DELETE, group: "Collection", description: "Delete collections" },
39
+ { key: exports.PERMISSIONS.DOCUMENT_VIEW, group: "Document", description: "View documents inside a collection" },
40
+ { key: exports.PERMISSIONS.DOCUMENT_QUERY, group: "Document", description: "Query documents with filters" },
41
+ { key: exports.PERMISSIONS.DOCUMENT_CREATE, group: "Document", description: "Create new documents" },
42
+ { key: exports.PERMISSIONS.DOCUMENT_UPDATE, group: "Document", description: "Update existing documents" },
43
+ { key: exports.PERMISSIONS.DOCUMENT_DELETE, group: "Document", description: "Delete documents" },
44
+ { key: exports.PERMISSIONS.DOCUMENT_AGGREGATE, group: "Document", description: "Run aggregation pipelines" },
45
+ { key: exports.PERMISSIONS.DASHBOARD_VIEW, group: "Dashboard", description: "View dashboard statistics" },
46
+ { key: exports.PERMISSIONS.USER_VIEW, group: "User Management", description: "View the list of users" },
47
+ { key: exports.PERMISSIONS.USER_CREATE, group: "User Management", description: "Create new users" },
48
+ { key: exports.PERMISSIONS.USER_UPDATE_ROLE, group: "User Management", description: "Change a user's assigned role" },
49
+ { key: exports.PERMISSIONS.USER_RESET_PASSWORD, group: "User Management", description: "Reset a user's password" },
50
+ { key: exports.PERMISSIONS.USER_DELETE, group: "User Management", description: "Delete a user" },
51
+ { key: exports.PERMISSIONS.ROLE_VIEW, group: "Role Management", description: "View the list of roles and the permission catalogue" },
52
+ { key: exports.PERMISSIONS.ROLE_CREATE, group: "Role Management", description: "Create new roles from the predefined permission catalogue" },
53
+ ];
54
+ exports.ALL_PERMISSION_KEYS = exports.PERMISSION_CATALOGUE.map((entry) => entry.key);
55
+ const DATA_PLANE_PERMISSIONS = [
56
+ exports.PERMISSIONS.DB_VIEW,
57
+ exports.PERMISSIONS.DB_CREATE,
58
+ exports.PERMISSIONS.DB_DELETE,
59
+ exports.PERMISSIONS.DB_EXPORT,
60
+ exports.PERMISSIONS.DB_IMPORT,
61
+ exports.PERMISSIONS.COLLECTION_VIEW,
62
+ exports.PERMISSIONS.COLLECTION_CREATE,
63
+ exports.PERMISSIONS.COLLECTION_DELETE,
64
+ exports.PERMISSIONS.DOCUMENT_VIEW,
65
+ exports.PERMISSIONS.DOCUMENT_QUERY,
66
+ exports.PERMISSIONS.DOCUMENT_CREATE,
67
+ exports.PERMISSIONS.DOCUMENT_UPDATE,
68
+ exports.PERMISSIONS.DOCUMENT_DELETE,
69
+ exports.PERMISSIONS.DOCUMENT_AGGREGATE,
70
+ exports.PERMISSIONS.DASHBOARD_VIEW,
71
+ ];
72
+ const VIEW_ONLY_PERMISSIONS = [
73
+ exports.PERMISSIONS.DB_VIEW,
74
+ exports.PERMISSIONS.COLLECTION_VIEW,
75
+ exports.PERMISSIONS.DOCUMENT_VIEW,
76
+ exports.PERMISSIONS.DOCUMENT_QUERY,
77
+ exports.PERMISSIONS.DOCUMENT_AGGREGATE,
78
+ exports.PERMISSIONS.DASHBOARD_VIEW,
79
+ ];
80
+ exports.SUPER_ADMIN_ROLE = "Super Admin";
81
+ exports.ADMIN_ROLE = "Admin";
82
+ exports.VIEW_ROLE = "View";
83
+ exports.PREDEFINED_ROLES = [
84
+ { roleName: exports.SUPER_ADMIN_ROLE, permissions: exports.ALL_PERMISSION_KEYS },
85
+ { roleName: exports.ADMIN_ROLE, permissions: DATA_PLANE_PERMISSIONS },
86
+ { roleName: exports.VIEW_ROLE, permissions: VIEW_ONLY_PERMISSIONS },
87
+ ];
88
+ exports.RESERVED_DB_NAME = "config";
89
+ /** The `config` database backs the RBAC system and must never be reachable through the generic Database/Collection/Operation routes. */
90
+ function isReservedDatabaseName(name) {
91
+ return typeof name === "string" && name.toLowerCase() === exports.RESERVED_DB_NAME;
92
+ }
93
+ exports.CONFIG_USERS_COLLECTION = "users";
94
+ exports.CONFIG_ROLES_COLLECTION = "roles";
95
+ exports.CONFIG_PERMISSIONS_COLLECTION = "permissions";
96
+ exports.DEFAULT_ADMIN_USERNAME = "admin";
97
+ exports.DEFAULT_ADMIN_PASSWORD = "admin";
98
+ exports.SESSION_COOKIE_NAME = "axiodb_session";
99
+ exports.SESSION_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
100
+ exports.SESSION_SWEEP_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
101
+ //# sourceMappingURL=Permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Permissions.js","sourceRoot":"","sources":["../../../source/config/Keys/Permissions.ts"],"names":[],"mappings":";AAAA,wFAAwF;;;;AAE3E,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IAEtC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB;IAExC,cAAc,EAAE,gBAAgB;IAEhC,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;IAE1B,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;CAClB,CAAC;AAUE,QAAA,oBAAoB,GAA+B;IAC9D,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,0DAA0D,EAAE;IACxH,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE;IACtF,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAClF,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2CAA2C,EAAE;IAC3G,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,6CAA6C,EAAE;IAE7G,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,oCAAoC,EAAE;IAC5G,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAClG,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE;IAE9F,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,oCAAoC,EAAE;IACxG,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,8BAA8B,EAAE;IACnG,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC5F,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACjG,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACxF,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAEpG,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAEjG,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAC/F,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC3F,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,+BAA+B,EAAE;IAC7G,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC1G,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE;IAExF,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,qDAAqD,EAAE;IAC5H,EAAE,GAAG,EAAE,QAAA,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,2DAA2D,EAAE;CACrI,CAAC;AAEW,QAAA,mBAAmB,GAAa,QAAA,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE5F,MAAM,sBAAsB,GAAa;IACvC,QAAA,WAAW,CAAC,OAAO;IACnB,QAAA,WAAW,CAAC,SAAS;IACrB,QAAA,WAAW,CAAC,SAAS;IACrB,QAAA,WAAW,CAAC,SAAS;IACrB,QAAA,WAAW,CAAC,SAAS;IACrB,QAAA,WAAW,CAAC,eAAe;IAC3B,QAAA,WAAW,CAAC,iBAAiB;IAC7B,QAAA,WAAW,CAAC,iBAAiB;IAC7B,QAAA,WAAW,CAAC,aAAa;IACzB,QAAA,WAAW,CAAC,cAAc;IAC1B,QAAA,WAAW,CAAC,eAAe;IAC3B,QAAA,WAAW,CAAC,eAAe;IAC3B,QAAA,WAAW,CAAC,eAAe;IAC3B,QAAA,WAAW,CAAC,kBAAkB;IAC9B,QAAA,WAAW,CAAC,cAAc;CAC3B,CAAC;AAEF,MAAM,qBAAqB,GAAa;IACtC,QAAA,WAAW,CAAC,OAAO;IACnB,QAAA,WAAW,CAAC,eAAe;IAC3B,QAAA,WAAW,CAAC,aAAa;IACzB,QAAA,WAAW,CAAC,cAAc;IAC1B,QAAA,WAAW,CAAC,kBAAkB;IAC9B,QAAA,WAAW,CAAC,cAAc;CAC3B,CAAC;AAEW,QAAA,gBAAgB,GAAG,aAAa,CAAC;AACjC,QAAA,UAAU,GAAG,OAAO,CAAC;AACrB,QAAA,SAAS,GAAG,MAAM,CAAC;AAEnB,QAAA,gBAAgB,GAAkD;IAC7E,EAAE,QAAQ,EAAE,QAAA,gBAAgB,EAAE,WAAW,EAAE,QAAA,mBAAmB,EAAE;IAChE,EAAE,QAAQ,EAAE,QAAA,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC7D,EAAE,QAAQ,EAAE,QAAA,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE;CAC5D,CAAC;AAEW,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,wIAAwI;AACxI,gCAAuC,IAAY;IACjD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,QAAA,gBAAgB,CAAC;AAC7E,CAAC;AAEY,QAAA,uBAAuB,GAAG,OAAO,CAAC;AAClC,QAAA,uBAAuB,GAAG,OAAO,CAAC;AAClC,QAAA,6BAA6B,GAAG,aAAa,CAAC;AAE9C,QAAA,sBAAsB,GAAG,OAAO,CAAC;AACjC,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAEjC,QAAA,mBAAmB,GAAG,gBAAgB,CAAC;AACvC,QAAA,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AACjD,QAAA,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY"}
@@ -9,7 +9,7 @@ export declare enum ServerKeys {
9
9
  DEFAULT_KEY_ROUNDS = 1
10
10
  }
11
11
  export declare const CORS_CONFIG: {
12
- ORIGIN: string;
12
+ ORIGIN: string[];
13
13
  METHODS: string[];
14
14
  ALLOWED_HEADERS: string[];
15
15
  EXPOSED_HEADERS: string[];
@@ -18,7 +18,7 @@ export declare const CORS_CONFIG: {
18
18
  };
19
19
  export declare const staticPath: string;
20
20
  interface MainRoutesInterface {
21
- method: "GET" | "POST" | "PUT" | "DELETE";
21
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
22
22
  path: string;
23
23
  description: string;
24
24
  payload?: Record<string, any>;
@@ -18,8 +18,12 @@ var ServerKeys;
18
18
  ServerKeys[ServerKeys["DEFAULT_KEY_ROUNDS"] = 1] = "DEFAULT_KEY_ROUNDS";
19
19
  })(ServerKeys || (exports.ServerKeys = ServerKeys = {}));
20
20
  // Config for CORS
21
+ // NOTE: ORIGIN cannot be "*" while ALLOW_CREDENTIALS is true - browsers reject
22
+ // wildcard origins on credentialed (cookie-bearing) requests. 5173 is the GUI's
23
+ // Vite dev server; 27018 is where the built GUI is served from in production
24
+ // (same-origin there, so CORS doesn't matter for that case).
21
25
  exports.CORS_CONFIG = {
22
- ORIGIN: "*",
26
+ ORIGIN: ["http://localhost:5173", "http://localhost:27018"],
23
27
  METHODS: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"],
24
28
  ALLOWED_HEADERS: ["Content-Type", "Authorization"],
25
29
  EXPOSED_HEADERS: ["Content-Length", "X-Requested-With"],
@@ -195,6 +199,84 @@ exports.AvailableRoutes = [
195
199
  },
196
200
  ],
197
201
  },
202
+ {
203
+ groupName: "Authentication",
204
+ description: "Login, session, and self-service password endpoints",
205
+ Paths: [
206
+ {
207
+ method: "POST",
208
+ path: "/api/auth/login",
209
+ description: "Authenticate with username/password and start a session",
210
+ payload: { username: "string", password: "string" },
211
+ },
212
+ {
213
+ method: "POST",
214
+ path: "/api/auth/logout",
215
+ description: "End the current session",
216
+ },
217
+ {
218
+ method: "GET",
219
+ path: "/api/auth/me",
220
+ description: "Get the currently authenticated user's role and permissions",
221
+ },
222
+ {
223
+ method: "PATCH",
224
+ path: "/api/auth/change-password",
225
+ description: "Change the current user's own password",
226
+ payload: { currentPassword: "string", newPassword: "string" },
227
+ },
228
+ ],
229
+ },
230
+ {
231
+ groupName: "User & Role Management",
232
+ description: "Super Admin-only endpoints for managing users and roles",
233
+ Paths: [
234
+ {
235
+ method: "GET",
236
+ path: "/api/auth/users",
237
+ description: "List all users",
238
+ },
239
+ {
240
+ method: "POST",
241
+ path: "/api/auth/users",
242
+ description: "Create a new user",
243
+ payload: { username: "string", password: "string", role: "string" },
244
+ },
245
+ {
246
+ method: "PATCH",
247
+ path: "/api/auth/users/:username/role",
248
+ description: "Change a user's assigned role",
249
+ payload: { role: "string" },
250
+ },
251
+ {
252
+ method: "PATCH",
253
+ path: "/api/auth/users/:username/reset-password",
254
+ description: "Reset a user's password (forces change on next login)",
255
+ payload: { newPassword: "string" },
256
+ },
257
+ {
258
+ method: "DELETE",
259
+ path: "/api/auth/users/:username",
260
+ description: "Delete a user",
261
+ },
262
+ {
263
+ method: "GET",
264
+ path: "/api/auth/roles",
265
+ description: "List all roles",
266
+ },
267
+ {
268
+ method: "POST",
269
+ path: "/api/auth/roles",
270
+ description: "Create a new role from the predefined permission catalogue",
271
+ payload: { roleName: "string", permissions: "array" },
272
+ },
273
+ {
274
+ method: "GET",
275
+ path: "/api/auth/roles/permissions",
276
+ description: "List the full predefined permission catalogue",
277
+ },
278
+ ],
279
+ },
198
280
  ];
199
281
  exports.AuthorInfo = {
200
282
  name: "Ankan Saha",
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/server/config/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../source/server/config/keys.ts"],"names":[],"mappings":"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"}