Record of historical changes and improvements to Autostrada. You can also see what's in store for the future in our roadmap.
SELECT operations which fetch a single data row now return a
found boolean to explicitly indicate whether a matching row was found or not.
Based on feedback from users, Autostrada no longer automatically initializes a git repository in the generated codebase. The option to create a
.gitignore file remains.
We've added lightweight user accounts to Autostrada so that you have permanent access to any paid features that you purchase, and can generate unlimited codebases.
We've added optional support for logging all requests, and corresponding response status code and body size.
SQL database connections are now established using
sqlx.ConnectContext(), rather than
sqlx.Connect(), meaning that a timeout is applied when
sqlx pings the database to verify that the database connection credentials are valid.
DecodeForm() helpers are now provided, in addition to the existing
DecodePostForm() helper. The
DecodeForm() helper decodes data from both URL query string values and the request
POST body in one command.
All codebases now use the Go 1.21
log/slog package from the standard library.
The corresponding HTTP request method and URL is now included in all
ERROR level log messages and email notifications.
All generated codebases now use the
golang.org/x/exp/slog package for leveled logging, with the choice to log messages in JSON, plaintext, or colorized plaintext format.
We've made various improvements to the generated admin makefile, including updating the
audit task to check for known vulnerabilities using
govulncheck, adding a new
text/cover task to run tests with code coverage profiling enabled, and updating the
run/live task to not use an external
air.toml configuration file.
The website UI has been improved so that the code-generation tool consists of fewer steps and takes up less on-screen space.
The HTTP server default timeout periods have been changed to:
defaultIdleTimeout = time.Minute,
defaultReadTimeout = 5 * time.Second,
defaultWriteTimeout = 10 * time.Second, and
defaultShutdownPeriod = 30*time.Second.
Generated files all now have the permission set
Helpers for decoding JSON requests and writing JSON responses are now included by default in 'traditional web application' codebases, as well as 'JSON API' codebases.
We've added a new
DecodeJSONStrict() helper, which will return an error if a JSON request contains unexpected fields.
We've added optional support for live reloading of your application when files are changed during development using Air.
We've added the option to read configuration settings from environment variables (instead of only supporting command-line flags).
We've added a
backgroundTask() helper to all generated codebases by default. You can use this to run code in background goroutines and wait for it to complete during a graceful shutdown.
We've added the option to automatically send runtime error alerts to an admin email address.
We've added support for automatic HTTPS in production using Let's Encrypt and Autocert. HTTP to HTTPS redirects are also included.
Application initialization is now done in a
run() function rather than
main(). See this blog post for the rationale behind the change.
We've changed the generated code so that any messages logged by Go's
http.Server are written to the same destination as all other log messages.
More validation checks have been added to disallow invalid module paths.
Generated codebases now include the README file in Markdown format (in addition to HTML).
We've added support for Gorilla Mux as a router option.
The confirmation pages and download links for the generated codebases are now permanent rather than temporary, and are now safe to bookmark and share.
The confirmation page now includes instructions for how to get started and run your application (as well as this information still being available in the README).
We've improved the web application login functionality so that it now redirects to the previously requested page after failed authentication.
We created this changelog page that you're reading right now 😉
We've updated the Autostrada website to give it a lighter, fresher and slightly more polished design.
We've added a new 'secure cookies' option, providing out-of-the-box support for reading/writing signed and encrypted cookies.
We've tweaked the command-line flag names and variables to be more consistent in their style and naming, and started using hard-coded default values for all command-line flags (rather than reading some default values from environment variables).
We've added a roadmap page to help prioritize and keep track of potential features and improvements.
Autostrada is officially launched in open beta.