Commit Graph

193 Commits

Author SHA1 Message Date
mike12345567 8253ad0a2e Merge branch 'develop' of github.com:Budibase/budibase into feature/BUDI-7052 2023-07-26 14:24:29 +01:00
Adria Navarro 3ce92e8034 Implement and test external field selector 2023-07-25 19:48:46 +02:00
Adria Navarro 67f502579e Test schema 2023-07-25 19:48:46 +02:00
mike12345567 c375f860ba Merge branch 'develop' of github.com:Budibase/budibase into feature/BUDI-7052 2023-07-24 13:46:49 +01:00
Rory Powell 2645e4cdad Build fixes 2023-07-20 14:56:01 +01:00
mike12345567 91847504c8 Adding test cases for admin/builder checking middlewares. 2023-07-18 18:10:15 +01:00
Rory Powell 4a38d55ce8 Lint 2023-07-14 16:55:48 +01:00
Rory Powell 3326d061f1 core structure updates 2023-07-14 11:44:05 +01:00
Rory Powell 41dc86436c Add structures for Installation type 2023-07-14 09:21:23 +01:00
Rory Powell 1371a009a8 use automocking in offline.spec.ts 2023-07-13 22:06:52 +01:00
Rory Powell 052a74f1d7 offline license structure 2023-07-13 21:53:05 +01:00
Peter Clement d271bbdadb rename syncWebHooks to syncAutomations 2023-05-19 10:07:02 +01:00
Peter Clement c86c2b4096 add synchronous webhook functionality 2023-05-12 15:57:34 +01:00
Rory Powell 9647ac5dee Create hubspot expansions and churns as users are added and deleted 2023-05-02 20:08:51 +01:00
Rory Powell 38d0fd943a Remove business minimum quantity from backend 2023-04-29 22:06:41 +01:00
Rory Powell 56f43d3f45 Hubspot updates (#10442)
* Hubspot updates for per user pricing

* Lint
2023-04-28 11:12:04 +01:00
Rory Powell a20dfa588a Type updates for plan changed event 2023-04-27 21:58:42 +01:00
Rory Powell ec06f13aa6 Per user pricing (#10378)
* Update pro version to 2.4.44-alpha.9 (#10231)

Co-authored-by: Budibase Staging Release Bot <>

* Track installation and unique tenant id on licence activate (#10146)

* changes and exports

* removing the extend

* Lint + tidy

* Update account.ts

---------

Co-authored-by: Rory Powell <rory.codes@gmail.com>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>

* Type updates for loading new plans (#10245)

* Add new quota for max users on free plan

* Split available vs purchased plan & price type definitions. Update usages of available prices and plans

* Type fixes

* Add types for minimums

* New `PlanModel` type for `PER_USER` and `DAY_PASS` (#10247)

* Add new quota for max users on free plan

* Split available vs purchased plan & price type definitions. Update usages of available prices and plans

* Type fixes

* Add types for minimums

* New `PlanModel` type for `PER_USER` and `DAY_PASS`

* Add loadEnvFiles to lerna config for run command to prevent local test failures

* Fix types in license test structure

* Add quotas integration to user create / delete + migration (#10250)

* Add new quota for max users on free plan

* Split available vs purchased plan & price type definitions. Update usages of available prices and plans

* Type fixes

* Add types for minimums

* New `PlanModel` type for `PER_USER` and `DAY_PASS`

* Add loadEnvFiles to lerna config for run command to prevent local test failures

* Fix types in license test structure

* Add quotas integration to user create / delete

* Always sync user count from view total_rows value for accuracy

* Add migration to sync users

* Add syncUsers.spec.ts

* Lint

* Types and structures for user subscription quantity sync (#10280)

* Add new quota for max users on free plan

* Split available vs purchased plan & price type definitions. Update usages of available prices and plans

* Type fixes

* Add types for minimums

* New `PlanModel` type for `PER_USER` and `DAY_PASS`

* Add loadEnvFiles to lerna config for run command to prevent local test failures

* Fix types in license test structure

* Add quotas integration to user create / delete

* Always sync user count from view total_rows value for accuracy

* Add migration to sync users

* Add syncUsers.spec.ts

* Prevent old installs from activating, track install info via get license request instead of on activation.

* Add usesInvoicing to PurchasedPlan

* Add min/max users to PurchasedPlan

* Additional test structures for generating a license, remove maxUsers from PurchasedPlan - this is already present in the license quotas

* Stripe integration for monthly prorations on annual plans

* Integrate annual prorations with test clocks

* Updated types, test utils and date processing for licensing (#10346)

* Add new quota for max users on free plan

* Split available vs purchased plan & price type definitions. Update usages of available prices and plans

* Type fixes

* Add types for minimums

* New `PlanModel` type for `PER_USER` and `DAY_PASS`

* Add loadEnvFiles to lerna config for run command to prevent local test failures

* Fix types in license test structure

* Add quotas integration to user create / delete

* Always sync user count from view total_rows value for accuracy

* Add migration to sync users

* Add syncUsers.spec.ts

* Prevent old installs from activating, track install info via get license request instead of on activation.

* Add usesInvoicing to PurchasedPlan

* Add min/max users to PurchasedPlan

* Additional test structures for generating a license, remove maxUsers from PurchasedPlan - this is already present in the license quotas

* Stripe integration for monthly prorations on annual plans

* Integrate annual prorations with test clocks

* Updated types, test utils and date processing

* Lint

* Pricing/billing page (#10353)

* bbui updates for billing page

* Require all PlanTypes in PlanMinimums for compile time safety

* fix test package utils

* Incoming user limits warnings (#10379)

* incoming user limits warning

* fix inlinealert button

* add corretc button link and text to user alert

* pr comments

* simplify limit check

* Types and test updates for subscription quantity changes in account-portal (#10372)

* Add chance extensions for `arrayOf`. Update events spies with license events

* Add generics to doInTenant response

* Update account structure with quota usage

* User count limits (#10385)

* incoming user limits warning

* fix inlinealert button

* add corretc button link and text to user alert

* pr comments

* simplify limit check

* user limit messaging on add users modal

* user limit messaging on import users modal

* update licensing store to be more generic

* some styling updates

* remove console log

* Store tweaks

* Add startDate to Quota type

---------

Co-authored-by: Rory Powell <rory.codes@gmail.com>

* Lint

* Support custom lock options

* Reactivity fixes for add user modals

* Update ethereal email creds

* Add warn for getting invite from code error

* Extract disabling user import condition

* Handling unlimited users in modals logic and adding start date processing to store

* Lint

* Integration testing fixes (#10389)

* lint

---------

Co-authored-by: Mateus Badan de Pieri <mateuspieri@gmail.com>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Peter Clement <PClmnt@users.noreply.github.com>
2023-04-24 09:31:48 +01:00
mike12345567 3b03766f9e Adding plugin validation unit tests. 2023-04-18 16:36:03 +01:00
mike12345567 ada052e043 Merging in develop - fixing some test cases which broke in the process. 2023-04-12 10:56:21 +01:00
adrinr f882993091 Name and its fields are optional 2023-04-11 16:12:18 +01:00
Rory Powell 976b3a55ca Update logging to support dd trace attributes (#10086)
* Update logging middleware to integrate with pino for console logging

* Remove elastic apm references, use updated core middlewares

* Remove redundant LOG_LEVEL definitions

* Remove no longer needed jest logging overrides

* lint

* Backwards compat between console log helpers and pino

* Configurable DISABLE_HTTP_LOGGING

* Don't log 4xx as errors

* Remove redundant ENABLE_4XX_HTTP_LOGGING

* Cleanup migrations and event logging

* Improve bb-alert logging

* Add DISABLE_HTTP_LOGGING to helm chart

* Add ops endpoints for testing

* Disable http logging in dev

* Backwards compatible tracing implementation

* Naming update on http logging env var

* lint

* Update packages/backend-core/src/environment.ts

Co-authored-by: Adria Navarro <adria@revityapp.com>

* Merge

* Lint

* Fix console.warn failing mock by replacing with alerts mock instead

* Lint

---------

Co-authored-by: Adria Navarro <adria@revityapp.com>
2023-04-04 15:08:46 +01:00
Adria Navarro e1669c8260 Merge pull request #10022 from Budibase/feature/scim
Feature - SCIM endpoints
2023-04-03 13:22:01 +02:00
Adria Navarro cfb93063b2 Merge pull request #10153 from Budibase/budi-6803-delete-users-when-group-removed
BUDI-6803 - Remove users that should not be there anymore when syncGlobalUsers
2023-03-31 13:15:11 +02:00
mike12345567 b19df9da22 Some final updates to get event spyOn working again. 2023-03-30 17:15:49 +01:00
mike12345567 24fc72657d Fixing all broken test cases after breaking out context fully from jestSetup/backend-core jest loading. 2023-03-30 16:35:25 +01:00
mike12345567 47897c8afa Basic moving around of assets. 2023-03-30 16:07:59 +01:00
mike12345567 d6f38bc0ba Merge branch 'develop' of github.com:Budibase/budibase into test/coverage-bckend-core 2023-03-30 14:14:25 +01:00
Mateus Badan de Pieri 02f33b59bb changing url 2023-03-30 13:42:04 +01:00
Rory Powell 38e6d61709 Explictly check for google datasource configured (#10165)
* Explictly check for google datasource configured

* Unit tests for getGoogleDatasourceConfig

* Update /api/global/configs/public test + lint
2023-03-30 13:40:59 +01:00
Mateus Badan de Pieri 0c10803cd9 Create file and function to AddTenantToUrl 2023-03-30 13:38:17 +01:00
adrinr efff31e181 Test user groups 2023-03-29 17:02:56 +01:00
adrinr 62cd6a43f2 Remove "duplicated" events 2023-03-28 16:46:23 +01:00
adrinr 31eaa36883 Unify create events 2023-03-28 16:46:23 +01:00
adrinr 26f077cc1c Event on delete 2023-03-28 16:46:23 +01:00
adrinr cbadf69a29 Dispatch event on user update 2023-03-28 16:46:23 +01:00
adrinr 7840470d83 Add create test 2023-03-28 16:46:23 +01:00
adrinr 344a34ac7c Fix build errors 2023-03-28 16:46:23 +01:00
adrinr 4ac682a3c2 Move creators to structures 2023-03-28 16:46:22 +01:00
adrinr beb4118582 Renames 2023-03-28 16:46:22 +01:00
adrinr f62647f284 Feature tests 2023-03-28 16:46:22 +01:00
mike12345567 cf5316ec8d General fixes for open handles, attempting to find and close all issues in server which are stopping shutdown of Jest suite. 2023-03-27 19:38:49 +01:00
mike12345567 82286d519f Fixing some issues with test cases. 2023-03-21 17:27:31 +00:00
adrinr 4d854ea5a7 Merge remote-tracking branch 'origin/develop' into bug/budi-5901-usage-quota-document-conflicts-can-cause 2023-03-07 12:41:58 +01:00
Rory Powell 51b5dc98b4 Account portal no passwords sso (#9861)
* Structures and types updates for account-portal-no-passwords-sso

* lint
2023-03-02 14:38:15 +00:00
adrinr dded8beaeb Fix writethrough falling behind 2023-03-01 13:16:57 +01:00
adrinr c254c565e4 Use redlock for writethrough 2023-02-28 14:54:34 +01:00
mike12345567 6fac00b3de Attempting to fix issues where wrong port is picked for test containers, occurred a lot locally. 2023-02-27 21:19:07 +00:00
mike12345567 2fb33e2cf3 Merge branch 'develop' of github.com:Budibase/budibase into feature/audit-logs 2023-02-27 14:51:33 +00:00
Rory Powell 2c46109e7d Enforceable SSO (#9787)
* Add ENFORCEABLE_SSO feature flag

* First draft of enforce sso configuration / show single sign on url

* Reading and writing isSSOEnforced + integration with login page

* Enable CI + lint

* Set correct base branch for CI

* Test fix for expected string changed

* Use tenant aware platform url as SSO link

* Bring in latest pro changes

* Lint

* Add useEnforceableSSO mock helper function

* Update configs.spec.ts with coverage for public settings

* Update users.spec.ts with additional tests for isPreventPasswordActions

* Lint

* Update refresh OAuthToken to use correct enum and add case statement
2023-02-27 13:42:51 +00:00
mike12345567 d6b0b7610a Fixing circular dependencies which were blocking tests. 2023-02-24 17:31:58 +00:00
mike12345567 0b48075688 Implementing a few basic tests to create and search the audit logs. 2023-02-23 17:23:06 +00:00
Rory Powell d3a7286711 Configs updates: remove circular deps, dedicated module, typing improvements, reduce db reads 2023-02-23 13:41:35 +00:00
Rory Powell 940de8b6a0 Run CI steps in parallel (#9760)
* Parallel CI

* Add build to integration test

* Add checkout to top of each run

* Revert branch update for ci job

* Experiment with --runInBand for CI

* Fix intermittent backend-core migration test failure

* Fix hanging worker redis connection

* Update naming from reset to newTenant
2023-02-21 17:13:24 +00:00
Rory Powell cacf275a99 Prevent SSO users from setting / resetting a password (#9672)
* Prevent SSO users from setting / resetting a password

* Add support for ENABLE_SSO_MAINTENANCE_MODE

* Add typing to self api and build out user update sdk

* Integrate sso checks with user sdk. Integrate user sdk with self api

* Test fixes

* Move self update into SDK

* Lock down maintenance mode to admin user

* Fix typo

* Add health status response and return type signature to accounts.getStatus

* Remove some unnecessary comments

* Make sso save user function non optional

* Remove redundant check on sso auth details provider

* Update syncProfilePicture function name to getProfilePictureUrl

* Update packages/worker/src/sdk/users/events.ts

Co-authored-by: Adria Navarro <adria@revityapp.com>

* Add ENABLE_EMAIL_TEST_MODE flag

* Fix for logging in as sso user when existing user has password already

* Hide password update and force reset from ui for sso users

* Always disable sso maintenance mode in cloud

---------

Co-authored-by: Adria Navarro <adria@revityapp.com>
2023-02-21 08:23:53 +00:00
Rory Powell cc7eb64a3b Rename LOG_4XX to ENABLE_4XX_HTTP_LOGGING and enable by default 2023-02-13 14:39:24 +00:00
Rory Powell 0e3a17ab18 Merge pull request #9669 from Budibase/budi-6558-configurable-test-log-levels-and-common
Configurable test log levels and common error handling
2023-02-13 14:31:43 +00:00
Rory Powell eb5aa8786d Merge pull request #9670 from Budibase/budi-6559-enable-higher-concurrency-and-resiliency
Enable higher concurrency and resiliency in worker tests
2023-02-13 14:31:14 +00:00
Rory Powell 07e5598538 Enable use of redis container in worker tests 2023-02-13 12:09:16 +00:00
Rory Powell ae9979929a Enable higher concurrency and resiliency in worker tests 2023-02-13 11:57:30 +00:00
Rory Powell 5cd6cb166a Configurable test log levels and common error handling 2023-02-13 11:53:01 +00:00
Mateus Badan de Pieri 89bad2d45a Merge branch 'develop' into tests/environment-variables 2023-02-07 16:15:57 +00:00
Adria Navarro 4908cc5387 Spin up postgres only on the postgres test 2023-02-06 19:43:08 +00:00
adrinr 7d3c24d257 Add pg test container 2023-02-06 13:07:21 +00:00
adrinr 11a7742d90 Cleanup 2023-02-03 19:23:36 +00:00
adrinr 2e29ac9ec7 Rename name for id 2023-02-03 12:09:56 +00:00
adrinr 5d58fc5948 Dry 2023-02-03 11:28:27 +00:00
adrinr e6dda787ae Fix possible nulls 2023-02-01 15:02:31 +00:00
mike12345567 263d588191 Environment variable test base. 2023-01-31 15:27:16 +00:00
adrinr dd2a05fdcb Looking for testcontainer config 2023-01-31 11:23:26 +00:00
adrinr 2b8190418c Log as error 2023-01-31 10:30:57 +00:00
adrinr 9536111811 Add more logs 2023-01-31 10:21:19 +00:00
adrinr 08a2e77871 Fix jest.setup 2023-01-30 18:18:23 +00:00
adrinr e4c898c327 Use test-containers for backend-core tests 2023-01-27 11:43:36 +00:00
Rory Powell e95222c0f4 Prefer app url resolution over referer (#9218)
* Prefer app url resolution over referer

* Update lockfiles
2023-01-11 10:24:57 +00:00
Rory Powell fba7ef26ad Replace ts-jest with swc/jest (#9289)
- Add swc dependencies
- Add transform change to jest.config.ts
- Replace `export =` with `export default` in src code to enable code coverage to work with swc transformer
- Restructure backend-core errors package to allow for exporting error classes with ESM syntax
- Update backend-core to no longer use `export =`, export individual packages instead of replacing with `export default` for backwards compatibility
- Update event publishers to use `export default` - this was required for the `jest.spyOn` usage inside backend-core common mocks
- Restructure some jest.mock usages where declaring the jest.fn as a variable outside of the package mock threw an error
2023-01-11 09:37:37 +00:00
Rory Powell 786039055e File authentication using presigned URLs (#8883)
* file auth wip

* Private plugin bucket wip

* Add etag to logo request, fix circular dependency

* Resolve cyclic dependency

* Ensure browser doesn't cache custom component

* Global file fixes

* File fixes / remove permaUrl

* Add ctx local storage

* Enable presigned url to work from any host

* Test fix

* Self hosting w/ S3 + other fixes

* Fix for serving dev app in multi tenant

* Fix backup restore and import attachment url processing, never store attachment urls

* Test fixes

* Unit tests WIP

* Replace file path with base64 encoded private key

* Multi tenancy tests for files

* Environment files fixes

* Post-merge build and test fixes

* Add debug conditional to all jest logging and revert/fix prod minio proxy_pass

* Re-add default '/' minio route :(

* Rename iconFile -> iconFileName

* Add cloudfront vars to k8s templates

* Remove public bucket policy

* Remove duplicated test
2022-12-15 11:35:22 +00:00
Rory Powell f935f05509 Offline license POC (#9046) 2022-12-14 21:48:48 +00:00
Peter Clement 9d841bc947 Server and Worker tests (#8928)
* automation unit tests

* row processor tests

* update executeQuery test

* update groups assertion

* some more worker tests

* plugin tests and tidying up

* linting

* temporarily disable group tests

* more tests

* fix import

* fix backup tests

* add pro mocks to worker

* check for app existence in import test

* test new tsconfig

* testing changes

* Pro test utils (#9020)

* Pro test utils changes

* Add test fixes

* Remove ts-ignore

Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Rory Powell <rory.codes@gmail.com>
2022-12-12 22:02:32 +00:00
Rory Powell adbf90887e Test fixes 2022-11-16 13:06:30 +00:00
Rory Powell 9c169087e6 Add copy button to sso callback urls, e2e unit testing for OIDC, stub out other auth tests 2022-11-16 11:34:16 +00:00
Rory Powell 1612044dc1 Merge branch 'develop' into subdomain-tenancy 2022-11-15 16:18:59 +00:00
Rory Powell f48ff01045 ensure fetch and aws are always mocked 2022-11-15 15:50:15 +00:00
Rory Powell 9973f2e161 Bump jest and ts-jest to be consistent across backend packages to fix CI issue, test config updates 2022-11-14 22:55:47 +00:00
Rory Powell c6fba4de3d Test fixes 2022-11-11 15:43:41 +00:00
Rory Powell 72562278c0 Support path variable tenancy detection, add /api/system/* tests, update no tenancy matchers to be more accurate 2022-11-11 11:10:07 +00:00
Rory Powell aff6e5cbbb Process quota emails in account-portal 2022-10-06 16:03:47 +01:00
Rory Powell 59a53736ac update bulk create and bulk delete backend 2022-08-25 19:41:47 +01:00
Rory Powell cc9bc937b6 Reduce event frequency 2022-08-08 10:47:39 +01:00
Peter Clement dca37a61da adding tests and pr comments 2022-07-27 10:20:39 +01:00
Rory Powell 3da4fb33cd Better handle first time startup + dedicated event 2022-06-15 11:20:13 +01:00
Rory Powell 12aa9fa1ce Dev improvements - remove need to rebuilds of backend-core/dist and enable debugging when running tests and backend services, use source directly using typescript and jest path mappings 2022-06-10 22:57:12 +01:00
Rory Powell 0cf777a0cd Build fixes 2022-06-09 12:33:10 +01:00