serverpod_serialization 2.1.0 serverpod_serialization: ^2.1.0 copied to clipboard
Serialization package for Serverpod.
2.1.0 #
- feat: Adds DevTools extension.
- feat: Adds support for
Stream
as parameters and return type in endpoint methods. - feat: Adds stream subscriptions to message central.
- feat: Adds support for
willClose
listener onSession
. - feat: Adds support for default values in model files (types supported are
String
,int
,double
,bool
,DateTime
,UuidValue
,Duration
, enums) - feat: Adds support for WASM compiled web apps.
- feat: Endpoint methods with
@Deprecated
annotation are now also annotated in the client. - feat: Allows custom password hash generator in
AuthConfig
. - feat: Allows rewrite rule in root path in static web directories.
- feat: Improves error handling in
SignInWithGoogle
by rethrowing exceptions. - feat: Adds support for nullable types in
encodeWithType
anddecodeWithType
. - feat: Adds
Uuid
identifier to sessions. - feat: Supports configuration through environment variables instead of yaml.
- feat: Models can now be created without fields.
- feat: Adds ability to register custom environment variables to loaded as passwords.
- feat: Adds ability to modify
maxFileSize
and expiration time for GCP and AWS buckets. - feat: Moves the auth key from the body of the request to the HTTP header in endpoint methods.
- feat: When sending a HTTP 400 Bad Request error message to the client, an error message may now be included in the client side exception.
- fix: Allows Serverpod defined models to be encoded and decoded with type.
- fix: Allows AWS deployments to update Dart version.
- fix: Fixes top error handling on server's request handler to ensure proper error boundary.
- fix: Fixes
copyWith
method for nestedList
andMap
in models. - fix: Fixes Dart version and other issues in AWS deployment templates.
- fix: Improved error message if there are missing tables.
- fix: Better error message if an error occurs when parsing the config files in CLI.
- fix: Adds validation of custom class names to look for potential collisions.
- fix: Only considers positional
Session
parameter when validating endpoint method. - fix: Updates example documentation.
- fix: Before a session is closed, all logging is now awaited.
- fix: Adds new
WebCallSession
for Relic. - fix: Correctly verifies
iss
value for all possible domains in Sign in with Google. - fix: Add
methodName
andendpointName
to base session class. - fix: Handles malformed web server URI parameters more gracefully.
- fix: Uses
text
asKeyboardType
for validation code inSignInWithEmailDialog
. - fix: Correctly orders logs in Insights.
- fix: Correctly strips data in serialization of
List
andMap
. - fix: Starts database pool manager on Serverpod instance creation.
- fix: Adds mechanism for awaiting pending future calls on shutdown.
- fix: Improvements to websocket lifecycle.
- fix: Registers cloud storage endpoint for any
storageId
withdb
storage. - fix: Adds logging for when when uploads to buckets fail.
- fix: Removes redundant and non-prefixed
serverpod_serialization
import. - fix: Sets the default authentication handler even when the database is disabled.
- chore: Updates dependencies.
2.0.2 #
- fix: Conditionally imports
HttpStatus
to improve compatibility. - fix: Improve
encodeForProtocol
method forList
andMap
input object types.
2.0.1 #
- fix: Writes websocket errors to stderr.
- fix: Adds missing web socket connection notification on stream closed.
- fix: Sign in with Email dialog can toggle visibility of passwords.
- fix: Allows usage of user related Google API calls in
onUserCreated
callback. - fix: Disposes streaming connection listener when disposing handler.
- fix: Only notifies listeners when streaming connection status changes.
- fix: Adds ready check for websocket channel.
- fix: Handles bad websocket upgrade requests.
- fix: Makes sign in buttons customizable.
- fix: Exposes getter for
Session
authenticationKey
. - fix:
postMessage
in messages now returnstrue
if successful. - fix: Improved Firebase login widget.
- fix: Adds support for inserting models with only an
id
field. - fix: Throws exception if required fields are missing when parsing config files.
- fix: Adds explicit exception types for client side exceptions.
- fix: Correctly sets offset and length when encoding
ByteData
for database. - fix: Removes endpoint to validate validation code.
- fix: Replaces asserts in auth module with throws and logs.
- fix: Changes default values in auth config.
- fix: Removes password reset verification code on usage attempt.
- fix: Stops web server when shutdown method is called.
- chore: Removes dependency to unsupported
firebase_admin
package. - chore: Bumps minimum Dart version to 3.2.0.
- chore: Updates dependencies.
2.0.0 #
- fix: BREAKING. Database delete methods now return removed objects.
- fix: BREAKING. Removes automatic redirect from Relic.
- fix: BREAKING. Removes
SerializationManager
as a parameter fromfromJson
factory constructor. - fix: BREAKING. Remove allToJson method.
- fix: BREAKING. Makes user name nullable in
UserInfo
. - fix: BREAKING. Removes deprecated methods.
- fix: BREAKING. Introduces
DatabaseException
. - fix: BREAKING. Introduces new types for database result sets.
- fix: BREAKING. Updates transaction interface in database.
- fix: BREAKING. Changes
SerializableEntity
mixin intoSerializableModel
interface. - fix: BREAKING. Removes support for implicit string to expression conversion.
- fix: BREAKING. Marks deprecated yaml keywords as
isRemoved
. - fix: BREAKING. Move authentication implementaqtions from core to auth module.
- fix: BREAKING. Removes
customConstructor
map from protocol class. - chore: BREAKING. Updates Postgres library to new major version.
- feat: Adds parameter arguments to unsafe database queries.
- feat: Adds
upgrade
command to Serverpod CLI. - feat: Introduces
CacheMissHandler
to improve cache API. - feat: Serverpod mini. Allows running Serverpod without the database.
- feat: Makes email verification code length customizable.
- feat: Adds client entitlements to MacOS after creating Flutter project.
- fix: Improves server only field validation.
- fix: Retrieves and removes future call entries in a single operation.
- fix: toJson now includes all fields of Serverpod Models.
- fix: Maps Dart
int
tobigint
in database. - fix: Generates thumbnails in isolates for auth and chat module.
- fix: Improved logging in CLI.
- fix: Changes root file name in modules to follow Dart standards.
- fix: Removes useless stack trace print from database connection check.
- fix: Uses user scopes from
UserInfo
when authenticating in all providers. - fix: Prevents silencing deserialization exceptions for unmatched class types.
- fix: Removes deprecated
generated
folder from Serverpod's upgrade template. - fix: Endpoint requests can now respond with 401 or 403 on failed authentication.
- fix: Gives error when enpoint classes have naming conflicts.
- fix: Run
_storeSharedPrefs
inlogOut
method to preserve state. - fix: Prints streaming message handler exceptions to console.
- chore: Bumps minimum required Dart version to 3.1.
- docs: Corrects spelling mistakes.
- docs: Improved documentation for chat module.
1.2.7 #
- fix: Spelling fix in UserAuthentication.
- fix: Prevents crash when web or template directory is missing (webserver).
- fix: Removes server only fields from client protocol deserialization.
- fix: Improved error messages in email authentication.
- fix: Minor log fixes.
- fix: Prevents generating empty endpoints variable when no endpoints are defined.
- fix: Adds Docker support for x86 architectures.
- fix: Adds timestamps to
generate --watch
command. - chore: Updates dependencies.
1.2.6 #
- feat: Adds missing callbacks when sending chat messages in chat module.
- fix: Updates password hash algorithm for email authentication. Security Advisories
- fix: Improves client certificate security. Security Advisories
- fix: Fixes issue when passing empty set in
inSet
andnotInSet
. - fix: Fixes issue with incorrect line breaks in CLI.
1.2.5 #
- fix: Custom classes respect nullable configuration.
1.2.4 #
- fix: Sets the correct output path for generated files on Windows.
- fix: Prevents VS Code extension from crashing on startup.
- fix: Marks file handling database methods as deprecated.
- fix: Correctly handles transaction parameters for delete method.
- fix: Correctly resolves and validates registered custom classes used as types in model fields.
1.2.3 #
- fix: Correctly cleans up health check manager when shutting down server.
- fix: Supports projects without a config generator file in CLI.
- fix: Adds additional requirements to Insights setup.
- fix: Removes unnecessary database connection creation in pool manager.
- fix: CLI gives error if non-string value is used as parent keyword.
1.2.2 #
- fix: Makes it possible to create modules from templates in developer mode.
- fix: Correctly marks nested enum types in the analyzer.
- fix: Adds support for all Serverpod's supported types as keys in Maps.
- fix: Restrict fields with scopes other than all to be nullable.
- fix: Uses pubspec override instead of direct paths (to improve score on pub.dev).
- fix: Less restrictive enum naming rules.
- fix: Pins Dart and Busybox docker image versions (only for new projects).
- fix: Deterministically truncate list aliases in database relations.
- fix: Enables server to start without migrated database.
- fix: Adds missing deprecation messages.
- fix: Adds placeholder for old postgres file, to aid users who are following old tutorials.
- fix: Resolves internal relation pointers in class representations.
1.2.1 #
- fix: Removes old generated folder from Dockerfile.
- fix: Prevents database analyzer from crashing when missing table.
- fix: Fixes issue with DevTools extension not being bundled with the
serverpod
package. - fix: Ignores all null fields in JSON map serialization.
- fix: Improved error message if port is in use when starting server.
- chore: Bumps
vm_service
version to support latest version.
1.2.0 #
This is a summary of the new features in version 1.2.0. For the full list, please refer to the commits on Github. Instructions for updating from 1.1 of Serverpod is available in our documentation here.
Main new features and fixes #
- feat: Adds official support for Windows.
- feat: Adds Visual Studio Code extension.
- feat: Syntax highlighting in model files.
- feat: Adds LSP server for analyzing model files.
- feat: CLI automatically detects modules without the need to modify the generator file.
- feat: Validates project names on
serverpod create
. - feat: Validates Serverpod packages and CLI version in
serverpod generate
. - feat: Prompts user to update Serverpod when running an old version of the CLI.
- feat: Improves exit codes for CLI.
- feat: Improvements to output from CLI, including different formats for different platforms and run-modes.
- feat: Progress animations in CLI.
- feat: Uses CommandRunner for CLI.
- feat: Adds global
--verbose
and--quiet
flags to control log level. - feat: Developer version of
serverpod create
now creates a project referring to the local version of Serverpod. - feat: Adds
copyWith
methods on all generated model files. - feat: Makes it possible to call endpoint methods by specifying the method name in the path.
- feat: Makes return headers configurable for API and OPTION HTTP calls.
- feat: Adds
fromYaml
constructor toServerpodConfig
. - feat: Adds reference to all modules in config.
- feat: Makes HTTP timeout configurable.
- feat: Improves compatibility for
serverpod create
by not running Docker through tooling. - fix: Makes endpoint classes public to enable Dart doc.
- fix: Serializable exceptions now work with modules.
- fix: Handles invalid return types when parsing endpoint methods.
- fix: Fixes localhost on Android emulator.
- fix: Use explicit version for all Serverpod packages.
- fix: Uses git version of CLI in local tests.
- fix: Fixes typos in
serverpod create
start instructions. - fix: Makes include class fields private.
- fix: Adds flag to disable analytics reporting.
- fix: Correctly resets error message state when and endpoint call was successful in template project.
- fix: Closes session when protocol exception is thrown.
- fix: Allows deeply nested
Map
andList
in model files. - docs: Many improvements to API documentation.
- chore: Updates to latest version of Flutter.
- chore: Updates dependencies.
- chore: Fixes deprecated methods.
- chore: Makes Dart & Flutter version requirements consistent across packages.
- chore: Adds serverpod_lints package.
- ci: Now runs tests on multiple Flutter versions.
- ci: Adds 2000 new tests.
- ci: Unit tests are now running on Windows.
Database ORM #
- feat: Adds support for database migrations.
- feat: Adds support for database repair migrations.
- feat: Adds support for database relations.
- feat: Support
IN
,NOT IN
,BETWEEN
andNOT BETWEEN
query operations. - feat: Separates
Column
fromExpression
and harmonizes operations. - feat: Adds scoped database operations on generated models.
- feat: Adds batch
insert
,update
, anddelete
database operations. - feat: Exposes mapped results database query for public use.
- feat: Adds
notLike
andnotILike
on databaseString
expressions. - feat: Adds column selection to generated update method.
- fix: Adds helpful error message if wrong table is used for
where
ororderBy
expression. - fix: Change signature of
orderBy
andorderByList
to callback taking a typed table. - fix: Removes old Postgres generator (replaced by migrations).
Model files (.spy.yaml) and code generation #
- feat: Dual pass parsing when validating model files.
- feat: Validates field datatypes when running
serverpod generate
. - feat: Adds deprecation warnings to old model file keywords.
- feat: Adds severity levels to reported errors in analyzer.
- feat: Adds ability to toggle implicit key in stringified nodes.
- feat: Reports severity level of errors.
- feat: Adds
scope
andpersist
keywords to models. - feat: Adds
onDelete
andonUpdate
bindings. - feat: Introduces reserved keywords in protocols.
- feat: Adds serialization
byName
option for enums. - feat: Allow
.spy
file extension on model files (default is now.spy.yaml
). - feat: Now loads model files from
src/lib/models
directory (oldprotocol
directory is still supported for backward compatibility). - feat: Adds type validation to model files.
- fix: Allows multiple uppercase characters in model class names.
- fix: Protocol entities only allowed to be one type.
- fix: Better error messages for
fields
in model files. - fix: Enforce index types to be a valid Postgres index type.
- fix: Require all serialized enum values to be unique.
- fix: Enforce that the
id
field isn't used for models that have a table defined. - fix: Enforce that
parent
keyword is only used if a model has an associated table. - fix: Report an error if the referenced parent table does not exists.
- fix: Report an error if the table name in a model is not globally unique.
- fix: Report an error if an index name is not globally unique.
- fix: Report an error if a field is referenced twice in the same index.
- fix: Allows complex types to be nullable.
- fix: Parse the source location for all comma separated values in a field string.
- fix: Restrict class names to now allow standard datatypes.
- fix: Add automatic deprecated reporting of keys in analyzer.
- fix: Set exit code to non-zero if generator finds issues.
- fix: Correctly validate deeply nested datatypes in protocols.
- fix: Enum value restrictions matches default linting in Dart.
- fix: Less restrictive naming of model class names.
- fix: Avoid generating code from broken protocol files.
- fix: Deprecate
database
andapi
keywords. - fix: Stop generator from getting stuck on circular dependencies.
- fix: Handle invalid YAML errors and report them.
- fix: Only report duplicated and invalid negations once.
- fix: Adds deep check of
DateTime
andUint8List
during deserialization. - fix: Deserialization of
DateTime
handlesnull
explicitly. - fix: Only return valid entries from analyzer.
- fix: Reintroduces generation of
protocol.yaml
. - fix: Use version command to check if a command exists.
- fix: Prevents
generate --watch
from crashing. - fix: Prevents analyzer from crashing because of invalid Dart syntax.
- fix: Prevents analyzer from crashing when an unsupported type is used.
- fix: Avoid serializing null
Map
values. - fix: Restrict length of user defined Postgres identifier names.
Insights #
- feat: Insight endpoint methods for running queries and fetching full database configuration.
- feat: Adds module name and Dart class names to table definitions in Insights protocol.
- feat: Support for filtering bulk data fetched from Serverpod Insights.
- feat: Adds API for accessing files local to the server.
- fix: Include installed modules in all database definitions.
Auth module #
- feat: Improves auth example.
- feat: Adds Sign in with Apple button.
- feat: Adds Google Sign in on the web.
- feat: Allows min and max password lengths to be configured in auth module.
- feat: Allows label and icon to be customized for Sign in with Email button in auth.
- fix: Removes dead code in auth module.
- fix: Adds error message if email is already in use in auth.
- fix: Properly close barrier when sign in is complete in auth.
- fix: Corrects typo in sign in button.
- fix: Require consent in order to generate refresh token for Google Signin.
- fix: Throw descriptive error if Google auth secret is not loaded on the server.
- fix: Typo in reset password example email.
- fix: Enforces user blocked status on login.
- fix: Allows Firebase phone auth and logs auth errors.
File storage #
- feat: Adds bulk file URL lookup method for file storage.
Chat module #
- fix: Adds missing return statement to require authentication.
1.1.0 #
- feat: Lightweight run mode and support for serverless platforms.
- feat: Support for Google Cloud Platform deployments, including Terraform module.
- feat: Adds serializable exceptions that can be passed from the server to the client.
- feat: Adds
serverOnly
option to yaml-files, which is set to true will prevent the code to be generated for the client. - feat: Support for
UUID
in serialization. - feat: New supported static file types in Relic.
- feat: Allows endpoints in sub directories.
- feat: Support for GCP Cloud Storage.
- feat: Support for connecting to Postgres through a UNIX socket.
- feat: Adds database maintenance methods to Insights APIs (still experimental and API may change).
- docs: Improved documentation.
- fix: Better output on startup to aid in debugging connectivity issues.
- fix: Prevents self referencing table to cause
serverpod generate
to hang. - fix: Adds email from Firebase to UserInfo in auth module.
- fix: Don't print stack trace when Google signin disconnect fails.
- fix: Return bool from
SessionManager.initialize()
to indicate if server was reached. - fix: Better recovery when parsing yaml-files.
- chore: Migrates Firebase to new Flutter APIs.
- chore: Updates dependencies.
- chore: Refactors CLI tooling.
1.0.1 #
- Fixes import of generics in subdirectories.
- Generated enums now respect their subdirectories.
- Masks out passwords in email debug logging.
- Replaces deprecated
docker-compose
withdocker compose
1.0.0 #
- First stable release! :D
- Fixes incorrectly set database index on health metrics.
0.9.22 #
- Adds support for snake case in fields.
- Adds support for Duration data types in serialized objects.
- Correctly sets CORS headers on failed calls.
- Correctly imports generated files in subdirectories.
- Allows documentation in yaml files.
- Adds documentation for all generated code.
- Breaking changes: Optimizes health metric data. Requires updates to two database tables. Detailed migration instructions here: https://github.com/serverpod/serverpod/discussions/567
0.9.21 #
- Supports sub directories for protocol class files.
- Updates dependencies for auth module.
- Nicer default web page for new projects.
- Adds authentication example.
- Correctly inserts ByteData into the database.
- Much improved documentation for authentication.
- Breaking changes: The
active
andsuspendedUntil
fields ofUserInfo
in the auth module has been removed. These fields need to be removed from the database for authentication to work.
0.9.20 #
- New serialization layer thanks to the extensive work of Maximilian Fischer. This adds compatibility with custom serialization, such as Freezed. It also adds support for nested
Map
s andList
s. - Updates examples.
- More extensive test coverage.
- Much improved documentation.
- Breaking changes: This version updates the Serverpod protocol, which is now much more streamlined ahead of the 1.0 release. Unfortunately, it makes apps built with earlier versions incompatible with the latest version of Serverpod. More detailed migration instructions here: https://github.com/serverpod/serverpod/discussions/401
0.9.19 #
- Adds support for storing and reading binary ByteData to/from the database.
0.9.18 #
- Adds chat module to published packages.
0.9.17 #
- Reliability fix for FlutterConnectivityMonitor on web platform.
0.9.16 #
- Changes default log level to
info
. - Fixes issue with
serverpod create
command and updates template files with correct Flutter dependencies.
0.9.15 #
- Correctly sets 404 return code if no route is matched in Relic web server.
- Templates are updated to use latest version of flutter_lints.
- Adds connectivity monitor for streaming connections, which improves their reliability.
0.9.14 #
- Official support for Linux.
- Improved support for Windows.
- Adds tests for command line tools.
0.9.13 #
- Updates download path for template files.
0.9.12 #
- Adds
connecting
state to streaming connections. - Refactors streaming connection method names to be more consistent (backwards compatible with deprecations).
- Adds
StreamingConnectionHandler
to automatically reconnect to the server when streaming connection is lost. - Automatically upgrades streaming connections when a user is signed it (
serverpod_auth
module). - Better error handling when providing invalid commands to the CLI.
- Moves tests to
serverpod_test_server
. - Fixes error on
serverpod create --template module ...
- Hides errors produced by health checks.
0.9.11 #
- Adds support for Map structures in serialized objects.
- Adds support for passing maps and lists as parameters to endpoint methods.
- Much improved error checks in code generation.
- Adds continuous code generation with
serverpod generate --watch
. - Removes the
serverpod run
command in favor for continuous generation. - Updates dependencies to latest versions.
- Cleans up
serverpod help
command.
0.9.10 #
- Brings example code up-to-date with latest changes in Serverpod
- Improved security for email sign in (limits sign in attempts based on a time period).
- Dart docs are now copied to generated code, making it easier to document APIs.
- Fixes issue with logging of queries in streaming sessions.
- Adds support for Sign in with Firebase.
- Breaking changes: Adds a new table for email sign in. Migration instructions here: https://github.com/serverpod/serverpod/discussions/246
0.9.9 #
- Improved Terraform scripts for AWS will use less resources. Most notably, only uses one load balancer which will fit within AWS free tier.
- Adds web server to Terraform scripts.
- Includes the Relic web server within the main Serverpod package.
- Much improved logging and health checks.
- Allows for monitoring of CPU and memory use.
- Many smaller bug fixes and improvements.
- Breaking changes: Updates config files and tables for logging. Migration instructions here: https://github.com/serverpod/serverpod/discussions/190
0.9.8 #
- Adds Terraform deployment scripts for AWS. Documentation here: https://github.com/serverpod/serverpod/discussions/182
- Breaking change: Updates structure of config files. Migration instructions here: https://github.com/serverpod/serverpod/discussions/182
- Moves Redis enabled option to config file and turns it off by default.
serverpod run
no longer manages the Docker containers as it caused an issue with restarting the server.
0.9.7 #
serverpod create
andserverpod generate
is now working on Windows. Tested on a fresh install of Windows 10.
0.9.6 #
- Improved, but still experimental support for Windows.
- Fixes issue with error being thrown when internet connection is missing in CLI.
- Correctly ignores overridden methods of Endpoints in code generation.
- Makes using Redis optional.
- Much improved documentation.
0.9.5 #
- Adds
serverpod run
command and improvesserverpod create
. - Continuous generation through
severpod run
. - Automatic restarts through
serverpod run
.
0.9.4 #
- Updates to documentation.
- Makes it possible to cancel future calls.
- Improves accuracy in future calls.
- Saves/restores refresh tokens for Google sign in.
0.9.3 #
- Updates to documentation.
0.9.2 #
- Adds serverpod_auth module for authentication with email, Apple, and Google.
0.9.1 #
- Fixes broken images in documentation.
0.9.0 #
- Updates documentation and logos
- Ready for 0.9 release!
0.8.12 #
- Updates default templates.
0.8.11 #
- Improved ORM.
- Support for Docker.
- Chat module.
- Updated docs.
0.8.10 #
- Support for static file directories in Relic.
- Adds logos (psd and pngs).
- Adds example project.
- Initial version of authentication module.
- Cloud storage support.
- Adds auth module
0.8.6 #
- Adds documentation.
- Generates SQL files for creating database tables.
0.8.5 #
- Fixes compilation in broken serverpod_cli package
0.8.4 #
- Updates template files and fixes
serverpod create
command. - Adds CHANGELOG.md
0.8.3 #
- Initial working version.