@budibase/backend-core 3.2.26 → 3.2.27
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/index.js +62 -23
- package/dist/index.js.map +4 -4
- package/dist/index.js.meta.json +1 -1
- package/dist/package.json +7 -7
- package/dist/plugins.js.map +2 -2
- package/dist/plugins.js.meta.json +1 -1
- package/dist/src/events/processors/types.d.ts +1 -1
- package/dist/src/events/publishers/index.d.ts +1 -0
- package/dist/src/events/publishers/rowAction.d.ts +6 -0
- package/dist/src/events/publishers/table.d.ts +2 -2
- package/dist/src/events/publishers/view.d.ts +17 -6
- package/dist/src/index.d.ts +11 -11
- package/dist/src/platform/platformDb.d.ts +1 -1
- package/dist/src/queue/queue.d.ts +1 -1
- package/dist/src/tenancy/db.d.ts +1 -1
- package/package.json +7 -7
- package/dist/jest.config.js +0 -25
- package/dist/jest.config.js.map +0 -1
- package/dist/src/accounts/accounts.js +0 -83
- package/dist/src/accounts/accounts.js.map +0 -1
- package/dist/src/accounts/api.js +0 -102
- package/dist/src/accounts/api.js.map +0 -1
- package/dist/src/accounts/index.js +0 -18
- package/dist/src/accounts/index.js.map +0 -1
- package/dist/src/auth/auth.js +0 -198
- package/dist/src/auth/auth.js.map +0 -1
- package/dist/src/auth/index.js +0 -18
- package/dist/src/auth/index.js.map +0 -1
- package/dist/src/blacklist/blacklist.js +0 -75
- package/dist/src/blacklist/blacklist.js.map +0 -1
- package/dist/src/blacklist/index.js +0 -18
- package/dist/src/blacklist/index.js.map +0 -1
- package/dist/src/cache/appMetadata.js +0 -96
- package/dist/src/cache/appMetadata.js.map +0 -1
- package/dist/src/cache/base/index.js +0 -189
- package/dist/src/cache/base/index.js.map +0 -1
- package/dist/src/cache/docWritethrough.js +0 -123
- package/dist/src/cache/docWritethrough.js.map +0 -1
- package/dist/src/cache/generic.js +0 -37
- package/dist/src/cache/generic.js.map +0 -1
- package/dist/src/cache/index.js +0 -48
- package/dist/src/cache/index.js.map +0 -1
- package/dist/src/cache/invite.js +0 -128
- package/dist/src/cache/invite.js.map +0 -1
- package/dist/src/cache/passwordReset.js +0 -92
- package/dist/src/cache/passwordReset.js.map +0 -1
- package/dist/src/cache/user.js +0 -183
- package/dist/src/cache/user.js.map +0 -1
- package/dist/src/cache/writethrough.js +0 -170
- package/dist/src/cache/writethrough.js.map +0 -1
- package/dist/src/configs/configs.js +0 -294
- package/dist/src/configs/configs.js.map +0 -1
- package/dist/src/configs/index.js +0 -18
- package/dist/src/configs/index.js.map +0 -1
- package/dist/src/constants/db.js +0 -75
- package/dist/src/constants/db.js.map +0 -1
- package/dist/src/constants/index.js +0 -19
- package/dist/src/constants/index.js.map +0 -1
- package/dist/src/constants/misc.js +0 -40
- package/dist/src/constants/misc.js.map +0 -1
- package/dist/src/context/Context.js +0 -14
- package/dist/src/context/Context.js.map +0 -1
- package/dist/src/context/identity.js +0 -81
- package/dist/src/context/identity.js.map +0 -1
- package/dist/src/context/index.js +0 -44
- package/dist/src/context/index.js.map +0 -1
- package/dist/src/context/mainContext.js +0 -446
- package/dist/src/context/mainContext.js.map +0 -1
- package/dist/src/context/types.js +0 -3
- package/dist/src/context/types.js.map +0 -1
- package/dist/src/db/Replication.js +0 -90
- package/dist/src/db/Replication.js.map +0 -1
- package/dist/src/db/couch/DatabaseImpl.js +0 -475
- package/dist/src/db/couch/DatabaseImpl.js.map +0 -1
- package/dist/src/db/couch/connections.js +0 -101
- package/dist/src/db/couch/connections.js.map +0 -1
- package/dist/src/db/couch/index.js +0 -26
- package/dist/src/db/couch/index.js.map +0 -1
- package/dist/src/db/couch/pouchDB.js +0 -108
- package/dist/src/db/couch/pouchDB.js.map +0 -1
- package/dist/src/db/couch/pouchDump.js +0 -2
- package/dist/src/db/couch/pouchDump.js.map +0 -1
- package/dist/src/db/couch/utils.js +0 -60
- package/dist/src/db/couch/utils.js.map +0 -1
- package/dist/src/db/db.js +0 -47
- package/dist/src/db/db.js.map +0 -1
- package/dist/src/db/errors.js +0 -21
- package/dist/src/db/errors.js.map +0 -1
- package/dist/src/db/index.js +0 -58
- package/dist/src/db/index.js.map +0 -1
- package/dist/src/db/instrumentation.js +0 -202
- package/dist/src/db/instrumentation.js.map +0 -1
- package/dist/src/db/lucene.js +0 -638
- package/dist/src/db/lucene.js.map +0 -1
- package/dist/src/db/searchIndexes/index.js +0 -18
- package/dist/src/db/searchIndexes/index.js.map +0 -1
- package/dist/src/db/searchIndexes/searchIndexes.js +0 -76
- package/dist/src/db/searchIndexes/searchIndexes.js.map +0 -1
- package/dist/src/db/utils.js +0 -212
- package/dist/src/db/utils.js.map +0 -1
- package/dist/src/db/views.js +0 -224
- package/dist/src/db/views.js.map +0 -1
- package/dist/src/docIds/conversions.js +0 -62
- package/dist/src/docIds/conversions.js.map +0 -1
- package/dist/src/docIds/ids.js +0 -125
- package/dist/src/docIds/ids.js.map +0 -1
- package/dist/src/docIds/index.js +0 -19
- package/dist/src/docIds/index.js.map +0 -1
- package/dist/src/docIds/newid.js +0 -8
- package/dist/src/docIds/newid.js.map +0 -1
- package/dist/src/docIds/params.js +0 -141
- package/dist/src/docIds/params.js.map +0 -1
- package/dist/src/docUpdates/index.js +0 -35
- package/dist/src/docUpdates/index.js.map +0 -1
- package/dist/src/environment.js +0 -182
- package/dist/src/environment.js.map +0 -1
- package/dist/src/errors/errors.js +0 -97
- package/dist/src/errors/errors.js.map +0 -1
- package/dist/src/errors/index.js +0 -18
- package/dist/src/errors/index.js.map +0 -1
- package/dist/src/events/analytics.js +0 -52
- package/dist/src/events/analytics.js.map +0 -1
- package/dist/src/events/asyncEvents/index.js +0 -19
- package/dist/src/events/asyncEvents/index.js.map +0 -1
- package/dist/src/events/asyncEvents/publisher.js +0 -26
- package/dist/src/events/asyncEvents/publisher.js.map +0 -1
- package/dist/src/events/asyncEvents/queue.js +0 -26
- package/dist/src/events/asyncEvents/queue.js.map +0 -1
- package/dist/src/events/backfill.js +0 -189
- package/dist/src/events/backfill.js.map +0 -1
- package/dist/src/events/documentId.js +0 -27
- package/dist/src/events/documentId.js.map +0 -1
- package/dist/src/events/events.js +0 -87
- package/dist/src/events/events.js.map +0 -1
- package/dist/src/events/identification.js +0 -299
- package/dist/src/events/identification.js.map +0 -1
- package/dist/src/events/index.js +0 -59
- package/dist/src/events/index.js.map +0 -1
- package/dist/src/events/processors/AnalyticsProcessor.js +0 -103
- package/dist/src/events/processors/AnalyticsProcessor.js.map +0 -1
- package/dist/src/events/processors/AuditLogsProcessor.js +0 -86
- package/dist/src/events/processors/AuditLogsProcessor.js.map +0 -1
- package/dist/src/events/processors/LoggingProcessor.js +0 -47
- package/dist/src/events/processors/LoggingProcessor.js.map +0 -1
- package/dist/src/events/processors/Processors.js +0 -52
- package/dist/src/events/processors/Processors.js.map +0 -1
- package/dist/src/events/processors/async/DocumentUpdateProcessor.js +0 -44
- package/dist/src/events/processors/async/DocumentUpdateProcessor.js.map +0 -1
- package/dist/src/events/processors/index.js +0 -23
- package/dist/src/events/processors/index.js.map +0 -1
- package/dist/src/events/processors/posthog/PosthogProcessor.js +0 -149
- package/dist/src/events/processors/posthog/PosthogProcessor.js.map +0 -1
- package/dist/src/events/processors/posthog/index.js +0 -8
- package/dist/src/events/processors/posthog/index.js.map +0 -1
- package/dist/src/events/processors/posthog/rateLimiting.js +0 -129
- package/dist/src/events/processors/posthog/rateLimiting.js.map +0 -1
- package/dist/src/events/processors/types.js +0 -3
- package/dist/src/events/processors/types.js.map +0 -1
- package/dist/src/events/publishers/account.js +0 -43
- package/dist/src/events/publishers/account.js.map +0 -1
- package/dist/src/events/publishers/ai.js +0 -30
- package/dist/src/events/publishers/ai.js.map +0 -1
- package/dist/src/events/publishers/app.js +0 -166
- package/dist/src/events/publishers/app.js.map +0 -1
- package/dist/src/events/publishers/auditLog.js +0 -34
- package/dist/src/events/publishers/auditLog.js.map +0 -1
- package/dist/src/events/publishers/auth.js +0 -80
- package/dist/src/events/publishers/auth.js.map +0 -1
- package/dist/src/events/publishers/automation.js +0 -117
- package/dist/src/events/publishers/automation.js.map +0 -1
- package/dist/src/events/publishers/backfill.js +0 -85
- package/dist/src/events/publishers/backfill.js.map +0 -1
- package/dist/src/events/publishers/backup.js +0 -41
- package/dist/src/events/publishers/backup.js.map +0 -1
- package/dist/src/events/publishers/datasource.js +0 -54
- package/dist/src/events/publishers/datasource.js.map +0 -1
- package/dist/src/events/publishers/email.js +0 -30
- package/dist/src/events/publishers/email.js.map +0 -1
- package/dist/src/events/publishers/environmentVariable.js +0 -44
- package/dist/src/events/publishers/environmentVariable.js.map +0 -1
- package/dist/src/events/publishers/group.js +0 -107
- package/dist/src/events/publishers/group.js.map +0 -1
- package/dist/src/events/publishers/index.js +0 -57
- package/dist/src/events/publishers/index.js.map +0 -1
- package/dist/src/events/publishers/installation.js +0 -52
- package/dist/src/events/publishers/installation.js.map +0 -1
- package/dist/src/events/publishers/layout.js +0 -34
- package/dist/src/events/publishers/layout.js.map +0 -1
- package/dist/src/events/publishers/license.js +0 -77
- package/dist/src/events/publishers/license.js.map +0 -1
- package/dist/src/events/publishers/org.js +0 -52
- package/dist/src/events/publishers/org.js.map +0 -1
- package/dist/src/events/publishers/plugin.js +0 -55
- package/dist/src/events/publishers/plugin.js.map +0 -1
- package/dist/src/events/publishers/query.js +0 -74
- package/dist/src/events/publishers/query.js.map +0 -1
- package/dist/src/events/publishers/role.js +0 -69
- package/dist/src/events/publishers/role.js.map +0 -1
- package/dist/src/events/publishers/rows.js +0 -32
- package/dist/src/events/publishers/rows.js.map +0 -1
- package/dist/src/events/publishers/screen.js +0 -46
- package/dist/src/events/publishers/screen.js.map +0 -1
- package/dist/src/events/publishers/serve.js +0 -47
- package/dist/src/events/publishers/serve.js.map +0 -1
- package/dist/src/events/publishers/table.js +0 -77
- package/dist/src/events/publishers/table.js.map +0 -1
- package/dist/src/events/publishers/user.js +0 -201
- package/dist/src/events/publishers/user.js.map +0 -1
- package/dist/src/events/publishers/view.js +0 -111
- package/dist/src/events/publishers/view.js.map +0 -1
- package/dist/src/features/features.js +0 -271
- package/dist/src/features/features.js.map +0 -1
- package/dist/src/features/index.js +0 -42
- package/dist/src/features/index.js.map +0 -1
- package/dist/src/features/tests/utils.js +0 -56
- package/dist/src/features/tests/utils.js.map +0 -1
- package/dist/src/helpers.js +0 -13
- package/dist/src/helpers.js.map +0 -1
- package/dist/src/index.js +0 -99
- package/dist/src/index.js.map +0 -1
- package/dist/src/installation.js +0 -159
- package/dist/src/installation.js.map +0 -1
- package/dist/src/logging/alerts.js +0 -23
- package/dist/src/logging/alerts.js.map +0 -1
- package/dist/src/logging/correlation/correlation.js +0 -18
- package/dist/src/logging/correlation/correlation.js.map +0 -1
- package/dist/src/logging/correlation/index.js +0 -18
- package/dist/src/logging/correlation/index.js.map +0 -1
- package/dist/src/logging/correlation/middleware.js +0 -17
- package/dist/src/logging/correlation/middleware.js.map +0 -1
- package/dist/src/logging/index.js +0 -45
- package/dist/src/logging/index.js.map +0 -1
- package/dist/src/logging/pino/logger.js +0 -234
- package/dist/src/logging/pino/logger.js.map +0 -1
- package/dist/src/logging/pino/middleware.js +0 -46
- package/dist/src/logging/pino/middleware.js.map +0 -1
- package/dist/src/logging/system.js +0 -110
- package/dist/src/logging/system.js.map +0 -1
- package/dist/src/middleware/adminOnly.js +0 -19
- package/dist/src/middleware/adminOnly.js.map +0 -1
- package/dist/src/middleware/auditLog.js +0 -18
- package/dist/src/middleware/auditLog.js.map +0 -1
- package/dist/src/middleware/authenticated.js +0 -254
- package/dist/src/middleware/authenticated.js.map +0 -1
- package/dist/src/middleware/builderOnly.js +0 -33
- package/dist/src/middleware/builderOnly.js.map +0 -1
- package/dist/src/middleware/builderOrAdmin.js +0 -33
- package/dist/src/middleware/builderOrAdmin.js.map +0 -1
- package/dist/src/middleware/contentSecurityPolicy.js +0 -124
- package/dist/src/middleware/contentSecurityPolicy.js.map +0 -1
- package/dist/src/middleware/csrf.js +0 -81
- package/dist/src/middleware/csrf.js.map +0 -1
- package/dist/src/middleware/errorHandling.js +0 -88
- package/dist/src/middleware/errorHandling.js.map +0 -1
- package/dist/src/middleware/index.js +0 -79
- package/dist/src/middleware/index.js.map +0 -1
- package/dist/src/middleware/internalApi.js +0 -30
- package/dist/src/middleware/internalApi.js.map +0 -1
- package/dist/src/middleware/ip.js +0 -23
- package/dist/src/middleware/ip.js.map +0 -1
- package/dist/src/middleware/joi-validator.js +0 -53
- package/dist/src/middleware/joi-validator.js.map +0 -1
- package/dist/src/middleware/matchers.js +0 -36
- package/dist/src/middleware/matchers.js.map +0 -1
- package/dist/src/middleware/passport/datasource/google.js +0 -107
- package/dist/src/middleware/passport/datasource/google.js.map +0 -1
- package/dist/src/middleware/passport/local.js +0 -91
- package/dist/src/middleware/passport/local.js.map +0 -1
- package/dist/src/middleware/passport/sso/google.js +0 -98
- package/dist/src/middleware/passport/sso/google.js.map +0 -1
- package/dist/src/middleware/passport/sso/oidc.js +0 -158
- package/dist/src/middleware/passport/sso/oidc.js.map +0 -1
- package/dist/src/middleware/passport/sso/sso.js +0 -150
- package/dist/src/middleware/passport/sso/sso.js.map +0 -1
- package/dist/src/middleware/passport/utils.js +0 -75
- package/dist/src/middleware/passport/utils.js.map +0 -1
- package/dist/src/middleware/querystringToBody.js +0 -29
- package/dist/src/middleware/querystringToBody.js.map +0 -1
- package/dist/src/middleware/tenancy.js +0 -37
- package/dist/src/middleware/tenancy.js.map +0 -1
- package/dist/src/migrations/definitions.js +0 -39
- package/dist/src/migrations/definitions.js.map +0 -1
- package/dist/src/migrations/index.js +0 -19
- package/dist/src/migrations/index.js.map +0 -1
- package/dist/src/migrations/migrations.js +0 -203
- package/dist/src/migrations/migrations.js.map +0 -1
- package/dist/src/objectStore/buckets/app.js +0 -95
- package/dist/src/objectStore/buckets/app.js.map +0 -1
- package/dist/src/objectStore/buckets/global.js +0 -68
- package/dist/src/objectStore/buckets/global.js.map +0 -1
- package/dist/src/objectStore/buckets/index.js +0 -20
- package/dist/src/objectStore/buckets/index.js.map +0 -1
- package/dist/src/objectStore/buckets/plugins.js +0 -104
- package/dist/src/objectStore/buckets/plugins.js.map +0 -1
- package/dist/src/objectStore/cloudfront.js +0 -73
- package/dist/src/objectStore/cloudfront.js.map +0 -1
- package/dist/src/objectStore/index.js +0 -20
- package/dist/src/objectStore/index.js.map +0 -1
- package/dist/src/objectStore/objectStore.js +0 -509
- package/dist/src/objectStore/objectStore.js.map +0 -1
- package/dist/src/objectStore/utils.js +0 -148
- package/dist/src/objectStore/utils.js.map +0 -1
- package/dist/src/platform/index.js +0 -43
- package/dist/src/platform/index.js.map +0 -1
- package/dist/src/platform/platformDb.js +0 -9
- package/dist/src/platform/platformDb.js.map +0 -1
- package/dist/src/platform/tenants.js +0 -149
- package/dist/src/platform/tenants.js.map +0 -1
- package/dist/src/platform/users.js +0 -118
- package/dist/src/platform/users.js.map +0 -1
- package/dist/src/plugin/index.js +0 -18
- package/dist/src/plugin/index.js.map +0 -1
- package/dist/src/plugin/utils.js +0 -158
- package/dist/src/plugin/utils.js.map +0 -1
- package/dist/src/queue/constants.js +0 -13
- package/dist/src/queue/constants.js.map +0 -1
- package/dist/src/queue/inMemoryQueue.js +0 -192
- package/dist/src/queue/inMemoryQueue.js.map +0 -1
- package/dist/src/queue/index.js +0 -19
- package/dist/src/queue/index.js.map +0 -1
- package/dist/src/queue/listeners.js +0 -199
- package/dist/src/queue/listeners.js.map +0 -1
- package/dist/src/queue/queue.js +0 -124
- package/dist/src/queue/queue.js.map +0 -1
- package/dist/src/redis/index.js +0 -47
- package/dist/src/redis/index.js.map +0 -1
- package/dist/src/redis/init.js +0 -184
- package/dist/src/redis/init.js.map +0 -1
- package/dist/src/redis/redis.js +0 -396
- package/dist/src/redis/redis.js.map +0 -1
- package/dist/src/redis/redlockImpl.js +0 -181
- package/dist/src/redis/redlockImpl.js.map +0 -1
- package/dist/src/redis/utils.js +0 -131
- package/dist/src/redis/utils.js.map +0 -1
- package/dist/src/security/auth.js +0 -26
- package/dist/src/security/auth.js.map +0 -1
- package/dist/src/security/encryption.js +0 -169
- package/dist/src/security/encryption.js.map +0 -1
- package/dist/src/security/index.js +0 -18
- package/dist/src/security/index.js.map +0 -1
- package/dist/src/security/permissions.js +0 -147
- package/dist/src/security/permissions.js.map +0 -1
- package/dist/src/security/roles.js +0 -566
- package/dist/src/security/roles.js.map +0 -1
- package/dist/src/security/secrets.js +0 -53
- package/dist/src/security/secrets.js.map +0 -1
- package/dist/src/security/sessions.js +0 -156
- package/dist/src/security/sessions.js.map +0 -1
- package/dist/src/sql/designDoc.js +0 -19
- package/dist/src/sql/designDoc.js.map +0 -1
- package/dist/src/sql/index.js +0 -47
- package/dist/src/sql/index.js.map +0 -1
- package/dist/src/sql/sql.js +0 -1536
- package/dist/src/sql/sql.js.map +0 -1
- package/dist/src/sql/sqlTable.js +0 -256
- package/dist/src/sql/sqlTable.js.map +0 -1
- package/dist/src/sql/utils.js +0 -179
- package/dist/src/sql/utils.js.map +0 -1
- package/dist/src/tenancy/db.js +0 -9
- package/dist/src/tenancy/db.js.map +0 -1
- package/dist/src/tenancy/index.js +0 -19
- package/dist/src/tenancy/index.js.map +0 -1
- package/dist/src/tenancy/tenancy.js +0 -125
- package/dist/src/tenancy/tenancy.js.map +0 -1
- package/dist/src/timers/index.js +0 -18
- package/dist/src/timers/index.js.map +0 -1
- package/dist/src/timers/timers.js +0 -25
- package/dist/src/timers/timers.js.map +0 -1
- package/dist/src/users/db.js +0 -489
- package/dist/src/users/db.js.map +0 -1
- package/dist/src/users/events.js +0 -179
- package/dist/src/users/events.js.map +0 -1
- package/dist/src/users/index.js +0 -23
- package/dist/src/users/index.js.map +0 -1
- package/dist/src/users/lookup.js +0 -126
- package/dist/src/users/lookup.js.map +0 -1
- package/dist/src/users/users.js +0 -376
- package/dist/src/users/users.js.map +0 -1
- package/dist/src/users/utils.js +0 -127
- package/dist/src/users/utils.js.map +0 -1
- package/dist/src/utils/Duration.js +0 -54
- package/dist/src/utils/Duration.js.map +0 -1
- package/dist/src/utils/hashing.js +0 -46
- package/dist/src/utils/hashing.js.map +0 -1
- package/dist/src/utils/index.js +0 -21
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/stringUtils.js +0 -8
- package/dist/src/utils/stringUtils.js.map +0 -1
- package/dist/src/utils/utils.js +0 -267
- package/dist/src/utils/utils.js.map +0 -1
- package/dist/tests/core/logging.js +0 -33
- package/dist/tests/core/logging.js.map +0 -1
- package/dist/tests/core/utilities/index.js +0 -48
- package/dist/tests/core/utilities/index.js.map +0 -1
- package/dist/tests/core/utilities/jestUtils.js +0 -21
- package/dist/tests/core/utilities/jestUtils.js.map +0 -1
- package/dist/tests/core/utilities/mocks/alerts.js +0 -40
- package/dist/tests/core/utilities/mocks/alerts.js.map +0 -1
- package/dist/tests/core/utilities/mocks/date.js +0 -6
- package/dist/tests/core/utilities/mocks/date.js.map +0 -1
- package/dist/tests/core/utilities/mocks/events.js +0 -154
- package/dist/tests/core/utilities/mocks/events.js.map +0 -1
- package/dist/tests/core/utilities/mocks/index.js +0 -47
- package/dist/tests/core/utilities/mocks/index.js.map +0 -1
- package/dist/tests/core/utilities/mocks/licenses.js +0 -109
- package/dist/tests/core/utilities/mocks/licenses.js.map +0 -1
- package/dist/tests/core/utilities/queue.js +0 -21
- package/dist/tests/core/utilities/queue.js.map +0 -1
- package/dist/tests/core/utilities/structures/Chance.js +0 -21
- package/dist/tests/core/utilities/structures/Chance.js.map +0 -1
- package/dist/tests/core/utilities/structures/accounts.js +0 -43
- package/dist/tests/core/utilities/structures/accounts.js.map +0 -1
- package/dist/tests/core/utilities/structures/apps.js +0 -23
- package/dist/tests/core/utilities/structures/apps.js.map +0 -1
- package/dist/tests/core/utilities/structures/common.js +0 -11
- package/dist/tests/core/utilities/structures/common.js.map +0 -1
- package/dist/tests/core/utilities/structures/db.js +0 -15
- package/dist/tests/core/utilities/structures/db.js.map +0 -1
- package/dist/tests/core/utilities/structures/documents/index.js +0 -18
- package/dist/tests/core/utilities/structures/documents/index.js.map +0 -1
- package/dist/tests/core/utilities/structures/documents/platform/index.js +0 -38
- package/dist/tests/core/utilities/structures/documents/platform/index.js.map +0 -1
- package/dist/tests/core/utilities/structures/documents/platform/installation.js +0 -47
- package/dist/tests/core/utilities/structures/documents/platform/installation.js.map +0 -1
- package/dist/tests/core/utilities/structures/generator.js +0 -9
- package/dist/tests/core/utilities/structures/generator.js.map +0 -1
- package/dist/tests/core/utilities/structures/index.js +0 -56
- package/dist/tests/core/utilities/structures/index.js.map +0 -1
- package/dist/tests/core/utilities/structures/koa.js +0 -10
- package/dist/tests/core/utilities/structures/koa.js.map +0 -1
- package/dist/tests/core/utilities/structures/licenses.js +0 -157
- package/dist/tests/core/utilities/structures/licenses.js.map +0 -1
- package/dist/tests/core/utilities/structures/plugins.js +0 -22
- package/dist/tests/core/utilities/structures/plugins.js.map +0 -1
- package/dist/tests/core/utilities/structures/quotas.js +0 -73
- package/dist/tests/core/utilities/structures/quotas.js.map +0 -1
- package/dist/tests/core/utilities/structures/scim.js +0 -62
- package/dist/tests/core/utilities/structures/scim.js.map +0 -1
- package/dist/tests/core/utilities/structures/sso.js +0 -140
- package/dist/tests/core/utilities/structures/sso.js.map +0 -1
- package/dist/tests/core/utilities/structures/tenants.js +0 -8
- package/dist/tests/core/utilities/structures/tenants.js.map +0 -1
- package/dist/tests/core/utilities/structures/userGroups.js +0 -12
- package/dist/tests/core/utilities/structures/userGroups.js.map +0 -1
- package/dist/tests/core/utilities/structures/users.js +0 -53
- package/dist/tests/core/utilities/structures/users.js.map +0 -1
- package/dist/tests/core/utilities/testContainerUtils.js +0 -161
- package/dist/tests/core/utilities/testContainerUtils.js.map +0 -1
- package/dist/tests/core/utilities/utils/index.js +0 -39
- package/dist/tests/core/utilities/utils/index.js.map +0 -1
- package/dist/tests/core/utilities/utils/queue.js +0 -37
- package/dist/tests/core/utilities/utils/queue.js.map +0 -1
- package/dist/tests/core/utilities/utils/time.js +0 -7
- package/dist/tests/core/utilities/utils/time.js.map +0 -1
- package/dist/tests/extra/DBTestConfiguration.js +0 -65
- package/dist/tests/extra/DBTestConfiguration.js.map +0 -1
- package/dist/tests/extra/index.js +0 -43
- package/dist/tests/extra/index.js.map +0 -1
- package/dist/tests/extra/testEnv.js +0 -136
- package/dist/tests/extra/testEnv.js.map +0 -1
- package/dist/tests/index.js +0 -19
- package/dist/tests/index.js.map +0 -1
- package/dist/tests/jestEnv.js +0 -12
- package/dist/tests/jestEnv.js.map +0 -1
- package/dist/tests/jestSetup.js +0 -33
- package/dist/tests/jestSetup.js.map +0 -1
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTenantIDFromCtx = exports.isUserInAppTenant = void 0;
|
|
4
|
-
exports.addTenantToUrl = addTenantToUrl;
|
|
5
|
-
const context_1 = require("../context");
|
|
6
|
-
const types_1 = require("@budibase/types");
|
|
7
|
-
const constants_1 = require("../constants");
|
|
8
|
-
function addTenantToUrl(url) {
|
|
9
|
-
const tenantId = (0, context_1.getTenantId)();
|
|
10
|
-
if ((0, context_1.isMultiTenant)()) {
|
|
11
|
-
const char = url.indexOf("?") === -1 ? "?" : "&";
|
|
12
|
-
url += `${char}tenantId=${tenantId}`;
|
|
13
|
-
}
|
|
14
|
-
return url;
|
|
15
|
-
}
|
|
16
|
-
const isUserInAppTenant = (appId, user) => {
|
|
17
|
-
let userTenantId;
|
|
18
|
-
if (user) {
|
|
19
|
-
userTenantId = user.tenantId || context_1.DEFAULT_TENANT_ID;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
userTenantId = (0, context_1.getTenantId)();
|
|
23
|
-
}
|
|
24
|
-
const tenantId = (0, context_1.getTenantIDFromAppID)(appId) || context_1.DEFAULT_TENANT_ID;
|
|
25
|
-
return tenantId === userTenantId;
|
|
26
|
-
};
|
|
27
|
-
exports.isUserInAppTenant = isUserInAppTenant;
|
|
28
|
-
const ALL_STRATEGIES = Object.values(types_1.TenantResolutionStrategy);
|
|
29
|
-
const getTenantIDFromCtx = (ctx, opts) => {
|
|
30
|
-
var _a;
|
|
31
|
-
// exit early if not multi-tenant
|
|
32
|
-
if (!(0, context_1.isMultiTenant)()) {
|
|
33
|
-
return context_1.DEFAULT_TENANT_ID;
|
|
34
|
-
}
|
|
35
|
-
// opt defaults
|
|
36
|
-
if (opts.allowNoTenant === undefined) {
|
|
37
|
-
opts.allowNoTenant = false;
|
|
38
|
-
}
|
|
39
|
-
if (!opts.includeStrategies) {
|
|
40
|
-
opts.includeStrategies = ALL_STRATEGIES;
|
|
41
|
-
}
|
|
42
|
-
if (!opts.excludeStrategies) {
|
|
43
|
-
opts.excludeStrategies = [];
|
|
44
|
-
}
|
|
45
|
-
const isAllowed = (strategy) => {
|
|
46
|
-
var _a, _b;
|
|
47
|
-
// excluded takes precedence
|
|
48
|
-
if ((_a = opts.excludeStrategies) === null || _a === void 0 ? void 0 : _a.includes(strategy)) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
if ((_b = opts.includeStrategies) === null || _b === void 0 ? void 0 : _b.includes(strategy)) {
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
// always use user first
|
|
56
|
-
if (isAllowed(types_1.TenantResolutionStrategy.USER)) {
|
|
57
|
-
const userTenantId = (_a = ctx.user) === null || _a === void 0 ? void 0 : _a.tenantId;
|
|
58
|
-
if (userTenantId) {
|
|
59
|
-
return userTenantId;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// header
|
|
63
|
-
if (isAllowed(types_1.TenantResolutionStrategy.HEADER)) {
|
|
64
|
-
const headerTenantId = ctx.request.headers[constants_1.Header.TENANT_ID];
|
|
65
|
-
if (headerTenantId) {
|
|
66
|
-
return headerTenantId;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// query param
|
|
70
|
-
if (isAllowed(types_1.TenantResolutionStrategy.QUERY)) {
|
|
71
|
-
const queryTenantId = ctx.request.query.tenantId;
|
|
72
|
-
if (queryTenantId) {
|
|
73
|
-
return queryTenantId;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// subdomain
|
|
77
|
-
if (isAllowed(types_1.TenantResolutionStrategy.SUBDOMAIN)) {
|
|
78
|
-
// e.g. budibase.app or local.com:10000
|
|
79
|
-
let platformHost;
|
|
80
|
-
try {
|
|
81
|
-
platformHost = new URL((0, context_1.getPlatformURL)()).host.split(":")[0];
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
// if invalid URL, just don't try to process subdomain
|
|
85
|
-
if (err.code !== "ERR_INVALID_URL") {
|
|
86
|
-
throw err;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// e.g. tenant.budibase.app or tenant.local.com
|
|
90
|
-
const requestHost = ctx.host;
|
|
91
|
-
// parse the tenant id from the difference
|
|
92
|
-
if (platformHost && requestHost.includes(platformHost)) {
|
|
93
|
-
const tenantId = requestHost.substring(0, requestHost.indexOf(`.${platformHost}`));
|
|
94
|
-
if (tenantId) {
|
|
95
|
-
return tenantId;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// path
|
|
100
|
-
if (isAllowed(types_1.TenantResolutionStrategy.PATH)) {
|
|
101
|
-
// params - have to parse manually due to koa-router not run yet
|
|
102
|
-
const match = ctx.matched.find((m) => !!m.paramNames.find((p) => p.name === "tenantId"));
|
|
103
|
-
// get the raw path url - without any query params
|
|
104
|
-
const ctxUrl = ctx.originalUrl;
|
|
105
|
-
let url;
|
|
106
|
-
if (ctxUrl.includes("?")) {
|
|
107
|
-
url = ctxUrl.split("?")[0];
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
url = ctxUrl;
|
|
111
|
-
}
|
|
112
|
-
if (match) {
|
|
113
|
-
const params = match.params(url, match.captures(url), {});
|
|
114
|
-
if (params.tenantId) {
|
|
115
|
-
return params.tenantId;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (!opts.allowNoTenant) {
|
|
120
|
-
ctx.throw(403, "Tenant id not set");
|
|
121
|
-
}
|
|
122
|
-
return undefined;
|
|
123
|
-
};
|
|
124
|
-
exports.getTenantIDFromCtx = getTenantIDFromCtx;
|
|
125
|
-
//# sourceMappingURL=tenancy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tenancy.js","sourceRoot":"","sources":["../../../src/tenancy/tenancy.ts"],"names":[],"mappings":"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"}
|
package/dist/src/timers/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
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("./timers"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/timers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.set = set;
|
|
4
|
-
exports.clear = clear;
|
|
5
|
-
exports.cleanup = cleanup;
|
|
6
|
-
let intervals = [];
|
|
7
|
-
function set(callback, period) {
|
|
8
|
-
const interval = setInterval(callback, period);
|
|
9
|
-
intervals.push(interval);
|
|
10
|
-
return interval;
|
|
11
|
-
}
|
|
12
|
-
function clear(interval) {
|
|
13
|
-
const idx = intervals.indexOf(interval);
|
|
14
|
-
if (idx !== -1) {
|
|
15
|
-
intervals.splice(idx, 1);
|
|
16
|
-
}
|
|
17
|
-
clearInterval(interval);
|
|
18
|
-
}
|
|
19
|
-
function cleanup() {
|
|
20
|
-
for (let interval of intervals) {
|
|
21
|
-
clearInterval(interval);
|
|
22
|
-
}
|
|
23
|
-
intervals = [];
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=timers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/timers/timers.ts"],"names":[],"mappings":";;AAEA,kBAIC;AAED,sBAMC;AAED,0BAKC;AArBD,IAAI,SAAS,GAAqB,EAAE,CAAA;AAEpC,SAAgB,GAAG,CAAC,QAAmB,EAAE,MAAc;IACrD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC9C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAgB,KAAK,CAAC,QAAwB;IAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAC1B,CAAC;IACD,aAAa,CAAC,QAAQ,CAAC,CAAA;AACzB,CAAC;AAED,SAAgB,OAAO;IACrB,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,aAAa,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;IACD,SAAS,GAAG,EAAE,CAAA;AAChB,CAAC"}
|
package/dist/src/users/db.js
DELETED
|
@@ -1,489 +0,0 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
|
-
};
|
|
47
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.UserDB = void 0;
|
|
49
|
-
const environment_1 = __importDefault(require("../environment"));
|
|
50
|
-
const eventHelpers = __importStar(require("./events"));
|
|
51
|
-
const accountSdk = __importStar(require("../accounts"));
|
|
52
|
-
const cache = __importStar(require("../cache"));
|
|
53
|
-
const context_1 = require("../context");
|
|
54
|
-
const dbUtils = __importStar(require("../db"));
|
|
55
|
-
const errors_1 = require("../errors");
|
|
56
|
-
const platform = __importStar(require("../platform"));
|
|
57
|
-
const sessions = __importStar(require("../security/sessions"));
|
|
58
|
-
const usersCore = __importStar(require("./users"));
|
|
59
|
-
const types_1 = require("@budibase/types");
|
|
60
|
-
const utils_1 = require("./utils");
|
|
61
|
-
const lookup_1 = require("./lookup");
|
|
62
|
-
const utils_2 = require("../utils");
|
|
63
|
-
const security_1 = require("../security");
|
|
64
|
-
const bulkDeleteProcessing = (dbUser) => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
-
const userId = dbUser._id;
|
|
66
|
-
yield platform.users.removeUser(dbUser);
|
|
67
|
-
yield eventHelpers.handleDeleteEvents(dbUser);
|
|
68
|
-
yield cache.user.invalidateUser(userId);
|
|
69
|
-
yield sessions.invalidateSessions(userId, { reason: "bulk-deletion" });
|
|
70
|
-
});
|
|
71
|
-
class UserDB {
|
|
72
|
-
static init(quotaFns, groupFns, featureFns) {
|
|
73
|
-
UserDB.quotas = quotaFns;
|
|
74
|
-
UserDB.groups = groupFns;
|
|
75
|
-
UserDB.features = featureFns;
|
|
76
|
-
}
|
|
77
|
-
static isPreventPasswordActions(user, account) {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
// when in maintenance mode we allow sso users with the admin role
|
|
80
|
-
// to perform any password action - this prevents lockout
|
|
81
|
-
if (environment_1.default.ENABLE_SSO_MAINTENANCE_MODE && (0, utils_1.isAdmin)(user)) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
// SSO is enforced for all users
|
|
85
|
-
if (yield UserDB.features.isSSOEnforced()) {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
// Check local sso
|
|
89
|
-
if ((0, types_1.isSSOUser)(user)) {
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
// Check account sso
|
|
93
|
-
if (!account) {
|
|
94
|
-
account = yield accountSdk.getAccountByTenantId((0, context_1.getTenantId)());
|
|
95
|
-
}
|
|
96
|
-
return !!(account && account.email === user.email && (0, types_1.isSSOAccount)(account));
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
static buildUser(user_1) {
|
|
100
|
-
return __awaiter(this, arguments, void 0, function* (user, opts = {
|
|
101
|
-
hashPassword: true,
|
|
102
|
-
requirePassword: true,
|
|
103
|
-
}, tenantId, dbUser, account) {
|
|
104
|
-
let { password, _id } = user;
|
|
105
|
-
// don't require a password if the db user doesn't already have one
|
|
106
|
-
if (dbUser && !dbUser.password) {
|
|
107
|
-
opts.requirePassword = false;
|
|
108
|
-
}
|
|
109
|
-
let hashedPassword;
|
|
110
|
-
if (password) {
|
|
111
|
-
if (yield UserDB.isPreventPasswordActions(user, account)) {
|
|
112
|
-
throw new errors_1.HTTPError("Password change is disabled for this user", 400);
|
|
113
|
-
}
|
|
114
|
-
if (!opts.skipPasswordValidation) {
|
|
115
|
-
const passwordValidation = (0, security_1.validatePassword)(password);
|
|
116
|
-
if (!passwordValidation.valid) {
|
|
117
|
-
throw new errors_1.HTTPError(passwordValidation.error, 400);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
hashedPassword = opts.hashPassword ? yield (0, utils_2.hash)(password) : password;
|
|
121
|
-
}
|
|
122
|
-
else if (dbUser) {
|
|
123
|
-
hashedPassword = dbUser.password;
|
|
124
|
-
}
|
|
125
|
-
// passwords are never required if sso is enforced
|
|
126
|
-
const requirePasswords = opts.requirePassword && !(yield UserDB.features.isSSOEnforced());
|
|
127
|
-
if (!hashedPassword && requirePasswords) {
|
|
128
|
-
throw "Password must be specified.";
|
|
129
|
-
}
|
|
130
|
-
_id = _id || dbUtils.generateGlobalUserID();
|
|
131
|
-
const fullUser = Object.assign(Object.assign(Object.assign({ createdAt: Date.now() }, dbUser), user), { _id, password: hashedPassword, tenantId });
|
|
132
|
-
// make sure the roles object is always present
|
|
133
|
-
if (!fullUser.roles) {
|
|
134
|
-
fullUser.roles = {};
|
|
135
|
-
}
|
|
136
|
-
// add the active status to a user if it's not provided
|
|
137
|
-
if (fullUser.status == null) {
|
|
138
|
-
fullUser.status = types_1.UserStatus.ACTIVE;
|
|
139
|
-
}
|
|
140
|
-
return fullUser;
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
static allUsers() {
|
|
144
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
-
const db = (0, context_1.getGlobalDB)();
|
|
146
|
-
const response = yield db.allDocs(dbUtils.getGlobalUserParams(null, {
|
|
147
|
-
include_docs: true,
|
|
148
|
-
}));
|
|
149
|
-
return response.rows.map(row => row.doc);
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
static countUsersByApp(appId) {
|
|
153
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
-
let response = yield usersCore.searchGlobalUsersByApp(appId, {});
|
|
155
|
-
return {
|
|
156
|
-
userCount: response.length,
|
|
157
|
-
};
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
static getUsersByAppAccess(opts) {
|
|
161
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
-
let response = yield usersCore.searchGlobalUsersByAppAccess(opts.appId, { limit: opts.limit || 50 });
|
|
163
|
-
return response;
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
static getUserByEmail(email) {
|
|
167
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
-
return usersCore.getGlobalUserByEmail(email);
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Gets a user by ID from the global database, based on the current tenancy.
|
|
173
|
-
*/
|
|
174
|
-
static getUser(userId) {
|
|
175
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
176
|
-
const user = yield usersCore.getById(userId);
|
|
177
|
-
if (user) {
|
|
178
|
-
delete user.password;
|
|
179
|
-
}
|
|
180
|
-
return user;
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
static bulkGet(userIds) {
|
|
184
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
-
return yield usersCore.bulkGetGlobalUsersById(userIds);
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
static bulkUpdate(users) {
|
|
189
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
190
|
-
return yield usersCore.bulkUpdateGlobalUsers(users);
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
static save(user_1) {
|
|
194
|
-
return __awaiter(this, arguments, void 0, function* (user, opts = {}) {
|
|
195
|
-
// default booleans to true
|
|
196
|
-
if (opts.hashPassword == null) {
|
|
197
|
-
opts.hashPassword = true;
|
|
198
|
-
}
|
|
199
|
-
if (opts.requirePassword == null) {
|
|
200
|
-
opts.requirePassword = true;
|
|
201
|
-
}
|
|
202
|
-
const tenantId = (0, context_1.getTenantId)();
|
|
203
|
-
const db = (0, context_1.getGlobalDB)();
|
|
204
|
-
const { email, _id, userGroups = [], roles } = user;
|
|
205
|
-
if (!email && !_id) {
|
|
206
|
-
throw new Error("_id or email is required");
|
|
207
|
-
}
|
|
208
|
-
let dbUser;
|
|
209
|
-
if (_id) {
|
|
210
|
-
// try to get existing user from db
|
|
211
|
-
try {
|
|
212
|
-
dbUser = yield usersCore.getById(_id);
|
|
213
|
-
if (email && dbUser.email !== email && !opts.allowChangingEmail) {
|
|
214
|
-
throw new Error("Email address cannot be changed");
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
catch (e) {
|
|
218
|
-
if (e.status === 404) {
|
|
219
|
-
// do nothing, save this new user with the id specified - required for SSO auth
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
throw e;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
if (!dbUser && email) {
|
|
227
|
-
// no id was specified - load from email instead
|
|
228
|
-
dbUser = yield usersCore.getGlobalUserByEmail(email);
|
|
229
|
-
if (dbUser && dbUser._id !== _id) {
|
|
230
|
-
throw new errors_1.EmailUnavailableError(email);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
const change = dbUser ? 0 : 1; // no change if there is existing user
|
|
234
|
-
const creatorsChange = (yield (0, utils_1.isCreator)(dbUser)) !== (yield (0, utils_1.isCreator)(user)) ? 1 : 0;
|
|
235
|
-
return UserDB.quotas.addUsers(change, creatorsChange, () => __awaiter(this, void 0, void 0, function* () {
|
|
236
|
-
yield (0, utils_1.validateUniqueUser)(email, tenantId);
|
|
237
|
-
let builtUser = yield UserDB.buildUser(user, opts, tenantId, dbUser);
|
|
238
|
-
// don't allow a user to update its own roles/perms
|
|
239
|
-
if (opts.currentUserId && opts.currentUserId === (dbUser === null || dbUser === void 0 ? void 0 : dbUser._id)) {
|
|
240
|
-
builtUser = usersCore.cleanseUserObject(builtUser, dbUser);
|
|
241
|
-
}
|
|
242
|
-
if (!dbUser && (roles === null || roles === void 0 ? void 0 : roles.length)) {
|
|
243
|
-
builtUser.roles = Object.assign({}, roles);
|
|
244
|
-
}
|
|
245
|
-
// make sure we set the _id field for a new user
|
|
246
|
-
// Also if this is a new user, associate groups with them
|
|
247
|
-
const groupPromises = [];
|
|
248
|
-
if (!_id) {
|
|
249
|
-
if (userGroups.length > 0) {
|
|
250
|
-
for (let groupId of userGroups) {
|
|
251
|
-
groupPromises.push(UserDB.groups.addUsers(groupId, [builtUser._id]));
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
try {
|
|
256
|
-
// save the user to db
|
|
257
|
-
let response = yield db.put(builtUser);
|
|
258
|
-
builtUser._rev = response.rev;
|
|
259
|
-
yield eventHelpers.handleSaveEvents(builtUser, dbUser);
|
|
260
|
-
if (dbUser && builtUser.email !== dbUser.email) {
|
|
261
|
-
// Remove the plaform email reference if the email changed
|
|
262
|
-
yield platform.users.removeUser({ email: dbUser.email });
|
|
263
|
-
}
|
|
264
|
-
yield platform.users.addUser(tenantId, builtUser._id, builtUser.email, builtUser.ssoId);
|
|
265
|
-
yield cache.user.invalidateUser(response.id);
|
|
266
|
-
yield Promise.all(groupPromises);
|
|
267
|
-
// finally returned the saved user from the db
|
|
268
|
-
return db.get(builtUser._id);
|
|
269
|
-
}
|
|
270
|
-
catch (err) {
|
|
271
|
-
if (err.status === 409) {
|
|
272
|
-
throw "User exists already";
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
throw err;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}));
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
static bulkCreate(newUsersRequested, groups) {
|
|
282
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
283
|
-
const tenantId = (0, context_1.getTenantId)();
|
|
284
|
-
let usersToSave = [];
|
|
285
|
-
let newUsers = [];
|
|
286
|
-
let newCreators = [];
|
|
287
|
-
const emails = newUsersRequested.map((user) => user.email);
|
|
288
|
-
const existingEmails = yield (0, lookup_1.searchExistingEmails)(emails);
|
|
289
|
-
const unsuccessful = [];
|
|
290
|
-
for (const newUser of newUsersRequested) {
|
|
291
|
-
if (newUsers.find((x) => x.email.toLowerCase() === newUser.email.toLowerCase()) ||
|
|
292
|
-
existingEmails.includes(newUser.email.toLowerCase())) {
|
|
293
|
-
unsuccessful.push({
|
|
294
|
-
email: newUser.email,
|
|
295
|
-
reason: `Unavailable`,
|
|
296
|
-
});
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
newUser.userGroups = groups || [];
|
|
300
|
-
newUsers.push(newUser);
|
|
301
|
-
if (yield (0, utils_1.isCreator)(newUser)) {
|
|
302
|
-
newCreators.push(newUser);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
const account = yield accountSdk.getAccountByTenantId(tenantId);
|
|
306
|
-
return UserDB.quotas.addUsers(newUsers.length, newCreators.length, () => __awaiter(this, void 0, void 0, function* () {
|
|
307
|
-
// create the promises array that will be called by bulkDocs
|
|
308
|
-
newUsers.forEach((user) => {
|
|
309
|
-
usersToSave.push(UserDB.buildUser(user, {
|
|
310
|
-
hashPassword: true,
|
|
311
|
-
requirePassword: user.requirePassword,
|
|
312
|
-
}, tenantId, undefined, // no dbUser
|
|
313
|
-
account));
|
|
314
|
-
});
|
|
315
|
-
const usersToBulkSave = yield Promise.all(usersToSave);
|
|
316
|
-
yield usersCore.bulkUpdateGlobalUsers(usersToBulkSave);
|
|
317
|
-
// Post-processing of bulk added users, e.g. events and cache operations
|
|
318
|
-
for (const user of usersToBulkSave) {
|
|
319
|
-
// TODO: Refactor to bulk insert users into the info db
|
|
320
|
-
// instead of relying on looping tenant creation
|
|
321
|
-
yield platform.users.addUser(tenantId, user._id, user.email);
|
|
322
|
-
yield eventHelpers.handleSaveEvents(user, undefined);
|
|
323
|
-
}
|
|
324
|
-
const saved = usersToBulkSave.map(user => {
|
|
325
|
-
return {
|
|
326
|
-
_id: user._id,
|
|
327
|
-
email: user.email,
|
|
328
|
-
};
|
|
329
|
-
});
|
|
330
|
-
// now update the groups
|
|
331
|
-
if (Array.isArray(saved) && groups) {
|
|
332
|
-
const groupPromises = [];
|
|
333
|
-
const createdUserIds = saved.map(user => user._id);
|
|
334
|
-
for (let groupId of groups) {
|
|
335
|
-
groupPromises.push(UserDB.groups.addUsers(groupId, createdUserIds));
|
|
336
|
-
}
|
|
337
|
-
yield Promise.all(groupPromises);
|
|
338
|
-
}
|
|
339
|
-
return {
|
|
340
|
-
successful: saved,
|
|
341
|
-
unsuccessful,
|
|
342
|
-
};
|
|
343
|
-
}));
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
static bulkDelete(users) {
|
|
347
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
348
|
-
const db = (0, context_1.getGlobalDB)();
|
|
349
|
-
const response = {
|
|
350
|
-
successful: [],
|
|
351
|
-
unsuccessful: [],
|
|
352
|
-
};
|
|
353
|
-
// remove the account holder from the delete request if present
|
|
354
|
-
const accountHolder = yield (0, utils_1.getAccountHolderFromUsers)(users);
|
|
355
|
-
if (accountHolder) {
|
|
356
|
-
users = users.filter(u => u.userId !== accountHolder.userId);
|
|
357
|
-
// mark user as unsuccessful
|
|
358
|
-
response.unsuccessful.push({
|
|
359
|
-
_id: accountHolder.userId,
|
|
360
|
-
email: accountHolder.email,
|
|
361
|
-
reason: "Account holder cannot be deleted",
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
// Get users and delete
|
|
365
|
-
const allDocsResponse = yield db.allDocs({
|
|
366
|
-
include_docs: true,
|
|
367
|
-
keys: users.map(u => u.userId),
|
|
368
|
-
});
|
|
369
|
-
const usersToDelete = allDocsResponse.rows.map(user => {
|
|
370
|
-
return user.doc;
|
|
371
|
-
});
|
|
372
|
-
// Delete from DB
|
|
373
|
-
const toDelete = usersToDelete.map(user => (Object.assign(Object.assign({}, user), { _deleted: true })));
|
|
374
|
-
const dbResponse = yield usersCore.bulkUpdateGlobalUsers(toDelete);
|
|
375
|
-
const creatorsEval = yield Promise.all(usersToDelete.map(utils_1.isCreator));
|
|
376
|
-
const creatorsToDeleteCount = creatorsEval.filter(creator => !!creator).length;
|
|
377
|
-
const ssoUsersToDelete = [];
|
|
378
|
-
for (let user of usersToDelete) {
|
|
379
|
-
const platformUser = (yield (0, lookup_1.getFirstPlatformUser)(user._id));
|
|
380
|
-
const ssoId = platformUser.ssoId;
|
|
381
|
-
if (ssoId) {
|
|
382
|
-
// Need to get the _rev of the SSO user doc to delete it. The view also returns docs that have the ssoId property, so we need to ignore those.
|
|
383
|
-
const ssoUsers = (yield (0, lookup_1.getPlatformUsers)(ssoId));
|
|
384
|
-
ssoUsers
|
|
385
|
-
.filter(user => user.ssoId == null)
|
|
386
|
-
.forEach(user => {
|
|
387
|
-
ssoUsersToDelete.push(Object.assign(Object.assign({}, user), { _deleted: true }));
|
|
388
|
-
});
|
|
389
|
-
}
|
|
390
|
-
yield bulkDeleteProcessing(user);
|
|
391
|
-
}
|
|
392
|
-
// Delete any associated SSO user docs
|
|
393
|
-
yield platform.getPlatformDB().bulkDocs(ssoUsersToDelete);
|
|
394
|
-
yield UserDB.quotas.removeUsers(toDelete.length, creatorsToDeleteCount);
|
|
395
|
-
// Build Response
|
|
396
|
-
// index users by id
|
|
397
|
-
const userIndex = {};
|
|
398
|
-
usersToDelete.reduce((prev, current) => {
|
|
399
|
-
prev[current._id] = current;
|
|
400
|
-
return prev;
|
|
401
|
-
}, userIndex);
|
|
402
|
-
// add the successful and unsuccessful users to response
|
|
403
|
-
dbResponse.forEach(item => {
|
|
404
|
-
const email = userIndex[item.id].email;
|
|
405
|
-
if (item.ok) {
|
|
406
|
-
response.successful.push({ _id: item.id, email });
|
|
407
|
-
}
|
|
408
|
-
else {
|
|
409
|
-
response.unsuccessful.push({
|
|
410
|
-
_id: item.id,
|
|
411
|
-
email,
|
|
412
|
-
reason: "Database error",
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
|
-
});
|
|
416
|
-
return response;
|
|
417
|
-
});
|
|
418
|
-
}
|
|
419
|
-
static destroy(id) {
|
|
420
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
421
|
-
const db = (0, context_1.getGlobalDB)();
|
|
422
|
-
const dbUser = (yield db.get(id));
|
|
423
|
-
const userId = dbUser._id;
|
|
424
|
-
if (!environment_1.default.SELF_HOSTED && !environment_1.default.DISABLE_ACCOUNT_PORTAL) {
|
|
425
|
-
// root account holder can't be deleted from inside budibase
|
|
426
|
-
const email = dbUser.email;
|
|
427
|
-
const account = yield accountSdk.getAccount(email);
|
|
428
|
-
if (account) {
|
|
429
|
-
if (dbUser.userId === (0, context_1.getIdentity)()._id) {
|
|
430
|
-
throw new errors_1.HTTPError('Please visit "Account" to delete this user', 400);
|
|
431
|
-
}
|
|
432
|
-
else {
|
|
433
|
-
throw new errors_1.HTTPError("Account holder cannot be deleted", 400);
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
yield platform.users.removeUser(dbUser);
|
|
438
|
-
yield db.remove(userId, dbUser._rev);
|
|
439
|
-
const creatorsToDelete = (yield (0, utils_1.isCreator)(dbUser)) ? 1 : 0;
|
|
440
|
-
yield UserDB.quotas.removeUsers(1, creatorsToDelete);
|
|
441
|
-
yield eventHelpers.handleDeleteEvents(dbUser);
|
|
442
|
-
yield cache.user.invalidateUser(userId);
|
|
443
|
-
yield sessions.invalidateSessions(userId, { reason: "deletion" });
|
|
444
|
-
});
|
|
445
|
-
}
|
|
446
|
-
static createAdminUser(email, tenantId, opts) {
|
|
447
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
448
|
-
const password = opts === null || opts === void 0 ? void 0 : opts.password;
|
|
449
|
-
const user = {
|
|
450
|
-
email: email,
|
|
451
|
-
password,
|
|
452
|
-
createdAt: Date.now(),
|
|
453
|
-
roles: {},
|
|
454
|
-
builder: {
|
|
455
|
-
global: true,
|
|
456
|
-
},
|
|
457
|
-
admin: {
|
|
458
|
-
global: true,
|
|
459
|
-
},
|
|
460
|
-
tenantId,
|
|
461
|
-
firstName: opts === null || opts === void 0 ? void 0 : opts.firstName,
|
|
462
|
-
lastName: opts === null || opts === void 0 ? void 0 : opts.lastName,
|
|
463
|
-
};
|
|
464
|
-
if (opts === null || opts === void 0 ? void 0 : opts.ssoId) {
|
|
465
|
-
user.ssoId = opts.ssoId;
|
|
466
|
-
}
|
|
467
|
-
// always bust checklist beforehand, if an error occurs but can proceed, don't get
|
|
468
|
-
// stuck in a cycle
|
|
469
|
-
yield cache.bustCache(cache.CacheKey.CHECKLIST);
|
|
470
|
-
return yield UserDB.save(user, {
|
|
471
|
-
hashPassword: opts === null || opts === void 0 ? void 0 : opts.hashPassword,
|
|
472
|
-
requirePassword: opts === null || opts === void 0 ? void 0 : opts.requirePassword,
|
|
473
|
-
skipPasswordValidation: opts === null || opts === void 0 ? void 0 : opts.skipPasswordValidation,
|
|
474
|
-
});
|
|
475
|
-
});
|
|
476
|
-
}
|
|
477
|
-
static getGroups(groupIds) {
|
|
478
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
479
|
-
return yield this.groups.getBulk(groupIds);
|
|
480
|
-
});
|
|
481
|
-
}
|
|
482
|
-
static getGroupBuilderAppIds(user) {
|
|
483
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
484
|
-
return yield this.groups.getGroupBuilderAppIds(user);
|
|
485
|
-
});
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
exports.UserDB = UserDB;
|
|
489
|
-
//# sourceMappingURL=db.js.map
|