- Dependency - Upgrade the forest-express dependency for onlyCrudModule option.
- CI - Update NodeJS version to v11.14.0 for T$ravis.
- CI - Fix CI linting.
- Technical - Use the latest
onchange
dependency. - Technical - Change ESLint ruleset for Airbnb.
- Technical - Add incremental linting check.
- Security - Patch vulnerabilities removing the unused
nsp
dependency. - Security - Patch vulnerabilities removing the unused
gulp
dependency. - Security - Patch vulnerabilities using the latest
eslint
dependency. - Security - Patch vulnerabilities using the latest
babel
dependencies. - Security - Patch vulnerabilities using the latest
mocha
dependency. - Security - Patch vulnerabilities using the latest
forest-express
dependency. - Security - Patch a vulnerability using the latest
lodash
dependency. - Security - Patch a vulnerability using the latest
moment
dependency.
- Security - Fix implementation of session token passed in headers while downloading collections records.
- Technical - Add babel.
- Security - Do not pass session token in query params while downloading collections records.
- Build - Tag versions on git for each release.
- Build - Developers can now create beta versions.
- Developer Experience - On start, create a
.forestadmin-schema.json
file that contains the schema definition. - Developer Experience - On production, load
.forestadmin-schema.json
for schema update. - Developer Experience - Developers can deactivate the automatic schema synchronisation on server start using the
FOREST_DISABLE_AUTO_SCHEMA_APPLY
environment variable.
- Integrations - Fix Stripe integration on an embedded document field.
- Integrations - Developers can configure the Stripe integration to retrieve the customerId in an embedded document field.
- Initialization -
includedModels
option now includes only models present in the array.
- Smart Fields - Display a warning to show Smart Fields declared without a field attribute.
- Smart Fields - Smart Fields declared without a field attribute are not sent in the Apimap anymore.
- Field Types - Improve the support/detection of Object, {}, Array and [] field types.
- API - Prevent Apimaps from having duplicate fields, segments and actions, if the developer call the init function multiple times.
- Mongoose - Re-add the patch to fix the RangeOverflow error with recent versions of mongoose.
- Fields Detection - Do not detect internal Mongoose fields in the apimap for schemas using subschemas.
- Mongoose - Handle last versions of mongoose by fixing the RangeOverflow error. See Issue #113.
- Server start - Fix a crash if developers add a Smart Action to a generated integration collection that does not have existing one by default.
- Mongoose - Handle last versions of mongoose by fixing the RangeOverflow error.
- Authentication - Improve the log message when 2FA secret key is not set.
- Authentication - Fix an empty user id attribute in the JWT tokens.
- Integrations - Developers can add Smart Actions to Integration Collections.
- Search - Fix searches that contains special characters.
- Search - Fix searches that start with the "+" character.
- Technical - Add the missing babel-runtime dependency.
- Authentication - Add two factor authentication using time-based one-time password.
- Smart Actions - Fix Smart Actions Forms fields positions on Smart Collections.
- Technical - Upgrade some test dependencies to their latest version (Mocha & Chai).
- Performance - Improve the speed of listing the records by executing their count into another request.
- Mixpanel Integration - Only retrieve events that are less than 60 days old to be compliant with the Mixpanel's API.
- Mixpanel Integration - Change the integration to display the last 100 Mixpanel events of a "user" record.
- Mixpanel Integration - Remove the Mixpanel integration pre-defined segments.
- Intercom Integration - Display the Intercom error in the server logs if the conversations list retrieval fails.
- Intercom Integration - Users can now access to the Intercom Details page.
- Intercom Integration - Fix the integration routes for projects using the "expressParentApp" configuration.
- Permissions - Fix automated permission for projects having multiple teams.
- IP Whitelist - Fix broken ip range of form 'x.x.x.x - x.x.x.x'.
- Permissions - Add a permission mechanism to protect the data accordingly to the UI configuration.
- Smart Actions - Fix form values prefill on Smart Actions having a custom endpoint.
- Search - Display highlighted matches on table view when searching.
- Technical - Switch the linter to eslint.
- Technical - Save exact dependencies version.
- Technical - Use local packages for npm scripts.
- Collections - Allow search fields customization before liana initialization.
- Premium Security - Handle mutli instances ip whitelist refresh.
- Apimap - Prevent an error on Apimap generation if the Mongoose ORM version is not found.
- Technical - Update yarn.lock.
- Premium Security - Add IP Whitelist feature.
- Smart Relationships - Make the Smart BelongsTo work when it references a Smart Collection record.
- Related Data - Delete records directly from a hasMany listing.
- Related Data - Fix a potential error on hasMany association update (remove a deprecated $pushAll operator).
- Smart Actions - "Single" type Smart Action forms can now be prefilled with contextual values.
- Collections - Allow collection customization before liana initialization.
- Authentication - Fix the missing email/name/teams information set in the token for user using Google SSO.
- Smart Elements - Fix error swallowing on load and clean some useless code.
- Smart Fields - Boolean Smart Fields that return a "false" value are now properly sent though the API.
- MongoDB HasMany - Users can edit a document in an array of embedded documents.
- Security - Fix low impact vulnerabilities.
- Smart Actions - Developers can define Smart Actions that can send their request to a different endpoint than the current environment endpoint.
- Close.io Integration - Send a "No Content" (204) status code if not customer lead has been found instead of an "Internal Server Error" (500).
- Smart Fields - Display a warning if an error occurs during Smart Field value computations.
- Smart Actions - Users can define Smart Actions only available in a record detail.
- Apimap - Catch potential failure during the apimap sorting.
- Smart Actions - Display the Smart Actions form fields in the declaration order. [Regression introduced in 2.4.0]
- Filters - Add a new "is after X hours ago" operator to filter on date fields.
- Databases Connections - Support multiple mongoose connections.
- Apimap - Prevent random sorting collections and useless updates.
- Search - Prevent the records search to crash if no fields parameter is sent by the client.
- Smart Fields - Compute only the necessary Smart Fields values for list views and CSV exports.
- Smart Fields - Fix concurrency between Smart Fields setters and enable multiple setters to work properly on a record update.
- CORS - Re-authorize forestadmin.com in the CORS configuration. [regression introduced in 2.0.6]
- Authentication - Users can connect to their project using Google Single Sign-On.
- Performance - Reduce drastically the number of CORS preflight requests send by the API clients.
- Authentication - Developers whom want to extend the Admin API can now use the authentication for the overridden routes.
- Smart BelongsTo - Developers can now implement Smart BelongsTo values updates.
- Smart Fields - Add a "isFilterable" option to let them appear in the filters selection.
- Security - Remove a vulnerability by upgrading Moment.js library.
- Smart Fields - Prevent Smart Fields promise values injection errors on related data retrieval.
- TypeScript Support - Forest can now load TypeScript modules.
- Smart Fields - Prevent Smart Fields values injection errors on related data retrieval.
- Summary View - Fix potential Summary View freeze on records having "Point" type fields (if some related data are displayed).
- Filters - A filter condition set on related belongsTo/hasOne will not crash the list view anymore [Regression introduced in 2.0.0].
- Collections Names - Collection names are now based on the model name.
- Stripe Integration - Allow users to display Stripe records in the Details view.
- Custom Domains - Make the feature usable natively with the CORS_ORIGINS variable.
- Security - Remove all detected vulnerabilities upgrading some dependencies (nsp check --output summary).
- Apimaps - Prevent bad detection of Array of Embedded having the "type" keyword.
- Smart Relationships - Add a warning if a Smart Collection does not define the "idField" attribute necessary for Smart Relationships.
- Smart Fields - Prevent the Smart Fields computation errors to generate a crash and handle it letting the value empty.
- Sessions - Display a clean error message if the renderingId and envSecret are missing or inconsistent.
- Initialisation - Prevent bad "import" syntax error detections on initialisation.
- HasMany Relationships - Display BelongsTo links in the HasMany relationships table.
- Stripe - Fix the 'mapping' collection name on Express/Mongoose.
- Integrations - Ensure all the models are loading before integrations setup.
- Initialisation - Do not try to require file that don't have the js extension.
- Intercom - Make the conversation details accessible.
- Filters - Fix boolean filters with "false" or "null" values.
- Initialisation - Prevent bad ES2017 syntax error detections on initialisation.
- Intercom Integration - Prefer Intercom accessToken configuration to old fashioned appId/apiKey.
- Intercom Integration - Remove support for old configuration parameter use "userCollection" (use mapping instead)
- Search - A search will now try to search in ObjectID type fields if the search value is a correct ObjectID.
- Search - Prevent an error if no field is searchable during a search.
- Search - Developers can configure in which fields the search will be executed.
- Smart Fields - Add a parameter to specify if the sorting is allowed on this field.
- Initialization - Ignore directories while loading models.
- Initialization - Display an explicit error log if a model cannot be loaded properly
- Export - Fix datetime formatting regression introduced by liana version 1.2.3.
- Onboarding - Display an error message if the envSecret option is missing.
- Models Introspection - Support nested custom schemas for models.
- Exports - Escape special characters for the string fields.
- Integrations - Display models "mapping" errors if any.
- Integrations - Add the Layer integration.
- Code Inspection - Fix Forest customization code inspection to be recursive through directories.
- Exports - Fix bad initial implementation for exports authentication.
- Exports - Forest can now handle large data exports.
- Search - Split "simple" and "deep" search features with a new param.
- Search - Users can search on array of embeded documents.
- Integrations - Add a first version of Layer integration.
- Validations - Start the support of forms validations (with 5 first validations).
- Fields - Send the defaultValue for creation forms.
- Search - Users can search on the hasMany associated data of a specific record.
- HasMany Records - Fix the sorting of HasMany records.
- Filters - Add the before x hours operator.
- Liana Version & Orm Version - Prevent server crash on bad format version.
- Serializer - Log an error in the console if the association doesn't exist.
- Apimap - Send database type and orm version in apimap.
- Search - Fix crash on hasmany array association.
- Error Messages - Display the stack trace on unexpected errors.
- Error Messages - Display an explicit warning if Forest servers are in maintenance.
- Records Serialization - Fix the object types case (kebab case) to prevent potential JSON api adapter errors on client side.
- HasMany Smart Fields - Fix routes conflicts between hasMany Smart Fields and other associations.
- Smart Collections - Add a new isSearchable property to display the search bar for Smart Collections.
- Filters - Add the not contains operator.
- Record Update - Trigger validations on record update.
- Resources Updater - Pass the params.recordId to the ResourceUpdater.
- Smart Fields - Serialize Smart Fields values for hasMany associations.
- Smart Fields - Fix some bad Smart Fields getter calls on records list and detail display.
- Customization Errors - Do not send the apimap when users create Forest customization with syntax errors in code.
- Customization Errors - Add errors in the console when users create Forest customization with syntax errors in code.
- Smart Fields - Serialize Smart Fields values for belongsTo association.
- Smart Fields - Add an explicit error message if the search on a Smart Field generates an error.
- Smart Fields - A search on a collection having Smart Fields with search method implemented will respond properly (bypassing failing Smart Fields search if any).
- Smart Fields - Developers can now define Smart Fields setters.
- Smart Fields - Replace the Smart Fields value method by get.
- Filters ToDate - Fix the end of period filtering for "toDate" date operator types.
- Smart Fields - Smart fields are sent in the detail view request.
- Setup Guide - Add integration field to the collections to distinguish Smart Collections and Collections from integrations.
- Version Warning - Display a warning message if the liana version used is too old.
- Smart Actions - Users don't have to select records to use a smart action through the global option.
- Search - Enable the search inside arrays of strings.
- Enums - Support Enums in subdocuments.
- Record Getter - Prevent an unexpected error if the record does not exist.
- HasMany - Fix the list of hasMany when IDs are Strings and not ObjectIds.
- Collections - Add includedModels & excludedModels options to choose which collections to display in Forest.
- Smart Actions - Support file download.
- Smart field - Ensure a hasMany smart field doesn't trigger any error when the route is not yet implemented.
- Configurations - Users can specify the directory for Forest Smart Implementation.
- Configuration - Fix bad authentication when a custom path is configured.
- Record Updates - Fix record updates for apps using MongoDB 2.X.
- Embedded fields - Fix the record detail display of the embedded Enum type fields.
- Segments - Smart Segments can be created to define specific records subsets.
- Package - Add contributors, keywords, homepage...
- Package - Remove all unused packages.
- Dependencies - Freeze the dependencies versions to reduce packages versions changes between projects/environments.
- Configuration - Rename secret values to envSecret and authSecret.
- Installation - envSecret and authSecret are now defined in environment variables and, thus, in all non-development environments, need to be set manually.
- Date Filters - Date filters operators are now based on the client timezone.
- Packages - Remove useless node-uuid package.
- Line Charts - Fix per-week line charts on several years.
- Line Charts - Fix the bad month displayed in the per-month line charts.
- Value Charts - Format Pie charts value properly for groupBy on Date type field.
- Packages - Fix several issues updating the forest-express package to the latest version.
- Filters - Fix records retrieval with a single association filter.
- Filters - Add the new date filters protocol.
- Smart field - Enable search on smart fields.
- ES5 - Fix remaining ES5 incompatible syntax.
- ES5 - Fix and secure the ES5 compatibility with a git hook.
- Filters - Users want the OR filter operator with their conditions (restricted to simple conditions).
- Record Update - Fix the potential dissociations on record update.
- Pagination - Fix hasMany arrays.
- Schema - support array of objects with syntax { type: String }
- Pagination - fix the hasMany number of records.
- Filters - Users want to have "From now" and "Today" operators.
- Code Syntax - Ensure compatibility with Node < 4.x.