* 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>
* Add WIP spreadsheet
* Add footer and improve styles
* Refactor to use IDs and support changing text values inline
* Add inline editing of options fields
* Add row deletion and fix sizing
* Add ability to add new rows
* Fix z-index issue with option cells
* Remove deletion notification and fix selection
* Add gap between items in an options cell
* Tweak options cell to be pixel perfect
* Fix padding around sheet not working when scrolling
* Add resizable columns and add support for all themes
* Allow multiselect component and field to support text values
* Generate inclusion schema when importing multiselect columns
* Add support for multiselect type
* Add number cell
* Add functional date cell
* Disable editing autocolumns
* Make sticky column the primary display and fix opening options cells
* Improve display of relationship cell and options cell
* Support empty dates and use CSS variables for easier styling
* Use more CSS variables and add utils to spreadsheets
* Add drag and drop column reordering
* Break out reordering logic into new stores
* Rename reordering to reorder
* Break out other components from spreadsheet for cleaner code
* Break out spreadsheet body into its own component
* Split into more modular components and try virtual rendering
* Test absolute positioning
* Optimise virtual rendering for both columns and rows to handle infinitely large datasets
* Optimise scrolling and virtual rendering performance
* Fix columnn reordering
* Migrate sheet to data section, improve reordering and reszing
* Clean up more sheet state and increase performance
* Fix multiple issues with z-index, reordering and resizing
* Fix date cells in sheets
* Separate data fetching logic from main sheet and tidy up
* Add infinite scroll, improve row fetching, add error handling, fix svelte store updates
* Fix overly thin scrollbars in firefox
* Use nicer checkboxes and fix some hover styles
* Fix issue reordering columns in firefox and increase performance
* Tidy up
* Use search endpoint instead of get endpoint to fetch individual rows so that relationship enrichment occurs
* Tidy up
* Fix relationship issues when creating rows
* Optimise resetting data to smoothly transition when changing datasource
* Add WIP virtual dom implementation to massively increase performance
* Refactor spreadsheet into more discreet components
* Fix multiple issues, clean up rendering, improve performance
* Tune cell sizes
* Fix some scroll issues and add shadow to sticky column
* Fix issue when no primary display is set
* Add padding to sheet
* Improve styles
* Allow reordering columns to be the first column after sticky column
* Fix row hover state not being removed
* Update hovered row on wheel
* Update scroll styles and z-index
* Improve scroll logic and handle horizontal wheel events
* Simplify and improve z index styles
* Fix styles when using no sticky columns
* Improve rendering performance
* Improve performance by removing keyed each blocks and fix reorder target styling
* Ensure scroll top is always properly reset and add config store
* Allow configuring selecting rows and adding rows
* Integrate sheet into data section better
* Add back in functional delete row button
* Refactor stores and make state more modular
* Lint and remove unused deps
* Remove add column button
* Fix options cells being unable to scroll
* Add WIP initial multi-user websocket implementation for sheets
* Add WIP multi-user UI for sheet interface
* Fix issues with not disconnecting users when swapping datasource and improve multi-user UI
* Update layout and remove logging
* WIP column popovers for dataspace sheets
* Add popovers to sheet column headers, improve mouse UX
* Tidy reordering stuff
* Refactor resizing logic into store and improve UX around hover events when resizing/reordering
* Add column sorting and reordering via popover
* Handle context menu events in header cells
* Fully integrates sheets with datasection and remove lots of old stuff
* Fix buttons being highlighted when filters are set
* Add flags for controlling editing and adding rows in sheets
* Count context menu clicks when considering the click outside handler
* Prevent adding rows to users table and remove log
* Expose loading state of sheet and improve column highlighting logic
* Small style updates
* Update delete button and allow horizontal scrolling
* Add context menu to sheets with deletion and duplication features
* Improve UX around selecting rows and cells
* Add basic keyboard interactions to dataspaces
* Improve keyboard navigation in sheets
* Remove unnecessary searching through large rows array
* Fix issue with deleting rows and fix relationship cells displaying undefined
* Improve loading state
* Update menu width
* Merge with new shared-core and moved lucene utils
* Improve rendering performance and simplify component props
* Remove new row component and improve mouse interactions
* Tidy up buttons above sheets and add FAB for adding rows
* Optimise sheet data loading and add sort button
* Update sorting and remove logs
* Add sheet button to control column visibilty, improve sorting, improve disabled states
* Fix bug with select placeholders and fix sorting loops causing endless refreshes
* Update filter button to look consistent and add double click to resize columns to default width
* Ensure all derived stores have default values
* Reset scrolling when datasource changes and fix wasted pagination calls
* Improve performance by removing searches through the full row array
* Add advanced key handling for spreadsheets and improve blur and focus UX
* Ensure the selected cell is always visible
* Add icons for all data types
* Add new long form text cell
* Add boolean cell
* Add ability to focus first cell via tab
* Add cells for formulae and JSON
* Remove console logs
* Add attachment cell
* Increase padding to account for attachment dropdown
* Prevent deleting autocolumns via keyboard
* Fix attachments overflowing
* Improve sort button, remove header more icons unless hovered and highlight sorted column
* Add functional relationship cell
* Improve relationship cell
* Fix race conditions and edge cases in relationship cell
* Update user avatar colours
* Improve preservation of column widths in sheets when making schema changes
* Remove redundant sheet schema context and fix issues with mutating table schema
* Disable websocket in sheets
* Rollback state changes when row saving fails
* Fix one-to-many relationships allowing selecting multiple rows on both sides
* Remove log
* Make sheet gutter width customisable
* Allow expanding rows using existing edit row modal
* Fix text cell not using full width
* Sort columns to put autocolumns last
* Add new footer for adding rows, improve store memoization, support inverting all data types
* Improve animations for adding rows and handle add row failure
* Ensure all sheet feature flags work as expected and fix multi row deletion
* Fix options ordering
* Fix add row button not appearing when horizontal scrollbar is hidden
* Fix selecting newly created rows
* Remove log and add notification when creating or editing columns
* Move new row component to top, automatically invert cell renderers when required
* Add resizable rows
* Fix overlapping long form text borders
* Fix scroll not working in new row
* Update new row component, fix z-index issues, improve UX
* Large refactors to row creation, naming and sheet APIs
* Refactor stores to fix dependency issues, use modals for adding rows, simplify sheet
* Fix resize overlays
* Add custom colors for drop shadows and blue-100 to all themes, fix sticky column shadow
* Increase horizontal padding when scrolling to a selected cell
* Add multiple validation improvements
* Add validation to duplicating rows
* Remove log
* Restore missing event handler
* Improve data fetch reset logic, fix issues with stale cache in spreadsheets
* Fix issue with cell colors, improve row API interactions to avoid relationship issues due to API response differences
* Fix filters not working
* Simplify logic for reordering and add new overlay. Simplify sheet cells
* Fix importing and exporting with sheets
* Fix reorder overlay z-index issue
* Fix issue when no display column exists
* Fix issue with display column not being able to be unset
* Add persitence to column size and order in sheets
* Improve sheet integration with data section and add horizontal cell inversion
* Fix double click resizing of sticky column
* Make column visibility persistent and refactor column updating
* Improve sheet loading states
* Add beta button to sheet, tidy up constants
* Work around table API inconsistencies to handle table schema updates
* Add additional reorder options and improve beta button
* Improve sorting
* Add copy and paste to spreadsheet and add immediate editing of cells without additional click
* Remove copy/paste rows, remove move to start/end, improve copy/paste for cell values
* Fix dependency ordering
* Refactor other sheet stores to improve dependency ordering
* Fix errors not showing in sticky column and clear cell value on backspace press
* Rewrite relationship cell and update default column widths
* Ensure dynamic row height is properly accounted for
* Update text cells, number cells, long form field cells and relationship cells to respect row height
* Fix row heights with sticky column
* Update JSON, boolean and date cells to respect row height
* Update attachment cell to respect row height
* Use unique background for focused cell
* Standardise shadows across cell types
* Persist row height as table metadata
* Improve a few design issues
* Clean up
* Fix relationship cells not being readonly
* Lint
* Fix icon padding in relationship picker
* Improve styles in relationship dropdown
* Update shadow
* Update relationship icons
* Update relationship icons
* Update error label max size and position
* Prevent using invalid data types as display columns
* Add menu option to edit rows in modal
* Prevent sheet handling key events sourcing from modals
* Standardise menu overlay shadow and add count to relationship cells when hovering
* Improve relationship cell performance
* Remove spellcheck from text fields
* Fix resize overlay handler height
* Fix reorder overlay height
* Remove unused code and change selected table faster in data section
* Fix table selection not working when on datasource page
* Improve sheet loading state
* Add rowHeight property to table types
* Restore builder middleware
* Remove any naming of dataspaces
* Lint
* Disable row import button for users table and add optional chaining to spreadsheetsocket invocations to fix tests
* Use unique user edit modal for editing users in sheets
* Add schemaOverrides prop to sheet and use it to customise user table schema
* Update number icon
* Fix primary display column not properly disabling certain menu options
* Merge
* Update beta button position slightly
* Update beta button text
* Fix HMR for custom plugins which was broken due to signed minio links
* Add maze link to grid
* Update koa <> socket.io integation to improve fake koa context and allow current app middleware
* Rename sheet to grid
* Fix menu postiion, fix copy and paste in menu not working
* Remove commented out usages of websocket emissions for grid
* 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
* Add force exit, -e flag and streaming to tests
* Temp remove script usage from worker tests
* Revert "Temp remove script usage from worker tests"
This reverts commit 5e0ed2e92d.
* Always fail test
* Ignore server test package from coverage report
* Unscope server only
* Run all server tests again
* Update backend core test script to fail when any command fails and force exit
* Don't try to require client in test
* Port memory limit fix from develop
* Remove always failing test and commented out block for client require
* Fixing some issues with test cases.
* Revert assertions in internalSearch.spec.js
---------
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
* 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 full undo/redo support for screens
* Add loading states to disable spamming undo/redo
* Add keyboard shortcuts for undo and redo
* Fix modals not closing in design section when escape is pressed
* Remove log
* Add smart metadata saving to undo/redo
* Add error handling to undo/redo
* Add active state to hoverable icons
* Fix screen deletion
* Always attempt to get latest doc version before deleting in case rev has changed
* Move undo listener top level, hide controls when on certain tabs, and improve selection state
* Add tooltips to undo/redo control
* Update automation section nav to match other sections
* Fix automation list padding
* Fix some styles in create automation modal
* Improve automation section styles and add undo/redo
* Update styles in add action modal
* Fix button size when creating admin user
* Fix styles in add automation step modal
* Fix issue selecting disabled automation steps
* Reset automation history store when changing app
* Reduce spammy unnecessary API calls when editing cron trigger
* WIP automation refactor
* Rewrite most automation state
* Rewrite most of the rest of automation state
* Finish refactor of automation state
* Fix selection state when selecting new doc after history recreates it
* Prune nullish or empty block inputs from automations and avoid sending API requests when no changes have been made
* Fix animation issues with automations
* Sort automations and refetch list when adding or deleting
* Fix formatting
* Add back in ability to swap between values and bindings for block inputs
* Lint
* Format
* Fix potential issue in design section when selected screen is unset
* Fix automation arrow directions everywhere, tidy up logic and fix crash when using invalid looping
* Lint
* Fix more cases of automation errors
* Fix implicity any TS error
* Respect _id specified when creating automations
* Fix crash in history store when reverting a change on a doc whose ID has changed
* Lint
* Ensure cloneDeep helper doesn't crash when a nullish value is passed in
* Remove deprecated frontend automation test
---------
Co-authored-by: Rory Powell <rory.codes@gmail.com>
* 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>
* Fix options inclusion constrant not being generated when creating a table from file upload
* Fix 0 being treated as null when specifying min and max constraints for number fields
* Sort newly generated option field inclusion constraints
* Revert previous solution and fix problem by removing incorrect local assignment statement
* Add padding to text field input
* Apply padding to modal binding input
* Support relationships in automation bindings
* Trim automation field keys
* Trim automation field name
* Empty string check
* Add checkbox for clearing relationships update row
* Added state for automation field metadata
* clearRelationships updateRow check
* Padding tweak
* Added fields for tls certificate files
* lint
* Only include cert fields if SELF_HOSTED
* lint
* Refactor getSchema function
* Add datasource field group with accordion
* Handle no display column on fieldGroup field
* Override text transform accordian header
* Renamed from TLS to SSL in UI config
* readable flag
* Add accordion component
* Refactor
* Update BB logo to black
* Update top nav bar and core layout
* Add redesign for apps pages
* Update user and groups pages
* More WIP portal redesign!
* Fix top nav colours and fix selected tab not updating
* Remove log
* Update copy on settings pages
* Update and standardise page headers and subtitles, and remove side nav titles
* Update font styles to allow for easy customisation
* Update button styles to always use newStyles, update auth page styles
* Update settings pages to new designs
* Update structure for account pages
* Add initial rewrite of app overview section
* Update config checklist to properly center
* Update app overview version and name/url screens
* Add tooltip to explain why URL cannot be changed until unpublishing
* Update overview automation history tab
* Update overview backups page
* Rewrite app overview access tab
* Update table hover colours
* Remove scrolling from tables when not required and stop selects from updating their own state locally
* Update table styles to support flexible column widths much better
* Fix extremely long strings in breadcrumbs not wrapping
* Fix multiple issues with long text overflow
* Fix flashing in version settings page
* Fix loading bugs in app backups page
* Add sidebar for portal and use it for automation history. Fix multiple overflow and scrolling issues
* Tidy up
* Update user details page to use tables and match designs
* Update users detail page
* Update user and group details pages with new tables
* Fix automation error linking from apps page and improve automation fetching logic in automation history
* Move theme and API key into user profile dropdown instead of settings
* Move settings before account and show plugins for devs
* Convert plugins page to table and update components and modals
* Update links when going back from the builder
* Update plugin search placeholder
* Fix URLs in app overview
* Properly handle text overflow in plugins table
* Remove getting started checklist
* Fix checklist removal and fix profile modal
* Update email details page to match new designs
* Cleanup
* Add licensing and env logic to determine which account links to show
* Update upgrade button URL for cloud accounts
* Update app list to use a more compact style
* Make core page layout responsive and update apps list to be responsive
* Update mobile design of apps page
* Update more pages to be responsive and add mobile specific components
* Refactor main portal page into multiple components
* Update multiple pages to be responsive and improve loading experience
* Make automation history page responsive
* Update backups page to be responsive
* Update pickers to use absolutely positioned root popover so that overflow does not matter
* Fix some responsive styles
* Fix update link in app overview
* Improve dropdown logic
* Lint
* Update click outside handler to handle modals properly
* Remove log
* Fix mobile menu upgrade button not closing menu
* Hide groups page if disabled at tenant level
* Centralise menu logic and show full menu on mobile
* Update app access assignment and fix backups table
* Ensure avatars cannot be squished
* Standardise disabled field text colour
* Allow developer users to access users, groups and usage pages
* Allow readonly access to users and groups for developer users
* Remove logs
* Improve users page loading experience
* Improve responsiveness on apps list page and fix discussions link styles
* Update spacing on user and group detail page and fix usage page showing wrong copy
* Fix logo override not working
* Pin minio version to an old one that supports the fs backend in dev
* Shrink upgrade button
* Shrink user dropdown
* Update assignment modal text
* Remove clickable visual styles from plugins
* Always show groups section in app access page
* Update app overview button styles to include more CTAs
* Hide edit and view links in more menu on overview page unless on mobile
* Make usage stats responsive and fix layout issues
* Add comment to docker-compose config
* 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