d3vyce
|
f7ecb76e8d
|
fix: search=False/filter=False/order=False don't clear the response metadata
|
2026-09-01 13:43:33 -04:00 |
|
d3vyce
|
610b3e1ab4
|
revert: drop populate_existing reload in create()/update()
|
2026-08-31 16:51:04 -04:00 |
|
d3vyce
|
943115562b
|
fix: PathDependency and BodyDependency build a bare unconfigured CRUD
|
2026-08-29 08:39:23 -04:00 |
|
d3vyce
|
50529b1081
|
fix: pagination over a to-many join duplicates, drops and truncates results
|
2026-08-28 18:43:15 -04:00 |
|
d3vyce
|
654347126d
|
fix: EventSession.commit() discards eager-loaded relations on watched models
|
2026-08-28 13:28:22 -04:00 |
|
d3vyce
|
6dafd40277
|
Merge pull request #381 from d3vyce/380-dependsdb-resolved-twice-in-one-request-opens-two-sessions-and-silently-discards-writes
fix: Depends(db) resolved twice in one request opens two sessions and silently discards writes
|
2026-08-28 19:01:43 +02:00 |
|
d3vyce
|
1c806cccd9
|
fix: Depends(db) resolved twice in one request opens two sessions and silently discards writes
|
2026-08-28 12:58:47 -04:00 |
|
d3vyce
|
1354f59bb4
|
fix: searching an Enum column raises UndefinedFunctionError
|
2026-08-28 18:48:06 +02:00 |
|
d3vyce
|
fd83a7142d
|
fix: ruff warnings
|
2026-07-28 13:55:31 +02:00 |
|
d3vyce
|
651326d54b
|
fix: EventSession.commit() wasted and N+1 reloads
|
2026-07-26 16:17:59 +02:00 |
|
d3vyce
|
169bf710f0
|
fix: skip unnecessary String cast on already-string search columns
|
2026-07-26 16:10:38 +02:00 |
|
d3vyce
|
adc0ff14c1
|
fix: skip redundant refresh/reload round trips in create() and update()
|
2026-07-26 15:50:13 +02:00 |
|
d3vyce
|
19a823dc8b
|
refactor: batch facet queries into a single round trip
|
2026-07-26 15:49:58 +02:00 |
|
d3vyce
|
51acf61d0f
|
chore: remove security module
|
2026-07-11 15:09:41 +02:00 |
|
d3vyce
|
de06839a16
|
fix: 'Could not refresh instance' when using EventSession (#341)
|
2026-07-04 01:57:45 +02:00 |
|
d3vyce
|
ff367e4281
|
fix: internal rollback() corrupts caller's ambient transaction and discards uncommitted work (#339)
|
2026-07-04 01:53:10 +02:00 |
|
d3vyce
|
9cb4c1474f
|
feat: always include Context.BASE fixtures when loading/listing by context (#337)
|
2026-07-04 01:08:03 +02:00 |
|
d3vyce
|
fe2c0f3eff
|
Rework fixtures module (#333)
* feat: fixture refresh DB-generated values onto returned instances
* refactor: replace utils.get_obj_by_attr/get_field_by_attr with registry.obj/field lookups
* refactor: log fixture command output instead of print
* chore: clean up fixture module
|
2026-07-01 19:24:00 +02:00 |
|
d3vyce
|
70e0b3b9d5
|
chore: Database enhancement (#329)
|
2026-06-27 13:30:38 +02:00 |
|
d3vyce
|
1e021005bc
|
fix: wait_for_row_change raises and never detects changes under REPEATABLE READ (#327)
|
2026-06-26 18:50:45 +02:00 |
|
d3vyce
|
9698a0743b
|
chore: rework DB module (#324)
|
2026-06-25 21:11:50 +02:00 |
|
d3vyce
|
49b579bcec
|
feat: add optional prefix parameter to create_worker_database and worker_database_url (#306)
|
2026-06-09 18:46:09 +02:00 |
|
d3vyce
|
4bb4287922
|
fix: drop worker database with force to handle active connections (#304)
|
2026-06-09 18:34:44 +02:00 |
|
d3vyce
|
3e2518b803
|
fix/create_worker_database connects to non-existent database on fresh setup (#302)
* fix/create_worker_database connects to non-existent database on fresh setup
* tests: add more tests for pytest module
|
2026-06-08 18:37:59 +02:00 |
|
d3vyce
|
cd928688af
|
fix: pool exhaustion and lock timeout surface as 500 instead of structured 503 (#295)
|
2026-06-03 22:03:15 +02:00 |
|
d3vyce
|
7f7734f0f3
|
feat: add advisory_lock context manager (#283)
|
2026-05-21 18:23:25 +02:00 |
|
d3vyce
|
2a427a2946
|
feat: add NOWAIT/SKIP LOCKED row locking support and extend with_for_update to get_multi and update (#281)
|
2026-05-16 11:59:37 +02:00 |
|
d3vyce
|
189e9e1a13
|
Version 4.0.0 (#263)
* fix: lock_tables acquires dedicated session to enforce RAII lock boundaries (#261)
* fix: make lock_tables generic over session type (#270)
* docs: fix zensical warnings
* Version 4.0.0
* docs: add v4 migration + fix lock_tables documentation
|
2026-05-08 13:04:24 +02:00 |
|
d3vyce
|
99eabe3b23
|
feat: add security module (#111)
* feat: add security module
* feat(security): add oauth helpers
* docs: add authentication example
* fix: cleanup + simplify
* docs: update module and reference
* fix: multiple security bugs + remove example for now
* feat: use async_lru for caching
* fix: rename nonce by state_token
|
2026-05-08 12:50:06 +02:00 |
|
d3vyce
|
dcdaab52cf
|
fix: KeyError on fixture load with SQLAlchemy joined-table inheritance (#254)
|
2026-04-16 20:23:37 +02:00 |
|
d3vyce
|
9268b576b4
|
feat: add M2M helpers (#247)
|
2026-04-12 18:46:57 +02:00 |
|
d3vyce
|
863e6ce6e9
|
feat: add get_field_by_attr fixtures helper (#245)
|
2026-04-12 17:12:08 +02:00 |
|
d3vyce
|
c7397faea4
|
feat: auto eager-load relationships in register_fixtures (#243)
|
2026-04-12 17:04:44 +02:00 |
|
d3vyce
|
2a49814818
|
feat: normalize enum facet values to member names and accept name strings in filter_by (#235)
|
2026-04-07 11:42:24 +02:00 |
|
d3vyce
|
54decaf3e1
|
fix: coerce plain int values to enum member when filtering on IntEnum column (#231)
|
2026-04-07 10:43:01 +02:00 |
|
d3vyce
|
8bed96f4bf
|
fix: apply default_load_options after create() and update() to prevent MissingGreenlet on relationship access (#229)
|
2026-04-04 20:47:05 +02:00 |
|
d3vyce
|
74d15e13bc
|
feat: support relation tuples in order_fields for cross-table sorting (#227)
* feat: support relation tuples in order_fields for cross-table sorting
* docs: update crud module
|
2026-04-04 17:00:14 +02:00 |
|
d3vyce
|
e38d8d2d4f
|
feat: expose sort_columns in paginated response (#225)
|
2026-04-04 14:46:36 +02:00 |
|
d3vyce
|
e388e26858
|
fix: widen JoinType to accept aliased and polymorphic targets (#221)
|
2026-04-02 22:58:52 +02:00 |
|
d3vyce
|
04da241294
|
fix: coerce string values to bool for Boolean facet field filtering (#219)
|
2026-04-02 22:58:07 +02:00 |
|
d3vyce
|
bbe63edc46
|
Version 3.0.0 (#201)
* chore: remove deprecated code
* docs: update v3 migration guide
* fix: pytest warnings
* Version 3.0.0
* fix: docs workflows
|
2026-04-02 11:21:31 +02:00 |
|
d3vyce
|
0b17c77dee
|
fix: deduplicate relationship joins when searchable_fields and facet_fields reference the same model (#217)
|
2026-04-02 11:09:26 +02:00 |
|
d3vyce
|
32059dcb02
|
feat: consolidate *_params dependencies into per-paginate-style methods with feature toggles (#209)
|
2026-04-01 20:53:14 +02:00 |
|
d3vyce
|
f027981e80
|
feat: add search_column parameter and search_columns response field for targeted search (#207)
|
2026-04-01 18:10:56 +02:00 |
|
d3vyce
|
5c1487c24a
|
fix: suppress UPDATE callbacks for objects deleted in the same transaction (#205)
|
2026-03-31 21:40:18 +02:00 |
|
d3vyce
|
ebaa61525f
|
fix: handle boolean and ARRAY column types in filter_by facet filtering (#203)
|
2026-03-31 21:36:54 +02:00 |
|
d3vyce
|
0b3f097012
|
fix: batch insert normalizes away omitted nullable columns (#198)
|
2026-03-30 18:50:05 +02:00 |
|
d3vyce
|
1890d696bf
|
feat: rework async event system (#196)
* feat: rework async event system
* docs: add v3 migration guide
* feat: add cache
* enhancements
|
2026-03-30 18:24:36 +02:00 |
|
d3vyce
|
f5afbbe37f
|
fix: snapshot nullable columns correctly in WatchedFieldsMixin callback (#194)
|
2026-03-28 18:47:06 +01:00 |
|
d3vyce
|
f4698bea8a
|
fix: normalize batch insert rows to prevent silent data loss for nullable columns (#192)
|
2026-03-27 19:20:41 +01:00 |
|