All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.1.0-rc.1
: 2024-08-12
- Feature flag
field-snake-case
andfield-camel-case
#176 - Insert object allow nullable primary key and column with default value #177
- Upgrade
sea-orm
to 1.1.0 - Upgrade
sea-query
to 0.32.0
1.0.0-rc.3
: 2024-05-021.0.0-rc.4
: 2024-05-03
- [seaography-cli] option to generate Axum web framework
- Upgrade
sea-orm
to 1.0.0 - Upgrade
sea-query
to 0.31.0 - Upgrade
async-graphql
to 7.0 - Upgrade
poem
to 3.0
- Drop the use of
async-trait
Introduction the functional API of Seaography. Warning, this version has breaking changes, but it was a sacrifice in order to make the project easier to maintain. With this version we have support for field guards and field renames.
-
Functional API
-
Field renames
-
Field guards
-
add
update_mutation
This module enables the update mutation for entities. The update mutation takes an entity data object with a filter condition object, applies the update to the database and returns the modified entities.
-
add
delete_mutation
This module enables the delete mutation for entities. The delete mutation takes an entity condition filter object, deletes the selected entities from database and returns the number of deleted items.
-
add
create_one_mutation
This module is responsible to allow the Create One mutation. The mutation takes data for a single entity and returns the created entity
-
add
create_batch_mutation
This module is responsible to allow the Create Batch mutation. The mutation takes and array of data for multiple entities and returns the created entities
-
add
entity_input
This module is responsible to create a GraphQL input object for an SeaORM entity. Used in the create mutation
-
Dropped the derive API in favor of a functional API
SeaORM is a dynamic ORM for rust, this means that we can inspect the Tables, Columns properties on runtime. Recently async-graphql added support for dynamic creation of GraphQL nodes. Utilizing the dynamic nature of both libraries the Derive API is no longer needed and we developed a functional approach API. Moreover, the project in order to live long it needs to be maintainable (easy to maintain) and extensible (easy to extend), but the Derive API was fairly complex compared to a functional API. In order to make the migration easier we updated the seaography generator to generate using the new API
-
Decoupled sea-orm-cli from seaography-cli
Because we don't have to extend the result produced by the sea-orm-cli we decoupled the dependency away fro, seaography in order to make future versions easier to maintain.
-
Dataloader optimizations are not introduced yet
The Dataloader optimizations are going to be added in future versions
-
Some renames in Connection node fields, and pagination filtering
-
refactor entity types
- add
types_map
This is responsible to allow the API user to provide custom entity field types, parsers and formatters - refactor
entity_object
to remove code responsible for type mapping
- add
-
simplify schema builder
- register functions
- internal context
-
extend schema builder entity register function to include mutations
-
refactor
filtering
functionality- add
FilterConfig
for basic types - add
filter_types_map
That is responsible to allow the API user to provide custom entity field filter types and condition functions - add
apply_condition
that takesFilterInputConfig
andcondition
as input and updates thecondition
- refactor
active_enum_filter_input
to utilizeFilterConfig
and provideapply_condition
function - remove condition code from
filter_input
and utilizeapply_condition
function that usesFilterConfig
- add
-
start error handling
-
slim down code generation for the
query_root.rs
file of a generated project -
update crates
-
update examples
- Relations derive produces the reverse of a self reference relation #99
- Filtering, sorting and paginating related 1-to-many queries (Note: Pagination is WIP, currently in memory only pagination) #84
- Add Actix web framework generator #74
- [seaography-cli] option to generate Actix or Poem web framework #74
- Generic type filter #97
- Upgrade
sea-orm
to 0.10 #93
- Conditionally add filter types list with features by @XiNiHa in #67
- Re-export internal dependency instead of leaking it into user package by @billy1624 in #68
- Add --with-json feature by @nicompte in #70
- Refactoring the main function by @billy1624 in #65
- Remove filters print by @nicompte in #71
- Add cursor pagination by @karatakis in #69
- Move root_query basic dependencies into seaography crate by @karatakis in #82
- Add DateTimeWithTimeZone to filter generation by @karatakis in #80
- Allow QueryRoot derive to drive async gql config by @karatakis in #81
- Add ignore_tables and hidden_tables arguments by @karatakis in #79
- Move RelationKey struct to lib by @karatakis in #85
Full Changelog: https://github.com/SeaQL/seaography/compare/0.1.2...0.2.0
- Updated sea-schema to 0.9.4 #62
- Replace HashMap with BTreeMap #53
- Decouple discoverer from generator #54
- Initial release