Commit Graph

139 Commits

Author SHA1 Message Date
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 ada052e043 Merging in develop - fixing some test cases which broke in the process. 2023-04-12 10:56:21 +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
adrinr c0d7f2329a Extract valid email util 2023-04-03 16:42:30 +01:00
Adria Navarro e1669c8260 Merge pull request #10022 from Budibase/feature/scim
Feature - SCIM endpoints
2023-04-03 13:22:01 +02:00
mike12345567 75baba76d6 Resolving PR comments. 2023-03-31 11:38:09 +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 32c78ec9bf This makes it so that Googlesheets works correctly as part of onboarding in the Cloud, in self host the googlesheets onboarding option has been hidden as it is too complex to get the user to setup the correct integrations with their google account while doing the first time onboarding to an app. 2023-03-29 19:58:24 +01:00
adrinr 099cc145bf Clean code 2023-03-28 16:46:23 +01:00
adrinr 6df08799bb Add isScim to user created event 2023-03-28 16:46:23 +01:00
adrinr f65ded4282 Allow bearer token for auth 2023-03-28 16:46:22 +01:00
mike12345567 39bfbdfac1 PR comments. 2023-03-16 16:49:31 +00:00
mike12345567 29fc91d6d1 Making it obvious that API key is invalid - error otherwise is quite cryptic. 2023-03-15 17:26:21 +00:00
Rory Powell e116941750 Rotatable secrets (#9982)
* 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
2023-03-13 15:02:59 +00:00
Rory Powell c83684ed83 Prevent showing user exists for password disabled actions 2023-03-01 14:49:44 +00:00
Rory Powell 312c01a879 Prefer default config for google sheets in cloud, don't use env vars for regular auth 2023-02-28 10:36:29 +00:00
mike12345567 2fb33e2cf3 Merge branch 'develop' of github.com:Budibase/budibase into feature/audit-logs 2023-02-27 14:51:33 +00:00
mike12345567 a293d3842f Fixing build issue. 2023-02-24 13:55:36 +00:00
mike12345567 58fab29fb4 Main body of PR comments. 2023-02-24 13:32:45 +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
mike12345567 01076bd35f Getting downloading working correctly, some minor UI updates, adding a new middleware for converting a query string to a body (useful for when a GET has to be used). 2023-02-22 18:50:27 +00:00
mike12345567 22f42ef898 Adding new mechanism to get the ipAddress and userAgent of call for audit logs. 2023-02-21 19:14:57 +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 a57f0c9dea Merge branch 'develop' into rory/february 2023-02-20 09:57:17 +00:00
Rory Powell bb1faac62a Merge master into develop 2023-02-15 15:10:02 +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 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
Adria Navarro 6ac57d424c Don't log on CI 2023-02-04 21:04:40 +00:00
adrinr 11a7742d90 Cleanup 2023-02-03 19:23:36 +00:00
adrinr 1d8c27bdc4 Increase timeout 2023-02-01 12:29:03 +00:00
adrinr 1dabf71f68 Run conflicting tests in sequential mode 2023-01-30 13:35:09 +00:00
adrinr e4c898c327 Use test-containers for backend-core tests 2023-01-27 11:43:36 +00:00
Rory Powell e5e767f18d Correlation id's and log context (#7232)
* 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
2023-01-11 20:39:33 +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
mike12345567 20984e8072 Some fixes based on test failure. 2022-12-07 17:33:26 +00:00
mike12345567 3a6200144a Fix for account portal. 2022-11-28 14:09:18 +00:00
mike12345567 90362b65c1 Disabling js interop in Typescript build of backend-core and worker, fixing build issues. 2022-11-26 14:46:01 +00:00
mike12345567 d3c4c99e16 Complete conversion of backend-core to Typescript. 2022-11-24 18:48:51 +00:00
mike12345567 f5760b6601 Fixes post merge. 2022-11-16 18:28:45 +00:00
mike12345567 29dd98a7fc Merge branch 'develop' of github.com:Budibase/budibase into feature/replace-pouch 2022-11-16 18:12:31 +00:00
mike12345567 535fab7997 Some major reworks towards higher levels of typescript. 2022-11-16 17:23:12 +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