Releases: proteanhq/protean
Releases · proteanhq/protean
v0.5.2
- Introduce support for Postgresql Array and JSON columns
- Allow restricting
List
datatype to specific content types
v0.5.1
- Log Protean exceptions to print helpful debug messages
- Support for installation of optional dependencies
- Remove support for Data Transfer Object
- Remove support for Request and Response Objects
- Bugfix - Throw Exceptions on Unit of Work commit failures
- Use
black
as code formatter with a git pre-commit hook - Add 3.9 to test matrix and cleanup Travis.yml
- Bugfix - Fix broken Sphinx docs build
v0.5.0
- Add support for using Celery as the background worker
- Allow persisting and management of child entities via the Aggregate object
- Add support for Dict serialization
- Store Reference and Value Object fields in
Entity.meta_
for later use - Allow Subscribers and Handlers to hook into multiple Domain Events
- Raise
InvalidDataError
on invalid attributes to Commands - Treat meta attributes like auto_fields and mandatory_fields as dictionaries instead of tuples
- Add support for nested serializers/schemas with Marshmallow
- Bugfix #304 - Remove shadow object linkages with aggregates
- Bugfix to not link shadow fields with Aggregate/Entity classes directly
- Bugfix to set initialize Shadow (Reference) and Value Object attributes correctly
- Bugfix to avoid fetching child records without foreign key linkages
v0.4.0
Changes:
- Add support for referencing embedded fields with a defined name
- Fix to allow default=False on Boolean fields and subsequent filtering for False in field values
- Fix to use Entity attributes to derive field names of unique fields, instead of declared_fields
- Add support for logging events into a universal EventLog table before publishing to brokers
- Add support for custom models associated with Aggregates/Entities
- Use Elasticsearch specific List and Dict attributes to reconstruct entity
- Bugfix - Verify that ValueField object is not empty before trying to access its attributes
- Bugfix - Fix how Elasticsearch connection is fetched while resetting data
v0.3.2
v0.3.0
- Add a
defaults
method as part of Container objects when assigned defaults in one field based on another - Add support for Command Handlers
- Avoid raising
ValidationError
when loading data from data stores - Add support for Elasticsearch as a repository
- Add support for using Redis as a broker with RQ background workers
v0.2.0
- New Request Object elements introduced to package information from API/views
- A base Container class introduced for all Protean data objects for uniformity in behavior
- Support for specifying Data Type of auto-generated Identities (String, Integer or UUID)
- Enhancements and fixes for Unit of Work functionality to work well with SQLAlchemy type database plugins
- Unit of Work transactions now control event publishing and release events to the stream only on a successful commit
- A Simplified element registration process to the domain
- Validation bugfixes in Aggregates, Entities and Value Objects
- Fully functional and configurable logs throughout Protean codebase
- Test case restructuring for clarity and isolation of configurations
v0.1.0
- Full revamp of Protean codebase to adhere to DDD principles
- Add
Domain
Composition root, with support for the definition of multiple domains in a project - Support for Domain Layer elements: Aggregates, Entities, Value Objects, Domain Services, and Domain Events
- Support for Application Layer elements: Application Services, Data Transfer Objects, Repositories, Subscribers and Serializers
- Support annotations to register elements with Domain
- Complete revamping of Repository layer, and introduction of an underlying DAO layer
- Add Unit of Work capabilities to support ACID transactions
- Collapse SQLAlchemy and Flask implementations in Protean itself temporarily, until API stabilizes
- Rename
success
flag on Response tois_successful
- Rename
message
attribute in Response object toerrors
with a uniform structure in all error cases
v0.0.11
- Rename Repository abstract methods to be public (Ex. _create_object → create)
- Add delete_all() method to Entity to support Repository cleanup
- Add support for raw queries on Entity repositories
- Remove requirement for explicit Model definitions for Entities
- Move Model options into Entity Meta class
- Support for pre_save and post_save entity callbacks
- Replace Pagination with ResultSet because it is at Entity and Use Case level
- Replace page and per_page with limit and offset
- Add Command utility to generate Protean project template
- Provide command-line utilities for --version and test
- Bugfix: Handled quotes and escape properly in string values in Dictionary repository
- Add documentation for Overriding Entity Lifecycle methods
- Add ability to mark tests as slow and run slow tests in travis
v0.0.10
- Support for chained
update
anddelete
methods on QuerySet - Support for
update_all
method for mass updates on objects - Support for
delete_all
method for mass deletion of objects - Rename databases configuration key in Config file from
REPOSITORIES
toDATABASES
- Fully expand the Provider class in the configuration file, to avoid assuming a Provider class name
- Split
Adapter
class intoProvider
andRepository
, separating the concern of managing the database connection from performing CRUD operations on Entity data - Expose configured databases as
providers
global variable - Allow fetching new connection on demand of a new repository object via
get_connection
inproviders
- Rename
Lookup
class toBaseLookup
- Associate Lookups with Concrete Provider classes
- Provide option to fully bake a model class in case it needs to be decorated for a specific database, via the
get_model
method in the concrete Provider class - Add support for Entity Namespacing
- Refactor Repository Factory for better consistency of registry