- Add support for embedded Papercraft snippets in Markdown files
- Reimplement Markdown rendering
- Increase cache-control max-age to one week
- Add support for relative redirects, add
Request#rel - Add support for concurrent loading, add mutex lock to module loader
- Fix
Syntropy.load_config - Read module source file using UringMachine
- Raise on circular module dependency
- Streamline CLI options across commands
- Fix builtin app, controller extensions
- Reimplement controller extensions:
dispatch_by_host,dispatch_by_http_method - Fix middleware composition
- Add CLI command shortcuts
- Rename
Syntropy::ModuletoSyntropy::ModuleContext
- Call
IO#clearbefore closing server connection - syntropy new:
- Remove socket mapping for backend in docker-compose.yml
- Add caddy reverse proxy to template
- Add overwrite confirmation, better file copying
- Verify storage module
migrate!method exists - Fix
set_schema_versionfor usage in PG DB - Do not raise exception on missing config module
- Do not convert class export value to class instance, allow exporting a class
- Fix HTTP protocol error when pipelining post requests with empty body
- Setup fiber scheduler when running server
- Rename
DBtoStorage - Add
PreparedQuery,KVStore
- Add
syntropy newcommand - Finalize work on new app template
- Really fix running test in watch mode with docker compose
- Fix running tests in watch mode with docker compose
- Add minitest as runtime dependency
- Improve error display in browser, fix
SyntaxErrormessage and backtrace
- Streamline options for CLI commands
- Remove
App#setup_db - Add support for config modules (e.g.
config/development.rb) - Add support for running modes: production, development, test
- Fix
ModuleLoaderto load a module only once - Improve testing tools, add
Syntropy::Testclass - Implement
Request#session,Request#flash - Improve
Request#set_cookie
- Ensure HTTP request body is consumed (skipped) before treating next request
- Fix
Request#auth_bearer_token - Add
syntropy consoleCLI command - Add
Module#http_methodsmethod for simpler REST controllers - Add
App#setup_dbmethod - Add
DB::Schemafor schema migrations with support for migration modules - Add
DB::Storeclass - Rename
ConnectionPooltoDB::ConnectionPool - Add support for setup file (
_setup.rb) - Remove escape_utils dependency
- Add message kwarg to
Request#validate - Reraise internal server error in test mode
- Use strings rather than symbols for query keys
- Add content type validation
- Add syntropy CLI commands: serve, test, help
- Rename
#auto_refresh_watch!to#auto_refresh! - Use
zedinstead ofvscodescheme for editor links (in HTML-rendered error backtraces) - Implement basic
HTTP::ClientAPI - Rename
#json_responseto#respond_json,#html_responseto#respond_html - Rename
HTTP::ConnectiontoHTTP::ServerConnection - Refactor HTTP protocol into UM::IO extensions
- Fix routing for files/dirs starting with . (e.g. /.well-known/*)
- Refactor HTTP modules
- Integrate Qeweney::Request
- Use UM#file_watch for dev mode
- Integrate TP2 code
- Update UringMachine
- Update TP2, UringMachine
- Update TP2 (again)
- Update TP2
- Update dependencies
- Fix deps
- Fix return after
handle_not_found
- Fix hook invocation on 404
- Update UringMachine, TP2
- Update UringMachine, TP2
- Optimize router generated code
- Redirect automatically on trailing slash
- Update Papercraft
- Fix backtrace display in error page
- Make auto_refresh, tag debug extensions noops when not in dev mode
- Update dependencies
- Do not log Not Found errors
- Fix handling of syntax error in module
- Update dependencies
- Add
Module#collection_module!method
- Fix error instantiation and error testing
- Use accept header (instead of user-agent) for rendering error page
- Add
Request#accept?method - Fix import path normalization, module method visibility
- Fix instantiation of Syntropy::Error
- Improve default error handler response
- Fix and enhance
Request#html_response,Request#json_responsemethods
- Add /.syntropy/req route for testing request headers
- Add default builtin error page / response
- Add
Request#browser?method for detecting browser - Change behaviour of import to support relative paths
- Update Papercraft
- Upgrade Papercraft to version 3.0
- Fix tests
- Use gem.coop in Gemfile
- Update Papercraft
- Update dependencies
- Fix
@reffor index modules
- Fix routing with wildcard
index+.rbmodules
- Update Papercraft
- Implement HTTP caching for static files
- Add
--no-server-headersoption - Update TP2: server headers, injected response headers, cookies
- Rename P2 back to Papercraft
- Move repo to digital-fabric
syntropyscript:- Remove trailing slash for root dir in syntropy script
- Rename
-w/--watchoption to-d/--devfor development mode - Fix
--mountoption
- Add builtin
/.syntropyapplet for builtin features:- auto refresh for web pages
- JSON API
- Template debugging frontend tools
- ping route
- home page with links to examples
- Implement applet mounting and loading
- Remove Papercraft dependency
- Add support for Papercraft XML templates, using
#template_xml - Update Papercraft, TP2
- Implement invalidation of reverse dependencies on module file change
- Tweak "boot" sequence
- Update dependencies
- Log errors in App#call
- Improve module loading, add logging
- Reimplement module loading
- Refactor RoutingTree
- Add routing info to request:
#route,#route_params - Improve validations
- Improve errors
- Reimplement
App - Add support for parametric routes
- Reimplement
RoutingTree(wasRouter)
- Upgrade to Papercraft 2.8
- Fix ModuleLoader.wrap_module to work correctly with Papercraft::Template
- Add query, execute methods to ConnectionPool
- Switch from Papercraft to Papercraft
- Fix logging
- Update TP2
- Update TP2
- Add
Module.appmethod for loading arbitrary apps - Set
Module@machine
- Update TP2
- Fix Router#path_parent to not break on double slash
- Correctly handle HEAD requests for template modules
- Update deps
- Ignore site directories starting with underscore in
route_by_host
- Add
MODULEconstant for referencing the module - Implement
Module.page_list
- Implement
Module.route_by_host - Add snoozing on DB progress
- Add support for middleware and error handlers
- Refactor App class to use Router
- Refactor routing functionality into separate Router class
- Add support for _site.rb file
- Improve errors API
- Add HTTP method validation
- Refactor Qeweney::Request extensions
- Add side_run API for running tasks on a side thread
- Add support for rendering markdown with layout
- Implement module reloading on file change
- Add CLI tool
- Implement basic module loading
- Implement ConnectionPool
- Move context inside Request object
- Implement routing
- Implement RPC API controller
- Implement Context with parameter validation
- Preliminary version