Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
697 lines (599 sloc) 31.2 KB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

Unreleased

0.14.2 - 2018-02-25

Fixed

  • 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

Added

  • DF-1275 Initial support for multi-column constraints

Changed

  • DF-1284 Changed error message to indicate why DynamoDB schema overwrite doesn't work

Fixed

  • 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

Added

  • 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

Fixed

  • 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

Changed

  • 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

Fixed

  • Fix event listing with resource replacement parameters

0.13.0 - 2017-11-03

Added

  • 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)

Changed

  • 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

Fixed

  • 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

Fixed

  • Fix package listing

0.12.2 - 2017-09-15

Added

  • 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

Changed

  • Moved scripting config to df-script

Fixed

  • 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

Added

  • 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

Changed

  • 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

Fixed

  • 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

Fixed

  • Require payload for POST

0.11.0 - 2017-07-27

Added

  • 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

Changed

  • 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

Fixed

  • DF-1144 Made DELETE behavior consistent across local and all remote file services

0.10.0 - 2017-06-05

Added

  • 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

Changed

  • 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

Fixed

  • 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

Fixed

  • Correct a lookup privacy issue

0.9.0 - 2017-04-21

Added

  • DF-811 Add support for upsert
  • DF-895 Added support for username based authentication
  • DF-1084 added support for Admin User email invites

Changed

  • DF-1028 Ignored JWT explicitly when making login requests
  • Moved database configuration to service and the new NoDbModel-based handler

Fixed

  • 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

Fixed

  • JWT refresh correction, forever token behavior change

0.8.3 - 2017-03-24

Fixed

  • Upgraded the jobs and failed_jobs migrations to match Laravel 5.4

0.8.2 - 2017-03-16

Fixed

  • Upgraded the jobs and failed_jobs migrations to match Laravel 5.4

0.8.1 - 2017-03-08

Fixed

  • 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

Added

  • 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

Changed

  • 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

Fixed

  • 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

Fixed

  • ServiceResponse allows setting additional headers directly

0.7.1 - 2017-01-25

Fixed

  • Allow dashes in lookup names

0.7.0 - 2017-01-16

Added

  • 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

Changed

  • 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

Fixed

  • 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

Fixed

  • Fix PHP 5.6 redeclaration warning for trait member usage

0.6.1 - 2016-11-18

Fixed

  • Routine parameters not searched correctly when passed as array of objects

0.6.0 - 2016-11-17

Added

  • 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

Changed

  • 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

Fixed

  • 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

Changed

  • Latest oci8 driver kicks back error on OUT parameter binding, even though it works, squelch for now

0.5.2 - 2016-10-28

Changed

  • Use class designated fetch mode because Oracle doesn't support all fetch modes

0.5.1 - 2016-10-25

Changed

  • 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

Added

  • 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

Changed

  • 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

Fixed

  • Make server-side filter usage case-insensitive like the rest of record processing

0.4.3 - 2016-09-20

Fixed

  • Event names were not being built properly for Scripting and HTTP services

0.4.2 - 2016-09-08

Fixed

  • Scripting response from external platform.api calls not correctly formatted in all cases

0.4.1 - 2016-08-24

Fixed

  • Fix service doc and event scripts importing from old packages

0.4.0 - 2016-08-21

Added

  • 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

Changed

  • 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'

Fixed

  • 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

Fixed

  • 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

Added

  • 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

Changed

  • DF-763 Removed unsupported fields from API DOCs for NoSql services
  • DF-794 Regenerating API Key during package import if duplicate found

Fixed

  • 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

Fixed

  • Service type group inquiry form packaging was broken.
  • Service type checks in service creation and modification.

0.3.0 - 2016-05-27

Added

  • 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

Changed

  • 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

Fixed

  • 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

Fixed

  • Fix command execution for Windows OS for scripting and packaging

0.2.9 - 2016-04-25

Changed

  • New scheme for secured package export, including capability detection in system/environment API.

0.2.8 - 2016-04-22

Added

  • 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

Changed

  • 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

Fixed

  • 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

Fixed

  • Squelch auto-incrementing identifier fields from update.

0.2.6 - 2016-03-09

Fixed

  • 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

Fixed

  • Catch internal exception thrown when converting request to event for scripting.

0.2.4 - 2016-03-08

Added

  • 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

  • Changed BaseModel and UserModel's update method signature to match with Eloquent Model's update method (Laravel 5.2)

Fixed

  • 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

Fixed

  • Static cache prefix not getting used correctly.

0.2.2 - 2016-02-08

Fixed

  • 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

Fixed

  • Swagger role-based caching formatting issue.
  • OAuth redirect issue.
  • user/custom route not saving correctly.

0.2.0 - 2016-01-29

Added

  • 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.

Changed

  • 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

  • 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

Fixed

  • Add caching for system table schema pulls from database

0.1.12 - 2016-01-05

Fixed

  • 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

Fixed

  • Hotfix for API Doc caching issue.

0.1.10 - 2015-12-21

Fixed

  • Fix API docs to not have table names as drop downs.

0.1.9 - 2015-12-21

Fixed

  • PostgreSQL table creation and usage of the money type.
  • DB max records return limit usage.

0.1.8 - 2015-12-18

Added

  • Resource path added to script data object

Changed

  • 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.

Fixed

  • 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

Fixed

  • Email invites on users.
  • Fixing user role assignment during provisioning and authentication.
  • Bitnami installation issues for demos.

0.1.6 - 2015-11-30

Fixed

  • Field extras was overriding real SQL relationships when aliases or labels configured.

0.1.5 - 2015-11-30

Fixed

  • Service config initialized properly for file service, empty array was causing provisioning issues.

0.1.4 - 2015-11-24

Added

  • 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!

Changed

  • 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.

Fixed

  • 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

  • Added DB function support on existing and virtual fields on SQL DB services.
  • Added support for virtual fields on SQL DB services.

Fixed

  • Fixed internal logic to use ColumnSchema from df-core instead of arrays.
  • Fixed reported record creation issue.

0.1.2 - 2015-10-28

Fixed

  • Fix for failure to logout with old/invalid token.

0.1.1 - 2015-10-27

Changed

  • Reverse config/env logic from standalone to managed.

0.1.0 - 2015-10-24

First official release working with the new dreamfactory project.

You can’t perform that action at this time.