# Changelog

## Unreleased

* Added rating field type.
* Fix deleted options that appear in the command line JSON file export.
* Fix subtracting date intervals from dates in formulas in some situations not working.
* Added day of month filter to date field.
* Added gallery view.
* Added length is lower than filter.
* **dev.sh users** Fixed bug in dev.sh where UID/GID were not being set correctly, 
  please rebuild any dev images you are using.
* Replaced the table `order` index with an `order, id` index to improve performance.
* **breaking change** The API endpoint to rotate a form views slug has been moved to
  `/database/views/${viewId}/rotate-slug/`.

## Released (2021-11-25)

* Increase Webhook URL max length to 2000.
* Fix trashing tables and related link fields causing the field dependency graph to
  become invalid.
* Fixed not executing premium tests.

## Released (2021-11-24)

* Fixed a bug where the frontend would fail hard if a table with no views was accessed.
* Tables can now be opened in new browser tabs.
* **Breaking Change**: Baserow's `docker-compose.yml` now allows setting the MEDIA_URL
  env variable. If using MEDIA_PORT you now need to set MEDIA_URL also.
* **Breaking Change**: Baserow's `docker-compose.yml` container names have changed to
  no longer be hardcoded to prevent naming clashes.
* Added a licensing system for the premium version.
* Fixed bug where it was possible to create duplicate trash entries.
* Fixed propType validation error when converting from a date field to a boolean field.
* Deprecate internal formula field function field_by_id.
* Made it possible to change user information.
* Added table webhooks functionality.
* Added extra indexes for user tables increasing performance.
* Add lookup field type.
* Add aggregate formula functions and the lookup formula function.
* Fixed date_diff formula function.
* Fixed a bug where the frontend would fail hard when converting a multiple select field
  inside the row edit modal.
* Added the kanban view.
* New templates:
    * House Search
    * Personal Health Log
    * Job Search
    * Single Trip Planner
    * Software Application Bug Tracker
* Updated templates:
    * Commercial Property Management
    * Company Asset Tracker
    * Wedding Planner
    * Blog Post Management
    * Home Inventory
    * Book Writing Guide
    * Political Campaign Contributions
    * Applicant Tracker

## Released (2021-10-05)

* Introduced new endpoint to get and update user account information.
* Fixed bug where a user could not be edited in the admin interface without providing 
  a password.
* Fixed bug where sometimes fields would not be ordered correctly in view exports.
* Fixed bug where brand-new fields weren't included in view exports.
* Fixed error when pasting into a single select field.
* Pasting the value of a single select option into a single select field now selects the
  first option with that value.
* The API now returns appropriate errors when trying to create a field with a name which is too long.
* Importing table data with a column name that is too long will now truncate that name.
* Fixed error when rapidly switching between template tables or views in the template 
  preview.
* Upgraded Django to version 3.2.6 and also upgraded all other backend libraries to 
  their latest versions.
* Fix minor error that could sometimes occur when a row and it's table/group/database
  were deleted in rapid succession.
* Fix accidentally locking of too many rows in various tables during update operations.
* Introduced the has file type filter.
* Fixed bug where the backend would fail hard when an invalid integer was provided as
  'before_id' when moving a row by introducing a decorator to validate query parameters.
* Fixed bug where copying a cell containing a null value resulted in an error.
* Added "Multiple Select" field type.
* Fixed a bug where the currently selected view was not in the viewport of the parent.
* Fixed a bug where views context would not scroll down after a new view has been added.
* New templates:
    * Recipe Book
    * Healthcare Facility Management
    * Bucket List
    * Apartment Hunt
    * Holiday Shopping
    * Email Marketing Campaigns
    * Book Writing Guide
    * Home Inventory
    * Political Campaign Contributions
* Updated templates:
    * Blog Post Management
* Fixed a bug where the backend would fail hard when trying to order by field name without
  using `user_field_names`.
* Added "Formula" field type with 30+ useful functions allowing dynamic per row
  calculations.

## Released (2021-08-11)

* Made it possible to leave a group.
* Changed web-frontend `/api/docs` route into `/api-docs`.
* Bumped the dependencies.
* The internal setting allowing Baserow to run with the user tables in a separate 
  database has been removed entirely to prevent data integrity issues.
* Fixed bug where the currently selected dropdown item is out of view from the dropdown
  window when scrolling with the arrow keys.
* Introduced link row field has row filter.
* Made the form view compatible with importing and exporting.
* Made it possible to use the "F2"-Key to edit a cell without clearing the cell content.
* Added password validation to password reset page.
* Add backup and restore database management commands.
* Dropped the `old_name` column.
* Hide view types that can't be exported in the export modal.
* Relaxed the URL field validator and made it consistent between the backend and 
  web-frontend.
* Fixed nuxt not restarting correctly using the provided Baserow supervisor config file.
* Added steps on how to configure Baserow to send emails in the install-on-ubuntu guide.
* Enabled password validation in the backend.
* **Premium**: You can now comment and discuss rows with others in your group, click the
  expand row button at the start of the row to view and add comments.
* Added "Last Modified" and "Created On" field types.
* Fixed moment issue if core is installed as a dependency.
* New templates:
  * Blog Post Management
* Updated templates:
  * Personal Task Manager
  * Wedding Planning
  * Book Catalog
  * Applicant Tracker
  * Project Tracker

## Released (2021-07-16)

* Fix bug preventing fields not being able to be converted to link row fields in some
  situations.

## Released (2021-07-15)

* **Breaking Change**: Baserow's `docker-compose.yml` no longer exposes ports for 
  the `db`, `mjml` and `redis` containers for security reasons. 
* **Breaking Change**: `docker-compose.yml` will by default only expose Baserow on 
  `localhost` and not `0.0.0.0`, meaning it will not be accessible remotely unless 
  manually configured.

## Released (2021-07-13)

* Added a Heroku template and one click deploy button.
* Fixed bug preventing the deletion of rows with a blank single select primary field.
* Fixed error in trash cleanup job when deleting multiple rows and a field from the
  same table at once.

## Released (2021-07-12)

* Made it possible to list table field meta-data with a token.
* Added form view.
* The API endpoint to update the grid view field options has been moved to
  `/api/database/views/{view_id}/field-options/`.
* The email field's validation is now consistent and much more permissive allowing most 
  values which look like email addresses.
* Add trash where deleted apps, groups, tables, fields and rows can be restored 
  deletion.
* Fix the create group invite endpoint failing when no message provided.
* Single select options can now be ordered by drag and drop. 
* Added before and after date filters.
* Support building Baserow out of the box on Ubuntu by lowering the required docker
  version to build Baserow down to 19.03.
* Disallow duplicate field names in the same table, blank field names or field names
  called 'order' and 'id'. Existing invalid field names will be fixed automatically. 
* Add user_field_names GET flag to various endpoints which switches the API to work
  using actual field names and not the internal field_1,field_2 etc identifiers.
* Added templates:
  * Commercial Property Management
  * Company Asset Tracker
  * Student Planner

## Released (2021-06-02)

* Fixed bug where the grid view would fail hard if a cell is selected and the component
  is destroyed.
* Made it possible to import a JSON file when creating a table.
* Made it possible to order the views by drag and drop.
* Made it possible to order the groups by drag and drop.
* Made it possible to order the applications by drag and drop.
* Made it possible to order the tables by drag and drop.
* **Premium**: Added an admin dashboard.
* **Premium**: Added group admin area allowing management of all baserow groups.
* Added today, this month and this year filter.
* Added a page containing external resources to the docs.
* Added a human-readable error message when a user tries to sign in with a deactivated
  account.
* Tables and views can now be exported to CSV (if you have installed using the ubuntu 
  guide please use the updated .conf files to enable this feature).
* **Premium** Tables and views can now be exported to JSON and XML.
* Removed URL field max length and fixed the backend failing hard because of that.
* Fixed bug where the focus of an Editable component was not always during and after
  editing if the parent component had overflow hidden.
* Fixed bug where the selected view would still be visible after deleting it.
* Templates:
  * Lightweight CRM
  * Wedding Planning
  * Book Catalog
  * App Pitch Planner

## Released (2021-05-11)

* Added configurable field limit.
* Fixed memory leak in the `link_row` field.
* Switch to using a celery based email backend by default.
* Added `--add-columns` flag to the `fill_table` management command. It creates all the
  field types before filling the table with random data.
* Reworked Baserow's Docker setup to be easier to use, faster to build and more secure.
* Make the view header more compact when the content doesn't fit anymore.
* Allow providing a `template_id` when registering a new account, which will install
  that template instead of the default database.
* Made it possible to drag and drop rows in the desired order.
* Fixed bug where the rows could get out of sync during real time collaboration.
* Made it possible to export and import the file field including contents.
* Added `fill_users` admin management command which fills baserow with fake users.
* Made it possible to drag and drop the views in the desired order.
* **Premium**: Added user admin area allowing management of all baserow users.

## Released (2021-04-08)

* Added support for importing tables from XML files.
* Added support for different** character encodings when importing CSV files.
* Prevent websocket reconnect loop when the authentication fails.
* Refactored the GridView component and improved interface speed.
* Prevent websocket reconnect when the connection closes without error.
* Added gunicorn worker test to the CI pipeline.
* Made it possible to re-order fields in a grid view.
* Show the number of filters and sorts active in the header of a grid view.
* The first user to sign-up after installation now gets given staff status.
* Rename the "includes" get parameter across all API endpoints to "include" to be 
  consistent.
* Add missing include query parameter and corresponding response attributes to API docs. 
* Remove incorrectly included "filters_disabled" field from 
  list_database_table_grid_view_rows api endpoint.
* Show an error to the user when the web socket connection could not be made and the
  reconnect loop stops.
* Fixed 100X backend web socket errors when refreshing the page.
* Fixed SSRF bug in the file upload by URL by blocking urls to the private network.
* Fixed bug where an invalid date could be converted to 0001-01-01.
* The list_database_table_rows search query parameter now searches all possible field
  types.
* Add Phone Number field.
* Add support for Date, Number and Single Select fields to the Contains and Not Contains
  view 
  filters.
* Searching all rows can now be done by clicking the new search icon in the top right.

## Released (2021-03-01)

* Redesigned the left sidebar.
* Fixed error when a very long user file name is provided when uploading.
* Upgraded DRF Spectacular dependency to the latest version.
* Added single select field form option validation.
* Changed all cookies to SameSite=lax.
* Fixed the "Ignored attempt to cancel a touchmove" error.
* Refactored the has_user everywhere such that the raise_error argument is used when
  possible.
* Added Baserow Cloudron app.
* Fixed bug where a single select field without options could not be converted to a
  another field.
* Fixed bug where the Editable component was not working if a prent a user-select:
  none; property.
* Fail hard when the web-frontend can't reach the backend because of a network error.
* Use UTC time in the date picker.
* Refactored handler get_* methods so that they never check for permissions.
* Made it possible to configure SMTP settings via environment variables.
* Added field name to the public REST API docs.
* Made the public REST API docs compatible with smaller screens.
* Made it possible for the admin to disable new signups.
* Reduced the amount of queries when using the link row field.
* Respect the date format when converting to a date field.
* Added a field type filename contains filter.

## Released (2021-02-04)

* Upgraded web-frontend dependencies.
* Fixed bug where you could not convert an existing field to a single select field
  without select options.
* Fixed bug where is was not possible to create a relation to a table that has a single
  select as primary field.
* Implemented real time collaboration.
* Added option to hide fields in a grid view.
* Keep token usage details.
* Fixed bug where an incompatible row value was visible and used while changing the
  field type.
* Fixed bug where the row in the RowEditModel was not entirely reactive and wouldn't be
  updated when the grid view was refreshed.
* Made it possible to invite other users to a group.

## Released (2021-01-06)

* Allow larger values for the number field and improved the validation.
* Fixed bug where if you have no filters, but the filter type is set to `OR` it always
  results in a not matching row state in the web-frontend.
* Fixed bug where the arrow navigation didn't work for the dropdown component in
  combination with a search query.
* Fixed bug where the page refreshes if you press enter in an input in the row modal.
* Added filtering by GET parameter to the rows listing endpoint.
* Fixed drifting context menu.
* Store updated and created timestamp for the groups, applications, tables, views,
  fields and rows.
* Made the file name editable.
* Made the rows orderable and added the ability to insert a row at a given position.
* Made it possible to include or exclude specific fields when listing rows via the API.
* Implemented a single select field.
* Fixed bug where inserting above or below a row created upon signup doesn't work
  correctly.

## Released (2020-12-01)

* Added select_for_update where it was still missing.
* Fixed API docs scrollbar size issue.
* Also lint the backend tests.
* Implemented a switch to disable all filters without deleting them.
* Made it possible to order by fields via the rows listing endpoint.
* Added community chat to the readme.
* Made the cookies strict and secure.
* Removed the redundant _DOMAIN variables.
* Set un-secure lax cookie when public web frontend url isn't over a secure connection.
* Fixed bug where the sort choose field item didn't have a hover effect.
* Implemented a file field and user files upload.
* Made it impossible for the `link_row` field to be a primary field because that can
  cause the primary field to be deleted.

## Released (2020-11-02)

* Highlight the row of a selected cell.
* Fixed error when there is no view.
* Added Ubuntu installation guide documentation.
* Added Email field.
* Added importer abstraction including a CSV and tabular paste importer.
* Added ability to navigate dropdown menus with arrow keys.
* Added confirmation modals when the user wants to delete a group, application, table,
  view or field.
* Fixed bug in the web-frontend URL validation where a '*' was invalidates.
* Made it possible to publicly expose the table data via a REST API.

## Released (2020-10-06)

* Prevent adding a new line to the long text field in the grid view when selecting the
  cell by pressing the enter key.
* Fixed The table X is not found in the store error.
* Fixed bug where the selected name of the dropdown was not updated when that name was
  changed.
* Fixed bug where the link row field is not removed from the store when the related
  table is deleted.
* Added filtering of rows per view.
* Fixed bug where the error message of the 'Select a table to link to' was not always
  displayed.
* Added URL field.
* Added sorting of rows per view.

## Released (2020-09-02)

* Added contribution guidelines.
* Fixed bug where it was not possible to change the table name when it contained a link
  row field.

## Released (2020-08-31)

* Added field that can link to the row of another table.
* Fixed bug where the text_default value changed to None if not provided in a patch
  request.
* Block non web frontend domains in the base url when requesting a password reset
  email.
* Increased the amount of password characters to 256 when signing up.
* Show machine readable error message when the signature has expired.

## Released (2020-07-20)

* Added raises attribute to the docstrings.
* Added OpenAPI docs.
* Refactored all SCSS classes to BEM naming.
* Use the new long text field, date field and view's field options for the example 
  tables when creating a new account. Also use the long text field when creating a new 
  table.
* Removed not needed api v0 namespace in url and python module.
* Fixed keeping the datepicker visible in the grid view when selecting a date for the 
  first time.
* Improved API 404 errors by providing a machine readable error.
* Added documentation markdown files.
* Added cookiecutter plugin boilerplate.

## Released (2020-06-08)

* Fixed not handling 500 errors.
* Prevent row context menu when right clicking on a field that's being edited.
* Added row modal editing feature to the grid view.
* Made it possible to resize the field width per view.
* Added validation and formatting for the number field.
* Cancel the editing state of a fields when the escape key is pressed.
* The next field is now selected when the tab character is pressed when a field is
  selected.
* Changed the styling of the notification alerts.
* Fixed error when changing field type and the data value wasn't in the correct
  format.
* Update the field's data values when the type changes.
* Implemented reset forgotten password functionality.
* Fill a newly created table with some initial data.
* Enabled the arrow keys to navigate through the fields in the grid view.
* Fixed memory leak bug.
* Use environment variables for all settings.
* Normalize the users email address when signing up and signing in.
* Use Django REST framework status code constants instead of integers.
* Added long text field.
* Fixed not refreshing token bug and improved authentication a little bit.
* Introduced copy, paste and delete functionality of selected fields.
* Added date/datetime field.
* Improved grid view scrolling for touch devices.
* Implemented password change function and settings popup.