- MNT: ported to net8
- FEA: duckdb support
- MNT: ported to netcore and fake5
- ENH: improvements to error handler
- FEA: optional error handler for server
- FEA: added secure UD implementation
- BUG: post requests did not handle ? style arguments gracefully
- BUG: rare race condition between dispose and keep alive could throw exception
- MNT: updated project files to build under VS2017 on command line cleanly
- MNT: updated to FSharp.Core 4.4.1.0
- BUG: postgres db reopening could throw error and die previously
- LNT: cleaned up fslint recommendations for template.fs
- FEA: moved exposed calculation routines in template to make them useful for external applications
- MNT: update to 3.1.9.0 Npgsl
- ORM: fss_postgres reconnect stability improvements
- ORM: mapping metadata to lowercase as sqlite does not match postgres behavior
- ORM: specified explicit schema now for insertMany
- ORM: support for sqlite solid
- ORM: support for postgres enums solid
- ORM: support for postgres schemas / search_path
- ORM: support for sqlite added
- ORM: small cleanup issue in keepalive thread fixed
- ORM: caching schema information at first load for postgres
- ORM: better NULL/ Nullable support
- ORM: int16,decimal support
- templates: expression legal in for loop iter RHS value
- templates: elseif implementation
- ORM: fss-mysql implementation
- ORM: decimal null support
- templates: BUG: includes with internal variables mixed with extends werenot expanded properly
- server: BUG empty multipart form parts where triggering assertions incorrectly
- server: BUG: rewrote multipart header parser to be tail recursive
- Freql: methods added directly to transaction object to make it behave more like a connection
- Freql: premature release of transaction connection fixed
- Server: reexposed Fss.Server.version string
- templates: if x.y case fixed and tested
- Freql: bug in Query led to delayed connection pool release for incomplete seq consumption
- templates: ENH - range expressions for for loops implemented
- templates: ENH - expressions allowed within double parenthesis substitution blocks
- templates: ENH - array indices implemented for expressions
- templates: ENH - <= and >= implemented
- templates: overhaul of operator precedence to implement boolean expressions correctly
- Freql: handling nullable date fields implemented.
- templates: bug in double quoted string parsing fixed string hello not recognized :(
- templates: != operator implemented for '{% if %}'
- test: additional unit tests for string , != operations
- templates: == instead of = for equals comparison (for consistency with standard jinja2 docs)
- templates: single variable to if '{% if foo %}' will test whether variable is set or has a non false value ('""' and [||] considered false)
- fss: added support for 302, 303, 304, and 307 response codes and http303 redirect helper
- fss: added overridable preCheckFailed to UD and ability to modify url path within precheck
- Freql: Support for null fields in tables, mapped onto option fields in records
- templates: changed extends -> include in jinja2 clone to correctly reflect jinja semantics
- templates: implemented jinja2 blocks
- templates: implemented jinja2 extend
- templates: fixed empty for/if blocks
- Added unit tests for pg_db.fs
- Added unit tests for template extends and blocks cases
- Bug fix for premature dbconnection returning to pool
- Added logging for queries (optionally conditional on runtime)
- Added logging for connection pool usage
- Killed bug due to premature release of db connection
- Added support for ignoredColumns argument to InsertMany for db supplied column values
- Added external transaction support to FreQL InsertMany
- Added error message for table not found on FreqInsert
- Added typed URL dispatch functions to catch errors at edit time
- Instead of box myFunc , use D0 myFunc (or D1 myFunc if it takes 1 param etc, D2.. D7 are defined)
- Added FreQL - F# Record / SQL support under Fss.Data.Postgres
- Fixed bug with returning unicode text strings that was causing a discrepancy in content length and actual # of bytes.
- Added /index.html page to ease access to example cases.
- Added mutex around thread tracking to prevent concurrent thread addition during iteration for shutdown
- Cleaned up some critical network/streamwriter buffer flushing bugs that could under some circumstances create issues
- Added Stop() method to shut down server
- Recursive application of variable expansion for included header files
- Fixes to form argument parsing
- Added simple pooling system to help apps manage connection pools etc
- replaces error message with "none" for null values in template fields
- fix for post streams lingering on auth failure
- int64 ICONST64 template implementation
- '{% else %}' implemented
- not operator implemented
- template extensions working - see /template1 example in FssExample
- Bug fix for dot notation references in local variables
- Better logging for error reporting
- Fixes for single '{ and }' characters in templates
- Major clean up of template library, bug fixes and addition of many tests
- Added GET member and parsing of ? arguments after GET calls.
- Hook added to allow security/session implementations on top of Fss.UD
- Prototype JSON library included, allows deserialization,
- objects not implemented yet
- AddDispatcher method added to UD to allow later addition to the dispatch URLS
- Template system moved into Template module from Playground, basically working
- removed non tail recursive code in main dispatch loop
- extended experimental templating system to parse and handle for loops. Not complete yet.
- added support for user addition of custom headers and a JPEGResponse type. Added example imgDownload() method
- added ReadPostAsBytes() ReadPostAsString() methods to assist pulling back post data.
- added assertion example
- basic web server framework released