Skip to content

Releases: cfwheels/cfwheels

CFWheels v2.5.1

13 Nov 13:20
0d199a8
Compare
Choose a tag to compare

This is a maintenance release fixing an issue introduced with v.2.5.0 release where setting an alternate datasource in the model was being ignored and the default datasource was being used instead.

CFWheels v2.5.0

02 Nov 02:52
Compare
Choose a tag to compare

Model Enhancements

  • PR-1183-Allow datasource argument in finders #1183 - [Adam Chapman]
  • PR-1201-Issue #929 validate not nullable columns with default #1201 - [Adam Chapman]
  • PR-1202-Remove old oracle test workaround #1202 - [Adam Chapman]
  • PR-1205-issue-1182-adds-simplelock-to-sql-caching #1205 - [Adam Chapman]
  • PR-1222-Findall() performance bottleneck #1222 - [Adam Chapman]
  • PR-1223-refactor-queryCallback-with-inbuilt-query-functions #1223 - [Adam Chapman]
  • PR-1226-Invalid column not throwing exception in select argument #1226 - [Zain Ul Abideen]
  • PR-1265-improve-performance-refactor-out-listfind #1265 - [Adam Chapman]
  • PR-1260-Adds support for native query returnType #1260 - [Adam Chapman]
  • PR-1249-Removed the original IF/ELSE condition that invalidates calculated props and added condition #1240 - [Zain Ul Abideen]

View Enhancements

  • PR-1254-issue 908 enable paginationLinks() to set active class on parent #1254 - [Zain Ul Abideen]

Bug Fixes

  • PR-1227-Return a numeric value if the primary key is Numeric #1227 - [Zain Ul Abideen]
  • PR-1257-Checkbox bug when checkedvalue is not true #1257 - [Adam Chapman]
  • PR-1246-set the default route if it is not passed in the function #1246 - [Zain Ul Abideen]
  • PR-1256-issue 889 unable to duplicate component #1256 - [Zain Ul Abideen]
  • PR-1253-Issue 580 select ambiguous column name using the wheels alias #1253 - [Zain Ul Abideen]
  • PR-1245-Added afterFind callback hook in the findAll function in case of structs #1245 - [Zain Ul Abideen]
  • PR-1302-Check for Reload Password when setting a url IP exception #1302 - Peter Amiri

Miscellaneous

  • PR-1175-restoreTestRunnerApplicationScope setting #1175 - [Adam Chapman]
  • PR-1176-fix text in core readme file #1176 - [Per Djurner]
  • PR-1177-fix text in base template readme file #1177 - [Per Djurner]
  • PR-1178-fix text in default template file #1178 - [Per Djurner]
  • PR-1185-adds-root-docker-volume #1185 - [Adam Chapman]
  • PR-1200-Update the docker-compose command to docker compose v2 syntax #1200 - [Adam Chapman, Peter Amiri]
  • PR-1204-Add Lucee 6 to test matrix on local Docker test suite #1204 - [Peter Amiri]
  • PR-1203-ensure testing params maintained #1203 - [Adam Chapman]
  • PR-1228-Adding addClass attribute in the function textField #1228 - [Zain Ul Abideen]
  • PR-1230-Add Adobe 2021 Support to local Docker and GitHub Actions testing - #1230 - Peter Amiri
  • PR-1264-update Lucee 6 version used for tests to latest #1264 - [Zac Spitzer - * New Contributor *]
  • PR-1241-Fix spelling and remove whitespace from link #1241 - [John Bampton]
  • PR-1247-show the current git branch in the debug layout #1247 - [Michael Diederich]
  • PR-1250-Added test framework functions in the docs #1250 - [Zain Ul Abideen]
  • PR-1255-issue 1179 Downloaded the CDN files and changed paths in files #1255 - [Zain Ul Abideen]

Guides

  • PR-1198-Documentation-fixes #1198 - [Adam Chapman]

CFWheels v2.4.0

18 Aug 03:09
Compare
Choose a tag to compare

Bug Fixes

  • issue-1091-wheels-paths-in-error-template #1091 - [Adam Chapman]
  • issue-1082-validations should not trim properties #1082 - [Adam Chapman]
  • issue-1088-Adds SQL parsing regex tweak which correctly handles whitespace #1088 - [Adam Chapman, Adam Cameron]

Miscellaneous

  • Adds cfformat ignore marker comments around core "view" cfm files that contain html markup - [Adam Chapman]
  • Adds the ability to scroll large items horizontally in the test runner UI #1130 - [Adam Chapman]
  • Fix cfformat ignore markers #1129 - [Adam Chapman]
  • Enable finder model methods to returnAs "sql", mainly for debugging #1141 - [Adam Chapman]
  • Show the Test Runner buttons in the CFWheels GUI on the Package List screen allowing the developer to run the entire test suite instead of one package at a time. - [Peter Amiri]
  • The Base Template now contains all necessary placeholders for the CLI to interact with the application and be able to inject code properly. - [Peter Amiri]
  • By default the Core tests will run in the application datasource, but the developer can setup a different database for running the Core tests to ensure there is no side effects from running the tests. If you do end up setting a different database for the coreTestDatasourceName, make sure to reload your application after running the Core tests. - [Peter Amiri]
  • Fix two broken links in README. [#1150] - [John Bampton - * New Contributor *]
  • Fix spelling [#1151][#1158] - [John Bampton - * New Contributor *]
  • Add .env parser to parse .env files and add the properties found in the file to this.env scope. #1157 - [Peter Amiri]
  • Update the local test suite to supported ARM architecture docker images to make the suite compatible with the Apple Silicon Macs. #1143 - [Peter Amiri]

Guides

  • Fix broken links throughout the guides. - [Peter Amiri]
  • Fixed mailto link in CONTRIBUTING.md #1123 - [Coleman Sperando * New Contributor *]
  • Fix test guides examples #1125 [Adam Chapman]
  • Fix typos in the guides #1161 [Adam Chapman]

CFWheels Version v2.3.0

11 May 17:45
Compare
Choose a tag to compare

This is the official 2.3.0 release. There were no new enhancements or bug fixes introduced from release candidate 1 so the change log is essentially the same as v2.3.0.rc.1.

CFWheels Version v2.3.0-rc.1

03 May 12:51
Compare
Choose a tag to compare
Pre-release

View Enhancements

  • Adds association error support via includeAssociations argument #1080 - [Nikolaj Frey]

Bug Fixes

  • onerror handler should increase user defined requestTimeout value #1056 - [Adam Chapman]
  • deletedAt should also respect timestamp mode (UTC) #1063 - [David Belanger]
  • Fixes No output from Debug() usage in plugin test cases #1061 - [Tom King]
  • Development mode will now properly return a 404 status if view not found #1067 - [Adam Cameron, Tom King]
  • 404 status now properly returned without URL rewriting #1067 - [Adam Cameron, Tom King]
  • Internal Docs in ACF2018 should now not display duplicate categories [Tom King]
  • Internal Docs search now resets itself properly on backspace with empty value #982 - [Brandon Shea, Tom King]
  • ValidatesConfirmationOf() now correctly enforces prescence of confirmation property #1070 - [Adam Cameron, Tom King]
  • resource()/resources() now allows empty only property to utilise as non-route parent #1083 - [Brian Ramsey]
  • Handle XSS Injection in development enviroment - [Michael Diederich]
  • Fix params bug in CLI API [#1106] - [Peter Amiri]

Miscellaneous

  • Update Docker Lucee Commandbox version to 5.2.0 - [Adam Chapman, Tom King]
  • Minor internal obselete reference to modelComponentPath removed - [Adam Chapman, Tom King]
  • Minor visual fix for long migration logs overflow in modal (scroll) - [Brian Ramsey]
  • Add test suite for Lucee and H2 Database to the GitHub Actions test suite. - [Peter Amiri]
  • On going changes to update the H2 drivers [#1107] - [Peter Amiri]
  • Fixes some syntax formating introduced by cfformat [#1111] - [Adam Chapman]
  • Minimum ColdFusion version is now ColdFusion (2018 release) Update 3 (2018,0,03,314033) / ColdFusion (2016 release) Update 10 (2016,0,10,314028) / ColdFusion 11 Update 18 (11,0,18,314030) #923 - [Michael Diederich]
  • Wheels save(allowExplicitTimestamps=true) doesn't produce the expected result [#1113] - [SebastienFCT]

Potentially Breaking Changes

  • Automatic Time Stamps: the deletedAt column was using the server's local time for the timestamp while createdAt / updatedAt were using the timestamp selected for the timestamp mode. The default for CFWheels' timestamp mode is UTC and therefore all future deletedAt timestamps will be in UTC unless you've changed the default. Please review any SQL that uses deletedAt for datetime comparison.

CFWheels Version 2.2.0

22 Nov 10:03
Compare
Choose a tag to compare

Controller Enhancements

  • Added the status argument to all render*() functions to force returning a specific HTTP status code #1025 - [Adam Chapman, Tom King]
  • CORS accessControlAllowOrigin can now match subdomain wildcards #1031 - [Tom King]

Model Enhancements

  • Experimental adapter for Oracle database - [Andrei B]
  • Added automaticValidations argument to the property method - [Per Djurner]
  • Support named second argument in findOneBy[Property]And[Property] and findAllBy[Property]And[Property] - [Per Djurner]
  • Support value argument in findOrCreateBy[Property] - [Per Djurner]
  • Minor fix for full null support - [Michael Diederich]

View Enhancements

  • Added the required argument to imageTag to suppress exceptions if using non-existent files #979 - [Adam Chapman, Michael Diederich]

Bug Fixes

  • Removed authenticity token id attribute to avoid non-unique id warnings in Chrome #953 - [Per Djurner]
  • Fixes regular expression bug when using the SQL IN operator #944 - [Adam Chapman, Per Djurner]
  • Display content in maintenance mode on newer Lucee versions #848 - [Per Djurner]
  • validatesUniquenessOf does not respect allowBlank #914 - [Adam Chapman]
  • Wheels.RouteNotFound Error page now escapes the arguments.path to prevent XSS attacks - [Michael Diederich]
  • buttonTo() now uses <button> internally instead of <input> allowing for html in content - #798 - [Tom Sucaet, Tom King, Per Djurner]
  • Minor SQL preview fix in GUI - #992 - [Brandon Shea, Tom King]

Miscellaneous

  • Added the refresh url parameter for auto refreshing test framework html - #986 - [Adam Chapman]
  • Allow custom migrator templates by scanning the /migrator/templates directory - [Adam Chapman]
  • Minimum Lucee 5 version is now 5.3.2.77 - Tests added - [Michael Diederich]
  • Use http_x_forwarded_proto to determine if the application is running behind a loadbalancer that is performing SSL offloading - [Peter Amiri]
  • Allow the combination of url and params arguments with redirectTo - [Adam Chapman]
  • Fixed some variable scoping - [Michael Diederich]
  • Github Actions CI Pipeline - [Adam Chapman, Tom King]
  • Flash Cookie can now be disabled via set(flashStorage="none") #978 [Tom King]
  • processRequest() accepts a route param -#1030 - [Adam Chapman]
  • Migration files are written with 664 mode -#1034 - [Adam Chapman]

CFWheels Version 2.1.0

12 Apr 09:21
Compare
Choose a tag to compare

Bug Fixes

  • Fixed pagination order ambiguous column name exception - #980 [Adam Chapman, Mike Lange]
  • Renames findLast() to findLastOne() for lucee@5.3.5+92 upwards compatibility #988

CFWheels Version 2.1.0 Beta

24 Feb 13:30
Compare
Choose a tag to compare
Pre-release

Potentially breaking changes

(Or, just things to look out for...)

  • The new CFWheels internal GUI is more isolated and runs in it's own component: previously this was extending the developers main Controller.cfc which caused multiple issues. The migrator, test runner and routing GUIs have therefore all been re-written.
  • The plugins system behaviour no longer chains multiple functions of the same name as this was a major performance hit. It's recommended that plugin authors check their plugins to run on 2.1
  • HTTP Verb/Method switching is now no longer allowed via GET requests and must be performed via POST (i.e via _method)

Model Enhancements

  • Migrator now automatically manages the timestamp columns on addRecord() and updateRecord() calls - #852 [Charley Contreras]
  • Migrator correctly honors CFWheels Timestamp configuration settings (setUpdatedAtOnCreate, softDeleteProperty, timeStampMode, timeStampOnCreateProperty, timeStampOnUpdateProperty) - #852 [Charley Contreras]
  • MSSQL now uses NVARCHAR(max) instead of TEXT #896 [Reuben Brown]
  • Allow createdAt and updatedAt to be explicitly assigned using the allowExplicitTimestamps=true argument - #887 - [Adam Chapman]

Controller Enhancements

  • New set(flashAppend=true) option allows for appending of a Flash key instead of replacing - #855 - [Tom King]
  • flashMessages() now checks for an array of strings or just a string and outputs appropriately - #855 - [Tom King]
  • flashInsert() can now accept a one dimensional array - #855 - [Tom King]

Bug Fixes

  • Allow uppercase table names containing reserved substrings like OR and AND - #765 [Dmitry Yakhnov, Adam Chapman]
  • Calculated properties can now override an existing property - #764 [Adam Chapman, Andy Bellenie]
  • Filters are now correctly called if there is more than one after filter - #853 [Brandon Shea, Tom King, Adam Chapman]
  • Minor fix for duplicate debug output in the test suite - #176 [Adam Chapman, Tom King]
  • Convert handle to a valid variable name so it doesn't break when using dot notation - #846 [Per Djurner]
  • The validatesUniquenessOf() check now handles cases when duplicates already exist - #480 [Randall Meeker, Per Djurner]
  • validatesConfirmationOf() now has a caseSensitive argument to optionally perform a case sensitive comparison - #918 [Tom King]
  • sendFile() no longer expands an already expanded directory on ACF2016 - #873 [David Paul Belanger, Tom King, strubenstein]
  • Automatic database migrations onApplicationStart now correctly reference appropriate Application scope - #870 [Tom King]
  • usesLayout() now can be called more than once and properly respects the order called - #891 [David Paul Belanger]
  • Migrator MSSQL adapter now respects Time and Timestamp Column Types - #906 [Reuben Brown]
  • Automatic migrations fail on application start - #913 [Adam Chapman]
  • Default cacheFileChecking to true in development mode - [Adam Chapman, Steve Harvey]
  • Migrator columnNames list values are now trimmed - #919 [Adam Chapman]
  • Fixes bug when httpRequestData content is a JSON array - #926 [Adam Chapman]
  • When httpRequestData content is a JSON array, contents are now automatically added to params._json - #939 [Tom King]
  • Fixes bug where Migrator $execute() always appends semi-colon - #924 [Adam Chapman]
  • Fixes bug where model createdAt property is changed upon update - #927 [Brandon Shea, Adam Chapman]
  • Fixed silent application.wheels scope exception hampering autoMigrateDatabase - #957 [Adam Chapman, Tom King]

Miscellaneous

  • Added the ability to pass &lock=false in the URL for when reload requests won't work due to locking - [Per Djurner]
  • Basic 302 redirects now available in mapper via redirect argument for GET/PUT/PATCH/POST/DELETE - #847 - [Tom King]
  • .[format] based routes can now be turned off in resources() and resource() via mapFormat=false - #899 - [Tom King]
  • mapFormat can now be set as a default in mapper() for all child resources() and resource() calls - #899 - [Tom King]
  • HEAD requests are now aliased to GET requests #860 - [Tom King]
  • Added the includeFilters argument to the processRequest function for skipping execution of filters during controller unit tests - [Adam Chapman]
  • Added the useIndex argument to finders for adding table index hints #864 - [Adam Chapman]
  • HTTP Verb/Method switching is now no longer allowed via GET requests and must be performed via POST #886 - [Tom King]
  • CORS Header Access-Control-Allow-Origin can now be set either via a simple value or list in accessControlAllowOrigin() #888 [Tom King]
  • CORS Header Access-Control-Allow-Methods can now be set via accessControlAllowMethods(value) #888 [Tom King]
  • CORS Header Access-Control-Allow-Credentials can now be turned on via accessControlAllowCredentials(true); #888 [Tom King]
  • accessControlAllowMethodsByRoute() now allows for automatic matching of available methods for a route and sets CORS Header Access-Control-Allow-Methods appropriately #888 [Tom King]
  • CORS Header can now be set via accessControlAllowHeaders(value) #888 [Tom King]
  • Performance Improvement: Scanning of Models and Controllers #917 [Adam Chapman]
  • Added the authenticityToken() function for returning the raw CSRF authenticity token #925 [Adam Chapman]
  • Adds enablePublicComponent, enableMigratorComponent,enablePluginsComponent enviroment settings to completely disable those features #926 [Tom King]
  • New CFWheels Internal GUI #931 [Tom King]
  • pluginRunner() now removed in favour of 1.x plugin behaviour for performance purposes #916 [Core Team]
  • Adds validateTestPackageMetaData environment setting for skipping test package validation on large test suites #950 [Adam Chapman]
  • Added aliases for migrator.TableDefinition functions to allow singular variant of the columnNames property #922 [Sébastien FOCK CHOW THO]
  • onAbort is now supported via events/onabort.cfm #962 [Brian Ramsey]

CFWheels Version 2.0.2

17 Oct 15:43
Compare
Choose a tag to compare

Security Release

It is strongly recommended to update to CFWheels 2.0.2 if you are running either 2.0.0 or 2.0.1. This issue does not affect 1.x releases. This release introduces a potentially breaking change, so you are encouraged to test your application appropriately before deploying.

Potential Breaking Changes

  • Blank strings in SQL are no longer converted to null

CFWheels Version 2.0.1

31 Jan 16:46
Compare
Choose a tag to compare

Bug Fixes

  • Fixes reload links on application test suite page.
  • Set dbname in cfdbinfo calls when using custom database connection string.
  • Fixes humanize() function.
  • Enables the rel attribute for stylesheetlinkTag().
  • Returning a NULL value from a query with NULL support enabled no longer throws an error.
  • Accessing a route with incorrect verb now provides a more useful error message.
  • Fixed bug with arrays in URLs.
  • startFormTag now properly applies the method attribute.
  • Incompatible plugin notice now ignores patch releases unless specified.