NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
A modern HTTP server application framework, ORM and OAuth2 provider with OpenAPI 3.0 integration. Foundation for REST, RPC or GraphQL services.
Last release 6 years ago
no release in 18 months
Ships unpredictably
gaps range from 2 weeks to 12 months
Most releases are documented
notes for 26 of 33 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
38 releases · first in 2016
Nothing published for this version
Nothing published for this version
Temporary fix to issue where pre-release version is selected.
One column per quarter.
Nothing published for this version
Fixes issue when using QueryReduce inside a transaction.
QueryReduce inside a transaction.Fixes security vulnerability where a specific authorization header value would be associated with the wrong token in rare cases (credit to Philipp Sch…
read method to Serializable for filtering, ignoring or rejecting keys.like matcher expressionValidate.constant to properties that use the @primaryKey annotation.Validate annotations to be added to belongs-to relationship properties; the validation is run on the foreign key.Map<String, dynamic> - to be bound with Bind.body.Nothing published for this version
Deprecates AuthCodeController in favor of AuthRedirectController.
AuthRedirectController type.AuthCodeController in favor of AuthRedirectController.ManagedContext.insertObject, ManagedContext.insertObjects and ManagedContext.fetchObjectWithID.Nothing published for this version
Nothing published for this version
Fix regression when generating OpenAPI documentation for ManagedObjects
ManagedObjects--resolve-relative-urls flag to document commands to improve client applicationsSerializable.documentSchema instance method. Removes Serializable.document static method.values argument to Query constructorController is now an abstract class that requires implementing handle. This is a minor breaking change that should not have an impact.
Controller is now an abstract class that requires implementing handle. This is a minor breaking change that should not have an impact.aqueduct setup --heroku=<name> and instead points to documentation.Adds BodyDecoder.decode and BodyDecoder.as . This replaces existing decodeAs* and as* methods.
BodyDecoder.decode<T> and BodyDecoder.as<T>. This replaces existing decodeAs* and as* methods.AuthDelegate.addClient and AuthServer.addClient.ManagedContext.transaction to enable queries to be run in a database transaction.ResourceController methods.Recyclable<T> to control whether controllers are instantiated per request or are reused.Document data type.Query.insertObject.APIComponentDocumenter, APIOperationDocumenter, APIDocumentContext.PackagePathResolver, ApplicationOptions.isDocumenting and APIDocumentable.MockHTTPServer.queueHandler and MockHTTPServer.queueOutage.Query.where behavior has changed to consistently use property selector syntax.
whereEqualTo and replaced with QueryExpression.Controller.generate renamed to Controller.link. Removed Controller.pipe.package:aqueduct/test moved to package:aqueduct_test/aqueduct_test, which is a separate dependency from aqueduct.AuthDelegate to provide consistency.ManagedContext.defaultContext; context usage must be explicit.HTTPResponseException. Responses can now be thrown instead.QueryExceptions are no longer thrown for every ORM exception. If a store chooses to interpret an exception, it will still throw a QueryException. Otherwise, the underlying driver exception will be thrown.PostgreSQLPersistentStore now takes connection info instead of closure.Controller.listen renamed Controller.linkFunction.aqueduct serve to 8888.HTTPPath, HTTPBody, HTTPQuery and HTTPHeader - have been changed to Bind.path, Bind.body, Bind.query and Bind.header, respectively.@httpGet (and other HTTPMethod annotations) constants. Behavior replaced by @Operation.runOnMainIsolate from Application.start() and added Application.startOnMainIsolate() as replacement.ManagedSet.haveAtLeastOneWhere.RequestSink to ApplicationChannel.
willOpen with prepare.setupRouter with entryPoint.AuthCodeController.renderFunction with AuthCodeControllerDelegate.AuthStrategy in place of AuthorizationParser<T>.
AuthorizationParser<T>, AuthorizationBearerParser and AuthorizationBasicParser.AuthValidator.fromBearerToken and AuthValidator.fromBasicCredentials and replaces with AuthValidator.validate<T>.Authorization.resourceOwnerIdentifier -> Authorization.ownerIDRequest.innerRequest -> Request.rawAuthStorage -> AuthServerDelegateAuthServer.storage -> AuthServer.delegateApplicationConfiguration -> ApplicationOptionsApplication.configuration -> Application.optionsHTTPFileController -> FileControllerHTTPSerializable -> SerializableHTTPCachePolicy -> CachePolicyHTTPCodecRepository -> CodecRegistryrequiredHTTPParameter -> requiredBindingManagedTableAttributes -> TableManagedRelationshipDeleteRule -> DeleteRuleManagedRelationship -> RelateManagedColumnAttributes -> ColumnmanagedPrimaryKey -> primaryKeyManagedTransientAttribute -> Serialize
Serialize now replaces managedTransientAttribute, managedTransientInputAttribute, and managedTransientOutputAttribute.RequestController -> ControllerRequestController.processRequest -> Controller.handleHTTPController -> ResourceControllerNothing published for this version
Nothing published for this version
Adds aqueduct db schema to print an application's data model.
aqueduct db schema to print an application's data model.aqueduct document serve that serves the API documentation for an application.--machine flag to aqueduct tool to only emit machine-readable output.defaultDelay to MockHTTPServer. Defaults to null for no delay.defaultResponse to MockHTTPServer. Defaults to a 503 response instead of a 200.MockHTTPServer's queueResponse function.Nothing published for this version
Adds HTTPRequestBody.maxSize to limit HTTP request body sizes. Defaults to 10MB.
HTTPRequestBody.maxSize to limit HTTP request body sizes. Defaults to 10MB.ManagedTableAttributes to configure underlying database table to use multiple columns to test for uniqueness.Adds Request.addResponseModifier to allow middleware to modify responses.
Request.addResponseModifier to allow middleware to modify responses.Adds Response.bufferOutput to control whether the HTTP response bytes are buffered.
Response.bufferOutput to control whether the HTTP response bytes are buffered.whereNot to apply an inverse to other Query.where expression, e.g. whereNot(whereIn(["a", "b"])).ManagedObjectController didn't work.ResourceRegistry to ServiceRegistry.package:aqueduct/test.dart.Adds Request.acceptableContentTypes and Request.acceptsContentType for convenient usage of Accept header.
Request.acceptableContentTypes and Request.acceptsContentType for convenient usage of Accept header.AuthStorage.allowedScopesForAuthenticatable to provide user attribute-based scoping, e.g. roles.Query.forEntity and ManagedObjectController.forEntity to dynamically instantiate these types, i.e. use runtime values to build the query.PersistentStore.newQuery - allows a PersistentStore implementation to provide its own implementation of Query specific to its underlying database.Query.reduce to perform aggregate functions on database tables, e.g. sum, average, maximum, etc.enums may be used as persistent properties in ManagedObject<T>. The underlying database will store them a strings.Adds ApplicationMessageHub to send cross-isolate messages.
ApplicationMessageHub to send cross-isolate messages.Allow HTTPCodecRepository.add to use specify default charset for Content-Type if a request does not specify one.
HTTPCodecRepository.add to use specify default charset for Content-Type if a request does not specify one.joinMany and joinOne are deprecated, use join(set:) and join(object:) instead.
aqueduct create is now mostly empty. Available templates can be listed with aqueduct create list-templates and selected with the command-line option --template.aqueduct auth would fail to insert new Client IDs.joinMany and joinOne are deprecated, use join(set:) and join(object:) instead.HTTPCodecRepository replaces Response.addEncoder and HTTPBody.addDecoder.Streams may now be Response bodies.HTTPController with HTTPBody metadata.HTTPFileController.HTTPCachePolicy to control cache headers for a Response.Request.body has significantly improved behavior and has been optimized.Transfer-Encoding: chunked when the size of the response body can be determined efficiently.Adds ResourceRegistry: tracks port-consuming resources like database connections to ensure they are closed when an application shuts down during testi
ResourceRegistry: tracks port-consuming resources like database connections to ensure they are closed when an application shuts down during testing.Fixes race condition when stopping an application during test execution
ManagedObjects using Validate and ManagedValidator and ManagedObject.validate.ManagedObjects now have callbacks willUpdate and willInsert to modify their values before updating and inserting.aqueduct serve on Windows.Fixes issue with aqueduct document for routes using listen
aqueduct document for routes using listenTestClient to execute requests with public OAuth2 clientaqueduct db generate.Nothing published for this version
Allow binding to system-assigned port so tests can be run in parallel
aqueduct serve default port to 8081 so can develop in parallel to Angular2 apps that default to 8080SecurityContext reference from ApplicationConfiguration. SSL configured via new aqueduct serve arguments ssl-key-path and ssl-certificate-path, or overriding securityContext in RequestSink.Fixes issue where some types of join queries would access the wrong properties
Added RequestController.letUncaughtExceptionsEscape for better debugging during tests.
Added RequestController.letUncaughtExceptionsEscape for better debugging during tests.
Persistent types for ManagedObjects can now have superclasses.
ManagedRelationships now have a .deferred() constructor. This allows ManagedObjects to have relationships to ManagedObjects in other packages.
Added RequestSink.initializeApplication method to do one-time startup tasks that were previously done in a start script.
RequestSink constructor now takes ApplicationConfiguration, instead of Map.
Added configurationFilePath to ApplicationConfiguration.
Improved error reporting from failed application startups.
Automatically lowercase headers in Response objects so that other parts of an application can accurately read their values during processing.
Added HTTPBody object to represent HTTP request bodies in Request. Decoders are now added to this type.
ORM: Renamed Query.matchOn to Query.where.
ORM: Removed includeInResultSet for Query's, instead, added joinOn and joinMany which create subqueries that can be configured further.
ORM: Allow Query.where to reference properties in related objects without including related objects in results, i.e. can fetch Parent objects and filter them by values in their Child relationships.
ORM: Joins can now be applied to belongsTo relationship properties.
ORM: Matchers such as whereNull and whereNotNull can be applied to a relationship property in Query.where.
ORM: Renamed ManagedSet.matchOn to ManagedSet.haveAtLeastOneWhere.
ORM: Added matchers for case-insensitive string matching, and added case-insensitive option to whereEquals and whereNotEquals.
Auth: Added aqueduct/managed_auth library. Implements storage of OAuth 2.0 tokens using ManagedObjects. See API reference for more details.
Auth: Improved error and response messaging to better align with the OAuth 2.0 spec, especially with regards to the authorization code flow.
Auth: Added distinction between public and confidential clients, as defined by OAuth 2.0 spec.
Auth: Improved class and property naming.
Tooling: Added aqueduct auth tool to create client ID and secrets and add them to a database for applications using the aqueduct/managed_auth package.
Tooling: Added more user-friendly configuration options for aqueduct db tool.
Tooling: Added aqueduct setup --heroku for setting up projects to be deployed to Heroku.
Tooling: Added aqueduct serve command for running Aqueduct applications without having to write a start script.
Tooling: Added aqueduct document command to generate OpenAPI specification for Aqueduct applications, instead of relying on a script that came with the template.
BREAKING CHANGE: Added new Response.contentType property. Adding "Content-Type" to the headers of a Response no longer has any effect; use this proper…
Response.contentType property. Adding "Content-Type" to the headers of a Response no longer has any effect; use this property instead.ManagedDataModels now scan all libraries for ManagedObject<T> subclasses to generate a data model. Use ManagedDataModel.fromCurrentMirrorSystem to create instances of ManagedDataModel.ManagedContext now becomes the ManagedContext.defaultContext; prior to this change, it was the first instantiated context. Added ManagedContext.standalone to opt out of setting the default context.Fix to allow Windows user to use aqueduct setup.
aqueduct setup.Fix type checking for transient map and list properties of ManagedObject.
Process.runSync that allow Windows user to use aqueduct executable.Change behavior of isolate supervision. If an isolate has an uncaught exception, it logs the exception but does not restart the isolate.
- Initial stable release.
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →