@budibase/backend-core 3.2.41 → 3.2.43
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/dist/package.json +3 -3
- package/dist/src/accounts/accounts.js +83 -0
- package/dist/src/accounts/accounts.js.map +1 -0
- package/dist/src/accounts/api.js +102 -0
- package/dist/src/accounts/api.js.map +1 -0
- package/dist/src/accounts/index.js +18 -0
- package/dist/src/accounts/index.js.map +1 -0
- package/dist/src/cache/appMetadata.js +96 -0
- package/dist/src/cache/appMetadata.js.map +1 -0
- package/dist/src/cache/base/index.js +189 -0
- package/dist/src/cache/base/index.js.map +1 -0
- package/dist/src/cache/docWritethrough.js +123 -0
- package/dist/src/cache/docWritethrough.js.map +1 -0
- package/dist/src/cache/generic.js +37 -0
- package/dist/src/cache/generic.js.map +1 -0
- package/dist/src/cache/index.js +48 -0
- package/dist/src/cache/index.js.map +1 -0
- package/dist/src/cache/invite.js +128 -0
- package/dist/src/cache/invite.js.map +1 -0
- package/dist/src/cache/passwordReset.js +92 -0
- package/dist/src/cache/passwordReset.js.map +1 -0
- package/dist/src/cache/user.js +183 -0
- package/dist/src/cache/user.js.map +1 -0
- package/dist/src/cache/writethrough.js +170 -0
- package/dist/src/cache/writethrough.js.map +1 -0
- package/dist/src/configs/configs.js +294 -0
- package/dist/src/configs/configs.js.map +1 -0
- package/dist/src/configs/index.js +18 -0
- package/dist/src/configs/index.js.map +1 -0
- package/dist/src/constants/db.js +75 -0
- package/dist/src/constants/db.js.map +1 -0
- package/dist/src/constants/index.js +19 -0
- package/dist/src/constants/index.js.map +1 -0
- package/dist/src/constants/misc.js +40 -0
- package/dist/src/constants/misc.js.map +1 -0
- package/dist/src/context/Context.js +14 -0
- package/dist/src/context/Context.js.map +1 -0
- package/dist/src/context/identity.js +81 -0
- package/dist/src/context/identity.js.map +1 -0
- package/dist/src/context/index.js +44 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/context/mainContext.js +446 -0
- package/dist/src/context/mainContext.js.map +1 -0
- package/dist/src/context/types.js +3 -0
- package/dist/src/context/types.js.map +1 -0
- package/dist/src/db/Replication.js +90 -0
- package/dist/src/db/Replication.js.map +1 -0
- package/dist/src/db/couch/DatabaseImpl.js +475 -0
- package/dist/src/db/couch/DatabaseImpl.js.map +1 -0
- package/dist/src/db/couch/connections.js +101 -0
- package/dist/src/db/couch/connections.js.map +1 -0
- package/dist/src/db/couch/index.js +26 -0
- package/dist/src/db/couch/index.js.map +1 -0
- package/dist/src/db/couch/pouchDB.js +108 -0
- package/dist/src/db/couch/pouchDB.js.map +1 -0
- package/dist/src/db/couch/utils.js +60 -0
- package/dist/src/db/couch/utils.js.map +1 -0
- package/dist/src/db/db.js +47 -0
- package/dist/src/db/db.js.map +1 -0
- package/dist/src/db/errors.js +21 -0
- package/dist/src/db/errors.js.map +1 -0
- package/dist/src/db/index.js +58 -0
- package/dist/src/db/index.js.map +1 -0
- package/dist/src/db/instrumentation.js +202 -0
- package/dist/src/db/instrumentation.js.map +1 -0
- package/dist/src/db/lucene.js +638 -0
- package/dist/src/db/lucene.js.map +1 -0
- package/dist/src/db/searchIndexes/index.js +18 -0
- package/dist/src/db/searchIndexes/index.js.map +1 -0
- package/dist/src/db/searchIndexes/searchIndexes.js +76 -0
- package/dist/src/db/searchIndexes/searchIndexes.js.map +1 -0
- package/dist/src/db/utils.js +212 -0
- package/dist/src/db/utils.js.map +1 -0
- package/dist/src/db/views.js +224 -0
- package/dist/src/db/views.js.map +1 -0
- package/dist/src/docIds/conversions.js +62 -0
- package/dist/src/docIds/conversions.js.map +1 -0
- package/dist/src/docIds/ids.js +125 -0
- package/dist/src/docIds/ids.js.map +1 -0
- package/dist/src/docIds/index.js +19 -0
- package/dist/src/docIds/index.js.map +1 -0
- package/dist/src/docIds/newid.js +8 -0
- package/dist/src/docIds/newid.js.map +1 -0
- package/dist/src/docIds/params.js +141 -0
- package/dist/src/docIds/params.js.map +1 -0
- package/dist/src/environment.js +182 -0
- package/dist/src/environment.js.map +1 -0
- package/dist/src/errors/errors.js +97 -0
- package/dist/src/errors/errors.js.map +1 -0
- package/dist/src/errors/index.js +18 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/events/analytics.js +52 -0
- package/dist/src/events/analytics.js.map +1 -0
- package/dist/src/events/asyncEvents/index.js +19 -0
- package/dist/src/events/asyncEvents/index.js.map +1 -0
- package/dist/src/events/asyncEvents/publisher.js +26 -0
- package/dist/src/events/asyncEvents/publisher.js.map +1 -0
- package/dist/src/events/asyncEvents/queue.js +26 -0
- package/dist/src/events/asyncEvents/queue.js.map +1 -0
- package/dist/src/events/backfill.js +189 -0
- package/dist/src/events/backfill.js.map +1 -0
- package/dist/src/events/events.js +87 -0
- package/dist/src/events/events.js.map +1 -0
- package/dist/src/events/identification.js +299 -0
- package/dist/src/events/identification.js.map +1 -0
- package/dist/src/events/index.js +59 -0
- package/dist/src/events/index.js.map +1 -0
- package/dist/src/events/processors/AnalyticsProcessor.js +103 -0
- package/dist/src/events/processors/AnalyticsProcessor.js.map +1 -0
- package/dist/src/events/processors/AuditLogsProcessor.js +86 -0
- package/dist/src/events/processors/AuditLogsProcessor.js.map +1 -0
- package/dist/src/events/processors/LoggingProcessor.js +47 -0
- package/dist/src/events/processors/LoggingProcessor.js.map +1 -0
- package/dist/src/events/processors/Processors.js +52 -0
- package/dist/src/events/processors/Processors.js.map +1 -0
- package/dist/src/events/processors/index.js +23 -0
- package/dist/src/events/processors/index.js.map +1 -0
- package/dist/src/events/processors/posthog/PosthogProcessor.js +147 -0
- package/dist/src/events/processors/posthog/PosthogProcessor.js.map +1 -0
- package/dist/src/events/processors/posthog/index.js +8 -0
- package/dist/src/events/processors/posthog/index.js.map +1 -0
- package/dist/src/events/processors/posthog/rateLimiting.js +129 -0
- package/dist/src/events/processors/posthog/rateLimiting.js.map +1 -0
- package/dist/src/events/processors/types.js +3 -0
- package/dist/src/events/processors/types.js.map +1 -0
- package/dist/src/events/publishers/account.js +43 -0
- package/dist/src/events/publishers/account.js.map +1 -0
- package/dist/src/events/publishers/ai.js +30 -0
- package/dist/src/events/publishers/ai.js.map +1 -0
- package/dist/src/events/publishers/app.js +166 -0
- package/dist/src/events/publishers/app.js.map +1 -0
- package/dist/src/events/publishers/auditLog.js +34 -0
- package/dist/src/events/publishers/auditLog.js.map +1 -0
- package/dist/src/events/publishers/auth.js +80 -0
- package/dist/src/events/publishers/auth.js.map +1 -0
- package/dist/src/events/publishers/automation.js +117 -0
- package/dist/src/events/publishers/automation.js.map +1 -0
- package/dist/src/events/publishers/backfill.js +85 -0
- package/dist/src/events/publishers/backfill.js.map +1 -0
- package/dist/src/events/publishers/backup.js +41 -0
- package/dist/src/events/publishers/backup.js.map +1 -0
- package/dist/src/events/publishers/datasource.js +54 -0
- package/dist/src/events/publishers/datasource.js.map +1 -0
- package/dist/src/events/publishers/email.js +30 -0
- package/dist/src/events/publishers/email.js.map +1 -0
- package/dist/src/events/publishers/environmentVariable.js +44 -0
- package/dist/src/events/publishers/environmentVariable.js.map +1 -0
- package/dist/src/events/publishers/group.js +107 -0
- package/dist/src/events/publishers/group.js.map +1 -0
- package/dist/src/events/publishers/index.js +59 -0
- package/dist/src/events/publishers/index.js.map +1 -0
- package/dist/src/events/publishers/installation.js +52 -0
- package/dist/src/events/publishers/installation.js.map +1 -0
- package/dist/src/events/publishers/layout.js +34 -0
- package/dist/src/events/publishers/layout.js.map +1 -0
- package/dist/src/events/publishers/license.js +77 -0
- package/dist/src/events/publishers/license.js.map +1 -0
- package/dist/src/events/publishers/org.js +52 -0
- package/dist/src/events/publishers/org.js.map +1 -0
- package/dist/src/events/publishers/plugin.js +55 -0
- package/dist/src/events/publishers/plugin.js.map +1 -0
- package/dist/src/events/publishers/query.js +73 -0
- package/dist/src/events/publishers/query.js.map +1 -0
- package/dist/src/events/publishers/role.js +69 -0
- package/dist/src/events/publishers/role.js.map +1 -0
- package/dist/src/events/publishers/rowAction.js +22 -0
- package/dist/src/events/publishers/rowAction.js.map +1 -0
- package/dist/src/events/publishers/rows.js +31 -0
- package/dist/src/events/publishers/rows.js.map +1 -0
- package/dist/src/events/publishers/screen.js +46 -0
- package/dist/src/events/publishers/screen.js.map +1 -0
- package/dist/src/events/publishers/serve.js +47 -0
- package/dist/src/events/publishers/serve.js.map +1 -0
- package/dist/src/events/publishers/table.js +95 -0
- package/dist/src/events/publishers/table.js.map +1 -0
- package/dist/src/events/publishers/user.js +201 -0
- package/dist/src/events/publishers/user.js.map +1 -0
- package/dist/src/events/publishers/view.js +123 -0
- package/dist/src/events/publishers/view.js.map +1 -0
- package/dist/src/helpers.js +13 -0
- package/dist/src/helpers.js.map +1 -0
- package/dist/src/installation.js +159 -0
- package/dist/src/installation.js.map +1 -0
- package/dist/src/logging/alerts.js +23 -0
- package/dist/src/logging/alerts.js.map +1 -0
- package/dist/src/logging/correlation/correlation.js +18 -0
- package/dist/src/logging/correlation/correlation.js.map +1 -0
- package/dist/src/logging/correlation/index.js +18 -0
- package/dist/src/logging/correlation/index.js.map +1 -0
- package/dist/src/logging/index.js +45 -0
- package/dist/src/logging/index.js.map +1 -0
- package/dist/src/logging/pino/logger.js +234 -0
- package/dist/src/logging/pino/logger.js.map +1 -0
- package/dist/src/logging/system.js +110 -0
- package/dist/src/logging/system.js.map +1 -0
- package/dist/src/objectStore/buckets/app.js +95 -0
- package/dist/src/objectStore/buckets/app.js.map +1 -0
- package/dist/src/objectStore/buckets/global.js +68 -0
- package/dist/src/objectStore/buckets/global.js.map +1 -0
- package/dist/src/objectStore/buckets/index.js +20 -0
- package/dist/src/objectStore/buckets/index.js.map +1 -0
- package/dist/src/objectStore/buckets/plugins.js +104 -0
- package/dist/src/objectStore/buckets/plugins.js.map +1 -0
- package/dist/src/objectStore/cloudfront.js +73 -0
- package/dist/src/objectStore/cloudfront.js.map +1 -0
- package/dist/src/objectStore/index.js +20 -0
- package/dist/src/objectStore/index.js.map +1 -0
- package/dist/src/objectStore/objectStore.js +509 -0
- package/dist/src/objectStore/objectStore.js.map +1 -0
- package/dist/src/objectStore/utils.js +148 -0
- package/dist/src/objectStore/utils.js.map +1 -0
- package/dist/src/platform/index.js +43 -0
- package/dist/src/platform/index.js.map +1 -0
- package/dist/src/platform/platformDb.js +9 -0
- package/dist/src/platform/platformDb.js.map +1 -0
- package/dist/src/platform/tenants.js +149 -0
- package/dist/src/platform/tenants.js.map +1 -0
- package/dist/src/platform/users.js +118 -0
- package/dist/src/platform/users.js.map +1 -0
- package/dist/src/queue/constants.js +13 -0
- package/dist/src/queue/constants.js.map +1 -0
- package/dist/src/queue/inMemoryQueue.js +192 -0
- package/dist/src/queue/inMemoryQueue.js.map +1 -0
- package/dist/src/queue/index.js +19 -0
- package/dist/src/queue/index.js.map +1 -0
- package/dist/src/queue/listeners.js +199 -0
- package/dist/src/queue/listeners.js.map +1 -0
- package/dist/src/queue/queue.js +124 -0
- package/dist/src/queue/queue.js.map +1 -0
- package/dist/src/redis/index.js +47 -0
- package/dist/src/redis/index.js.map +1 -0
- package/dist/src/redis/init.js +184 -0
- package/dist/src/redis/init.js.map +1 -0
- package/dist/src/redis/redis.js +396 -0
- package/dist/src/redis/redis.js.map +1 -0
- package/dist/src/redis/redlockImpl.js +181 -0
- package/dist/src/redis/redlockImpl.js.map +1 -0
- package/dist/src/redis/utils.js +131 -0
- package/dist/src/redis/utils.js.map +1 -0
- package/dist/src/security/auth.js +26 -0
- package/dist/src/security/auth.js.map +1 -0
- package/dist/src/security/index.js +18 -0
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/security/roles.js +566 -0
- package/dist/src/security/roles.js.map +1 -0
- package/dist/src/security/sessions.js +156 -0
- package/dist/src/security/sessions.js.map +1 -0
- package/dist/src/sql/utils.js +180 -0
- package/dist/src/sql/utils.js.map +1 -0
- package/dist/src/tenancy/db.js +9 -0
- package/dist/src/tenancy/db.js.map +1 -0
- package/dist/src/tenancy/index.js +19 -0
- package/dist/src/tenancy/index.js.map +1 -0
- package/dist/src/tenancy/tenancy.js +125 -0
- package/dist/src/tenancy/tenancy.js.map +1 -0
- package/dist/src/timers/index.js +18 -0
- package/dist/src/timers/index.js.map +1 -0
- package/dist/src/timers/timers.js +25 -0
- package/dist/src/timers/timers.js.map +1 -0
- package/dist/src/users/db.js +489 -0
- package/dist/src/users/db.js.map +1 -0
- package/dist/src/users/events.js +179 -0
- package/dist/src/users/events.js.map +1 -0
- package/dist/src/users/index.js +23 -0
- package/dist/src/users/index.js.map +1 -0
- package/dist/src/users/lookup.js +126 -0
- package/dist/src/users/lookup.js.map +1 -0
- package/dist/src/users/users.js +376 -0
- package/dist/src/users/users.js.map +1 -0
- package/dist/src/users/utils.js +127 -0
- package/dist/src/users/utils.js.map +1 -0
- package/dist/src/utils/Duration.js +54 -0
- package/dist/src/utils/Duration.js.map +1 -0
- package/dist/src/utils/hashing.js +46 -0
- package/dist/src/utils/hashing.js.map +1 -0
- package/dist/src/utils/index.js +21 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/stringUtils.js +8 -0
- package/dist/src/utils/stringUtils.js.map +1 -0
- package/dist/src/utils/utils.js +267 -0
- package/dist/src/utils/utils.js.map +1 -0
- package/dist/tests/core/logging.js +33 -0
- package/dist/tests/core/logging.js.map +1 -0
- package/dist/tests/core/utilities/index.js +48 -0
- package/dist/tests/core/utilities/index.js.map +1 -0
- package/dist/tests/core/utilities/jestUtils.js +21 -0
- package/dist/tests/core/utilities/jestUtils.js.map +1 -0
- package/dist/tests/core/utilities/mocks/alerts.js +40 -0
- package/dist/tests/core/utilities/mocks/alerts.js.map +1 -0
- package/dist/tests/core/utilities/mocks/date.js +6 -0
- package/dist/tests/core/utilities/mocks/date.js.map +1 -0
- package/dist/tests/core/utilities/mocks/events.js +155 -0
- package/dist/tests/core/utilities/mocks/events.js.map +1 -0
- package/dist/tests/core/utilities/mocks/index.js +47 -0
- package/dist/tests/core/utilities/mocks/index.js.map +1 -0
- package/dist/tests/core/utilities/mocks/licenses.js +109 -0
- package/dist/tests/core/utilities/mocks/licenses.js.map +1 -0
- package/dist/tests/core/utilities/queue.js +21 -0
- package/dist/tests/core/utilities/queue.js.map +1 -0
- package/dist/tests/core/utilities/structures/Chance.js +21 -0
- package/dist/tests/core/utilities/structures/Chance.js.map +1 -0
- package/dist/tests/core/utilities/structures/accounts.js +43 -0
- package/dist/tests/core/utilities/structures/accounts.js.map +1 -0
- package/dist/tests/core/utilities/structures/apps.js +23 -0
- package/dist/tests/core/utilities/structures/apps.js.map +1 -0
- package/dist/tests/core/utilities/structures/common.js +11 -0
- package/dist/tests/core/utilities/structures/common.js.map +1 -0
- package/dist/tests/core/utilities/structures/db.js +15 -0
- package/dist/tests/core/utilities/structures/db.js.map +1 -0
- package/dist/tests/core/utilities/structures/documents/index.js +18 -0
- package/dist/tests/core/utilities/structures/documents/index.js.map +1 -0
- package/dist/tests/core/utilities/structures/documents/platform/index.js +38 -0
- package/dist/tests/core/utilities/structures/documents/platform/index.js.map +1 -0
- package/dist/tests/core/utilities/structures/documents/platform/installation.js +47 -0
- package/dist/tests/core/utilities/structures/documents/platform/installation.js.map +1 -0
- package/dist/tests/core/utilities/structures/generator.js +9 -0
- package/dist/tests/core/utilities/structures/generator.js.map +1 -0
- package/dist/tests/core/utilities/structures/index.js +56 -0
- package/dist/tests/core/utilities/structures/index.js.map +1 -0
- package/dist/tests/core/utilities/structures/koa.js +10 -0
- package/dist/tests/core/utilities/structures/koa.js.map +1 -0
- package/dist/tests/core/utilities/structures/licenses.js +157 -0
- package/dist/tests/core/utilities/structures/licenses.js.map +1 -0
- package/dist/tests/core/utilities/structures/plugins.js +22 -0
- package/dist/tests/core/utilities/structures/plugins.js.map +1 -0
- package/dist/tests/core/utilities/structures/quotas.js +73 -0
- package/dist/tests/core/utilities/structures/quotas.js.map +1 -0
- package/dist/tests/core/utilities/structures/scim.js +62 -0
- package/dist/tests/core/utilities/structures/scim.js.map +1 -0
- package/dist/tests/core/utilities/structures/sso.js +140 -0
- package/dist/tests/core/utilities/structures/sso.js.map +1 -0
- package/dist/tests/core/utilities/structures/tenants.js +8 -0
- package/dist/tests/core/utilities/structures/tenants.js.map +1 -0
- package/dist/tests/core/utilities/structures/userGroups.js +12 -0
- package/dist/tests/core/utilities/structures/userGroups.js.map +1 -0
- package/dist/tests/core/utilities/structures/users.js +53 -0
- package/dist/tests/core/utilities/structures/users.js.map +1 -0
- package/dist/tests/core/utilities/testContainerUtils.js +161 -0
- package/dist/tests/core/utilities/testContainerUtils.js.map +1 -0
- package/dist/tests/core/utilities/utils/index.js +39 -0
- package/dist/tests/core/utilities/utils/index.js.map +1 -0
- package/dist/tests/core/utilities/utils/queue.js +37 -0
- package/dist/tests/core/utilities/utils/queue.js.map +1 -0
- package/dist/tests/core/utilities/utils/time.js +7 -0
- package/dist/tests/core/utilities/utils/time.js.map +1 -0
- package/dist/tests/extra/DBTestConfiguration.js +65 -0
- package/dist/tests/extra/DBTestConfiguration.js.map +1 -0
- package/dist/tests/extra/index.js +43 -0
- package/dist/tests/extra/index.js.map +1 -0
- package/dist/tests/extra/testEnv.js +136 -0
- package/dist/tests/extra/testEnv.js.map +1 -0
- package/dist/tests/index.js +19 -0
- package/dist/tests/index.js.map +1 -0
- package/dist/tests/jestEnv.js +12 -0
- package/dist/tests/jestEnv.js.map +1 -0
- package/dist/tests/jestSetup.js +33 -0
- package/dist/tests/jestSetup.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDevAppID = void 0;
|
|
4
|
+
exports.isDevAppID = isDevAppID;
|
|
5
|
+
exports.isProdAppID = isProdAppID;
|
|
6
|
+
exports.isDevApp = isDevApp;
|
|
7
|
+
exports.getDevelopmentAppID = getDevelopmentAppID;
|
|
8
|
+
exports.getProdAppID = getProdAppID;
|
|
9
|
+
exports.extractAppUUID = extractAppUUID;
|
|
10
|
+
const constants_1 = require("../constants");
|
|
11
|
+
const NO_APP_ERROR = "No app provided";
|
|
12
|
+
function isDevAppID(appId) {
|
|
13
|
+
if (!appId) {
|
|
14
|
+
throw NO_APP_ERROR;
|
|
15
|
+
}
|
|
16
|
+
return appId.startsWith(constants_1.APP_DEV_PREFIX);
|
|
17
|
+
}
|
|
18
|
+
function isProdAppID(appId) {
|
|
19
|
+
if (!appId) {
|
|
20
|
+
throw NO_APP_ERROR;
|
|
21
|
+
}
|
|
22
|
+
return appId.startsWith(constants_1.APP_PREFIX) && !isDevAppID(appId);
|
|
23
|
+
}
|
|
24
|
+
function isDevApp(app) {
|
|
25
|
+
if (!app) {
|
|
26
|
+
throw NO_APP_ERROR;
|
|
27
|
+
}
|
|
28
|
+
return isDevAppID(app.appId);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Generates a development app ID from a real app ID.
|
|
32
|
+
* @returns the dev app ID which can be used for dev database.
|
|
33
|
+
*/
|
|
34
|
+
function getDevelopmentAppID(appId) {
|
|
35
|
+
if (!appId || appId.startsWith(constants_1.APP_DEV_PREFIX)) {
|
|
36
|
+
return appId;
|
|
37
|
+
}
|
|
38
|
+
// split to take off the app_ element, then join it together incase any other app_ exist
|
|
39
|
+
const split = appId.split(constants_1.APP_PREFIX);
|
|
40
|
+
split.shift();
|
|
41
|
+
const rest = split.join(constants_1.APP_PREFIX);
|
|
42
|
+
return `${constants_1.APP_DEV_PREFIX}${rest}`;
|
|
43
|
+
}
|
|
44
|
+
exports.getDevAppID = getDevelopmentAppID;
|
|
45
|
+
/**
|
|
46
|
+
* Convert a development app ID to a deployed app ID.
|
|
47
|
+
*/
|
|
48
|
+
function getProdAppID(appId) {
|
|
49
|
+
if (!appId || !appId.startsWith(constants_1.APP_DEV_PREFIX)) {
|
|
50
|
+
return appId;
|
|
51
|
+
}
|
|
52
|
+
// split to take off the app_dev element, then join it together incase any other app_ exist
|
|
53
|
+
const split = appId.split(constants_1.APP_DEV_PREFIX);
|
|
54
|
+
split.shift();
|
|
55
|
+
const rest = split.join(constants_1.APP_DEV_PREFIX);
|
|
56
|
+
return `${constants_1.APP_PREFIX}${rest}`;
|
|
57
|
+
}
|
|
58
|
+
function extractAppUUID(id) {
|
|
59
|
+
const split = (id === null || id === void 0 ? void 0 : id.split("_")) || [];
|
|
60
|
+
return split.length ? split[split.length - 1] : null;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=conversions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversions.js","sourceRoot":"","sources":["../../../src/docIds/conversions.ts"],"names":[],"mappings":";;;AAKA,gCAKC;AAED,kCAKC;AAED,4BAKC;AAMD,kDASC;AAMD,oCASC;AAED,wCAGC;AA3DD,4CAAyD;AAGzD,MAAM,YAAY,GAAG,iBAAiB,CAAA;AAEtC,SAAgB,UAAU,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,YAAY,CAAA;IACpB,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAA;AACzC,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,YAAY,CAAA;IACpB,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC,sBAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC3D,CAAC;AAED,SAAgB,QAAQ,CAAC,GAAQ;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,YAAY,CAAA;IACpB,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,0BAAc,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,wFAAwF;IACxF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,sBAAU,CAAC,CAAA;IACrC,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAU,CAAC,CAAA;IACnC,OAAO,GAAG,0BAAc,GAAG,IAAI,EAAE,CAAA;AACnC,CAAC;AACY,QAAA,WAAW,GAAG,mBAAmB,CAAA;AAE9C;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,0BAAc,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,2FAA2F;IAC3F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,0BAAc,CAAC,CAAA;IACzC,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,0BAAc,CAAC,CAAA;IACvC,OAAO,GAAG,sBAAU,GAAG,IAAI,EAAE,CAAA;AAC/B,CAAC;AAED,SAAgB,cAAc,CAAC,EAAU;IACvC,MAAM,KAAK,GAAG,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAA;IAClC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generatePluginID = exports.generateDevInfoID = exports.generateAppID = void 0;
|
|
4
|
+
exports.generateTableID = generateTableID;
|
|
5
|
+
exports.generateRowID = generateRowID;
|
|
6
|
+
exports.generateWorkspaceID = generateWorkspaceID;
|
|
7
|
+
exports.generateGlobalUserID = generateGlobalUserID;
|
|
8
|
+
exports.isGlobalUserID = isGlobalUserID;
|
|
9
|
+
exports.generateUserMetadataID = generateUserMetadataID;
|
|
10
|
+
exports.getGlobalIDFromUserMetadataID = getGlobalIDFromUserMetadataID;
|
|
11
|
+
exports.generateTemplateID = generateTemplateID;
|
|
12
|
+
exports.generateAppUserID = generateAppUserID;
|
|
13
|
+
exports.generateRoleID = generateRoleID;
|
|
14
|
+
exports.prefixRoleID = prefixRoleID;
|
|
15
|
+
const constants_1 = require("../constants");
|
|
16
|
+
const newid_1 = require("./newid");
|
|
17
|
+
/**
|
|
18
|
+
* Generates a new app ID.
|
|
19
|
+
* @returns The new app ID which the app doc can be stored under.
|
|
20
|
+
*/
|
|
21
|
+
const generateAppID = (tenantId) => {
|
|
22
|
+
let id = constants_1.APP_PREFIX;
|
|
23
|
+
if (tenantId) {
|
|
24
|
+
id += `${tenantId}${constants_1.SEPARATOR}`;
|
|
25
|
+
}
|
|
26
|
+
return `${id}${(0, newid_1.newid)()}`;
|
|
27
|
+
};
|
|
28
|
+
exports.generateAppID = generateAppID;
|
|
29
|
+
/**
|
|
30
|
+
* Generates a new table ID.
|
|
31
|
+
* @returns The new table ID which the table doc can be stored under.
|
|
32
|
+
*/
|
|
33
|
+
function generateTableID() {
|
|
34
|
+
return `${constants_1.DocumentType.TABLE}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Gets a new row ID for the specified table.
|
|
38
|
+
* @param tableId The table which the row is being created for.
|
|
39
|
+
* @param id If an ID is to be used then the UUID can be substituted for this.
|
|
40
|
+
* @returns The new ID which a row doc can be stored under.
|
|
41
|
+
*/
|
|
42
|
+
function generateRowID(tableId, id) {
|
|
43
|
+
id = id || (0, newid_1.newid)();
|
|
44
|
+
return `${constants_1.DocumentType.ROW}${constants_1.SEPARATOR}${tableId}${constants_1.SEPARATOR}${id}`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Generates a new workspace ID.
|
|
48
|
+
* @returns The new workspace ID which the workspace doc can be stored under.
|
|
49
|
+
*/
|
|
50
|
+
function generateWorkspaceID() {
|
|
51
|
+
return `${constants_1.DocumentType.WORKSPACE}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generates a new global user ID.
|
|
55
|
+
* @returns The new user ID which the user doc can be stored under.
|
|
56
|
+
*/
|
|
57
|
+
function generateGlobalUserID(id) {
|
|
58
|
+
return `${constants_1.DocumentType.USER}${constants_1.SEPARATOR}${id || (0, newid_1.newid)()}`;
|
|
59
|
+
}
|
|
60
|
+
const isGlobalUserIDRegex = new RegExp(`^${constants_1.DocumentType.USER}${constants_1.SEPARATOR}.+`);
|
|
61
|
+
function isGlobalUserID(id) {
|
|
62
|
+
return isGlobalUserIDRegex.test(id);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Generates a new user ID based on the passed in global ID.
|
|
66
|
+
* @param globalId The ID of the global user.
|
|
67
|
+
* @returns The new user ID which the user doc can be stored under.
|
|
68
|
+
*/
|
|
69
|
+
function generateUserMetadataID(globalId) {
|
|
70
|
+
return generateRowID(constants_1.InternalTable.USER_METADATA, globalId);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Breaks up the ID to get the global ID.
|
|
74
|
+
*/
|
|
75
|
+
function getGlobalIDFromUserMetadataID(id) {
|
|
76
|
+
const prefix = `${constants_1.DocumentType.ROW}${constants_1.SEPARATOR}${constants_1.InternalTable.USER_METADATA}${constants_1.SEPARATOR}`;
|
|
77
|
+
if (!id || !id.includes(prefix)) {
|
|
78
|
+
return id;
|
|
79
|
+
}
|
|
80
|
+
return id.split(prefix)[1];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Generates a template ID.
|
|
84
|
+
* @param ownerId The owner/user of the template, this could be global or a workspace level.
|
|
85
|
+
*/
|
|
86
|
+
function generateTemplateID(ownerId) {
|
|
87
|
+
return `${constants_1.DocumentType.TEMPLATE}${constants_1.SEPARATOR}${ownerId}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
|
|
88
|
+
}
|
|
89
|
+
function generateAppUserID(prodAppId, userId) {
|
|
90
|
+
return `${prodAppId}${constants_1.SEPARATOR}${userId}`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Generates a new role ID.
|
|
94
|
+
* @returns The new role ID which the role doc can be stored under.
|
|
95
|
+
*/
|
|
96
|
+
function generateRoleID(name) {
|
|
97
|
+
const prefix = `${constants_1.DocumentType.ROLE}${constants_1.SEPARATOR}`;
|
|
98
|
+
if (name.startsWith(prefix)) {
|
|
99
|
+
return name;
|
|
100
|
+
}
|
|
101
|
+
return `${prefix}${name}`;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Utility function to be more verbose.
|
|
105
|
+
*/
|
|
106
|
+
function prefixRoleID(name) {
|
|
107
|
+
return generateRoleID(name);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Generates a new dev info document ID - this is scoped to a user.
|
|
111
|
+
* @returns The new dev info ID which info for dev (like api key) can be stored under.
|
|
112
|
+
*/
|
|
113
|
+
const generateDevInfoID = (userId) => {
|
|
114
|
+
return `${constants_1.DocumentType.DEV_INFO}${constants_1.SEPARATOR}${userId}`;
|
|
115
|
+
};
|
|
116
|
+
exports.generateDevInfoID = generateDevInfoID;
|
|
117
|
+
/**
|
|
118
|
+
* Generates a new plugin ID - to be used in the global DB.
|
|
119
|
+
* @returns The new plugin ID which a plugin metadata document can be stored under.
|
|
120
|
+
*/
|
|
121
|
+
const generatePluginID = (name) => {
|
|
122
|
+
return `${constants_1.DocumentType.PLUGIN}${constants_1.SEPARATOR}${name}`;
|
|
123
|
+
};
|
|
124
|
+
exports.generatePluginID = generatePluginID;
|
|
125
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/docIds/ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ids"), exports);
|
|
18
|
+
__exportStar(require("./params"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/docIds/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,2CAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"newid.js","sourceRoot":"","sources":["../../../src/docIds/newid.ts"],"names":[],"mappings":";;AAEA,sBAEC;AAJD,+BAAyB;AAEzB,SAAgB,KAAK;IACnB,OAAO,IAAA,SAAE,GAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPluginParams = exports.isDatasourceId = exports.isTableId = void 0;
|
|
4
|
+
exports.getDocParams = getDocParams;
|
|
5
|
+
exports.getRowParams = getRowParams;
|
|
6
|
+
exports.getQueryIndex = getQueryIndex;
|
|
7
|
+
exports.isViewId = isViewId;
|
|
8
|
+
exports.getWorkspaceParams = getWorkspaceParams;
|
|
9
|
+
exports.getGlobalUserParams = getGlobalUserParams;
|
|
10
|
+
exports.getUserMetadataParams = getUserMetadataParams;
|
|
11
|
+
exports.getUsersByAppParams = getUsersByAppParams;
|
|
12
|
+
exports.getTemplateParams = getTemplateParams;
|
|
13
|
+
exports.getRoleParams = getRoleParams;
|
|
14
|
+
exports.getStartEndKeyURL = getStartEndKeyURL;
|
|
15
|
+
const constants_1 = require("../constants");
|
|
16
|
+
const conversions_1 = require("./conversions");
|
|
17
|
+
const types_1 = require("@budibase/types");
|
|
18
|
+
/**
|
|
19
|
+
* If creating DB allDocs/query params with only a single top level ID this can be used, this
|
|
20
|
+
* is usually the case as most of our docs are top level e.g. tables, automations, users and so on.
|
|
21
|
+
* More complex cases such as link docs and rows which have multiple levels of IDs that their
|
|
22
|
+
* ID consists of need their own functions to build the allDocs parameters.
|
|
23
|
+
* @param docType The type of document which input params are being built for, e.g. user,
|
|
24
|
+
* link, app, table and so on.
|
|
25
|
+
* @param docId The ID of the document minus its type - this is only needed if looking
|
|
26
|
+
* for a singular document.
|
|
27
|
+
* @param otherProps Add any other properties onto the request, e.g. include_docs.
|
|
28
|
+
* @returns Parameters which can then be used with an allDocs request.
|
|
29
|
+
*/
|
|
30
|
+
function getDocParams(docType, docId, otherProps = {}) {
|
|
31
|
+
if (docId == null) {
|
|
32
|
+
docId = "";
|
|
33
|
+
}
|
|
34
|
+
return Object.assign(Object.assign({}, otherProps), { startkey: `${docType}${constants_1.SEPARATOR}${docId}`, endkey: `${docType}${constants_1.SEPARATOR}${docId}${constants_1.UNICODE_MAX}` });
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Gets the DB allDocs/query params for retrieving a row.
|
|
38
|
+
* @param tableId The table in which the rows have been stored.
|
|
39
|
+
* @param rowId The ID of the row which is being specifically queried for. This can be
|
|
40
|
+
* left null to get all the rows in the table.
|
|
41
|
+
* @param otherProps Any other properties to add to the request.
|
|
42
|
+
* @returns Parameters which can then be used with an allDocs request.
|
|
43
|
+
*/
|
|
44
|
+
function getRowParams(tableId, rowId, otherProps = {}) {
|
|
45
|
+
if (tableId == null) {
|
|
46
|
+
return getDocParams(constants_1.DocumentType.ROW, null, otherProps);
|
|
47
|
+
}
|
|
48
|
+
const endOfKey = rowId == null ? `${tableId}${constants_1.SEPARATOR}` : rowId;
|
|
49
|
+
return getDocParams(constants_1.DocumentType.ROW, endOfKey, otherProps);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Retrieve the correct index for a view based on default design DB.
|
|
53
|
+
*/
|
|
54
|
+
function getQueryIndex(viewName) {
|
|
55
|
+
return `database/${viewName}`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Check if a given ID is that of a table.
|
|
59
|
+
*/
|
|
60
|
+
const isTableId = (id) => {
|
|
61
|
+
// this includes datasource plus tables
|
|
62
|
+
return (!!id &&
|
|
63
|
+
(id.startsWith(`${constants_1.DocumentType.TABLE}${constants_1.SEPARATOR}`) ||
|
|
64
|
+
id.startsWith(`${constants_1.DocumentType.DATASOURCE_PLUS}${constants_1.SEPARATOR}`)));
|
|
65
|
+
};
|
|
66
|
+
exports.isTableId = isTableId;
|
|
67
|
+
function isViewId(id) {
|
|
68
|
+
return !!id && id.startsWith(`${types_1.VirtualDocumentType.VIEW}${constants_1.SEPARATOR}`);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check if a given ID is that of a datasource or datasource plus.
|
|
72
|
+
*/
|
|
73
|
+
const isDatasourceId = (id) => {
|
|
74
|
+
// this covers both datasources and datasource plus
|
|
75
|
+
return !!id && id.startsWith(`${constants_1.DocumentType.DATASOURCE}${constants_1.SEPARATOR}`);
|
|
76
|
+
};
|
|
77
|
+
exports.isDatasourceId = isDatasourceId;
|
|
78
|
+
/**
|
|
79
|
+
* Gets parameters for retrieving workspaces.
|
|
80
|
+
*/
|
|
81
|
+
function getWorkspaceParams(id = "", otherProps = {}) {
|
|
82
|
+
return Object.assign(Object.assign({}, otherProps), { startkey: `${constants_1.DocumentType.WORKSPACE}${constants_1.SEPARATOR}${id}`, endkey: `${constants_1.DocumentType.WORKSPACE}${constants_1.SEPARATOR}${id}${constants_1.UNICODE_MAX}` });
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Gets parameters for retrieving users.
|
|
86
|
+
*/
|
|
87
|
+
function getGlobalUserParams(globalId, otherProps = {}) {
|
|
88
|
+
if (!globalId) {
|
|
89
|
+
globalId = "";
|
|
90
|
+
}
|
|
91
|
+
const startkey = otherProps === null || otherProps === void 0 ? void 0 : otherProps.startkey;
|
|
92
|
+
return Object.assign(Object.assign({}, otherProps), {
|
|
93
|
+
// need to include this incase pagination
|
|
94
|
+
startkey: startkey
|
|
95
|
+
? startkey
|
|
96
|
+
: `${constants_1.DocumentType.USER}${constants_1.SEPARATOR}${globalId}`, endkey: `${constants_1.DocumentType.USER}${constants_1.SEPARATOR}${globalId}${constants_1.UNICODE_MAX}` });
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Gets parameters for retrieving users, this is a utility function for the getDocParams function.
|
|
100
|
+
*/
|
|
101
|
+
function getUserMetadataParams(userId, otherProps = {}) {
|
|
102
|
+
return getRowParams(constants_1.InternalTable.USER_METADATA, userId, otherProps);
|
|
103
|
+
}
|
|
104
|
+
function getUsersByAppParams(appId, otherProps = {}) {
|
|
105
|
+
const prodAppId = (0, conversions_1.getProdAppID)(appId);
|
|
106
|
+
return Object.assign(Object.assign({}, otherProps), { startkey: prodAppId, endkey: `${prodAppId}${constants_1.UNICODE_MAX}` });
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Gets parameters for retrieving templates. Owner ID must be specified, either global or a workspace level.
|
|
110
|
+
*/
|
|
111
|
+
function getTemplateParams(ownerId, templateId, otherProps = {}) {
|
|
112
|
+
if (!templateId) {
|
|
113
|
+
templateId = "";
|
|
114
|
+
}
|
|
115
|
+
let final;
|
|
116
|
+
if (templateId) {
|
|
117
|
+
final = templateId;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
final = `${constants_1.DocumentType.TEMPLATE}${constants_1.SEPARATOR}${ownerId}${constants_1.SEPARATOR}`;
|
|
121
|
+
}
|
|
122
|
+
return Object.assign(Object.assign({}, otherProps), { startkey: final, endkey: `${final}${constants_1.UNICODE_MAX}` });
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Gets parameters for retrieving a role, this is a utility function for the getDocParams function.
|
|
126
|
+
*/
|
|
127
|
+
function getRoleParams(roleId, otherProps = {}) {
|
|
128
|
+
return getDocParams(constants_1.DocumentType.ROLE, roleId, otherProps);
|
|
129
|
+
}
|
|
130
|
+
function getStartEndKeyURL(baseKey, tenantId) {
|
|
131
|
+
const tenancy = tenantId ? `${constants_1.SEPARATOR}${tenantId}` : "";
|
|
132
|
+
return `startkey="${baseKey}${tenancy}"&endkey="${baseKey}${tenancy}${constants_1.UNICODE_MAX}"`;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Gets parameters for retrieving automations, this is a utility function for the getDocParams function.
|
|
136
|
+
*/
|
|
137
|
+
const getPluginParams = (pluginId, otherProps = {}) => {
|
|
138
|
+
return getDocParams(constants_1.DocumentType.PLUGIN, pluginId, otherProps);
|
|
139
|
+
};
|
|
140
|
+
exports.getPluginParams = getPluginParams;
|
|
141
|
+
//# sourceMappingURL=params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/docIds/params.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SECRETS = void 0;
|
|
4
|
+
exports.setEnv = setEnv;
|
|
5
|
+
exports.withEnv = withEnv;
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const types_1 = require("@budibase/types");
|
|
8
|
+
const lodash_1 = require("lodash");
|
|
9
|
+
const crypto_1 = require("crypto");
|
|
10
|
+
function isTest() {
|
|
11
|
+
return isJest();
|
|
12
|
+
}
|
|
13
|
+
function isJest() {
|
|
14
|
+
return (process.env.NODE_ENV === "jest" ||
|
|
15
|
+
(process.env.JEST_WORKER_ID != null &&
|
|
16
|
+
process.env.JEST_WORKER_ID !== "null"));
|
|
17
|
+
}
|
|
18
|
+
function isDev() {
|
|
19
|
+
return process.env.NODE_ENV !== "production";
|
|
20
|
+
}
|
|
21
|
+
function parseIntSafe(number) {
|
|
22
|
+
if (number) {
|
|
23
|
+
return parseInt(number);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
let LOADED = false;
|
|
27
|
+
if (!LOADED && isDev() && !isTest()) {
|
|
28
|
+
require("dotenv").config();
|
|
29
|
+
LOADED = true;
|
|
30
|
+
}
|
|
31
|
+
const DefaultBucketName = {
|
|
32
|
+
BACKUPS: "backups",
|
|
33
|
+
APPS: "prod-budi-app-assets",
|
|
34
|
+
TEMPLATES: "templates",
|
|
35
|
+
GLOBAL: "global",
|
|
36
|
+
PLUGINS: "plugins",
|
|
37
|
+
TEMP: "tmp-file-attachments",
|
|
38
|
+
};
|
|
39
|
+
const selfHosted = !!parseInt(process.env.SELF_HOSTED || "");
|
|
40
|
+
function getAPIEncryptionKey() {
|
|
41
|
+
return process.env.API_ENCRYPTION_KEY
|
|
42
|
+
? process.env.API_ENCRYPTION_KEY
|
|
43
|
+
: process.env.JWT_SECRET; // fallback to the JWT_SECRET used historically
|
|
44
|
+
}
|
|
45
|
+
function httpLogging() {
|
|
46
|
+
if (process.env.HTTP_LOGGING === undefined) {
|
|
47
|
+
// on by default unless otherwise specified
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return process.env.HTTP_LOGGING;
|
|
51
|
+
}
|
|
52
|
+
function getPackageJsonFields() {
|
|
53
|
+
function getParentFile(file) {
|
|
54
|
+
function findFileInAncestors(fileName, currentDir) {
|
|
55
|
+
const filePath = `${currentDir}/${fileName}`;
|
|
56
|
+
if ((0, fs_1.existsSync)(filePath)) {
|
|
57
|
+
return filePath;
|
|
58
|
+
}
|
|
59
|
+
const parentDir = `${currentDir}/..`;
|
|
60
|
+
if (parentDir === currentDir) {
|
|
61
|
+
// reached root directory
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return findFileInAncestors(fileName, parentDir);
|
|
65
|
+
}
|
|
66
|
+
const packageJsonFile = findFileInAncestors(file, process.cwd());
|
|
67
|
+
const content = (0, fs_1.readFileSync)(packageJsonFile, "utf-8");
|
|
68
|
+
const parsedContent = JSON.parse(content);
|
|
69
|
+
return parsedContent;
|
|
70
|
+
}
|
|
71
|
+
let localVersion;
|
|
72
|
+
if (isDev() && !isTest()) {
|
|
73
|
+
try {
|
|
74
|
+
const lerna = getParentFile("lerna.json");
|
|
75
|
+
localVersion = `${lerna.version}+local`;
|
|
76
|
+
}
|
|
77
|
+
catch (_a) {
|
|
78
|
+
//
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const parsedContent = getParentFile("package.json");
|
|
83
|
+
return {
|
|
84
|
+
VERSION: localVersion || process.env.BUDIBASE_VERSION || parsedContent.version,
|
|
85
|
+
SERVICE_NAME: parsedContent.name,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
catch (_b) {
|
|
89
|
+
// throwing an error here is confusing/causes backend-core to be hard to import
|
|
90
|
+
return { VERSION: process.env.BUDIBASE_VERSION || "", SERVICE_NAME: "" };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function isWorker() {
|
|
94
|
+
return environment.SERVICE_TYPE === types_1.ServiceType.WORKER;
|
|
95
|
+
}
|
|
96
|
+
function isApps() {
|
|
97
|
+
return environment.SERVICE_TYPE === types_1.ServiceType.APPS;
|
|
98
|
+
}
|
|
99
|
+
function isQA() {
|
|
100
|
+
return environment.BUDIBASE_ENVIRONMENT === "QA";
|
|
101
|
+
}
|
|
102
|
+
const environment = Object.assign(Object.assign({ isTest,
|
|
103
|
+
isJest,
|
|
104
|
+
isDev,
|
|
105
|
+
isWorker,
|
|
106
|
+
isApps,
|
|
107
|
+
isQA, isProd: () => {
|
|
108
|
+
return !isDev();
|
|
109
|
+
}, BUDIBASE_ENVIRONMENT: process.env.BUDIBASE_ENVIRONMENT, JS_BCRYPT: process.env.JS_BCRYPT, JWT_SECRET: process.env.JWT_SECRET
|
|
110
|
+
? (0, crypto_1.createSecretKey)(process.env.JWT_SECRET, "utf8")
|
|
111
|
+
: undefined, JWT_SECRET_FALLBACK: process.env.JWT_SECRET_FALLBACK
|
|
112
|
+
? (0, crypto_1.createSecretKey)(process.env.JWT_SECRET_FALLBACK, "utf8")
|
|
113
|
+
: undefined, ENCRYPTION_KEY: process.env.ENCRYPTION_KEY, API_ENCRYPTION_KEY: getAPIEncryptionKey(), COUCH_DB_URL: process.env.COUCH_DB_URL || "http://localhost:4005", COUCH_DB_SQL_URL: process.env.COUCH_DB_SQL_URL, COUCH_DB_USERNAME: process.env.COUCH_DB_USER, COUCH_DB_PASSWORD: process.env.COUCH_DB_PASSWORD, GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET, SALT_ROUNDS: process.env.SALT_ROUNDS, REDIS_URL: process.env.REDIS_URL || "localhost:6379", REDIS_PASSWORD: process.env.REDIS_PASSWORD, REDIS_CLUSTERED: process.env.REDIS_CLUSTERED, MINIO_ACCESS_KEY: process.env.MINIO_ACCESS_KEY, MINIO_SECRET_KEY: process.env.MINIO_SECRET_KEY, AWS_SESSION_TOKEN: process.env.AWS_SESSION_TOKEN, AWS_REGION: process.env.AWS_REGION, MINIO_URL: process.env.MINIO_URL, MINIO_ENABLED: process.env.MINIO_ENABLED || 1, INTERNAL_API_KEY: process.env.INTERNAL_API_KEY, INTERNAL_API_KEY_FALLBACK: process.env.INTERNAL_API_KEY_FALLBACK, MULTI_TENANCY: process.env.MULTI_TENANCY, ACCOUNT_PORTAL_URL: process.env.ACCOUNT_PORTAL_URL || "https://account.budibase.app", ACCOUNT_PORTAL_API_KEY: process.env.ACCOUNT_PORTAL_API_KEY || "", DISABLE_ACCOUNT_PORTAL: process.env.DISABLE_ACCOUNT_PORTAL, SELF_HOSTED: selfHosted, COOKIE_DOMAIN: process.env.COOKIE_DOMAIN, PLATFORM_URL: process.env.PLATFORM_URL || "", POSTHOG_TOKEN: process.env.POSTHOG_TOKEN, POSTHOG_PERSONAL_TOKEN: process.env.POSTHOG_PERSONAL_TOKEN, POSTHOG_API_HOST: process.env.POSTHOG_API_HOST || "https://us.i.posthog.com", POSTHOG_FEATURE_FLAGS_ENABLED: process.env.POSTHOG_FEATURE_FLAGS_ENABLED, ENABLE_ANALYTICS: process.env.ENABLE_ANALYTICS, TENANT_FEATURE_FLAGS: process.env.TENANT_FEATURE_FLAGS, CLOUDFRONT_CDN: process.env.CLOUDFRONT_CDN, CLOUDFRONT_PRIVATE_KEY_64: process.env.CLOUDFRONT_PRIVATE_KEY_64, CLOUDFRONT_PUBLIC_KEY_ID: process.env.CLOUDFRONT_PUBLIC_KEY_ID, BACKUPS_BUCKET_NAME: process.env.BACKUPS_BUCKET_NAME || DefaultBucketName.BACKUPS, APPS_BUCKET_NAME: process.env.APPS_BUCKET_NAME || DefaultBucketName.APPS, TEMPLATES_BUCKET_NAME: process.env.TEMPLATES_BUCKET_NAME || DefaultBucketName.TEMPLATES, GLOBAL_BUCKET_NAME: process.env.GLOBAL_BUCKET_NAME || DefaultBucketName.GLOBAL, PLUGIN_BUCKET_NAME: process.env.PLUGIN_BUCKET_NAME || DefaultBucketName.PLUGINS, TEMP_BUCKET_NAME: process.env.TEMP_BUCKET_NAME || DefaultBucketName.TEMP, USE_COUCH: process.env.USE_COUCH || true, MOCK_REDIS: process.env.MOCK_REDIS, DEFAULT_LICENSE: process.env.DEFAULT_LICENSE, SERVICE: process.env.SERVICE || "budibase", LOG_LEVEL: process.env.LOG_LEVEL || "info", SESSION_UPDATE_PERIOD: process.env.SESSION_UPDATE_PERIOD, DEPLOYMENT_ENVIRONMENT: process.env.DEPLOYMENT_ENVIRONMENT || "docker-compose", HTTP_LOGGING: httpLogging(), ENABLE_AUDIT_LOG_IP_ADDR: process.env.ENABLE_AUDIT_LOG_IP_ADDR,
|
|
114
|
+
// Couch/search
|
|
115
|
+
SQL_LOGGING_ENABLE: process.env.SQL_LOGGING_ENABLE, SQL_MAX_ROWS: process.env.SQL_MAX_ROWS, SQL_MAX_RELATED_ROWS: process.env.MAX_RELATED_ROWS,
|
|
116
|
+
// smtp
|
|
117
|
+
SMTP_FALLBACK_ENABLED: process.env.SMTP_FALLBACK_ENABLED, SMTP_USER: process.env.SMTP_USER, SMTP_PASSWORD: process.env.SMTP_PASSWORD, SMTP_HOST: process.env.SMTP_HOST, SMTP_PORT: parseInt(process.env.SMTP_PORT || ""), SMTP_FROM_ADDRESS: process.env.SMTP_FROM_ADDRESS, DISABLE_JWT_WARNING: process.env.DISABLE_JWT_WARNING, BLACKLIST_IPS: process.env.BLACKLIST_IPS, SERVICE_TYPE: "unknown", PASSWORD_MIN_LENGTH: process.env.PASSWORD_MIN_LENGTH, PASSWORD_MAX_LENGTH: process.env.PASSWORD_MAX_LENGTH,
|
|
118
|
+
/**
|
|
119
|
+
* Enable to allow an admin user to login using a password.
|
|
120
|
+
* This can be useful to prevent lockout when configuring SSO.
|
|
121
|
+
* However, this should be turned OFF by default for security purposes.
|
|
122
|
+
*/
|
|
123
|
+
ENABLE_SSO_MAINTENANCE_MODE: selfHosted
|
|
124
|
+
? process.env.ENABLE_SSO_MAINTENANCE_MODE
|
|
125
|
+
: false }, getPackageJsonFields()), { DISABLE_PINO_LOGGER: process.env.DISABLE_PINO_LOGGER, OFFLINE_MODE: process.env.OFFLINE_MODE, SESSION_EXPIRY_SECONDS: process.env.SESSION_EXPIRY_SECONDS, _set(key, value) {
|
|
126
|
+
process.env[key] = value;
|
|
127
|
+
// @ts-ignore
|
|
128
|
+
environment[key] = value;
|
|
129
|
+
}, ROLLING_LOG_MAX_SIZE: process.env.ROLLING_LOG_MAX_SIZE || "10M", DISABLE_SCIM_CALLS: process.env.DISABLE_SCIM_CALLS, BB_ADMIN_USER_EMAIL: process.env.BB_ADMIN_USER_EMAIL, BB_ADMIN_USER_PASSWORD: process.env.BB_ADMIN_USER_PASSWORD, OPENAI_API_KEY: process.env.OPENAI_API_KEY, MIN_VERSION_WITHOUT_POWER_ROLE: process.env.MIN_VERSION_WITHOUT_POWER_ROLE || "3.0.0", DISABLE_CONTENT_SECURITY_POLICY: process.env.DISABLE_CONTENT_SECURITY_POLICY, BSON_BUFFER_SIZE: parseIntSafe(process.env.BSON_BUFFER_SIZE) });
|
|
130
|
+
function setEnv(newEnvVars) {
|
|
131
|
+
const oldEnv = (0, lodash_1.cloneDeep)(environment);
|
|
132
|
+
let key;
|
|
133
|
+
for (key in newEnvVars) {
|
|
134
|
+
environment._set(key, newEnvVars[key]);
|
|
135
|
+
}
|
|
136
|
+
return () => {
|
|
137
|
+
for (const [key, value] of Object.entries(oldEnv)) {
|
|
138
|
+
environment._set(key, value);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function withEnv(envVars, f) {
|
|
143
|
+
const cleanup = setEnv(envVars);
|
|
144
|
+
const result = f();
|
|
145
|
+
if (result instanceof Promise) {
|
|
146
|
+
return result.finally(cleanup);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
cleanup();
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.SECRETS = [
|
|
154
|
+
"API_ENCRYPTION_KEY",
|
|
155
|
+
"BB_ADMIN_USER_PASSWORD",
|
|
156
|
+
"COUCH_DB_PASSWORD",
|
|
157
|
+
"COUCH_DB_SQL_URL",
|
|
158
|
+
"COUCH_DB_URL",
|
|
159
|
+
"GOOGLE_CLIENT_SECRET",
|
|
160
|
+
"INTERNAL_API_KEY_FALLBACK",
|
|
161
|
+
"INTERNAL_API_KEY",
|
|
162
|
+
"JWT_SECRET",
|
|
163
|
+
"MINIO_ACCESS_KEY",
|
|
164
|
+
"MINIO_SECRET_KEY",
|
|
165
|
+
"OPENAI_API_KEY",
|
|
166
|
+
"REDIS_PASSWORD",
|
|
167
|
+
];
|
|
168
|
+
// clean up any environment variable edge cases
|
|
169
|
+
for (let [key, value] of Object.entries(environment)) {
|
|
170
|
+
// handle the edge case of "0" to disable an environment variable
|
|
171
|
+
if (value === "0") {
|
|
172
|
+
// @ts-ignore
|
|
173
|
+
environment[key] = 0;
|
|
174
|
+
}
|
|
175
|
+
// handle the edge case of "false" to disable an environment variable
|
|
176
|
+
if (value === "false") {
|
|
177
|
+
// @ts-ignore
|
|
178
|
+
environment[key] = 0;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.default = environment;
|
|
182
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/environment.ts"],"names":[],"mappings":"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"}
|