* 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>
* qa-core-ci-fixes
* global setup and teardown wip
* Updates to logs and setup
* Remove date and console mocking
* Update CI to spin up minimal dev env
* Update readme
* Fix scopeBackend.sh
* Ensure docker services are initialised before starting worker
* Lint
* Fix admin user being created on startup (#10219)
* use regular bootstrap and build
* Lint
* Temp: re-use global setup to get around app limit in QA
* Simplify errors framework
* Use enum for ErrorCode
* Lint
* Update base BudibaseError type to use enum
* For for public error on UsageLimitError
* Build fix
* Build fix
* Rotatable secrets
* Set new api encryption key var
* Lint
* Use fallback keys instead of array
* Point api encryption key to dedicated value
* Add API_ENCRYPTION_KEY to cli
* Lint + add api encryption key to env files
* 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
* 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
* 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>
* Correlation id's and log context
* fix build
* Remove redundant fields from LoggingProcessor.ts
* Only log correlation id when present e.g. this is not present on startup / shutdown / automations
- 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
* Doing sanitizeKey when doing deleteFile(s)
Doing sanitizeKey when doing deleteFile(s).
In case of backup file name in backups bucket backup-2023-01-03T185512.686Z.tar.gz but in global-db store backup filename is backup-2023-01-03T18:55:12.686Z.tar.gz
sanitizeKey on deleteFile(s) method will prevent all other case related to this bug
* use .promise() instead callback for workaround aws-sdk bug
* fixes for google sheets, admin checklist, and deleting an app from API
* code review
* splitting unpublish endpoint, moving deploy endpoint to applications controller. Still to do public API work and move deployment controller into application controller
* updating REST method for unpublish in API test
* unpublish and publish endpoint on public API, delete endpoint unpublishes and deletes app
* removing skip_setup from prodAppDb call
* removing commented code
* unit tests and open API spec updates
* unpublish, publish unit tests - delete still in progress
* remove line updating app name in API test
* unit tests
* v2.1.46
* Update pro version to 2.1.46
* v2.2.0
* Update pro version to 2.2.0
* Fix for budibase plugin skeleton, which utilises the old import style.
* Fix side nav styles
* v2.2.1
* Update pro version to 2.2.1
* using dist folder to allow importing constants for openAPI specs
* v2.2.2
* Update pro version to 2.2.2
* Fix for user enrichment call (updating to @budibase/nano fork) (#9038)
* Fix for #9029 - this should fix the issue users have been experiencing with user enrichment calls in apps, essentially it utilises a fork of the nano library we use to interact with CouchDB, which has been updated to use a POST request rather than a GET request as it supports a larger set of data being sent as query parameters.
* Incrementing Nano version to attempt to fix yarn registry issues.
* v2.2.3
* Update pro version to 2.2.3
* Fix SQL table `_id` filtering (#9030)
* Re-add support for filtering on _id using external SQL tables and fix filter key prefixes not working with _id field
* Remove like operator from internal tables and only allow basic operators on SQL table _id column
* Update data section filtering to respect new rules
* Update automation section filtering to respect new rules
* Update dynamic filter component to respect new rules
* v2.2.4
* Update pro version to 2.2.4
* lock changes (#9047)
* v2.2.5
* Update pro version to 2.2.5
* Make looping arrow point in right direction (#9053)
* v2.2.6
* Update pro version to 2.2.6
* Types/attaching license to account (#9065)
* adding license type to account
* removing planDuration
* v2.2.7
* Update pro version to 2.2.7
* Environment variable type coercion fix (#9074)
* Environment variable type coercion fix
* Update .gitignore
* v2.2.8
* Update pro version to 2.2.8
* tests passing
* all tests passing, updates to public API response
* update unpublish call to return 204, openAPI spec and unit
* fixing API tests
Co-authored-by: Budibase Release Bot <>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Andrew Kingston <andrew@kingston.dev>
Co-authored-by: melohagan <101575380+melohagan@users.noreply.github.com>
Co-authored-by: Rory Powell <rory.codes@gmail.com>
* v2.1.46
* Update pro version to 2.1.46
* v2.2.0
* Update pro version to 2.2.0
* Fix for budibase plugin skeleton, which utilises the old import style.
* Fix side nav styles
* v2.2.1
* Update pro version to 2.2.1
* using dist folder to allow importing constants for openAPI specs
* v2.2.2
* Update pro version to 2.2.2
* Fix for user enrichment call (updating to @budibase/nano fork) (#9038)
* Fix for #9029 - this should fix the issue users have been experiencing with user enrichment calls in apps, essentially it utilises a fork of the nano library we use to interact with CouchDB, which has been updated to use a POST request rather than a GET request as it supports a larger set of data being sent as query parameters.
* Incrementing Nano version to attempt to fix yarn registry issues.
* v2.2.3
* Update pro version to 2.2.3
* Fix SQL table `_id` filtering (#9030)
* Re-add support for filtering on _id using external SQL tables and fix filter key prefixes not working with _id field
* Remove like operator from internal tables and only allow basic operators on SQL table _id column
* Update data section filtering to respect new rules
* Update automation section filtering to respect new rules
* Update dynamic filter component to respect new rules
Co-authored-by: Martin McKeaveney <martin@budibase.com>
Co-authored-by: Budibase Release Bot <>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Martin McKeaveney <martinmckeaveney@gmail.com>
* 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
* 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>