All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- DF-1365 Fixes JWT token refresh issue
0.14.2 - 2018-02-25
- DF-1296 Allowed for wildcard handling in session permission checks
- DF-1270 Use potentially modified request in response format handling
0.14.1 - 2018-01-25
- DF-1275 Initial support for multi-column constraints
- DF-1284 Changed error message to indicate why DynamoDB schema overwrite doesn't work
- DF-1287 Fixed NodeJS (and Python) script execution for large script. Made script size configurable
- Fixed CORS issues
- DF-1229 Added support for accented characters in api route
0.14.0 - 2017-12-28
- DF-1251 Added alternative means (external db) of authentication
- New ServiceManager methods and test cases for retrieving service names by service type or group
- Added helper function and pub-sub interface
- Added package discovery
- Added schema retrieval to some internal types to aid in automatic document generation
- DF-1259 Correct OAS3 handling of comma-delimited URL query parameters
- DF-1231 Fix SQL Server migration from older versions
- ServiceRequest content-type needs to be string
- Fix CORS reference
- Corrected checkServicePermission to use access exceptions so that it applies to all checks not just REST
- Fix possible issue with content_type usage
- Fix empty header issue in cURL response
- Setting session.use_cookies to 0 explicitly
- Fixed service (logstash) to event map caching issue
- DF-1240 Stopped Checking for 'token' as a parameter
- DF-1186 Add exceptions for missing data when generating relationships
- DF-1254 Allow headers to be set directly in response creation
- DF-1249 Added verb override check to new middleware, moved existing first user check to df-core
- Environment utilities separated from system/environment resource
- Moved the system service and resources to dreamfactory/df-system
- Made version optional in routing (i.e. api/v2 or api/) and api and storage routes customizable
- Updated service-related interfaces for better re-usability
- Split service resources and resource handlers usage for easier use
- Added schema retrieval to some internal types to aid in automatic document generation
- Moved service request logging into service handling area so all paths to services are logged
- DF-1150 Update copyright and support email
- Cleanup and simplify routing
- Updated test cases, .gitignore, and dependencies
- Updated homestead config to support --dev option
- Cleanup facade usage and documentation
- Catch invalid service type in access check
- Changed file extraction and streaming to not use service's container attribute as it is owned by the service itself
- Remove external use of file service driver and container, opt for enhanced interface
0.13.1 - 2017-11-16
- Fix event listing with resource replacement parameters
0.13.0 - 2017-11-03
- DF-1191 Added attachment support for email services and email templates
- DF-1225 Add ldap_username to lookup availability
- RBAC support for system/package endpoint for export or import
- More detailed error message for Access Forbidden (403)
- DF-1222 Moving automatic cache flush for service to the ServiceManager
- Moving access check exceptions to the actual services domain
- Moving license and subscription requirement handling to the actual services domain
- Removed app_group system resource and supporting classes, no longer used
- Upgraded Swagger to OpenAPI 3.0 specification
- DF-1233, DF-1246 Tailor system/environment call for various authentication levels
- Updated homestead configuration
- Updated unit test cases
- Sort system/service_type by name
- Correcting role access view of api/v2 service listing
- DF-1184 Limit schema object displayed fields when discovery is not complete
- Fixed Node.js (and Python) scripting error due to big data set in scripts
- Catch NotFoundException when purge is triggered by ServiceDeleted event
0.12.3 - 2017-09-19
- Fix package listing
0.12.2 - 2017-09-15
- DF-1131 Support for AD SSO and SQLServer windows authentication
- DF-1177, DF-1161 Services for GitHub and GitLab with linking to server side scripting
- Support for comma-delimited groups on service listing, i.e. /api/v2?group=a,b
- Support for comma-delimited fields on service listing, i.e. /api/v2?fields=a,b
- Add new support for HAS_ONE relationship to schema management, used by service doc as well
- Add remember functions to cacheable components
- Moved scripting config to df-script
- Make server-side filters in RSA adhere to requestor type API or Script
- Fix race condition where service config is cached before service doc related model is saved
0.12.1 - 2017-08-31
- Make commands available for runtime, not just console
0.12.0 - 2017-08-17
- DF-819 Added clear validation messages
- Service list retrieval and better service handling in ServiceManager
- Allowing optional filter service list by group
- Add caching to base service and ability to clear at the service level
- Add ability to log database queries, enable via .env
- Reworking API doc usage and generation
- DF-1074 Moving API docs perms check for role-level swagger control
- DF-1188 Only return debug trace when app.debug is true, previously used APP_ENV
- Rework schema interface for database services in order to better control caching
- Rework access check to always return JWT errors if a token is given
- Cleanup Package model use
- Catch and log service exceptions during event list generation
- Fix swagger definitions to pass validation checks
- Make sure we have a status code on exception handling
- Fix lookup creation and validation against existing lookups
- Fix lookup hierarchy in session information
0.11.1 - 2017-07-28
- Require payload for POST
0.11.0 - 2017-07-27
- DF-1127 Added service/resource info on logstash logging
- DF-1142 Added ldap_username field to user table. Added DF_JWT_USER_CLAIM env option to include user attribute in JWT
- DF-1117 Added SAML and OpenID Connect SSO support
- Adding ServiceTypeGroup IoT
- DF-1145 Cleaned up old "Login with Username" option from system config
- Cleanup to allow easier pulling of event map and API docs from services
- Rework Event structure to allow for non-API driven service events
- Make ServiceEvent newable, no abstractions there
- Cached cors config
- DF-1130 Rework lookup storage and modelling to ease session usage
- Remove dreamfactory:setup, opt for df:env and df:setup
- Do not include service in event list if no events generated.
- Add potential resource handling at the base service level
- Allow empty lookup values
- DF-1144 Made DELETE behavior consistent across local and all remote file services
0.10.0 - 2017-06-05
- DF-797 Support for OpenID Connect
- Used user_key in JWT claim from improved security
- DF-776 Support for CSV as a data source
- DF-1075 Added license level in Config - System Info page
- DF-1106 Added server external IP address on system/environment
- Moved JWT require from application to df-core
- Extra user and admin info on package manifest
- Support default email service and templates on system config for admins
- Remove use of php-utils library, opt for laravel helper methods already included
- Cleanup based on environment changes from application
- Remove pulling event list for service event map, taken care of by df-admin-app
- DF-996 Fixed API Docs to show token refresh endpoints
- DF-982 Fixed GET over POST on system resources ignoring some parameters in payload
- DF-620 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
- Fixed CSV and XML user import feature
- DF-1105 Fix migration for MS SQL Server possible cascading issue
- Split df:setup command into df:env and df:setup
0.9.1 - 2017-04-25
- Correct a lookup privacy issue
0.9.0 - 2017-04-21
- DF-811 Add support for upsert
- DF-895 Added support for username based authentication
- DF-1084 added support for Admin User email invites
- DF-1028 Ignored JWT explicitly when making login requests
- Moved database configuration to service and the new NoDbModel-based handler
- DF-1005 Fixed resource level RBAC for swagger docs
- DF-955 Added PUT section on api docs for system/{resource} and system/{resource}/{id}
- Fixed JWT token refresh and handling forever token refresh properly
- DF-1033 Correct datetime config option usage
0.8.4 - 2017-03-24
- JWT refresh correction, forever token behavior change
0.8.3 - 2017-03-24
- Upgraded the jobs and failed_jobs migrations to match Laravel 5.4
0.8.2 - 2017-03-16
- Upgraded the jobs and failed_jobs migrations to match Laravel 5.4
0.8.1 - 2017-03-08
- Remove the false limits service type
0.8.0 - 2017-03-03
- Major restructuring to upgrade to Laravel 5.4 and be more dynamically available
- DF-978 Added overwrite option for package import
- Added 409 Conflict rest exception
- DF-688 Added support for iOS push notification
- DF-462 Added support for GCM push notification
- DF-967 Made the error message 'No record(s) detected in request.' more verbose
- Made batch handling consist across database and system services, using new BatchException
- Allowed editing event in event-driven service configuration UI
- DF-716 Fixed AD login issue with accented characters in user names
- Fixed migrations with timestamp fields due to Laravel issue #11518 with some MySQL versions
- DF-856 Data formatting now takes Arrayable and stringable objects into consideration
- DF-935 On incoming XML, handle any outer wrapper, not just 'dfapi', as there is no need to restrict
- DF-915 Script tokening to authenticate internal script calls from node.js and python scripting
- DF-1027 Fixed a package export error
- Fixed creating role where description is longer than 255 characters
- Fixed password reset after Laravel 5.4 upgrade
0.7.2 - 2017-02-15
- ServiceResponse allows setting additional headers directly
0.7.1 - 2017-01-25
- Allow dashes in lookup names
0.7.0 - 2017-01-16
- DF-920 Allowing SMTP service without authentication
- DF-447 Support for Azure Active Directory
- DF-924 Support for event-driven logging service
- DF-735 Clear cached WSDL files from SOAP services upon system cache clear
- DF-926 SAML 2.0 support
- DF-814 Database function support across all fields, not just virtual, so we can support binary and unknown data types
- Handling errors and showing original content when content in response cannot be resolved to Accept type
- DF-770 Package manager improvement
- Refactored email services out to new repo df-email
- Refactored database services out to new repo df-database
- Refactored scripting out to new repo df-script
- DF-899 Indicating bad services on package manager
- OAuth callback handler now checks for service name using state identifier when service name is not present on callback url
- Cleanup of old MERGE verb, handled at router/controller level
- DF-916 Handling exceptions thrown in callback functions in NodeJS scripting
- DF-712 Support for SMTP without SSL/TLS.
- DF-821 Adding send_invite parameter to swagger definition
- If value is null, don't return protected mask or encryption, just null
- Handling errors and showing original content when content in response cannot be resolved to Accept type
- Check column count so we don't attempt a fetch on a non-existent rowset
0.6.2 - 2016-12-02
- Fix PHP 5.6 redeclaration warning for trait member usage
0.6.1 - 2016-11-18
- Routine parameters not searched correctly when passed as array of objects
0.6.0 - 2016-11-17
- DF-896 Added parameter and header options to scripting inline calls using platform
- DF-867 Added a pre-configured local file service for the logs directory
- DF-862 Added support for schema merge in package import
- DF-869, DF-871, DF-879 Reworked Virtual Foreign Keys to support all relationship types
- Added new API paths for database table field and related management (_schema/<table_name>/_field and _related)
- DF-552 Added support for Couchbase database
- DF-892 Adding allowed modifier access in lookup designations
- DF-893 Update CORS to use the latest laravel-cors with additional options and new path matching
- Removed array wrapping of event.request.headers values done by Symfony HeaderBag class
- Marked API path for database table field management (_schema/<table_name>/<field_name>) as deprecated
- Use null for empty service doc instead of default JSON object
- Database service schema-handling base class changes to support field configuration across all database types
- Database create and update table methods allow for native settings
- DF-868 Protecting user, role, and app lookups against duplicate named entries
- DF-861 Preventing timeout on package export manifest by only showing top level folders for file services
- DF-910 Node.js and Python scripting improvements
- DF-922 Don't format null to defined param type
- Clean up database extras upon dropping table or column
- Casting boolean correctly for Sqlite
- Parsing incoming record for NoSQL databases for pre-defined fields
0.5.3 - 2016-10-28
- Latest oci8 driver kicks back error on OUT parameter binding, even though it works, squelch for now
0.5.2 - 2016-10-28
- Use class designated fetch mode because Oracle doesn't support all fetch modes
0.5.1 - 2016-10-25
- DF-852 Use FETCH_NAMED so as to return unnamed multiple columns or multiple columns with the same name
0.5.0 - 2016-09-30
- DF-425 Allowing configurable role per app for open registration, OAuth, and AD/Ldap services
- DF-444 Adding Log service supporting Logstash
- DF-641 Download files in chunks
- New 'count_only' option to query parameters, returns count of records filtered, but not the records
- DF-826 Core changes for encryption and protection control in BaseModel
- DF-742 Customizable user confirmation code length
- DF-249 Configurable expiration for user confirmation codes
- Cleaning up cached Service model usage
- Make server-side filter usage case-insensitive like the rest of record processing
0.4.3 - 2016-09-20
- Event names were not being built properly for Scripting and HTTP services
0.4.2 - 2016-09-08
- Scripting response from external platform.api calls not correctly formatted in all cases
0.4.1 - 2016-08-24
- Fix service doc and event scripts importing from old packages
0.4.0 - 2016-08-21
- DF-664 Support for Cassandra database service(beta)
- DF-719 Support for cache service (supporting local, redis, memcached)
- DF-681 Event and scripting changes for supporting queued event scripts and script services
- Adding Microsoft Live OAuth2 support
- Add 'is_base64' option for retrieving content of file along with properties
- Default queue setup changed from 'sync' to 'database', 'job' and 'failed_job' migrations added
- Allow post-process scripting to always run, even when processing throws exception
- Allow pre-process to circumvent processing request by returning response directly
- DF-607 Making service docs always viewable, even auto-generated ones
- Cleanup for better PSR styling
- Reduce config exposure to scripting to just 'df'
- Scripting bug where the system failed to check a script file path.
- DF-800 Cleaned up the update schema handling to avoid sending unnecessary changes to database.
- Showing wrong disk name for local file service container config options
- Workaround for v8js segfault issue in PHP 7.0
- Nodejs remote calls issue when URL has port in it
0.3.3 - 2016-07-28
- Fix service name detection for manipulation of swagger files.
- Needed to add require for symfony/yaml for Swagger support.
- Case-sensitivity issue with out parameters on procs.
0.3.2 - 2016-07-08
- DF-768 Allow event modification setting added to event script config, replacing the content_changed flag in scripting
- DF-636 Adding ability using 'ids' parameter to return the schema of a stored procedure or function
- Ability to call stored procedures and functions with URL parameters matching required procedure/function parameters
- Using the existing file param to download package manifest
- DF-787 Adding data import support for packages
- DF-763 Removed unsupported fields from API DOCs for NoSql services
- DF-794 Regenerating API Key during package import if duplicate found
- DF-710 adding application/xml response type to API Docs
- DF-711 Making note that file download will not work using API Docs
- Fixing error 'cannot destroy the zip context'
- DF-662 Fixing file streaming using file service over CORS
- Fix Python script POST call with payload from POSTMAN, GET call with json payload
- DF-676 Reworking swagger generation and caching to prevent hitting the db multiple times
- DF-787 Table data import fixes
- Fixing a bug that prevented role export
- Fixing table data export feature in package
- DF-749 UI tooltip text fix
- Many fixes on stored procs and func
- Should be returning false to trigger an unsupported call error.
- Updating test cases
- A minor work-around to make v8js work with PHP 7.0
0.3.1 - 2016-05-31
- Service type group inquiry form packaging was broken.
- Service type checks in service creation and modification.
0.3.0 - 2016-05-27
- MAJOR: Redesigned services, script engines, and system resources management to be more flexible and dynamic. See ServiceManager, SystemResourceManager and ScriptEngineManager modelled after Laravel's DatabaseManager, etc.
- Now using ServiceProviders for all service type on-boarding.
- 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
- Now using guzzle 6
- SQL DB driver types now available as their own service types, "sql_db" type retired, see upgrade notes.
- Script languages now available as their own service types, "script" type retired, see upgrade notes.
- Converts old services types to new format during import in packaging.
- Moving some seeder files location to model area.
- System database redesign to remove database mappings
- Python scripting improvements, like allow empty script, correcting script output
- Node.js scripting improvement, like allow returning output from async callback functions
- Chrome doesn't like content-disposition:inline when importing html file from another html file
0.2.10 - 2016-04-29
- Fix command execution for Windows OS for scripting and packaging
0.2.9 - 2016-04-25
- New scheme for secured package export, including capability detection in system/environment API.
0.2.8 - 2016-04-22
- System Package resource for package import and export of system resources and services
- Data Mesh feature now supports SQL to MongoDB relationships
- Basic request handling of www-form-urlencoded
- Add doctrine/dbal dependency for schema management
- Adding AD username to user name and allow passing it via remote web service parameters
- Rework database connections and schema to utilize Laravel database connectors and connections, more work to come.
- Override SQLite connector for allowing PDO to create the db file if possible
- Api doc needs more storage space, increase db field size
- Making app api_key fillable
- Issues with incomplete oauth services
- Clearing apikey2appid cache value when deleting app
- Return 200 when no records created during import
- Clear ref fields on removal of virtual foreign key
- When using dblib driver with sql server, set ANSI settings always, individually for now as ANSI_DEFAULTS causes some issues.
- Node and Python scripting on Windows and bug fixes.
0.2.7 - 2016-03-11
- Squelch auto-incrementing identifier fields from update.
0.2.6 - 2016-03-09
- Casting UserAppRole model id as integer to make sure id is always an integer type even when mysqlnd driver is not used.
0.2.5 - 2016-03-09
- Catch internal exception thrown when converting request to event for scripting.
0.2.4 - 2016-03-08
- Added a new DF_LOG_LEVEL environment option.
- Added ability to log REQUEST and RESPONSE under log level INFO.
- Added extra server side and client side information on the config tab of admin app.
- Updated Node.js scripting to support callbacks in scripts and log all console.log output to dreamfactory's log.
- Support non-DreamFactory () 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.
- Changed BaseModel and UserModel's update method signature to match with Eloquent Model's update method (Laravel 5.2)
- Fixed a bug that prevented private lookup keys to be used in service credentials.
- Field parameter when field names have spaces in them (supported in some db column names).
- Swagger doc for file services path root operations, adding back POST,PUT,PATCH,DELETE.
- Swagger output for SQLite as server database, had null instead of empty string for description fields.
- Support for SQL Server image type (legacy type still used in some customer DBs)
- Much Swagger output cleanup to pass validation.
- Cache reset issue on user-app-role assignment.
0.2.3 - 2016-02-09
- Static cache prefix not getting used correctly.
0.2.2 - 2016-02-08
- Allow backward compatibility with "return" in scripts
- Usage of arrays for to, cc, etc in email templates
- Password restriction consistent usage
0.2.1 - 2016-02-01
- Swagger role-based caching formatting issue.
- OAuth redirect issue.
- user/custom route not saving correctly.
0.2.0 - 2016-01-29
- Events now supported for File services
- Events now supported Remote Web Services (based on swagger definition given)
- Scripts now allow tailoring content type and status code.
- XML to JSON conversion now handles namespaces.
- MAJOR Updated code base to use OpenAPI (fka Swagger) Specification 2.0 from 1.2
- API Doc (api_docs) service is now one file to work with new Swagger UI 2.0
- API Doc is now role-based
- Scripting services no longer need to "return" data. Event "response" available, see wiki for details.
- Fixed filtering on system/admin API.
- Fixed an issue with email service configs not saving.
- Several system schema changes to allow for SQL Server as system database.
- Database relationship bug fixes.
- Affecting request on preprocess scripts fixed.
- Scripting bug for user/session usage fixed.
- Email services configuration saving fixed.
- Better handling of read-only fields from database (i.e. SQL Server rowversion and timestamp)
0.1.13 - 2016-01-07
- Add caching for system table schema pulls from database
0.1.12 - 2016-01-05
- Fix table name case issue with cache lookup for SQL DB services.
- Fix password setting issue on non-admin user via system/user resource.
- Fixed additional Email Service parameters from not showing on the admin UI.
0.1.11 - 2015-12-30
- Hotfix for API Doc caching issue.
0.1.10 - 2015-12-21
- Fix API docs to not have table names as drop downs.
0.1.9 - 2015-12-21
- PostgreSQL table creation and usage of the money type.
- DB max records return limit usage.
0.1.8 - 2015-12-18
- Resource path added to script data object
- Updating composer to allow php >= 5.5
- Refactoring schema cache classes
- Correcting table names for SQL Anywhere and Oracle
- Remove loading of lodash by default on V8js scripting, use require() instead.
- Stored proc on MySQL issue when no data sets returned
- Validation comparison in field schema updates
- Deactivated admin account with active session cannot kill session from the UI
- Rework filter handling of logical and comparison operators
- Correcting include_count calculation on DB retrieve metadata
- Fixing CORS config entries when using SQLite as system db
- Fix Oracle use of timestamp defaults
0.1.7 - 2015-12-03
- Email invites on users.
- Fixing user role assignment during provisioning and authentication.
- Bitnami installation issues for demos.
0.1.6 - 2015-11-30
- Field extras was overriding real SQL relationships when aliases or labels configured.
0.1.5 - 2015-11-30
- Service config initialized properly for file service, empty array was causing provisioning issues.
0.1.4 - 2015-11-24
- Virtual foreign keys (relationships) for both inter-service and service to service for SQL DB services.
- Aliasing, label and description for relationships.
- Always fetch option for relationships.
- This changelog!
- Updating user profile now returns an updated session token.
- Removed references to "managed" usage, moved to self-contained library.
- PHP scripting now allows exception throwing.
- Filtering using the IN syntax.
- Deleting of virtual fields.
- Bug with DB function usage.
- Node scripting escaping arguments.
- Several SQL DB as server database compatibility issues.
- Handling for some older MIME types like text/xml.
0.1.3 - 2015-11-13
- Added DB function support on existing and virtual fields on SQL DB services.
- Added support for virtual fields on SQL DB services.
- Fixed internal logic to use ColumnSchema from df-core instead of arrays.
- Fixed reported record creation issue.
0.1.2 - 2015-10-28
- Fix for failure to logout with old/invalid token.
0.1.1 - 2015-10-27
- Reverse config/env logic from standalone to managed.
First official release working with the new dreamfactory project.