Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
b3a648b
feat(config): add DatabaseSettings nested configuration model
alialfostovar Sep 5, 2026
0bd1049
feat(config): add backward-compatible DATABASE nested settings with s…
alialfostovar Sep 5, 2026
01edfb0
refactor(db): enhance DatabaseManager with structured config support
alialfostovar Sep 5, 2026
77d0540
feat(db): add custom JSON serializer/deserializer to database engine
alialfostovar Sep 5, 2026
6adfa6b
feat(repository): add dialect-aware fallback for create_multi without…
alialfostovar Sep 5, 2026
24d80bf
feat(repository): add dialect-aware fallback for delete_multi without…
alialfostovar Sep 5, 2026
771fbdb
refactor(repository): clean up docstring and fix trailing newline
alialfostovar Sep 5, 2026
c950cdd
feat(config): add timezone configuration options
alialfostovar Sep 5, 2026
5768775
feat(utils): add timezone management module with ZDateTime type
alialfostovar Sep 5, 2026
e072810
feat(utils): add timezone-aware datetime serialization to CustomJSONE…
alialfostovar Sep 5, 2026
a06b14b
docs(db): add docstring for _register_query_logger sync_engine parameter
alialfostovar Sep 5, 2026
f54f0d5
feat(zchema): integrate timezone-aware datetime serialization into Zc…
alialfostovar Sep 5, 2026
23902c1
refactor(soft_delete): use timezone-aware now() for soft delete times…
alialfostovar Sep 5, 2026
802db62
feat(repository): support model instance or primary key in update method
alialfostovar Sep 5, 2026
64bfa0f
feat(repository): support model instance keys in update_multi
alialfostovar Sep 5, 2026
b93b04d
feat(repository): support model instance in delete method
alialfostovar Sep 5, 2026
1d8e290
refactor(service): update pre_update and pre_update_multi signatures
alialfostovar Sep 5, 2026
34e68f8
refactor(service): update on_update and on_update_multi signatures
alialfostovar Sep 5, 2026
b4a0044
refactor(service): update update() and update_multi signatures
alialfostovar Sep 5, 2026
fb4e492
refactor(service): update delete and on_delete signatures
alialfostovar Sep 5, 2026
c6b1c70
feat(search): improve type coercion with better error handling and va…
alialfostovar Sep 5, 2026
a7f2f6f
feat(search): enhance type safety and operator handling in comparison…
alialfostovar Sep 5, 2026
accdd7e
refactor(router): remove **kwargs propagation and clean up imports
alialfostovar Sep 5, 2026
4c6d53d
refactor(pagination): clean up docstring formatting and add trailing …
alialfostovar Sep 5, 2026
a93ced4
feat(router): dynamic primary key type resolution for route paths
alialfostovar Sep 5, 2026
096abbe
feat(router): implement weighted route specificity sorting
alialfostovar Sep 5, 2026
5ea15ad
feat(logging): redesign structured logging with ProcessorFormatter
alialfostovar Sep 5, 2026
ac1bcf2
feat(middleware): enhance request logging with status code and client IP
alialfostovar Sep 5, 2026
40dbf62
feat(config): add LoggingSettings structured configuration model
alialfostovar Sep 5, 2026
d1fcfc0
feat(config): integrate LoggingSettings with backward-compatible sync
alialfostovar Sep 5, 2026
3211b6c
feat(logging): support LoggingSettings, file rotation, and dictConfig…
alialfostovar Sep 5, 2026
44f48aa
feat(db): add query logging filters for log_sql_queries and slow_quer…
alialfostovar Sep 5, 2026
4f6f309
feat(di): enhance background_task with session usage warning and impr…
alialfostovar Sep 5, 2026
6ccdf6a
docs(middleware): update ScopedDependencyMiddleware docstring
alialfostovar Sep 5, 2026
4eddd0e
feat(cache): add safe eviction task scheduling with event loop detection
alialfostovar Sep 5, 2026
ecde69c
refactor(cli): update templates with latest framework patterns
alialfostovar Sep 5, 2026
603e846
refactor(cli): add docstrings and bump version to 0.1.0-beta.9
alialfostovar Sep 5, 2026
bf3437b
refactor(cli): add module-level and function docstrings, bump version
alialfostovar Sep 5, 2026
39fca59
feat(core): expand __init__.py exports and modernize datetime imports
alialfostovar Sep 5, 2026
329899e
feat(kernel): add automatic database and cache cleanup on application…
alialfostovar Sep 5, 2026
db0873b
refactor: lazy import app_exception_handler and pagination classes
alialfostovar Sep 5, 2026
3b78648
fix(cli): correct service class reference in router template
alialfostovar Sep 5, 2026
507d491
refactor(timezone): simplify timezone resolution with UTC fallback
alialfostovar Sep 5, 2026
a32412d
feat(timezone): add structlog warning for invalid timezone configuration
alialfostovar Sep 5, 2026
b826fc5
test(exceptions): use timezone-aware ISO format in test assertions
alialfostovar Sep 5, 2026
1c994be
test(logging): update tests for ProcessorFormatter and LOG_LEVEL sett…
alialfostovar Sep 5, 2026
0462b07
test(search): add missing blank lines between test functions
alialfostovar Sep 5, 2026
9a1f78c
test(service): update tests for target parameter and add blank lines
alialfostovar Sep 5, 2026
8824d45
test(utils): update datetime assertions for timezone-aware ISO format…
alialfostovar Sep 5, 2026
ccc3096
test(logging): replace MagicMock handler with real DummyHandler
alialfostovar Sep 5, 2026
f9dbd51
test(config): add comprehensive tests for DatabaseSettings, LoggingSe…
alialfostovar Sep 5, 2026
e73ae4b
fix(config): add bidirectional sync for POOL_SIZE and MAX_OVERFLOW
alialfostovar Sep 5, 2026
f46ddc1
test(utils): add comprehensive timezone utility tests
alialfostovar Sep 5, 2026
013d380
test(repository): add dialect fallback and model instance acceptance …
alialfostovar Sep 5, 2026
0c0040e
test(db): add comprehensive database manager and JSON serializer tests
alialfostovar Sep 5, 2026
1912c1c
feat(search): unify contains operator into ilike family and add tests
alialfostovar Sep 5, 2026
8c61378
test(web): add router PK type detection, Zchema timezone serializatio…
alialfostovar Sep 5, 2026
caddf1a
test(logging): add comprehensive tests for logging configuration feat…
alialfostovar Sep 5, 2026
f415f69
test(di): add background_task AsyncSession warning tests
alialfostovar Sep 5, 2026
2e75aa4
test(cache): add tests for eviction task safety and close cancellation
alialfostovar Sep 5, 2026
5a7d066
test(kernel): add lifespan DB and cache cleanup test
alialfostovar Sep 5, 2026
40323c1
test(cli): add version output and DatabaseSettings template tests
alialfostovar Sep 5, 2026
d814173
deps: add tzdata dependency for Windows timezone support
alialfostovar Sep 5, 2026
6e5165d
docs(readme): update CLI banner version to 0.1.0-beta.9
alialfostovar Sep 5, 2026
63cf57d
refactor(timezone): move timezone formatting to ZDateTime type and si…
alialfostovar Sep 6, 2026
7002916
feat(config): add STORAGE_URL_PREFIX with AliasChoices support
alialfostovar Sep 6, 2026
7670214
feat(storage): expand StorageProvider interface with exists and get_u…
alialfostovar Sep 6, 2026
a146868
feat(storage): enhance validators with XSS and active content detection
alialfostovar Sep 6, 2026
1b98d6d
feat(storage): enhance LocalStorageProvider with URL resolution and e…
alialfostovar Sep 6, 2026
d572cf0
feat(storage): add _resolve_path helper for robust path resolution
alialfostovar Sep 8, 2026
1599b3d
refactor(storage): use _resolve_path in delete method
alialfostovar Sep 8, 2026
4f203c0
refactor(storage): use _resolve_path in exists method
alialfostovar Sep 8, 2026
06a9ce6
refactor(storage): use _resolve_path in get_url for reliable URL gene…
alialfostovar Sep 8, 2026
2661209
refactor(storage): extract key-based storage operations in LocalStora…
alialfostovar Sep 8, 2026
8a44de3
test(storage): add comprehensive tests for storage provider operations
alialfostovar Sep 8, 2026
aeab7b0
refactor(repository): reorder parameters in get_list for better API c…
alialfostovar Sep 8, 2026
57a41d5
refactor(service): reorder parameters in get_list to match repository
alialfostovar Sep 8, 2026
b4f7cb1
refactor(router): use explicit keyword argument in get_list call
alialfostovar Sep 8, 2026
16544cf
feat(config): introduce structured DatabaseSettings and enhance Datab…
alialfostovar Sep 11, 2026
7ee43e3
feat(db): add custom JSON serializer and deserializer to database eng…
alialfostovar Sep 11, 2026
bbe1295
feat(repository): add dialect-aware fallbacks for batch repository op…
alialfostovar Sep 11, 2026
d227127
feat(timezone): introduce dynamic timezone management and serializati…
alialfostovar Sep 11, 2026
fbf7be4
feat(repository,service): support model instances in update and delet…
alialfostovar Sep 11, 2026
ffc4788
feat(search): enhance search query builder type coercion and operator…
alialfostovar Sep 11, 2026
04f45ad
refactor(web,db): simplify router endpoint signatures and clean up im…
alialfostovar Sep 11, 2026
ac6b6e2
feat(router): add dynamic primary key type resolution for route paths…
alialfostovar Sep 11, 2026
b03356e
feat(router): implement weighted route specificity sorting (#103)
alialfostovar Sep 11, 2026
d8f6159
feat(logging): redesign structured logging pipeline with ProcessorFor…
alialfostovar Sep 11, 2026
d1679a0
feat(di): add warning for explicit AsyncSession in background tasks a…
alialfostovar Sep 11, 2026
b8e80d0
feat(cache,cli): add event-loop-safe cache eviction and update scaffo…
alialfostovar Sep 11, 2026
3978621
feat(core): expand public API exports and modernize datetime imports …
alialfostovar Sep 11, 2026
ddd08a7
feat(kernel): add automatic database and cache cleanup on application…
alialfostovar Sep 11, 2026
f94a179
test(core): add comprehensive test suite across framework modules and…
alialfostovar Sep 11, 2026
aed0d82
feat(storage): enhance storage provider with URL resolution, existenc…
alialfostovar Sep 11, 2026
9c97cef
refactor(core): reorder get_list parameters for API consistency (#111)
alialfostovar Sep 16, 2026
236e1ab
chore(release): bump version to 0.1.0-rc.1
alialfostovar Sep 16, 2026
db10dae
fix(storage): use raw byte string literals for regex patterns
alialfostovar Sep 17, 2026
ae7ad6a
docs(readme): migrate documentation links to custom domain
alialfostovar Sep 18, 2026
1ff4d4d
docs(readme): fix optional field typing in Zchema example
alialfostovar Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<a href="https://github.com/Baseryn/zcore/actions/workflows/test.yml">
<img src="https://github.com/Baseryn/zcore/actions/workflows/test.yml/badge.svg" alt="CI">
</a>
<a href="https://baseryn.github.io/zcore-docs/">
<a href="https://zcore.baseryn.com">
<img src="https://img.shields.io/badge/docs-online-purple" alt="Documentation">
</a>
<a href="https://pypi.org/project/fastapi-zcore-framework/">
Expand Down Expand Up @@ -103,7 +103,7 @@ zc run

Your API is live at **`http://127.0.0.1:8000`** with 7 secure endpoints (CRUD + Dynamic Search) ready.

> 📖 **Full walkthrough:** [Quick Start Guide](https://baseryn.github.io/zcore-docs/docs/quick-start)
> 📖 **Full walkthrough:** [Quick Start Guide](https://zcore.baseryn.com/docs/quick-start)

---

Expand All @@ -124,7 +124,7 @@ class TaskResponse(Zchema):

id: uuid.UUID
title: str
salary: float # Automatically pruned if unauthorized
salary: float | None = None # Automatically pruned if unauthorized
```

When an authenticated user lacks view permissions for `tasks.salary`, the field vanishes from both JSON serialization and the OpenAPI schema — with zero manual `if` statements.
Expand Down Expand Up @@ -229,7 +229,7 @@ The `zc` CLI gives you a rich, interactive Terminal User Interface (TUI) powered
```text
$ zc

⚡ ZCore Framework v0.1.0-Beta • Modern Modular Monolith
⚡ ZCore Framework v0.1.0-rc.1 • Modern Modular Monolith
FastAPI • SQLAlchemy 2.0 • Pydantic V2

? What framework task would you like to perform? 📦 init — Scaffold a new full ZCore project
Expand Down Expand Up @@ -260,12 +260,12 @@ $ zc

| Resource | Description |
|----------|-------------|
| [🚀 Quick Start](https://baseryn.github.io/zcore-docs/docs/quick-start) | Build a complete Task Manager API from scratch |
| [📚 10-Step Quick Learn](https://baseryn.github.io/zcore-docs/docs/quick-learn/step-1) | Deep dive into each architectural layer step-by-step |
| [🔧 How-To Guides](https://baseryn.github.io/zcore-docs/docs/how-to) | Pagination, search, file uploads, caching, and testing |
| [🏛️ Core Concepts](https://baseryn.github.io/zcore-docs/docs/core-concepts/context) | Deep dive into DI, Kernel, Security, UoW, and Zchema |
| [📜 API Reference](https://baseryn.github.io/zcore-docs/docs/api-reference/repository) | Complete class and method specifications |
| [🕒 Changelog](https://baseryn.github.io/zcore-docs/docs/changelog) | Release notes, breaking changes, and migrations |
| [🚀 Quick Start](https://zcore.baseryn.com/docs/quick-start) | Build a complete Task Manager API from scratch |
| [📚 10-Step Quick Learn](https://zcore.baseryn.com/docs/quick-learn/step-1) | Deep dive into each architectural layer step-by-step |
| [🔧 How-To Guides](https://zcore.baseryn.com/docs/how-to) | Pagination, search, file uploads, caching, and testing |
| [🏛️ Core Concepts](https://zcore.baseryn.com/docs/core-concepts/context) | Deep dive into DI, Kernel, Security, UoW, and Zchema |
| [📜 API Reference](https://zcore.baseryn.com/docs/api-reference/repository) | Complete class and method specifications |
| [🕒 Changelog](https://zcore.baseryn.com/docs/changelog) | Release notes, breaking changes, and migrations |

---

Expand Down
8 changes: 5 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ readme = "README.md"
requires-python = ">=3.11"
license = { text = "Apache License 2.0" }
authors = [
{ name = "Ali Alf Ostovar", email = "240363843+alialfostovar@users.noreply.github.com" }
{ name = "Ali Alf Ostovar"}
]
maintainers = [
{ name = "Baseryn" }
{ name = "Baseryn", email = "support@baseryn.com"}
]
classifiers = [
"Development Status :: 4 - Beta",
Expand All @@ -36,6 +36,7 @@ dependencies = [
"uvicorn>=0.22.0",
"questionary>=2.0.1",
"rich>=13.7.0",
"tzdata>=2024.1; sys_platform == 'win32'",
]

[project.optional-dependencies]
Expand Down Expand Up @@ -80,12 +81,13 @@ all = [
"aiofiles>=23.2.1",
"argon2-cffi>=23.1.0",
"pyjwt>=2.8.0",
"tzdata>=2024.1; sys_platform == 'win32'",
]

[project.urls]
Homepage = "https://github.com/Baseryn/zcore"
Repository = "https://github.com/Baseryn/zcore"
Documentation = "https://baseryn.github.io/zcore-docs/"
Documentation = "https://zcore.baseryn.com"
"Bug Tracker" = "https://github.com/Baseryn/zcore/issues"

[project.scripts]
Expand Down
Loading
Loading