All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Preserve stack trace by default in controller (by @retendo)
- Fixes exception propagation when using channels (by @retendo)
- Added DI support for all CEs we provide - the
_di
versions of custom operations are avaliable in following modules:ApplicationDI
,ChannelsDI
,ControllerDI
(both standard, and endpoint routing),PipelinesDI
, andRouterDI
(both standard, and endpoint routing) (by @Krzysztof-Cieslak and @Arshia001) - Added controller versioning for endpoint routing (by @Krzysztof-Cieslak)
- Updated to Giraffe 5.0-rc-6
- Updated to net5.0 and ASP.NET Core 5
- Fix typo getConfiguration (by @kaashyapan)
- Fix putSecureBrowserHeaders header typo (by @Shmew)
- Fix application/json not being compressed in response (by @may-day)
- Include querystring in Turbolinks-location (by @viktorvan)
- Added
RouterEndpoint
,ControllerEndpoint
modules allowing to create routing using ASP.NET Endpoint Routing - Added
use_endpoint_router
toapplication
computation expression allowing to use Endpoint Routing in the application - [Infrastructure] Add performance benchmark for Saturn using Endpoint Routing
- Updated to Giraffe 5.0-alpha02
- Moved to
Giraffe.ViewEngine
package for view rendering support
- Helpers for getting
IWebHostEnvironment
andIConfiguration
in context ofapplication
CE (by @Krzysztof-Cieslak) - [Infrastructure] Add performance benchmark using wrk and GitHub Action to run it
- Use
IWebHostEnvironment
internally (by @Krzysztof-Cieslak) - Move application CE to
IHostBuilder
(by @Krzysztof-Cieslak) - [Infrastructure] Moved to CHANGELOG.md from RELEASE_NOTES.md (by @Krzysztof-Cieslak)
- [Infrastructure] Updated SDK to 3.1.301 (by @Krzysztof-Cieslak)
- [Infrastructure] Added GitHub action to publish new version of Saturn (by @Krzysztof-Cieslak)
- [Infrastructure] Update FAKE build script (by @Krzysztof-Cieslak)
- Removed support for
netstandard2.0
(by @Krzysztof-Cieslak) - Removed any obsolete APIs (by @Krzysztof-Cieslak)
- Remove deprecated
OpenIdConnect
extension (by @Krzysztof-Cieslak)
- Fix initialization error caused by
use_gzip
(by @Krzysztof-Cieslak)
- Make RequestUrl fetching lazy (by @Krzysztof-Cieslak)
- Added a few more mime-types that should be compressed. (by @Thorium)
- Make SocketMiddleware
greatpublic again (by @Krzysztof-Cieslak)
- Allow all functions in a channel to see the socketId (by @robertpi)
- Add exception handler for site.map generation (by @Krzysztof-Cieslak)
- Fix edit action in controller (by @Krzysztof-Cieslak)
- Moves
use_open_id_auth_with_config
to the Saturn.Extensions.Authorization project, obsoletes the old member and forwards it to the new project. (by @ChrSteinert)) - Channel improvements (typed
handle
action) (by @Krzysztof-Cieslak) - Doc generation and infrastructure updates (by @Krzysztof-Cieslak)
- Add support for AzureAD OAuth (by @ChrSteinert))
- bump TFM to netcoreapp3.1 (by @baronfel)
- fully-qualify applicationbuilder type to use the saturn type instead of aspnetcore (by @baronfel)
- Fixed naming collision in Auth extensions (by @rusanov-vladimir )
- Update Giraffe to 4.0.1 (by @mastoj)
- add OpenId Saturn extension (by @gfritz)
- updated Giraffe to version 4 (by @brase)
- fix for signature of tryMatchInput (by @brase)
- renames AddAuthorization to AddAuthorizationCore (by @brase)
- Add more constraints for package dependencies (by @Krzysztof-Cieslak)
- Change
use_config
to acceptIConfiguration -> 'a
(by @Krzysztof-Cieslak) - Case Insensitive support (
case_insensitive
) (by @Krzysztof-Cieslak) - OAuth refactoring (by @Krzysztof-Cieslak)
- Add overloads for controller actions that automatically providing dependencies (by @Krzysztof-Cieslak)
- Controller key should always match up to a single path segment (by @NinoFloris)
- Add Chanel abstraction (websocket abstraction) (by @Krzysztof-Cieslak and @baronfel)
- Add a tryCsrf handler as well as the CSRF handler (by @baronfel)
- Add routing diagnostic page (by @Krzysztof-Cieslak)
- Don't use setBody on CORS 204 (by @Titaye)
- Fix error on invalid key type if Patch is used (by @Frassle)
- Controller plug All should affect Patch (by @Frassle)
- Server channels design - SocketHub (by @baronfel)
- Make application working without router and add
no_router
operation (by @Krzysztof-Cieslak) - Add
use_developer_exceptions
andlisten_local
to application CE (by @Krzysztof-Cieslak) - Add gRPC extension (by @Krzysztof-Cieslak)
- Update Saturn to Asp.Net Core 2.2 (by @Krzysztof-Cieslak)
- Updates Index and DeleteAll to not result in plugs fired twice. (by @jeremyabbott)
- Upgrade of Giraffe to 3.4, fixes breaking compilation errors. (by @NinoFloris)
- Fixes other spots that are related to #143, DeleteAll and Index, brings consistency, all plugs are now only run after route check (by @NinoFloris)
- Removes stringConvert, we now completely rely on giraffe to convert our route segments, which means ShortID and ShortGuid automatically work as they should, also adds quite some tests for (sub) routing (by @NinoFloris)
- Add extension for turbolinks
- Fix turbolinks header application (by @NinoFloris)
- Set 404 status code on not found handlers in sample
- return an IActionResult over HttpResponse in azure functions handler
- Fix for plugs firing twice (by @jeremyabbott)
- Check state.Urls before running UseUrls (by @NinoFloris)
- fixes missing doctype in html controller actions (by @WalternativE)
- Add abstraction for hosting Saturn on Azure Functions (by @Krzysztof-Cieslak)
- Enable packaging for extensions (by @Krzysztof-Cieslak)
- Fix adding multiple auth sources (by @BohdanZhmud)
- Fix controller nesting bug (by @TWith2Sugars)
- Reworks 'Key to string conversion as just using ToString was not the best way to tackle the SRTP constraint,
string
decides per type to do invariant conversions and format specializations if needed (by @NinoFloris) - Add protection against subcontroller routes that don't start with a forward slash, which lead to unwanted behavior (by @NinoFloris)
- Use fake 5 api (by @jeremyabbott)
- Use earlier FSharp.Core version (by @Krzysztof-Cieslak)
- Remove unnecessary ObsoleteAttribute from
use_router
(by @Krzysztof-Cieslak)
- Fix GitHub OAuth (by @rmunn)
- Rename
scope
torouter
(by @Krzysztof-Cieslak) - Fix
jsonToClaimMap
in GitHub OAuth (by @Krzysztof-Cieslak) - Remove ContentRoot call from
use_static
(by @Krzysztof-Cieslak) - Fix
site.map
generation if no routes were detected (by @Krzysztof-Cieslak) - Add generic
response
helper (by @Krzysztof-Cieslak) - Handle generic output type in controller actions (by @Krzysztof-Cieslak)
- Removes patch request method from
Update
into a new action calledPatch
(by @NinoFloris) - Adds HttpSys project and sample (by @ChrSteinert))
- Add Google OAuth (by @rmunn)
- Move OAuth authorization with 3rd party services to extensions library (by @Krzysztof-Cieslak)
- Add operations for customizing serialization (by @Krzysztof-Cieslak)
- New
except
function taking actions to remove from the complete set of actions (by @NinoFloris) - Handle possible
except [All]
silliness (by @rmunn) - Make
version
incontroller
CE a string (by @Krzysztof-Cieslak) - Ensure cookies are enabled only once (by @Krzysztof-Cieslak)
- Add
use_router
to application CE. Markrouter
as obsolete. (by @Krzysztof-Cieslak) - Support custom MIME types (by @Nhowka)
- Fix model loading (
fetchModel
,loadModel
andgetModel
functions) (by @Krzysztof-Cieslak)
- Implement CSRF token protection using
Microsoft.AspNetCore.Antiforgery
(by @baronfel) - Await before adding result to
Items.["RequestModel"]
(by @NinoFloris) - Make IDs with # in them URL-quoted (by @NinoFloris)
- Fix unintuitive ordering of plugs (by @NinoFloris)
- Replace tupled controller args with curried args (by @rusanov-vladimir)
- Add
cli_arguments
operation to the Application CE to flow intoCreateDefaultBuilder(args)
(by @NinoFloris)
- Authorization helper (by @Nhowka)
- Add forwardf
- Generate documentation XML file (by @alfonsogarciacaro)
- Fixed Controller DELETE to prevent NRE (by @rusanov-vladimir)
- Update Application.fs -
use_static
changes (by @isaacabraham) - expose IWebHostBuilder from application CE (by @mexx)
- Fix bug with
delete
routing (by @WalternativE) - Allow for creation of controller without typed actions (by @jeremyabbott)
- Implementation of site map generator
- Fix
set_body
overload
- Update to Giraffe 1.1
- Add new renderXml to render XmlNode based templates (by @mtnrbq)
- Fix
create
anddelete
actions - Add
delete_all
action
- Implement controller versioning
- Add suport for embedding controllers
- Add plugs per action to controller
- Add application helper for enabling IIS integration
- Refactor authentication
- Add cookies auth helpers
- Add keyword for custom service configuration step
- Add error handler to controller
- Add helper for configuring logging
- Add application helpers for OAuth and GitHub OAuth
- Update to Giraffe 1.0
- Add AutoOpens to most modules
- Fix JWT authorization
- Set content root in
use_static
- Add toggle for forcing SSL
- Add toggle for forcing CORS
- Add helpers for JWT authentication
- Initial version
- Implemented
pipeline
abstraction - Implemented
scope
abstraction - Implemented
controller
abstraction - Implemented
application
abstraction - Implemented set of helpers for controllers
- Implemented set of helpers for generating links following controller conventions
- Implemented CORS handler