@budibase/backend-core 2.5.6-alpha.9 → 2.5.7
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 +12 -12
- package/dist/src/cache/writethrough.js +1 -1
- package/dist/src/cache/writethrough.js.map +1 -1
- package/dist/src/configs/configs.d.ts +1 -2
- package/dist/src/configs/configs.js +1 -9
- package/dist/src/configs/configs.js.map +1 -1
- package/dist/src/constants/misc.d.ts +2 -4
- package/dist/src/constants/misc.js +0 -2
- package/dist/src/constants/misc.js.map +1 -1
- package/dist/src/context/mainContext.d.ts +1 -4
- package/dist/src/context/mainContext.js +3 -20
- package/dist/src/context/mainContext.js.map +1 -1
- package/dist/src/context/types.d.ts +0 -1
- package/dist/src/db/conversions.js.map +1 -0
- package/dist/src/db/couch/DatabaseImpl.js +1 -1
- package/dist/src/db/couch/DatabaseImpl.js.map +1 -1
- package/dist/src/db/index.d.ts +1 -2
- package/dist/src/db/index.js +2 -15
- package/dist/src/db/index.js.map +1 -1
- package/dist/src/db/lucene.d.ts +14 -8
- package/dist/src/db/lucene.js +86 -152
- package/dist/src/db/lucene.js.map +1 -1
- package/dist/src/db/utils.d.ts +126 -5
- package/dist/src/db/utils.js +232 -20
- package/dist/src/db/utils.js.map +1 -1
- package/dist/src/db/views.js +1 -16
- package/dist/src/db/views.js.map +1 -1
- package/dist/src/environment.d.ts +2 -2
- package/dist/src/environment.js +2 -9
- package/dist/src/environment.js.map +1 -1
- package/dist/src/errors/errors.d.ts +0 -3
- package/dist/src/errors/errors.js +1 -8
- package/dist/src/errors/errors.js.map +1 -1
- package/dist/src/events/events.js +0 -9
- package/dist/src/events/events.js.map +1 -1
- package/dist/src/events/identification.js +0 -1
- package/dist/src/events/identification.js.map +1 -1
- package/dist/src/events/index.d.ts +0 -1
- package/dist/src/events/index.js +1 -3
- package/dist/src/events/index.js.map +1 -1
- package/dist/src/events/processors/LoggingProcessor.js +17 -3
- package/dist/src/events/processors/LoggingProcessor.js.map +1 -1
- package/dist/src/events/processors/Processors.js +3 -9
- package/dist/src/events/processors/Processors.js.map +1 -1
- package/dist/src/events/processors/types.d.ts +11 -1
- package/dist/src/events/processors/types.js +6 -0
- package/dist/src/events/processors/types.js.map +1 -1
- package/dist/src/events/publishers/group.js +0 -6
- package/dist/src/events/publishers/group.js.map +1 -1
- package/dist/src/events/publishers/user.js +0 -4
- package/dist/src/events/publishers/user.js.map +1 -1
- package/dist/src/index.d.ts +1 -5
- package/dist/src/index.js +1 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/{logging/alerts.d.ts → logging.d.ts} +5 -0
- package/dist/src/logging.js +56 -0
- package/dist/src/logging.js.map +1 -0
- package/dist/src/middleware/authenticated.js +2 -5
- package/dist/src/middleware/authenticated.js.map +1 -1
- package/dist/src/middleware/errorHandling.js +7 -5
- package/dist/src/middleware/errorHandling.js.map +1 -1
- package/dist/src/middleware/index.d.ts +1 -2
- package/dist/src/middleware/index.js +3 -5
- package/dist/src/middleware/index.js.map +1 -1
- package/dist/src/middleware/logging.d.ts +2 -0
- package/dist/src/middleware/logging.js +106 -0
- package/dist/src/middleware/logging.js.map +1 -0
- package/dist/src/middleware/passport/sso/oidc.js +5 -2
- package/dist/src/middleware/passport/sso/oidc.js.map +1 -1
- package/dist/src/migrations/migrations.js +4 -4
- package/dist/src/migrations/migrations.js.map +1 -1
- package/dist/src/newid.js.map +1 -0
- package/dist/src/objectStore/objectStore.js +3 -3
- package/dist/src/objectStore/objectStore.js.map +1 -1
- package/dist/src/plugin/utils.js +2 -53
- package/dist/src/plugin/utils.js.map +1 -1
- package/dist/src/queue/constants.d.ts +1 -2
- package/dist/src/queue/constants.js +0 -1
- package/dist/src/queue/constants.js.map +1 -1
- package/dist/src/security/encryption.d.ts +0 -1
- package/dist/src/security/encryption.js +1 -2
- package/dist/src/security/encryption.js.map +1 -1
- package/dist/src/security/permissions.d.ts +2 -35
- package/dist/src/security/permissions.js +6 -9
- package/dist/src/security/permissions.js.map +1 -1
- package/dist/src/tenancy/tenancy.js +5 -1
- package/dist/src/tenancy/tenancy.js.map +1 -1
- package/dist/src/users.d.ts +1 -10
- package/dist/src/users.js +1 -35
- package/dist/src/users.js.map +1 -1
- package/dist/src/utils/hashing.d.ts +1 -1
- package/dist/src/utils/hashing.js +1 -1
- package/dist/src/utils/hashing.js.map +1 -1
- package/dist/src/utils/index.d.ts +0 -1
- package/dist/src/utils/index.js +0 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/tests/index.d.ts +1 -1
- package/dist/tests/index.js +1 -1
- package/dist/tests/index.js.map +1 -1
- package/dist/tests/jestEnv.js +1 -0
- package/dist/tests/jestEnv.js.map +1 -1
- package/dist/tests/jestSetup.d.ts +1 -1
- package/dist/tests/jestSetup.js +2 -2
- package/dist/tests/jestSetup.js.map +1 -1
- package/dist/tests/logging.js.map +1 -0
- package/dist/tests/{extra → utilities}/DBTestConfiguration.d.ts +1 -1
- package/dist/tests/{extra → utilities}/DBTestConfiguration.js +2 -2
- package/dist/tests/utilities/DBTestConfiguration.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/index.d.ts +2 -0
- package/dist/tests/{core/utilities → utilities}/index.js +7 -1
- package/dist/tests/utilities/index.js.map +1 -0
- package/dist/tests/utilities/jestUtils.js.map +1 -0
- package/dist/tests/utilities/mocks/date.js.map +1 -0
- package/dist/tests/utilities/mocks/events.d.ts +1 -0
- package/dist/tests/utilities/mocks/events.js +126 -0
- package/dist/tests/utilities/mocks/events.js.map +1 -0
- package/dist/tests/utilities/mocks/fetch.d.ts +31 -0
- package/dist/tests/utilities/mocks/fetch.js +8 -0
- package/dist/tests/utilities/mocks/fetch.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/mocks/index.d.ts +3 -4
- package/dist/tests/{core/utilities → utilities}/mocks/index.js +3 -7
- package/dist/tests/utilities/mocks/index.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/mocks/licenses.d.ts +0 -1
- package/dist/tests/{core/utilities → utilities}/mocks/licenses.js +1 -5
- package/dist/tests/utilities/mocks/licenses.js.map +1 -0
- package/dist/tests/utilities/mocks/posthog.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/structures/accounts.js +25 -2
- package/dist/tests/utilities/structures/accounts.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/structures/apps.js +1 -1
- package/dist/tests/utilities/structures/apps.js.map +1 -0
- package/dist/tests/utilities/structures/common.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/structures/db.js +1 -1
- package/dist/tests/utilities/structures/db.js.map +1 -0
- package/dist/tests/utilities/structures/generator.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/structures/index.d.ts +0 -1
- package/dist/tests/{core/utilities → utilities}/structures/index.js +1 -2
- package/dist/tests/utilities/structures/index.js.map +1 -0
- package/dist/tests/utilities/structures/koa.js.map +1 -0
- package/dist/tests/utilities/structures/licenses.js.map +1 -0
- package/dist/tests/utilities/structures/plugins.js.map +1 -0
- package/dist/tests/utilities/structures/shared.js.map +1 -0
- package/dist/tests/utilities/structures/sso.js.map +1 -0
- package/dist/tests/{core/utilities → utilities}/structures/tenants.js +1 -1
- package/dist/tests/utilities/structures/tenants.js.map +1 -0
- package/dist/tests/utilities/structures/userGroups.js.map +1 -0
- package/dist/tests/utilities/structures/users.js.map +1 -0
- package/dist/tests/utilities/testContainerUtils.js.map +1 -0
- package/dist/tests/{extra → utilities}/testEnv.js +1 -1
- package/dist/tests/utilities/testEnv.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +12 -12
- package/src/auth/tests/auth.spec.ts +1 -2
- package/src/cache/tests/writethrough.spec.ts +3 -4
- package/src/cache/writethrough.ts +2 -1
- package/src/configs/configs.ts +0 -9
- package/src/configs/tests/configs.spec.ts +6 -2
- package/src/constants/misc.ts +0 -2
- package/src/context/mainContext.ts +2 -19
- package/src/context/tests/index.spec.ts +3 -16
- package/src/context/types.ts +0 -1
- package/src/db/couch/DatabaseImpl.ts +1 -1
- package/src/db/index.ts +1 -2
- package/src/db/lucene.ts +88 -143
- package/src/db/tests/lucene.spec.ts +1 -101
- package/src/db/tests/utils.spec.ts +1 -1
- package/src/db/utils.ts +275 -7
- package/src/db/views.ts +2 -18
- package/src/environment.ts +2 -11
- package/src/errors/errors.ts +0 -8
- package/src/events/events.ts +1 -10
- package/src/events/identification.ts +0 -1
- package/src/events/index.ts +0 -2
- package/src/events/processors/LoggingProcessor.ts +22 -3
- package/src/events/processors/Processors.ts +3 -9
- package/src/events/processors/posthog/tests/PosthogProcessor.spec.ts +1 -1
- package/src/events/processors/types.ts +18 -1
- package/src/events/publishers/group.ts +1 -6
- package/src/events/publishers/user.ts +0 -4
- package/src/index.ts +0 -1
- package/src/logging.ts +60 -0
- package/src/middleware/authenticated.ts +2 -8
- package/src/middleware/errorHandling.ts +4 -4
- package/src/middleware/index.ts +1 -2
- package/src/middleware/logging.ts +90 -0
- package/src/middleware/passport/sso/oidc.ts +9 -2
- package/src/middleware/passport/sso/tests/sso.spec.ts +1 -2
- package/src/migrations/migrations.ts +8 -4
- package/src/migrations/tests/__snapshots__/migrations.spec.ts.snap +1 -1
- package/src/migrations/tests/migrations.spec.ts +1 -1
- package/src/objectStore/buckets/tests/app.spec.ts +1 -1
- package/src/objectStore/buckets/tests/global.spec.ts +1 -1
- package/src/objectStore/buckets/tests/plugins.spec.ts +1 -2
- package/src/objectStore/objectStore.ts +3 -3
- package/src/platform/tests/tenants.spec.ts +1 -2
- package/src/plugin/utils.ts +3 -63
- package/src/queue/constants.ts +0 -1
- package/src/security/encryption.ts +1 -1
- package/src/security/permissions.ts +5 -5
- package/src/tenancy/tenancy.ts +2 -2
- package/src/users.ts +1 -41
- package/src/utils/hashing.ts +1 -1
- package/src/utils/index.ts +0 -1
- package/src/utils/tests/utils.spec.ts +1 -2
- package/tests/index.ts +1 -1
- package/tests/jestEnv.ts +1 -0
- package/tests/jestSetup.ts +2 -2
- package/tests/{extra → utilities}/DBTestConfiguration.ts +2 -2
- package/tests/{core/utilities → utilities}/index.ts +3 -0
- package/tests/utilities/mocks/events.ts +122 -0
- package/tests/utilities/mocks/fetch.ts +10 -0
- package/tests/{core/utilities → utilities}/mocks/index.ts +3 -4
- package/tests/{core/utilities → utilities}/mocks/licenses.ts +0 -4
- package/tests/{core/utilities → utilities}/structures/accounts.ts +2 -2
- package/tests/{core/utilities → utilities}/structures/apps.ts +1 -1
- package/tests/{core/utilities → utilities}/structures/db.ts +1 -1
- package/tests/{core/utilities → utilities}/structures/index.ts +0 -1
- package/tests/{core/utilities → utilities}/structures/tenants.ts +1 -1
- package/tests/{extra → utilities}/testEnv.ts +1 -1
- package/tsconfig.json +8 -3
- package/dist/src/db/searchIndexes/index.d.ts +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.d.ts +0 -1
- package/dist/src/db/searchIndexes/searchIndexes.js +0 -77
- package/dist/src/db/searchIndexes/searchIndexes.js.map +0 -1
- package/dist/src/docIds/conversions.js.map +0 -1
- package/dist/src/docIds/ids.d.ts +0 -53
- package/dist/src/docIds/ids.js +0 -101
- package/dist/src/docIds/ids.js.map +0 -1
- package/dist/src/docIds/index.d.ts +0 -2
- package/dist/src/docIds/index.js +0 -19
- package/dist/src/docIds/index.js.map +0 -1
- package/dist/src/docIds/newid.js.map +0 -1
- package/dist/src/docIds/params.d.ts +0 -69
- package/dist/src/docIds/params.js +0 -138
- package/dist/src/docIds/params.js.map +0 -1
- package/dist/src/docUpdates/index.d.ts +0 -2
- package/dist/src/docUpdates/index.js +0 -36
- package/dist/src/docUpdates/index.js.map +0 -1
- package/dist/src/events/asyncEvents/index.d.ts +0 -2
- 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.d.ts +0 -2
- package/dist/src/events/asyncEvents/publisher.js +0 -27
- package/dist/src/events/asyncEvents/publisher.js.map +0 -1
- package/dist/src/events/asyncEvents/queue.d.ts +0 -11
- package/dist/src/events/asyncEvents/queue.js +0 -26
- package/dist/src/events/asyncEvents/queue.js.map +0 -1
- package/dist/src/events/documentId.d.ts +0 -2
- package/dist/src/events/documentId.js +0 -28
- package/dist/src/events/documentId.js.map +0 -1
- package/dist/src/events/processors/async/DocumentUpdateProcessor.d.ts +0 -13
- package/dist/src/events/processors/async/DocumentUpdateProcessor.js +0 -44
- package/dist/src/events/processors/async/DocumentUpdateProcessor.js.map +0 -1
- package/dist/src/logging/alerts.js +0 -24
- package/dist/src/logging/alerts.js.map +0 -1
- package/dist/src/logging/correlation/correlation.d.ts +0 -2
- package/dist/src/logging/correlation/correlation.js +0 -17
- package/dist/src/logging/correlation/correlation.js.map +0 -1
- package/dist/src/logging/correlation/index.d.ts +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.d.ts +0 -2
- package/dist/src/logging/correlation/middleware.js +0 -17
- package/dist/src/logging/correlation/middleware.js.map +0 -1
- package/dist/src/logging/index.d.ts +0 -4
- package/dist/src/logging/index.js +0 -37
- package/dist/src/logging/index.js.map +0 -1
- package/dist/src/logging/pino/logger.d.ts +0 -3
- package/dist/src/logging/pino/logger.js +0 -181
- package/dist/src/logging/pino/logger.js.map +0 -1
- package/dist/src/logging/pino/middleware.d.ts +0 -4
- package/dist/src/logging/pino/middleware.js +0 -47
- package/dist/src/logging/pino/middleware.js.map +0 -1
- package/dist/src/utils/stringUtils.d.ts +0 -1
- package/dist/src/utils/stringUtils.js +0 -9
- package/dist/src/utils/stringUtils.js.map +0 -1
- package/dist/tests/core/logging.js.map +0 -1
- package/dist/tests/core/utilities/index.js.map +0 -1
- package/dist/tests/core/utilities/jestUtils.js.map +0 -1
- package/dist/tests/core/utilities/mocks/alerts.d.ts +0 -3
- package/dist/tests/core/utilities/mocks/alerts.js +0 -30
- package/dist/tests/core/utilities/mocks/alerts.js.map +0 -1
- package/dist/tests/core/utilities/mocks/date.js.map +0 -1
- package/dist/tests/core/utilities/mocks/events.d.ts +0 -0
- package/dist/tests/core/utilities/mocks/events.js +0 -136
- package/dist/tests/core/utilities/mocks/events.js.map +0 -1
- package/dist/tests/core/utilities/mocks/fetch.d.ts +0 -33
- package/dist/tests/core/utilities/mocks/fetch.js +0 -15
- package/dist/tests/core/utilities/mocks/fetch.js.map +0 -1
- package/dist/tests/core/utilities/mocks/index.js.map +0 -1
- package/dist/tests/core/utilities/mocks/licenses.js.map +0 -1
- package/dist/tests/core/utilities/mocks/posthog.js.map +0 -1
- package/dist/tests/core/utilities/structures/accounts.js.map +0 -1
- package/dist/tests/core/utilities/structures/apps.js.map +0 -1
- package/dist/tests/core/utilities/structures/common.js.map +0 -1
- package/dist/tests/core/utilities/structures/db.js.map +0 -1
- package/dist/tests/core/utilities/structures/generator.js.map +0 -1
- package/dist/tests/core/utilities/structures/index.js.map +0 -1
- package/dist/tests/core/utilities/structures/koa.js.map +0 -1
- package/dist/tests/core/utilities/structures/licenses.js.map +0 -1
- package/dist/tests/core/utilities/structures/plugins.js.map +0 -1
- package/dist/tests/core/utilities/structures/scim.d.ts +0 -14
- package/dist/tests/core/utilities/structures/scim.js +0 -67
- package/dist/tests/core/utilities/structures/scim.js.map +0 -1
- package/dist/tests/core/utilities/structures/shared.js.map +0 -1
- package/dist/tests/core/utilities/structures/sso.js.map +0 -1
- package/dist/tests/core/utilities/structures/tenants.js.map +0 -1
- package/dist/tests/core/utilities/structures/userGroups.js.map +0 -1
- package/dist/tests/core/utilities/structures/users.js.map +0 -1
- package/dist/tests/core/utilities/testContainerUtils.js.map +0 -1
- package/dist/tests/extra/DBTestConfiguration.js.map +0 -1
- package/dist/tests/extra/index.d.ts +0 -2
- package/dist/tests/extra/index.js +0 -33
- package/dist/tests/extra/index.js.map +0 -1
- package/dist/tests/extra/testEnv.js.map +0 -1
- package/src/db/searchIndexes/index.ts +0 -1
- package/src/db/searchIndexes/searchIndexes.ts +0 -62
- package/src/docIds/ids.ts +0 -102
- package/src/docIds/index.ts +0 -2
- package/src/docIds/params.ts +0 -174
- package/src/docUpdates/index.ts +0 -29
- package/src/events/asyncEvents/index.ts +0 -2
- package/src/events/asyncEvents/publisher.ts +0 -12
- package/src/events/asyncEvents/queue.ts +0 -22
- package/src/events/documentId.ts +0 -56
- package/src/events/processors/async/DocumentUpdateProcessor.ts +0 -43
- package/src/logging/alerts.ts +0 -26
- package/src/logging/correlation/correlation.ts +0 -13
- package/src/logging/correlation/index.ts +0 -1
- package/src/logging/correlation/middleware.ts +0 -17
- package/src/logging/index.ts +0 -6
- package/src/logging/pino/logger.ts +0 -188
- package/src/logging/pino/middleware.ts +0 -45
- package/src/plugin/tests/validation.spec.ts +0 -83
- package/src/security/tests/encryption.spec.ts +0 -31
- package/src/security/tests/permissions.spec.ts +0 -145
- package/src/tenancy/tests/tenancy.spec.ts +0 -184
- package/src/utils/stringUtils.ts +0 -8
- package/tests/core/utilities/mocks/alerts.ts +0 -3
- package/tests/core/utilities/mocks/events.ts +0 -123
- package/tests/core/utilities/mocks/fetch.ts +0 -17
- package/tests/core/utilities/structures/scim.ts +0 -81
- package/tests/extra/index.ts +0 -2
- /package/dist/src/{docIds → db}/conversions.d.ts +0 -0
- /package/dist/src/{docIds → db}/conversions.js +0 -0
- /package/dist/src/{docIds/newid.d.ts → newid.d.ts} +0 -0
- /package/dist/src/{docIds/newid.js → newid.js} +0 -0
- /package/dist/tests/{core/logging.d.ts → logging.d.ts} +0 -0
- /package/dist/tests/{core/logging.js → logging.js} +0 -0
- /package/dist/tests/{core/utilities → utilities}/jestUtils.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/jestUtils.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/mocks/date.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/mocks/date.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/mocks/posthog.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/mocks/posthog.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/accounts.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/apps.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/common.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/common.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/db.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/generator.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/generator.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/koa.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/koa.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/licenses.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/licenses.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/plugins.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/plugins.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/shared.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/shared.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/sso.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/sso.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/tenants.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/userGroups.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/userGroups.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/users.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/structures/users.js +0 -0
- /package/dist/tests/{core/utilities → utilities}/testContainerUtils.d.ts +0 -0
- /package/dist/tests/{core/utilities → utilities}/testContainerUtils.js +0 -0
- /package/dist/tests/{extra → utilities}/testEnv.d.ts +0 -0
- /package/src/{docIds → db}/conversions.ts +0 -0
- /package/src/{docIds/newid.ts → newid.ts} +0 -0
- /package/tests/{core/logging.ts → logging.ts} +0 -0
- /package/tests/{core/utilities → utilities}/jestUtils.ts +0 -0
- /package/tests/{core/utilities → utilities}/mocks/date.ts +0 -0
- /package/tests/{core/utilities → utilities}/mocks/posthog.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/common.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/generator.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/koa.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/licenses.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/plugins.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/shared.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/sso.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/userGroups.ts +0 -0
- /package/tests/{core/utilities → utilities}/structures/users.ts +0 -0
- /package/tests/{core/utilities → utilities}/testContainerUtils.ts +0 -0
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { EventProcessor } from "../types"
|
|
2
|
-
import { Event, Identity, DocUpdateEvent } from "@budibase/types"
|
|
3
|
-
import { doInTenant } from "../../../context"
|
|
4
|
-
import { getDocumentId } from "../../documentId"
|
|
5
|
-
import { shutdown } from "../../asyncEvents"
|
|
6
|
-
|
|
7
|
-
export type Processor = (update: DocUpdateEvent) => Promise<void>
|
|
8
|
-
export type ProcessorMap = { events: Event[]; processor: Processor }[]
|
|
9
|
-
|
|
10
|
-
export default class DocumentUpdateProcessor implements EventProcessor {
|
|
11
|
-
processors: ProcessorMap = []
|
|
12
|
-
|
|
13
|
-
constructor(processors: ProcessorMap) {
|
|
14
|
-
this.processors = processors
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async processEvent(
|
|
18
|
-
event: Event,
|
|
19
|
-
identity: Identity,
|
|
20
|
-
properties: any,
|
|
21
|
-
timestamp?: string | number
|
|
22
|
-
) {
|
|
23
|
-
const tenantId = identity.realTenantId
|
|
24
|
-
const docId = getDocumentId(event, properties)
|
|
25
|
-
if (!tenantId || !docId) {
|
|
26
|
-
return
|
|
27
|
-
}
|
|
28
|
-
for (let { events, processor } of this.processors) {
|
|
29
|
-
if (events.includes(event)) {
|
|
30
|
-
await doInTenant(tenantId, async () => {
|
|
31
|
-
await processor({
|
|
32
|
-
id: docId,
|
|
33
|
-
tenantId,
|
|
34
|
-
})
|
|
35
|
-
})
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
shutdown() {
|
|
41
|
-
return shutdown()
|
|
42
|
-
}
|
|
43
|
-
}
|
package/src/logging/alerts.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
const NonErrors = ["AccountError"]
|
|
2
|
-
|
|
3
|
-
function isSuppressed(e?: any) {
|
|
4
|
-
return e && e["suppressAlert"]
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function logAlert(message: string, e?: any) {
|
|
8
|
-
if (e && NonErrors.includes(e.name) && isSuppressed(e)) {
|
|
9
|
-
return
|
|
10
|
-
}
|
|
11
|
-
console.error(`bb-alert: ${message}`, e)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function logAlertWithInfo(
|
|
15
|
-
message: string,
|
|
16
|
-
db: string,
|
|
17
|
-
id: string,
|
|
18
|
-
error: any
|
|
19
|
-
) {
|
|
20
|
-
message = `${message} - db: ${db} - doc: ${id} - error: `
|
|
21
|
-
logAlert(message, error)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function logWarn(message: string) {
|
|
25
|
-
console.warn(`bb-warn: ${message}`)
|
|
26
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Header } from "../../constants"
|
|
2
|
-
const correlator = require("correlation-id")
|
|
3
|
-
|
|
4
|
-
export const setHeader = (headers: any) => {
|
|
5
|
-
const correlationId = correlator.getId()
|
|
6
|
-
if (correlationId) {
|
|
7
|
-
headers[Header.CORRELATION_ID] = correlationId
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function getId() {
|
|
12
|
-
return correlator.getId()
|
|
13
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./correlation"
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Header } from "../../constants"
|
|
2
|
-
import { v4 as uuid } from "uuid"
|
|
3
|
-
const correlator = require("correlation-id")
|
|
4
|
-
|
|
5
|
-
const correlation = (ctx: any, next: any) => {
|
|
6
|
-
// use the provided correlation id header if present
|
|
7
|
-
let correlationId = ctx.headers[Header.CORRELATION_ID]
|
|
8
|
-
if (!correlationId) {
|
|
9
|
-
correlationId = uuid()
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
return correlator.withId(correlationId, () => {
|
|
13
|
-
return next()
|
|
14
|
-
})
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export default correlation
|
package/src/logging/index.ts
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import env from "../../environment"
|
|
2
|
-
import pino, { LoggerOptions } from "pino"
|
|
3
|
-
import * as context from "../../context"
|
|
4
|
-
import * as correlation from "../correlation"
|
|
5
|
-
import { IdentityType } from "@budibase/types"
|
|
6
|
-
import { LOG_CONTEXT } from "../index"
|
|
7
|
-
|
|
8
|
-
// CORE LOGGERS - for disabling
|
|
9
|
-
|
|
10
|
-
const BUILT_INS = {
|
|
11
|
-
log: console.log,
|
|
12
|
-
error: console.error,
|
|
13
|
-
info: console.info,
|
|
14
|
-
warn: console.warn,
|
|
15
|
-
trace: console.trace,
|
|
16
|
-
debug: console.debug,
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// LOGGER
|
|
20
|
-
|
|
21
|
-
const pinoOptions: LoggerOptions = {
|
|
22
|
-
level: env.LOG_LEVEL,
|
|
23
|
-
formatters: {
|
|
24
|
-
level: label => {
|
|
25
|
-
return { level: label.toUpperCase() }
|
|
26
|
-
},
|
|
27
|
-
bindings: () => {
|
|
28
|
-
return {}
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
timestamp: () => `,"timestamp":"${new Date(Date.now()).toISOString()}"`,
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (env.isDev()) {
|
|
35
|
-
pinoOptions.transport = {
|
|
36
|
-
target: "pino-pretty",
|
|
37
|
-
options: {
|
|
38
|
-
singleLine: true,
|
|
39
|
-
},
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export const logger = pino(pinoOptions)
|
|
44
|
-
|
|
45
|
-
export function disableLogger() {
|
|
46
|
-
console.log = BUILT_INS.log
|
|
47
|
-
console.error = BUILT_INS.error
|
|
48
|
-
console.info = BUILT_INS.info
|
|
49
|
-
console.warn = BUILT_INS.warn
|
|
50
|
-
console.trace = BUILT_INS.trace
|
|
51
|
-
console.debug = BUILT_INS.debug
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// CONSOLE OVERRIDES
|
|
55
|
-
|
|
56
|
-
interface MergingObject {
|
|
57
|
-
objects?: any[]
|
|
58
|
-
tenantId?: string
|
|
59
|
-
appId?: string
|
|
60
|
-
identityId?: string
|
|
61
|
-
identityType?: IdentityType
|
|
62
|
-
correlationId?: string
|
|
63
|
-
err?: Error
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function isPlainObject(obj: any) {
|
|
67
|
-
return typeof obj === "object" && obj !== null && !(obj instanceof Error)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function isError(obj: any) {
|
|
71
|
-
return obj instanceof Error
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function isMessage(obj: any) {
|
|
75
|
-
return typeof obj === "string"
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Backwards compatibility between console logging statements
|
|
80
|
-
* and pino logging requirements.
|
|
81
|
-
*/
|
|
82
|
-
function getLogParams(args: any[]): [MergingObject, string] {
|
|
83
|
-
let error = undefined
|
|
84
|
-
let objects: any[] = []
|
|
85
|
-
let message = ""
|
|
86
|
-
|
|
87
|
-
args.forEach(arg => {
|
|
88
|
-
if (isMessage(arg)) {
|
|
89
|
-
message = `${message} ${arg}`.trimStart()
|
|
90
|
-
}
|
|
91
|
-
if (isPlainObject(arg)) {
|
|
92
|
-
objects.push(arg)
|
|
93
|
-
}
|
|
94
|
-
if (isError(arg)) {
|
|
95
|
-
error = arg
|
|
96
|
-
}
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
const identity = getIdentity()
|
|
100
|
-
|
|
101
|
-
let contextObject = {}
|
|
102
|
-
|
|
103
|
-
if (LOG_CONTEXT) {
|
|
104
|
-
contextObject = {
|
|
105
|
-
tenantId: getTenantId(),
|
|
106
|
-
appId: getAppId(),
|
|
107
|
-
identityId: identity?._id,
|
|
108
|
-
identityType: identity?.type,
|
|
109
|
-
correlationId: correlation.getId(),
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
const mergingObject = {
|
|
114
|
-
objects: objects.length ? objects : undefined,
|
|
115
|
-
err: error,
|
|
116
|
-
...contextObject,
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return [mergingObject, message]
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
console.log = (...arg: any[]) => {
|
|
123
|
-
const [obj, msg] = getLogParams(arg)
|
|
124
|
-
logger.info(obj, msg)
|
|
125
|
-
}
|
|
126
|
-
console.info = (...arg: any[]) => {
|
|
127
|
-
const [obj, msg] = getLogParams(arg)
|
|
128
|
-
logger.info(obj, msg)
|
|
129
|
-
}
|
|
130
|
-
console.warn = (...arg: any[]) => {
|
|
131
|
-
const [obj, msg] = getLogParams(arg)
|
|
132
|
-
logger.warn(obj, msg)
|
|
133
|
-
}
|
|
134
|
-
console.error = (...arg: any[]) => {
|
|
135
|
-
const [obj, msg] = getLogParams(arg)
|
|
136
|
-
logger.error(obj, msg)
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* custom trace impl - this resembles the node trace behaviour rather
|
|
141
|
-
* than traditional trace logging
|
|
142
|
-
* @param arg
|
|
143
|
-
*/
|
|
144
|
-
console.trace = (...arg: any[]) => {
|
|
145
|
-
const [obj, msg] = getLogParams(arg)
|
|
146
|
-
if (!obj.err) {
|
|
147
|
-
// to get stack trace
|
|
148
|
-
obj.err = new Error()
|
|
149
|
-
}
|
|
150
|
-
logger.trace(obj, msg)
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
console.debug = (...arg: any) => {
|
|
154
|
-
const [obj, msg] = getLogParams(arg)
|
|
155
|
-
logger.debug(obj, msg)
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// CONTEXT
|
|
159
|
-
|
|
160
|
-
const getTenantId = () => {
|
|
161
|
-
let tenantId
|
|
162
|
-
try {
|
|
163
|
-
tenantId = context.getTenantId()
|
|
164
|
-
} catch (e: any) {
|
|
165
|
-
// do nothing
|
|
166
|
-
}
|
|
167
|
-
return tenantId
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
const getAppId = () => {
|
|
171
|
-
let appId
|
|
172
|
-
try {
|
|
173
|
-
appId = context.getAppId()
|
|
174
|
-
} catch (e) {
|
|
175
|
-
// do nothing
|
|
176
|
-
}
|
|
177
|
-
return appId
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
const getIdentity = () => {
|
|
181
|
-
let identity
|
|
182
|
-
try {
|
|
183
|
-
identity = context.getIdentity()
|
|
184
|
-
} catch (e) {
|
|
185
|
-
// do nothing
|
|
186
|
-
}
|
|
187
|
-
return identity
|
|
188
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import env from "../../environment"
|
|
2
|
-
import { logger } from "./logger"
|
|
3
|
-
import { IncomingMessage } from "http"
|
|
4
|
-
const pino = require("koa-pino-logger")
|
|
5
|
-
import { Options } from "pino-http"
|
|
6
|
-
import { Ctx } from "@budibase/types"
|
|
7
|
-
const correlator = require("correlation-id")
|
|
8
|
-
|
|
9
|
-
export function pinoSettings(): Options {
|
|
10
|
-
return {
|
|
11
|
-
logger,
|
|
12
|
-
genReqId: correlator.getId,
|
|
13
|
-
autoLogging: {
|
|
14
|
-
ignore: (req: IncomingMessage) => !!req.url?.includes("/health"),
|
|
15
|
-
},
|
|
16
|
-
serializers: {
|
|
17
|
-
req: req => {
|
|
18
|
-
return {
|
|
19
|
-
method: req.method,
|
|
20
|
-
url: req.url,
|
|
21
|
-
correlationId: req.id,
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
res: res => {
|
|
25
|
-
return {
|
|
26
|
-
status: res.statusCode,
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function getMiddleware() {
|
|
34
|
-
if (env.HTTP_LOGGING) {
|
|
35
|
-
return pino(pinoSettings())
|
|
36
|
-
} else {
|
|
37
|
-
return (ctx: Ctx, next: any) => {
|
|
38
|
-
return next()
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const pinoMiddleware = getMiddleware()
|
|
44
|
-
|
|
45
|
-
export default pinoMiddleware
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { validate } from "../utils"
|
|
2
|
-
import fetch from "node-fetch"
|
|
3
|
-
import { PluginType } from "@budibase/types"
|
|
4
|
-
|
|
5
|
-
const repoUrl =
|
|
6
|
-
"https://raw.githubusercontent.com/Budibase/budibase-skeleton/master"
|
|
7
|
-
const automationLink = `${repoUrl}/automation/schema.json.hbs`
|
|
8
|
-
const componentLink = `${repoUrl}/component/schema.json.hbs`
|
|
9
|
-
const datasourceLink = `${repoUrl}/datasource/schema.json.hbs`
|
|
10
|
-
|
|
11
|
-
async function getSchema(link: string) {
|
|
12
|
-
const response = await fetch(link)
|
|
13
|
-
if (response.status > 300) {
|
|
14
|
-
return
|
|
15
|
-
}
|
|
16
|
-
const text = await response.text()
|
|
17
|
-
return JSON.parse(text)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async function runTest(opts: { link?: string; schema?: any }) {
|
|
21
|
-
let error
|
|
22
|
-
try {
|
|
23
|
-
let schema = opts.schema
|
|
24
|
-
if (opts.link) {
|
|
25
|
-
schema = await getSchema(opts.link)
|
|
26
|
-
}
|
|
27
|
-
validate(schema)
|
|
28
|
-
} catch (err) {
|
|
29
|
-
error = err
|
|
30
|
-
}
|
|
31
|
-
return error
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
describe("it should be able to validate an automation schema", () => {
|
|
35
|
-
it("should return automation skeleton schema is valid", async () => {
|
|
36
|
-
const error = await runTest({ link: automationLink })
|
|
37
|
-
expect(error).toBeUndefined()
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
it("should fail given invalid automation schema", async () => {
|
|
41
|
-
const error = await runTest({
|
|
42
|
-
schema: {
|
|
43
|
-
type: PluginType.AUTOMATION,
|
|
44
|
-
schema: {},
|
|
45
|
-
},
|
|
46
|
-
})
|
|
47
|
-
expect(error).toBeDefined()
|
|
48
|
-
})
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
describe("it should be able to validate a component schema", () => {
|
|
52
|
-
it("should return component skeleton schema is valid", async () => {
|
|
53
|
-
const error = await runTest({ link: componentLink })
|
|
54
|
-
expect(error).toBeUndefined()
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
it("should fail given invalid component schema", async () => {
|
|
58
|
-
const error = await runTest({
|
|
59
|
-
schema: {
|
|
60
|
-
type: PluginType.COMPONENT,
|
|
61
|
-
schema: {},
|
|
62
|
-
},
|
|
63
|
-
})
|
|
64
|
-
expect(error).toBeDefined()
|
|
65
|
-
})
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
describe("it should be able to validate a datasource schema", () => {
|
|
69
|
-
it("should return datasource skeleton schema is valid", async () => {
|
|
70
|
-
const error = await runTest({ link: datasourceLink })
|
|
71
|
-
expect(error).toBeUndefined()
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
it("should fail given invalid datasource schema", async () => {
|
|
75
|
-
const error = await runTest({
|
|
76
|
-
schema: {
|
|
77
|
-
type: PluginType.DATASOURCE,
|
|
78
|
-
schema: {},
|
|
79
|
-
},
|
|
80
|
-
})
|
|
81
|
-
expect(error).toBeDefined()
|
|
82
|
-
})
|
|
83
|
-
})
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { encrypt, decrypt, SecretOption, getSecret } from "../encryption"
|
|
2
|
-
import env from "../../environment"
|
|
3
|
-
|
|
4
|
-
describe("encryption", () => {
|
|
5
|
-
it("should throw an error if API encryption key is not set", () => {
|
|
6
|
-
const jwt = getSecret(SecretOption.API)
|
|
7
|
-
expect(jwt).toBe(env.JWT_SECRET)
|
|
8
|
-
})
|
|
9
|
-
|
|
10
|
-
it("should throw an error if encryption key is not set", () => {
|
|
11
|
-
expect(() => getSecret(SecretOption.ENCRYPTION)).toThrow(
|
|
12
|
-
'Secret "ENCRYPTION_KEY" has not been set in environment.'
|
|
13
|
-
)
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
it("should encrypt and decrypt a string using API encryption key", () => {
|
|
17
|
-
env._set("API_ENCRYPTION_KEY", "api_secret")
|
|
18
|
-
const plaintext = "budibase"
|
|
19
|
-
const apiEncrypted = encrypt(plaintext, SecretOption.API)
|
|
20
|
-
const decrypted = decrypt(apiEncrypted, SecretOption.API)
|
|
21
|
-
expect(decrypted).toEqual(plaintext)
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
it("should encrypt and decrypt a string using encryption key", () => {
|
|
25
|
-
env._set("ENCRYPTION_KEY", "normal_secret")
|
|
26
|
-
const plaintext = "budibase"
|
|
27
|
-
const encryptionEncrypted = encrypt(plaintext, SecretOption.ENCRYPTION)
|
|
28
|
-
const decrypted = decrypt(encryptionEncrypted, SecretOption.ENCRYPTION)
|
|
29
|
-
expect(decrypted).toEqual(plaintext)
|
|
30
|
-
})
|
|
31
|
-
})
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { cloneDeep } from "lodash"
|
|
2
|
-
import * as permissions from "../permissions"
|
|
3
|
-
import { BUILTIN_ROLE_IDS } from "../roles"
|
|
4
|
-
|
|
5
|
-
describe("levelToNumber", () => {
|
|
6
|
-
it("should return 0 for EXECUTE", () => {
|
|
7
|
-
expect(permissions.levelToNumber(permissions.PermissionLevel.EXECUTE)).toBe(
|
|
8
|
-
0
|
|
9
|
-
)
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
it("should return 1 for READ", () => {
|
|
13
|
-
expect(permissions.levelToNumber(permissions.PermissionLevel.READ)).toBe(1)
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
it("should return 2 for WRITE", () => {
|
|
17
|
-
expect(permissions.levelToNumber(permissions.PermissionLevel.WRITE)).toBe(2)
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it("should return 3 for ADMIN", () => {
|
|
21
|
-
expect(permissions.levelToNumber(permissions.PermissionLevel.ADMIN)).toBe(3)
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
it("should return -1 for an unknown permission level", () => {
|
|
25
|
-
expect(
|
|
26
|
-
permissions.levelToNumber("unknown" as permissions.PermissionLevel)
|
|
27
|
-
).toBe(-1)
|
|
28
|
-
})
|
|
29
|
-
})
|
|
30
|
-
describe("getAllowedLevels", () => {
|
|
31
|
-
it('should return ["execute"] for EXECUTE', () => {
|
|
32
|
-
expect(
|
|
33
|
-
permissions.getAllowedLevels(permissions.PermissionLevel.EXECUTE)
|
|
34
|
-
).toEqual([permissions.PermissionLevel.EXECUTE])
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
it('should return ["execute", "read"] for READ', () => {
|
|
38
|
-
expect(
|
|
39
|
-
permissions.getAllowedLevels(permissions.PermissionLevel.READ)
|
|
40
|
-
).toEqual([
|
|
41
|
-
permissions.PermissionLevel.EXECUTE,
|
|
42
|
-
permissions.PermissionLevel.READ,
|
|
43
|
-
])
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
it('should return ["execute", "read", "write"] for WRITE', () => {
|
|
47
|
-
expect(
|
|
48
|
-
permissions.getAllowedLevels(permissions.PermissionLevel.WRITE)
|
|
49
|
-
).toEqual([
|
|
50
|
-
permissions.PermissionLevel.EXECUTE,
|
|
51
|
-
permissions.PermissionLevel.READ,
|
|
52
|
-
permissions.PermissionLevel.WRITE,
|
|
53
|
-
])
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
it('should return ["execute", "read", "write"] for ADMIN', () => {
|
|
57
|
-
expect(
|
|
58
|
-
permissions.getAllowedLevels(permissions.PermissionLevel.ADMIN)
|
|
59
|
-
).toEqual([
|
|
60
|
-
permissions.PermissionLevel.EXECUTE,
|
|
61
|
-
permissions.PermissionLevel.READ,
|
|
62
|
-
permissions.PermissionLevel.WRITE,
|
|
63
|
-
])
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
it("should return [] for an unknown permission level", () => {
|
|
67
|
-
expect(
|
|
68
|
-
permissions.getAllowedLevels("unknown" as permissions.PermissionLevel)
|
|
69
|
-
).toEqual([])
|
|
70
|
-
})
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
describe("doesHaveBasePermission", () => {
|
|
74
|
-
it("should return true if base permission has the required level", () => {
|
|
75
|
-
const permType = permissions.PermissionType.USER
|
|
76
|
-
const permLevel = permissions.PermissionLevel.READ
|
|
77
|
-
const rolesHierarchy = [
|
|
78
|
-
{
|
|
79
|
-
roleId: BUILTIN_ROLE_IDS.ADMIN,
|
|
80
|
-
permissionId: permissions.BuiltinPermissionID.ADMIN,
|
|
81
|
-
},
|
|
82
|
-
]
|
|
83
|
-
expect(
|
|
84
|
-
permissions.doesHaveBasePermission(permType, permLevel, rolesHierarchy)
|
|
85
|
-
).toBe(true)
|
|
86
|
-
})
|
|
87
|
-
|
|
88
|
-
it("should return false if base permission does not have the required level", () => {
|
|
89
|
-
const permType = permissions.PermissionType.APP
|
|
90
|
-
const permLevel = permissions.PermissionLevel.READ
|
|
91
|
-
const rolesHierarchy = [
|
|
92
|
-
{
|
|
93
|
-
roleId: BUILTIN_ROLE_IDS.PUBLIC,
|
|
94
|
-
permissionId: permissions.BuiltinPermissionID.PUBLIC,
|
|
95
|
-
},
|
|
96
|
-
]
|
|
97
|
-
expect(
|
|
98
|
-
permissions.doesHaveBasePermission(permType, permLevel, rolesHierarchy)
|
|
99
|
-
).toBe(false)
|
|
100
|
-
})
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
describe("isPermissionLevelHigherThanRead", () => {
|
|
104
|
-
it("should return true if level is higher than read", () => {
|
|
105
|
-
expect(
|
|
106
|
-
permissions.isPermissionLevelHigherThanRead(
|
|
107
|
-
permissions.PermissionLevel.WRITE
|
|
108
|
-
)
|
|
109
|
-
).toBe(true)
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
it("should return false if level is read or lower", () => {
|
|
113
|
-
expect(
|
|
114
|
-
permissions.isPermissionLevelHigherThanRead(
|
|
115
|
-
permissions.PermissionLevel.READ
|
|
116
|
-
)
|
|
117
|
-
).toBe(false)
|
|
118
|
-
})
|
|
119
|
-
})
|
|
120
|
-
|
|
121
|
-
describe("getBuiltinPermissions", () => {
|
|
122
|
-
it("returns a clone of the builtin permissions", () => {
|
|
123
|
-
const builtins = permissions.getBuiltinPermissions()
|
|
124
|
-
expect(builtins).toEqual(cloneDeep(permissions.BUILTIN_PERMISSIONS))
|
|
125
|
-
expect(builtins).not.toBe(permissions.BUILTIN_PERMISSIONS)
|
|
126
|
-
})
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
describe("getBuiltinPermissionByID", () => {
|
|
130
|
-
it("returns correct permission object for valid ID", () => {
|
|
131
|
-
const expectedPermission = {
|
|
132
|
-
_id: permissions.BuiltinPermissionID.PUBLIC,
|
|
133
|
-
name: "Public",
|
|
134
|
-
permissions: [
|
|
135
|
-
new permissions.Permission(
|
|
136
|
-
permissions.PermissionType.WEBHOOK,
|
|
137
|
-
permissions.PermissionLevel.EXECUTE
|
|
138
|
-
),
|
|
139
|
-
],
|
|
140
|
-
}
|
|
141
|
-
expect(permissions.getBuiltinPermissionByID("public")).toEqual(
|
|
142
|
-
expectedPermission
|
|
143
|
-
)
|
|
144
|
-
})
|
|
145
|
-
})
|