Skip to content

Releases: proteanhq/protean

v0.5.2

06 Aug 14:24
Compare
Choose a tag to compare
  • Introduce support for Postgresql Array and JSON columns
  • Allow restricting List datatype to specific content types

v0.5.1

02 Jul 18:18
Compare
Choose a tag to compare
  • 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

01 May 16:55
Compare
Choose a tag to compare
  • 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

16 Mar 19:28
Compare
Choose a tag to compare

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

18 Oct 00:42
Compare
Choose a tag to compare
  • Support for auto-traversal of domain modules and loading domain elements

v0.3.0

10 Oct 23:59
Compare
Choose a tag to compare
  • 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

17 Sep 19:01
Compare
Choose a tag to compare
  • 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

25 Jul 23:31
Compare
Choose a tag to compare
  • 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 to is_successful
  • Rename message attribute in Response object to errors with a uniform structure in all error cases

v0.0.11

30 Apr 17:30
Compare
Choose a tag to compare
  • 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

06 Apr 03:51
Compare
Choose a tag to compare
  • Support for chained update and delete 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 to DATABASES
  • Fully expand the Provider class in the configuration file, to avoid assuming a Provider class name
  • Split Adapter class into Provider and Repository, 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 in providers
  • Rename Lookup class to BaseLookup
  • 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