Release Notes

From DreamFactory
Jump to: navigation, search
DreamFactoryRelease Notes

Version 2.7.0 (Released June 06, 2017)

  • New BASH installer.sh for customizing environment and packages included
  • Support for OpenID Connect
  • Support for CSV as a data source
  • Added email service and template configuration to "system" service for admin invite and password reset
  • Many Admin application improvements
  • Cleanup after removing php-utils library dependency
  • Cleanup existing php_unit test infrastructure
  • Added license level in Config - System Info page
  • Added server external IP address on system/environment
  • Moved JWT require from application to df-core
  • Extra user and admin info on package manifest
  • Fixed API Docs to show token refresh endpoints
  • Fixed GET over POST on system resources ignoring some parameters in payload
  • Allowed email template to enter multiple addresses in to, bcc, cc fields
  • Fixed package import with overwrite for currently logged in user
  • Fixed user authentication after changing user email and password from profile page
  • Added better error message for password change failure
  • HTTP Services now look for headers from request to pass through when called from scripting environment
  • Fixed CSV and XML user import feature
  • Fix migration for MS SQL Server possible cascading issue
  • Remove cipher option of RIJNDAEL-128 from environment
  • Used user_key in JWT claim from improved security
  • Fixed "count_only" parameter usage in database services
  • Limit feature no allowed endpoints to be saved as null for evaluation as top level resource
  • Fixed OAuth issue with PHP 5.6
  • Split df:setup command into df:env and df:setup


Version 2.6.0 (Released April 21, 2017)

  • Added support for username based authentication via environment configuration option, email is still default
  • Added support for Firebird SQL Database
  • Added support for specifying endpoints and verbs on Limits feature
  • Added support for using Redis as cache for Limits feature
  • Added support for "upsert" on database services where supported (using PUT verb)
  • Added support for Admin user email invites
  • Fixed date and time configuration option usage for database services
  • Fixed inconsistent behavior regarding selected fields and related data in SQL database services
  • Fixed JWT token refresh and handling forever token refresh properly
  • Ignore received JWT explicitly when making login requests
  • Fixed resource-level role-based access control for API docs
  • Fixed PUT section on API docs for system/{resource} and system/{resource}/{id}
  • Cassandra service updated to better handle native types like UUID and Timestamps
  • For HTTP services, added support for detecting and replacing external links in response when resolved to other DreamFactory service URIs
  • Fixed scripting response handling with single quotes, particularly in python
  • Fixed scripting execution with exceptions in Node.js
  • Fixed scripting handling of file upload

Version 2.5.0 (Released March 4, 2017)

  • Upgraded and restructured to latest Laravel 5.4 framework

Note: As part of the upgrade, the default charset and collation have been changed to utf8mb4 to better support UTF-8. This will cause a problem for brand new installs on older MySQL-based databases, MySQL before 5.7.7 or MariaDB before 10.2.2. If you using those databases, uncomment or add the following lines in your .env file.

##DB_CHARSET=utf8
##DB_COLLATION=utf8_unicode_ci
  • Added support for new Limits feature
  • Added support for new iOS and GCM Push Notification feature
  • Changed database error message, particularly with batch requests, to be consistent across services
  • Fixed AD login issue with accented characters in user names
  • Upgraded to latest AWS SDK, used latest internal filtering for DynamoDB
  • Fixed schema issues with AWS Redshift
  • Fixed several issues with Apache Cassandra from earlier beta release
  • Added overwrite option for package import
  • Fixed migrations with timestamp fields due to Laravel issue #11518 with some MySQL versions
  • On incoming XML, handled any outer wrapper, not just 'dfapi', as there is no need to restrict
  • Script tokening to authenticate internal script calls from Node.js and Python scripting
  • Fixed a package export error
  • Fixed creating role where description is longer than 255 characters
  • When using 'ids' in URL or payload, always return a batch response, even for a single id

Version 2.4.2 (Released January 17, 2017)

  • Added SAML 2.0 support as an authentication service
  • Added support for Azure Active Directory
  • Added support for Homestead ^4.0 with PHP7.1
  • Added event-driven configurability to logging service
  • Added database function support across all fields, not just virtual, so we can support binary and unknown data types
  • Added event.setRequest() for Node.js scripting
  • Clearer naming of log context options in logger service
  • Prefer Microsoft pdo_sqlsrv driver over pdo_dblib for SQL Server on Linux-based OS
  • Updated v8js support on Homestead for PHP7.1
  • Updated Vagrant provision script
  • Refactored out database, email, and script services to their own repos from core
  • Fixed verb tunneling for proper role access control
  • SMTP service no longer requires authentication or SSL/TLS
  • Clear cached WSDL files from SOAP services upon system cache clear
  • Better error handling and showing original content when content in response cannot be resolved to Accept type
  • Package management improvements
  • Indicating bad services (connection failures, etc) on package manager
  • Schema management improvements
  • Fixed use of special words like "table" in SQLite
  • OAuth callback handler now checks for service name using state identifier when service name is not present on callback url
  • Handling exceptions thrown in callback functions in NodeJS scripting
  • Added send_invite parameter to API definition documentation
  • For various model members, If value is null, don't return protected mask or encryption, just null
  • For database services, check column count so we don't attempt a fetch on a non-existent rowset
  • SOAP services now load WSDL files from storage/wsdl if only file name given


Version 2.4.1 (Released December 1, 2016)

  • Dependency update for df-admin-app (Admin application) changes


Version 2.4.0 (Released November 18, 2016)

  • Added Couchbase database service type (dreamfactory/df-couchbase)
  • Added Microsoft Azure DocumentDB service type (dreamfactory/df-azure)
  • Added Lookup modifiers and modifier configuration options, i.e. {urlencode(my_lookup)}, see wiki.
  • Added a pre-configured local file service for the logs directory
  • Added parameter and header options to scripting inline calls using platform
  • Added support for schema merge in package import
  • Reworked Virtual Foreign Keys, now called Virtual Relationships, a.k.a. DataMesh, to support all relationship types, including provisioning/retrieving from MongoDB services
  • Added new API paths for database table field and related management (_schema/<table_name>/_field and _schema/<table_name>/_related). Old field access with _schema/<table_name>/<field_name> will be deprecated in later releases
  • Added ability to define fields for MongoDB tables (primarily for Virtual Relationships but will be expanded for validations, etc. in coming releases)
  • Fixed AWS SNS service API issues
  • Update CORS to use the latest laravel-cors with additional options and new path matching
  • Removed array wrapping of event.request.headers values
  • Use null for empty service doc instead of default JSON object
  • Protecting user, role, and app lookups against duplicate named entries
  • Preventing timeout on package export manifest by only showing top level folders for file services
  • Node.js and Python scripting improvements
  • Don't format null to defined param type on stored procedure output parameters
  • Clean up database extras upon dropping table or column
  • Casting boolean values correctly for Sqlite, IBM DB2

Version 2.3.1 (Released October 4, 2016)

  • Added configurable role per app for open registration, OAuth, and AD/LDAP services
  • Added Log service supporting Logstash (commercial packages)
  • Added AWS Redshift service support (beta)
  • Added Python command path setting to distributed env file
  • Added 'count_only' option to query parameters to return count of records filtered, but not the records
  • Made user registration and password reset confirmation code length configurable
  • Made user registration and password reset confirmation expiration configurable
  • Made file services support chunking for downloading large files
  • Changed core models to allow for encryption and protection control
  • Changed passwords, secret keys, etc. in service configurations to be protected, i.e. can be set but not retrieved through API
  • Cleaned up cached Service model usage
  • Make server-side filter usage case-insensitive like the rest of record processing
  • Improve related data queries by pushing full dataset down to per relationship handling
  • Changed OAuth services to return token after OAuth authentication, improved consistency across all OAuth providers
  • Added WSDL and Salesforce REST API version selection options for service config
  • Added example WSDL file for Salesforce connections
  • Added OAuth config options to Salesforce service access via Salesforce OAuth
  • Session token management for Salesforce API now cached and handles both authentication modes


Version 2.3.0 (Released August 23, 2016)

  • Added Cassandra database service type (dreamfactory/df-cassandra)
  • Added Cache service type, currently supporting local configured cache as well as Redis and Memcached configurations (dreamfactory/df-cache).
  • Added Queue-able option to system event scripts (<service>.<resource>.<verb>.queued) and script service types for queueing scripts to run after processing of API requests.
  • Added Microsoft Live OAuth2 option to OAuth service type.
  • Added 'doc' to every service listing (api/v2/system/service), replacing optional relationship parameter.
  • Added 'is_base64' option for retrieving content of file along with properties for file services.
  • Moved event script CRUD operations to 'api/v2/system/event_script', 'api/v2/system/event' now only lists events, or only scriptable events when 'scriptable' parameter set to true.
  • Allows post-process scripting to always run, even when processing throws exception.
  • Allows pre-process to circumvent processing request by returning response directly.
  • Fixed public path trailing slash usage on file storage services.
  • Fixed scripting bug where the system failed to check a script file path.
  • Fixed showing wrong disk name for local file service container config options.
  • Fixed stored procedure response wrapping issue.
  • Fixed Node.js remote calls issue when URL has port in it.
  • Cleaned up the update schema handling to avoid sending unnecessary changes to database.
  • Workaround for v8js segfault issue in PHP 7.0.

Version 2.2.1 (Released July 11, 2016)

  • SQL Database Stored Procedure and Function access and usage enhancements. HTTP GET using the "ids" parameter returns details about procedure and function requirements. Now call procedures and functions with just the required parameters. Also added the ability to pass procedure and function parameters as URL parameters, inline, or via a "params" array in the payload.
  • Added Active Directory support for group hierarchy when mapping to DreamFactory roles.
  • Added event modification configuration setting to pre- and post-process scripts, replacing usage of "content-changed" flag in the script itself.
  • Added data import support for packages, initial support for database record importing.
  • Added event matching from Swagger documentation paths to support event firing on exact and matching paths for HTTP Services.
  • Added event support for individual SOAP methods defined in the given WSDL.
  • Fixed Swagger model generation for SOAP service, now supports WSDL enumerations in types.
  • Fixed file streaming using file service over CORS connections.
  • Fixed role exporting.
  • Fixed table export issue in packaging feature.
  • Fixed encoding of resources forwarded on in HTTP Services.
  • Caching fixes and speed improvements.
  • Enhanced error message for some APIs, particularly in authentication and authorization areas.
  • Admin application UI tooltip enhancements.
  • Cleanup of API Docs.
  • General cleanup of usage of utility functions.
  • Testcases reworked for more dynamic services.

Version 2.2.0 (Released May 31, 2016)

The following services are now under a commercial license and have been removed from the default installation: AD/LDAP, SOAP, Salesforce, MS SQL Server, SAP SQL Anywhere, Oracle, and IBM DB2. Please contact [email protected] for further information.

  • Redesigned services, script engines, and system resources management to be more flexible and dynamic. Now using ServiceProviders for all service type on-boarding.
  • New service type migration command for pre-2.2 database upgrade (php artisan dreamfactory:service-type-migrate), run after migration and seeding.
  • SQL DB driver types now available as their own service types, "sql_db" type retired.
  • Script languages now available as their own service types, "script" type retired.
  • Converts old services types to new format during import in packaging.
  • API Doc now supports OpenAPI (fka Swagger) YAML format, as well as JSON.
  • Service Definition system now adds service name to all defined paths and tags automatically
  • Support for service definition (Swagger doc) on service import/export in packaging.
  • Added platform.api support for Node.js and Python scripting
  • Python scripting improvements, like allow empty script, correcting script output
  • Node.js scripting improvement, like allow returning output from async callback functions
  • Including predis/predis package by default for using Redis for caching
  • Including df-azure using microsoftazure/storage by default, used sdk that required pear in prior releases
  • Auto login enabled after creating first admin and other speed improvements
  • Now using guzzle 6
  • Added laravel/homestead support for php5.6 and php7 for dev installs

Version 2.1.2 (Released April 26, 2016)

  • Redesigned Packaging feature, including new system/package API and artisan commands for import and export.
  • Data Mesh feature now supports SQL to MongoDB virtual relationships.
  • Added Redis and Memcached config options to dreamfactory:setup command
  • Added Memcached config values in environment
  • Updated dreamfactory:import-pkg command to use new package
  • Updating initial setup to import any packages available
  • Handling file stream output using StreamedResponse
  • Added artisan dreamfactory:config-hhvm command to create hhvm config file
  • Basic support for www-form-urlencoded payload in API requests
  • Cleanup service providers
  • Add rewrite rule to allow basic auth on AWS cloud and VM.

Version 2.1.1 (Released March 15, 2016)

  • Upgraded Laravel framework to 5.2
  • Enhanced setup command
  • Now allowing login with JWT passed as URL parameter
  • Added log level support, see DF_LOG_LEVEL in .env-dist for options
  • Enhanced logging includes REQUEST and RESPONSE under log level INFO.
  • New and improved File Manager application is now loaded from a composer-controlled repo
  • API Docs (aka Swagger UI) updated for spec validation.
  • Added extra server side and client side information on the config tab of admin app.
  • Angular 2 and ReactJS sample apps added to listing in admin app.
  • Updated Node.js scripting to support callbacks in scripts and log all console.log output to DreamFactory's log.
  • Support non-DreamFactory (<dfapi>) XML wrapper on incoming data.
  • Support for simplified DB filter operators "contains", "starts with" and "ends with"
  • Lookups now supported in scripts. Lookup notations (i.e. {lookup_name}) get replaced before script is run.
  • Lookups now supported in parameters for SQL DB stored procedures.
  • Fixed a bug that prevented private lookup keys to be used in service credentials.
  • Better support for spaces in database column names.
  • API Docs for file services path root operations, adding back POST,PUT,PATCH,DELETE.
  • Fixed support for SQLite as server database.
  • Support for SQL Server legacy image type.
  • Fixed a cache reset issue on user-app-role assignment.
  • Updated AWS SDK version and support to latest 3.* release.

Version 2.1.0 (Released January 29, 2016, Retagged February 9, 2016 due to dependency issues)

Note: This release includes some breaking changes, not in the API itself, but with Live API Documentation (i.e. Swagger)!

  • Upgraded usage of OpenAPI Specification (fka Swagger) to 2.0 from 1.2. Prior service configuration (i.e. for remote web services) or client dependencies (old swagger-based SDKs) on the previously used 1.2 specification are not compatible and must be changed to comply with the 2.0 specification.
  • Swagger UI (supporting 2.0 spec) now included as an application and referenced in Admin application.
  • API Doc (i.e. Swagger UI) view is now Role-based, meaning that the view is based on the allowed services for that Role.
  • Event Scripting post-process scripts, and custom scripting services (V8Js, NodeJs, and PHP) now can utilize a "event.response" object that allows for custom status code and content type settings directly from script. Using the old-style "return" statements to return data still works and defaults to status code 200 as before.
  • Event Scripting now supported for File Services and Remote Web Services.
  • XML to JSON content conversion now handles namespaces (i.e. singular namespaces are used to pull data into JSON format).
  • Fixed bugs with configuration of Email services.
  • Fixed bugs for manipulating request content and parameters in pre-process scripts.
  • Fixed handling for database "read-only" fields like SQL Server rowversion.
  • SQL Server now supported as an option for the system database.

Version 2.0.3 (Released December 22, 2015)

  • Updating composer to allow PHP >= 5.5, i.e. PHP 7.0 tested and working!
  • Laravel Homestead configuration setup now part of install for quick testing.
  • Added ability to update related records on virtual foreign relationships for same or different SQL DB
  • Added alias editing via Admin console for Schema relationships
  • Fixed PostgreSQL, SQL Anywhere and Oracle databases issues with table names
  • Fixed API DB max records return limit usage
  • Fixed several DB filtering issues
  • Remove loading of lodash by default on V8js scripting, use require() instead if desired
  • Fix stored procedure on MySQL issue when no data sets returned
  • Fixing CORS config entries when using SQLite as system database
  • Added 'computer' resource for AD/LDAP services
  • Added LinkedIn OAuth 2.0 support

Version 2.0.2 (Released November 30, 2015)

  • Added ability to create virtual foreign keys across two tables on same or different SQL DB
  • Added aliases for virtual fields and relationships
  • Added ability to create virtual fields for db-supported functions, e.g., concat(field1, field2)
  • Added ability to create virtual fields for aggregation by field name
  • Added support for assigning AD users to DreamFactory roles based on AD group assignments


For details please see the relevant change logs on GitHub.

dreamfactory/dreamfactory dreamfactory/df-core dreamfactory/df-sqldb