@intranefr/superbackend 1.5.3 → 1.6.4
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/cookies.txt +6 -0
- package/cookies1.txt +6 -0
- package/cookies2.txt +6 -0
- package/cookies3.txt +6 -0
- package/cookies4.txt +5 -0
- package/cookies_old.txt +5 -0
- package/cookies_old_test.txt +6 -0
- package/cookies_super.txt +5 -0
- package/cookies_super_test.txt +6 -0
- package/cookies_test.txt +6 -0
- package/index.js +7 -0
- package/package.json +3 -1
- package/plugins/core-waiting-list-migration/README.md +118 -0
- package/plugins/core-waiting-list-migration/index.js +438 -0
- package/plugins/global-settings-presets/index.js +20 -0
- package/plugins/hello-cli/index.js +17 -0
- package/plugins/ui-components-seeder/components/suiAlert.js +212 -0
- package/plugins/ui-components-seeder/components/suiToast.js +186 -0
- package/plugins/ui-components-seeder/index.js +31 -0
- package/public/js/admin-ui-components-preview.js +281 -0
- package/public/js/admin-ui-components.js +408 -0
- package/public/js/llm-provider-model-picker.js +193 -0
- package/public/test-iframe-fix.html +63 -0
- package/public/test-iframe.html +14 -0
- package/src/admin/endpointRegistry.js +68 -0
- package/src/controllers/admin.controller.js +25 -5
- package/src/controllers/adminDataCleanup.controller.js +45 -0
- package/src/controllers/adminLlm.controller.js +0 -8
- package/src/controllers/adminLogin.controller.js +269 -0
- package/src/controllers/adminPlugins.controller.js +55 -0
- package/src/controllers/adminRegistry.controller.js +106 -0
- package/src/controllers/adminStats.controller.js +4 -4
- package/src/controllers/registry.controller.js +32 -0
- package/src/controllers/waitingList.controller.js +52 -74
- package/src/middleware/auth.js +71 -1
- package/src/middleware/rbac.js +62 -0
- package/src/middleware.js +480 -156
- package/src/models/GlobalSetting.js +11 -1
- package/src/models/UiComponent.js +2 -0
- package/src/models/User.js +1 -1
- package/src/routes/admin.routes.js +3 -3
- package/src/routes/adminAgents.routes.js +2 -2
- package/src/routes/adminAssets.routes.js +11 -11
- package/src/routes/adminBlog.routes.js +2 -2
- package/src/routes/adminBlogAi.routes.js +2 -2
- package/src/routes/adminBlogAutomation.routes.js +2 -2
- package/src/routes/adminCache.routes.js +2 -2
- package/src/routes/adminConsoleManager.routes.js +2 -2
- package/src/routes/adminCrons.routes.js +2 -2
- package/src/routes/adminDataCleanup.routes.js +26 -0
- package/src/routes/adminDbBrowser.routes.js +2 -2
- package/src/routes/adminEjsVirtual.routes.js +2 -2
- package/src/routes/adminFeatureFlags.routes.js +6 -6
- package/src/routes/adminHeadless.routes.js +2 -2
- package/src/routes/adminHealthChecks.routes.js +2 -2
- package/src/routes/adminI18n.routes.js +2 -2
- package/src/routes/adminJsonConfigs.routes.js +8 -8
- package/src/routes/adminLlm.routes.js +8 -8
- package/src/routes/adminLogin.routes.js +23 -0
- package/src/routes/adminMarkdowns.routes.js +3 -9
- package/src/routes/adminMigration.routes.js +12 -12
- package/src/routes/adminPages.routes.js +2 -2
- package/src/routes/adminPlugins.routes.js +15 -0
- package/src/routes/adminProxy.routes.js +2 -2
- package/src/routes/adminRateLimits.routes.js +8 -8
- package/src/routes/adminRbac.routes.js +2 -2
- package/src/routes/adminRegistry.routes.js +24 -0
- package/src/routes/adminScripts.routes.js +2 -2
- package/src/routes/adminSeoConfig.routes.js +10 -10
- package/src/routes/adminTelegram.routes.js +2 -2
- package/src/routes/adminTerminals.routes.js +2 -2
- package/src/routes/adminUiComponents.routes.js +2 -2
- package/src/routes/adminUploadNamespaces.routes.js +7 -7
- package/src/routes/blogInternal.routes.js +2 -2
- package/src/routes/experiments.routes.js +2 -2
- package/src/routes/formsAdmin.routes.js +6 -6
- package/src/routes/globalSettings.routes.js +8 -8
- package/src/routes/internalExperiments.routes.js +2 -2
- package/src/routes/notificationAdmin.routes.js +7 -7
- package/src/routes/orgAdmin.routes.js +16 -16
- package/src/routes/pages.routes.js +3 -3
- package/src/routes/registry.routes.js +11 -0
- package/src/routes/stripeAdmin.routes.js +12 -12
- package/src/routes/userAdmin.routes.js +7 -7
- package/src/routes/waitingListAdmin.routes.js +2 -2
- package/src/routes/workflows.routes.js +3 -3
- package/src/services/dataCleanup.service.js +286 -0
- package/src/services/jsonConfigs.service.js +262 -0
- package/src/services/plugins.service.js +348 -0
- package/src/services/registry.service.js +452 -0
- package/src/services/uiComponents.service.js +180 -0
- package/src/services/waitingListJson.service.js +401 -0
- package/src/utils/rbac/rightsRegistry.js +118 -0
- package/test-access.js +63 -0
- package/test-iframe-fix.html +63 -0
- package/test-iframe.html +14 -0
- package/views/admin-403.ejs +92 -0
- package/views/admin-dashboard-home.ejs +52 -2
- package/views/admin-dashboard.ejs +143 -2
- package/views/admin-data-cleanup.ejs +357 -0
- package/views/admin-login.ejs +286 -0
- package/views/admin-plugins-system.ejs +223 -0
- package/views/admin-ui-components.ejs +82 -402
- package/views/admin-users.ejs +207 -11
- package/views/partials/dashboard/nav-items.ejs +2 -0
- package/views/partials/llm-provider-model-picker.ejs +0 -161
|
@@ -8,7 +8,17 @@ const globalSettingSchema = new mongoose.Schema({
|
|
|
8
8
|
},
|
|
9
9
|
value: {
|
|
10
10
|
type: String,
|
|
11
|
-
|
|
11
|
+
default: '',
|
|
12
|
+
validate: {
|
|
13
|
+
validator: function(v) {
|
|
14
|
+
// Only encrypted values cannot be empty
|
|
15
|
+
if (this.type === 'encrypted') {
|
|
16
|
+
return v && v.trim().length > 0;
|
|
17
|
+
}
|
|
18
|
+
return true; // Allow any value (including empty) for other types
|
|
19
|
+
},
|
|
20
|
+
message: 'Encrypted values cannot be empty'
|
|
21
|
+
}
|
|
12
22
|
},
|
|
13
23
|
type: {
|
|
14
24
|
type: String,
|
|
@@ -20,6 +20,8 @@ const uiComponentSchema = new mongoose.Schema(
|
|
|
20
20
|
api: { type: mongoose.Schema.Types.Mixed, default: null },
|
|
21
21
|
usageMarkdown: { type: String, default: '' },
|
|
22
22
|
|
|
23
|
+
previewExample: { type: String, default: null },
|
|
24
|
+
|
|
23
25
|
version: { type: Number, default: 1 },
|
|
24
26
|
isActive: { type: Boolean, default: true, index: true },
|
|
25
27
|
},
|
package/src/models/User.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
const adminController = require('../controllers/admin.controller');
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
|
|
6
|
-
// All admin routes protected by
|
|
7
|
-
router.use(
|
|
6
|
+
// All admin routes protected by session auth
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/users', adminController.getUsers);
|
|
10
10
|
router.post('/users/register', adminController.registerUser);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
const adminAgentsController = require('../controllers/adminAgents.controller');
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
|
|
6
|
-
router.use(
|
|
6
|
+
router.use(adminSessionAuth);
|
|
7
7
|
|
|
8
8
|
router.get('/', adminAgentsController.listAgents);
|
|
9
9
|
router.post('/', adminAgentsController.createAgent);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
const multer = require('multer');
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const adminAssetsController = require('../controllers/adminAssets.controller');
|
|
6
6
|
const { auditMiddleware } = require('../services/auditLogger');
|
|
7
7
|
|
|
@@ -14,15 +14,15 @@ const upload = multer({
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
-
router.get('/info',
|
|
18
|
-
router.use('/storage',
|
|
19
|
-
router.get('/',
|
|
20
|
-
router.get('/:id',
|
|
21
|
-
router.post('/bulk/move-namespace',
|
|
22
|
-
router.post('/bulk/set-tags',
|
|
23
|
-
router.post('/upload',
|
|
24
|
-
router.post('/:id/replace',
|
|
25
|
-
router.patch('/:id',
|
|
26
|
-
router.delete('/:id',
|
|
17
|
+
router.get('/info', adminSessionAuth, adminAssetsController.getStorageInfo);
|
|
18
|
+
router.use('/storage', adminSessionAuth, adminAssetsStorageRoutes);
|
|
19
|
+
router.get('/', adminSessionAuth, adminAssetsController.list);
|
|
20
|
+
router.get('/:id', adminSessionAuth, adminAssetsController.get);
|
|
21
|
+
router.post('/bulk/move-namespace', adminSessionAuth, auditMiddleware('admin.assets.bulk.moveNamespace', { entityType: 'Asset' }), adminAssetsController.bulkMoveNamespace);
|
|
22
|
+
router.post('/bulk/set-tags', adminSessionAuth, auditMiddleware('admin.assets.bulk.setTags', { entityType: 'Asset' }), adminAssetsController.bulkSetTags);
|
|
23
|
+
router.post('/upload', adminSessionAuth, upload.single('file'), adminAssetsController.upload);
|
|
24
|
+
router.post('/:id/replace', adminSessionAuth, upload.single('file'), adminAssetsController.replace);
|
|
25
|
+
router.patch('/:id', adminSessionAuth, adminAssetsController.update);
|
|
26
|
+
router.delete('/:id', adminSessionAuth, adminAssetsController.delete);
|
|
27
27
|
|
|
28
28
|
module.exports = router;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/blogAdmin.controller');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
router.use(express.json({ limit: '2mb' }));
|
|
9
9
|
|
|
10
10
|
router.get('/blog-posts', controller.list);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/blogAiAdmin.controller');
|
|
6
6
|
const rateLimiter = require('../services/rateLimiter.service');
|
|
7
7
|
|
|
8
|
-
router.use(
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
9
|
router.use(express.json({ limit: '2mb' }));
|
|
10
10
|
|
|
11
11
|
router.post('/blog-ai/generate-field', rateLimiter.limit('blogAiLimiter'), controller.generateField);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/blogAutomationAdmin.controller');
|
|
6
6
|
const rateLimiter = require('../services/rateLimiter.service');
|
|
7
7
|
|
|
8
|
-
router.use(
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
9
|
router.use(express.json({ limit: '2mb' }));
|
|
10
10
|
|
|
11
11
|
router.get('/blog-automation/config', controller.getConfig);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/adminCache.controller');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/config', controller.getConfig);
|
|
10
10
|
router.put('/config', controller.updateConfig);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const ConsoleEntry = require('../models/ConsoleEntry');
|
|
6
6
|
const ConsoleLog = require('../models/ConsoleLog');
|
|
7
7
|
const GlobalSetting = require('../models/GlobalSetting');
|
|
@@ -21,7 +21,7 @@ function toInt(val, fallback) {
|
|
|
21
21
|
return Number.isFinite(n) ? n : fallback;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
router.use(
|
|
24
|
+
router.use(adminSessionAuth);
|
|
25
25
|
|
|
26
26
|
router.get('/config', async (req, res) => {
|
|
27
27
|
try {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/adminCrons.controller');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/', controller.listCronJobs);
|
|
10
10
|
router.post('/', controller.createCronJob);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const express = require('express');
|
|
2
|
+
const router = express.Router();
|
|
3
|
+
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
|
+
const { auditMiddleware } = require('../services/auditLogger');
|
|
6
|
+
const controller = require('../controllers/adminDataCleanup.controller');
|
|
7
|
+
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
|
+
|
|
10
|
+
router.get('/overview', controller.getOverview);
|
|
11
|
+
|
|
12
|
+
router.post(
|
|
13
|
+
'/dry-run',
|
|
14
|
+
auditMiddleware('admin.data_cleanup.dry_run', { entityType: 'DataCleanup' }),
|
|
15
|
+
controller.dryRun,
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
router.post(
|
|
19
|
+
'/execute',
|
|
20
|
+
auditMiddleware('admin.data_cleanup.execute', { entityType: 'DataCleanup' }),
|
|
21
|
+
controller.execute,
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
router.get('/infer-fields', controller.inferFields);
|
|
25
|
+
|
|
26
|
+
module.exports = router;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const { auditMiddleware } = require('../services/auditLogger');
|
|
6
6
|
const controller = require('../controllers/adminDbBrowser.controller');
|
|
7
7
|
|
|
8
|
-
router.use(
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
9
|
|
|
10
10
|
// Connection profiles
|
|
11
11
|
router.get('/connections', controller.listConnections);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
|
-
const {
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
4
|
const controller = require('../controllers/adminEjsVirtual.controller');
|
|
5
5
|
const rateLimiter = require('../services/rateLimiter.service');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/files', controller.list);
|
|
10
10
|
router.get('/file', controller.getFile);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
|
-
const {
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
4
|
const adminFeatureFlagsController = require('../controllers/adminFeatureFlags.controller');
|
|
5
5
|
|
|
6
|
-
router.get('/',
|
|
7
|
-
router.get('/:key',
|
|
8
|
-
router.post('/',
|
|
9
|
-
router.put('/:key',
|
|
10
|
-
router.delete('/:key',
|
|
6
|
+
router.get('/', adminSessionAuth, adminFeatureFlagsController.listFlags);
|
|
7
|
+
router.get('/:key', adminSessionAuth, adminFeatureFlagsController.getFlag);
|
|
8
|
+
router.post('/', adminSessionAuth, adminFeatureFlagsController.createFlag);
|
|
9
|
+
router.put('/:key', adminSessionAuth, adminFeatureFlagsController.updateFlag);
|
|
10
|
+
router.delete('/:key', adminSessionAuth, adminFeatureFlagsController.deleteFlag);
|
|
11
11
|
|
|
12
12
|
module.exports = router;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const adminHeadlessController = require('../controllers/adminHeadless.controller');
|
|
6
6
|
const rateLimiter = require('../services/rateLimiter.service');
|
|
7
7
|
|
|
8
|
-
router.use(
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
9
|
|
|
10
10
|
// Models
|
|
11
11
|
router.get('/models', adminHeadlessController.listModels);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/adminHealthChecks.controller');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/config', controller.getConfig);
|
|
10
10
|
router.put('/config', controller.updateConfig);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
|
-
const {
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
4
|
|
|
5
5
|
const adminI18nController = require('../controllers/adminI18n.controller');
|
|
6
6
|
const rateLimiter = require('../services/rateLimiter.service');
|
|
7
7
|
|
|
8
|
-
router.use(
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
9
|
|
|
10
10
|
router.get('/locales', adminI18nController.listLocales);
|
|
11
11
|
router.post('/locales', adminI18nController.createLocale);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
|
-
const {
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
4
|
|
|
5
5
|
const adminJsonConfigsController = require('../controllers/adminJsonConfigs.controller');
|
|
6
6
|
|
|
7
|
-
router.get('/',
|
|
8
|
-
router.get('/:id',
|
|
9
|
-
router.post('/',
|
|
10
|
-
router.put('/:id',
|
|
11
|
-
router.post('/:id/regenerate-slug',
|
|
12
|
-
router.post('/:id/clear-cache',
|
|
13
|
-
router.delete('/:id',
|
|
7
|
+
router.get('/', adminSessionAuth, adminJsonConfigsController.list);
|
|
8
|
+
router.get('/:id', adminSessionAuth, adminJsonConfigsController.get);
|
|
9
|
+
router.post('/', adminSessionAuth, adminJsonConfigsController.create);
|
|
10
|
+
router.put('/:id', adminSessionAuth, adminJsonConfigsController.update);
|
|
11
|
+
router.post('/:id/regenerate-slug', adminSessionAuth, adminJsonConfigsController.regenerateSlug);
|
|
12
|
+
router.post('/:id/clear-cache', adminSessionAuth, adminJsonConfigsController.clearCache);
|
|
13
|
+
router.delete('/:id', adminSessionAuth, adminJsonConfigsController.remove);
|
|
14
14
|
|
|
15
15
|
module.exports = router;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
const express = require("express");
|
|
2
2
|
const router = express.Router();
|
|
3
|
-
const {
|
|
3
|
+
const { adminSessionAuth } = require("../middleware/auth");
|
|
4
4
|
const adminLlmController = require("../controllers/adminLlm.controller");
|
|
5
5
|
const rateLimiter = require("../services/rateLimiter.service");
|
|
6
6
|
|
|
7
|
-
router.get("/config",
|
|
8
|
-
router.get("/providers",
|
|
9
|
-
router.post("/config",
|
|
10
|
-
router.get("/openrouter/models",
|
|
11
|
-
router.post("/prompts/:key/test",
|
|
12
|
-
router.get("/audit",
|
|
13
|
-
router.get("/costs",
|
|
7
|
+
router.get("/config", adminSessionAuth, adminLlmController.getConfig);
|
|
8
|
+
router.get("/providers", adminSessionAuth, adminLlmController.listProviders);
|
|
9
|
+
router.post("/config", adminSessionAuth, rateLimiter.limit("llmConfigLimiter"), adminLlmController.saveConfig);
|
|
10
|
+
router.get("/openrouter/models", adminSessionAuth, adminLlmController.listOpenRouterModels);
|
|
11
|
+
router.post("/prompts/:key/test", adminSessionAuth, rateLimiter.limit("llmConfigLimiter"), adminLlmController.testPrompt);
|
|
12
|
+
router.get("/audit", adminSessionAuth, adminLlmController.listAudit);
|
|
13
|
+
router.get("/costs", adminSessionAuth, adminLlmController.listCosts);
|
|
14
14
|
|
|
15
15
|
module.exports = router;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const express = require('express');
|
|
2
|
+
const router = express.Router();
|
|
3
|
+
const adminLoginController = require('../controllers/adminLogin.controller');
|
|
4
|
+
const { auditMiddleware } = require('../services/auditLogger');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Admin Login Routes
|
|
8
|
+
* Handles both basic auth and IAM authentication through a unified login form
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// Serve login page
|
|
12
|
+
router.get('/login', auditMiddleware('admin.login.view', { entityType: 'AdminSession' }), adminLoginController.getLogin);
|
|
13
|
+
|
|
14
|
+
// Process login (supports both basic auth and IAM)
|
|
15
|
+
router.post('/login', auditMiddleware('admin.login.attempt', { entityType: 'AdminSession' }), adminLoginController.postLogin);
|
|
16
|
+
|
|
17
|
+
// Logout and clear session
|
|
18
|
+
router.post('/logout', auditMiddleware('admin.logout', { entityType: 'AdminSession' }), adminLoginController.postLogout);
|
|
19
|
+
|
|
20
|
+
// API endpoint to check authentication status
|
|
21
|
+
router.get('/auth-status', adminLoginController.getAuthStatus);
|
|
22
|
+
|
|
23
|
+
module.exports = router;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
|
-
const {
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
4
|
|
|
5
5
|
const adminMarkdownsController = require('../controllers/adminMarkdowns.controller');
|
|
6
6
|
|
|
7
|
-
router.
|
|
8
|
-
router.
|
|
9
|
-
router.get('/folder/:category/:group_code?', basicAuth, adminMarkdownsController.getFolderContents);
|
|
10
|
-
router.get('/:id', basicAuth, adminMarkdownsController.get);
|
|
11
|
-
router.post('/', basicAuth, adminMarkdownsController.create);
|
|
12
|
-
router.put('/:id', basicAuth, adminMarkdownsController.update);
|
|
13
|
-
router.delete('/:id', basicAuth, adminMarkdownsController.remove);
|
|
14
|
-
router.post('/validate-path', basicAuth, adminMarkdownsController.validatePath);
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
|
+
router.post('/validate-path', adminSessionAuth, adminMarkdownsController.validatePath);
|
|
15
9
|
|
|
16
10
|
module.exports = router;
|
|
@@ -1,79 +1,79 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const { auditMiddleware } = require('../services/auditLogger');
|
|
6
6
|
|
|
7
7
|
const adminMigrationController = require('../controllers/adminMigration.controller');
|
|
8
8
|
|
|
9
9
|
router.get(
|
|
10
10
|
'/environments',
|
|
11
|
-
|
|
11
|
+
adminSessionAuth,
|
|
12
12
|
adminMigrationController.listEnvironments,
|
|
13
13
|
);
|
|
14
14
|
|
|
15
15
|
router.get(
|
|
16
16
|
'/environments/:envKey',
|
|
17
|
-
|
|
17
|
+
adminSessionAuth,
|
|
18
18
|
adminMigrationController.getEnvironment,
|
|
19
19
|
);
|
|
20
20
|
|
|
21
21
|
router.get(
|
|
22
22
|
'/models',
|
|
23
|
-
|
|
23
|
+
adminSessionAuth,
|
|
24
24
|
adminMigrationController.listModels,
|
|
25
25
|
);
|
|
26
26
|
|
|
27
27
|
router.get(
|
|
28
28
|
'/models/:modelName/schema',
|
|
29
|
-
|
|
29
|
+
adminSessionAuth,
|
|
30
30
|
adminMigrationController.getModelSchema,
|
|
31
31
|
);
|
|
32
32
|
|
|
33
33
|
router.post(
|
|
34
34
|
'/preview',
|
|
35
|
-
|
|
35
|
+
adminSessionAuth,
|
|
36
36
|
adminMigrationController.preview,
|
|
37
37
|
);
|
|
38
38
|
|
|
39
39
|
router.post(
|
|
40
40
|
'/environments',
|
|
41
|
-
|
|
41
|
+
adminSessionAuth,
|
|
42
42
|
auditMiddleware('admin.migration.environments.upsert', { entityType: 'GlobalSetting' }),
|
|
43
43
|
adminMigrationController.upsertEnvironment,
|
|
44
44
|
);
|
|
45
45
|
|
|
46
46
|
router.delete(
|
|
47
47
|
'/environments/:envKey',
|
|
48
|
-
|
|
48
|
+
adminSessionAuth,
|
|
49
49
|
auditMiddleware('admin.migration.environments.delete', { entityType: 'GlobalSetting' }),
|
|
50
50
|
adminMigrationController.deleteEnvironment,
|
|
51
51
|
);
|
|
52
52
|
|
|
53
53
|
router.post(
|
|
54
54
|
'/test-connection',
|
|
55
|
-
|
|
55
|
+
adminSessionAuth,
|
|
56
56
|
auditMiddleware('admin.migration.test_connection', { entityType: 'Migration' }),
|
|
57
57
|
adminMigrationController.testConnection,
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
router.post(
|
|
61
61
|
'/test-assets',
|
|
62
|
-
|
|
62
|
+
adminSessionAuth,
|
|
63
63
|
auditMiddleware('admin.migration.test_assets', { entityType: 'Migration' }),
|
|
64
64
|
adminMigrationController.testAssetsTarget,
|
|
65
65
|
);
|
|
66
66
|
|
|
67
67
|
router.post(
|
|
68
68
|
'/test-assets-copy',
|
|
69
|
-
|
|
69
|
+
adminSessionAuth,
|
|
70
70
|
auditMiddleware('admin.migration.test_assets_copy', { entityType: 'Migration' }),
|
|
71
71
|
adminMigrationController.testAssetsCopyKey,
|
|
72
72
|
);
|
|
73
73
|
|
|
74
74
|
router.post(
|
|
75
75
|
'/run',
|
|
76
|
-
|
|
76
|
+
adminSessionAuth,
|
|
77
77
|
auditMiddleware('admin.migration.run', { entityType: 'Migration' }),
|
|
78
78
|
adminMigrationController.runMigration,
|
|
79
79
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
|
-
const {
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
4
|
const controller = require('../controllers/adminPages.controller');
|
|
5
5
|
const adminBlockDefinitionsController = require('../controllers/adminBlockDefinitions.controller');
|
|
6
6
|
const adminBlockDefinitionsAiController = require('../controllers/adminBlockDefinitionsAi.controller');
|
|
@@ -8,7 +8,7 @@ const adminContextBlockDefinitionsController = require('../controllers/adminCont
|
|
|
8
8
|
const adminPagesContextBlocksAiController = require('../controllers/adminPagesContextBlocksAi.controller');
|
|
9
9
|
const rateLimiter = require('../services/rateLimiter.service');
|
|
10
10
|
|
|
11
|
-
router.use(
|
|
11
|
+
router.use(adminSessionAuth);
|
|
12
12
|
|
|
13
13
|
router.get('/collections', controller.listCollections);
|
|
14
14
|
router.get('/collections/:id', controller.getCollection);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const express = require('express');
|
|
2
|
+
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
|
+
const controller = require('../controllers/adminPlugins.controller');
|
|
5
|
+
|
|
6
|
+
const router = express.Router();
|
|
7
|
+
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
|
+
|
|
10
|
+
router.get('/', controller.list);
|
|
11
|
+
router.post('/:id/enable', controller.enable);
|
|
12
|
+
router.post('/:id/disable', controller.disable);
|
|
13
|
+
router.post('/:id/install', controller.install);
|
|
14
|
+
|
|
15
|
+
module.exports = router;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/adminProxy.controller');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/entries', controller.list);
|
|
10
10
|
router.get('/entries/:id', controller.get);
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const adminRateLimitsController = require('../controllers/adminRateLimits.controller');
|
|
6
6
|
|
|
7
|
-
router.get('/',
|
|
8
|
-
router.get('/config',
|
|
9
|
-
router.put('/config',
|
|
10
|
-
router.get('/metrics',
|
|
7
|
+
router.get('/', adminSessionAuth, adminRateLimitsController.list);
|
|
8
|
+
router.get('/config', adminSessionAuth, adminRateLimitsController.getConfig);
|
|
9
|
+
router.put('/config', adminSessionAuth, adminRateLimitsController.updateConfig);
|
|
10
|
+
router.get('/metrics', adminSessionAuth, adminRateLimitsController.getMetrics);
|
|
11
11
|
|
|
12
|
-
router.post('/bulk-enabled',
|
|
12
|
+
router.post('/bulk-enabled', adminSessionAuth, adminRateLimitsController.bulkEnabled);
|
|
13
13
|
|
|
14
|
-
router.put('/:id',
|
|
15
|
-
router.post('/:id/reset',
|
|
14
|
+
router.put('/:id', adminSessionAuth, adminRateLimitsController.updateLimiter);
|
|
15
|
+
router.post('/:id/reset', adminSessionAuth, adminRateLimitsController.resetLimiter);
|
|
16
16
|
|
|
17
17
|
module.exports = router;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/adminRbac.controller');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/rights', controller.listRights);
|
|
10
10
|
router.get('/users', controller.searchUsers);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const express = require('express');
|
|
2
|
+
|
|
3
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
4
|
+
const controller = require('../controllers/adminRegistry.controller');
|
|
5
|
+
|
|
6
|
+
const router = express.Router();
|
|
7
|
+
|
|
8
|
+
router.use(adminSessionAuth);
|
|
9
|
+
|
|
10
|
+
router.get('/', controller.listRegistries);
|
|
11
|
+
router.post('/', controller.createRegistry);
|
|
12
|
+
router.get('/:id', controller.getRegistry);
|
|
13
|
+
router.put('/:id', controller.updateRegistry);
|
|
14
|
+
router.delete('/:id', controller.deleteRegistry);
|
|
15
|
+
|
|
16
|
+
router.get('/:id/items', controller.listItems);
|
|
17
|
+
router.post('/:id/items', controller.upsertItem);
|
|
18
|
+
router.put('/:id/items/:itemId', controller.upsertItem);
|
|
19
|
+
router.delete('/:id/items/:itemId', controller.deleteItem);
|
|
20
|
+
|
|
21
|
+
router.post('/:id/tokens', controller.createToken);
|
|
22
|
+
router.delete('/:id/tokens/:tokenId', controller.deleteToken);
|
|
23
|
+
|
|
24
|
+
module.exports = router;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const router = express.Router();
|
|
3
3
|
|
|
4
|
-
const {
|
|
4
|
+
const { adminSessionAuth } = require('../middleware/auth');
|
|
5
5
|
const controller = require('../controllers/adminScripts.controller');
|
|
6
6
|
|
|
7
|
-
router.use(
|
|
7
|
+
router.use(adminSessionAuth);
|
|
8
8
|
|
|
9
9
|
router.get('/', controller.listScripts);
|
|
10
10
|
router.post('/', controller.createScript);
|