Compare commits

..

204 Commits

Author SHA1 Message Date
renovate[bot]
440bc11388 feat(deps): update actions/setup-python action to v6 2026-04-08 17:54:53 +00:00
renovate[bot]
f31d4a72e9 feat(deps): update dependency anyio to v4.13.0 2026-03-28 22:05:09 +00:00
renovate[bot]
a5f1711e9e feat(deps): update dependency fastapi-pagination to v0.15.12 2026-03-28 20:39:41 +00:00
renovate[bot]
b00a195774 feat(deps): update dependency fastapi-filters to v0.3.3 2026-03-28 17:51:02 +00:00
renovate[bot]
e49091a8b6 feat(deps): update dependency fastapi to v0.135.2 2026-03-28 16:33:55 +00:00
renovate[bot]
c6c726b086 feat(deps): update codacy/git-version action to v2.8.7 (#58)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-28 16:33:45 +00:00
renovate[bot]
52ebff3e69 feat(deps): update dependency uvicorn to v0.41.0 2026-03-06 20:58:02 +00:00
renovate[bot]
975d87af42 feat(deps): update dependency starlette to v0.52.1 (#56)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-06 20:57:37 +00:00
renovate[bot]
3524b87679 feat(deps): update dependency fastapi to v0.135.1 2026-03-06 12:48:44 +00:00
renovate[bot]
445adfecf1 feat(deps): update dependency sqlalchemy to v2.0.48 2026-03-06 08:52:29 +00:00
renovate[bot]
aabac789f4 feat(deps): update dependency python-dotenv to v1.2.2 2026-03-06 05:06:55 +00:00
renovate[bot]
5ac6695b44 feat(deps): update dependency psycopg-binary to v3.3.3 2026-03-06 01:49:12 +00:00
renovate[bot]
fe8ac614b7 feat(deps): update dependency psycopg to v3.3.3 2026-03-05 23:48:23 +00:00
renovate[bot]
357891cc3e feat(deps): update dependency fastapi-pagination to v0.15.10 2026-03-05 19:12:50 +00:00
renovate[bot]
d9e52358f7 feat(deps): update dependency fastapi-filters to v0.3.2 2026-03-05 13:03:21 +00:00
renovate[bot]
4038cf0aaa feat(deps): update dependency alembic to v1.18.4 2026-03-05 09:11:59 +00:00
9ef7d01656 Uncomment apilog_worker service configuration 2026-01-12 11:51:58 +01:00
renovate[bot]
a6959d0976 feat(deps): update dependency alembic to v1.18.0 2026-01-10 01:02:27 +00:00
renovate[bot]
76929d1787 feat(deps): update dependency fastapi-pagination to v0.15.5 2026-01-08 19:36:50 +00:00
renovate[bot]
4c37e42531 feat(deps): update dependency anyio to v4.12.1 2026-01-06 13:49:51 +00:00
renovate[bot]
706048ae4f feat(deps): update dependency fastapi to v0.128.0 2025-12-27 16:42:36 +00:00
renovate[bot]
1b79d37db3 feat(deps): update dependency fastapi to v0.127.1 2025-12-26 17:10:35 +00:00
renovate[bot]
60609ebace feat(deps): update dependency apscheduler to v3.11.2 2025-12-22 01:34:05 +00:00
renovate[bot]
fadfd994ad feat(deps): update dependency fastapi to v0.127.0 2025-12-21 22:32:21 +00:00
renovate[bot]
596a782046 feat(deps): update dependency uvicorn to v0.40.0 2025-12-21 16:49:01 +00:00
renovate[bot]
2d382c6abe feat(deps): update dependency fastapi to v0.126.0 2025-12-20 18:13:49 +00:00
renovate[bot]
ddbf58f83e feat(deps): update dependency fastapi-pagination to v0.15.4 2025-12-19 22:35:40 +00:00
renovate[bot]
c181c5d782 feat(deps): update dependency fastapi to v0.125.0 2025-12-17 21:54:37 +00:00
renovate[bot]
82e9bc7f54 feat(deps): update dependency fastapi to v0.124.4 2025-12-12 17:12:49 +00:00
renovate[bot]
8fc0e9deea feat(deps): update dependency fastapi-pagination to v0.15.3 2025-12-12 04:05:38 +00:00
renovate[bot]
86b1a78dc8 feat(deps): update dependency fastapi to v0.124.2 2025-12-10 12:43:37 +00:00
renovate[bot]
51f53e3850 feat(deps): update dependency sqlalchemy to v2.0.45 2025-12-10 03:10:46 +00:00
renovate[bot]
793fc0e5db feat(deps): update dependency fastapi-pagination to v0.15.2 (#54)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-07 05:27:52 +00:00
renovate[bot]
f7a141d916 feat(deps): update dependency psycopg-binary to v3.3.2 2025-12-07 00:41:27 +00:00
renovate[bot]
8f66d13951 feat(deps): update dependency psycopg to v3.3.2 2025-12-06 21:02:01 +00:00
renovate[bot]
5702be720c feat(deps): update dependency fastapi to v0.124.0 2025-12-06 13:40:39 +00:00
renovate[bot]
928f7fe5a3 feat(deps): update dependency fastapi to v0.123.10 2025-12-06 02:52:27 +00:00
renovate[bot]
4739ec2e86 feat(deps): update dependency fastapi to v0.123.9 2025-12-05 03:44:22 +00:00
renovate[bot]
500e76ce07 feat(deps): update dependency fastapi to v0.123.8 (#53)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 17:47:26 +00:00
renovate[bot]
b472b35817 feat(deps): update dependency fastapi-pagination to v0.15.1 2025-12-03 19:48:44 +00:00
renovate[bot]
45098d37d4 feat(deps): update dependency psycopg-binary to v3.3.1 2025-12-03 04:14:06 +00:00
renovate[bot]
1845de61a5 feat(deps): update dependency psycopg to v3.3.1 2025-12-02 21:25:05 +00:00
renovate[bot]
00a34b0765 feat(deps): update dependency fastapi to v0.123.4 2025-12-02 13:32:41 +00:00
renovate[bot]
c184d37c08 feat(deps): update dependency psycopg-pool to v3.3.0 2025-12-01 20:25:11 +00:00
renovate[bot]
2f4837f70f feat(deps): update dependency psycopg to v3.3.0 (#52)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 20:25:04 +00:00
renovate[bot]
049fc8891e feat(deps): update dependency psycopg-binary to v3.3.0 2025-12-01 14:52:27 +00:00
renovate[bot]
b6bf7579fc feat(deps): update dependency fastapi to v0.123.0 2025-11-30 17:55:58 +00:00
renovate[bot]
753f29f53e feat(deps): update dependency anyio to v4.12.0 2025-11-29 01:58:38 +00:00
renovate[bot]
25a2d5674a feat(deps): update dependency fastapi to v0.122.0 2025-11-24 20:52:34 +00:00
renovate[bot]
5cffb7d29a feat(deps): update dependency psycopg-pool to v3.2.8 2025-11-22 08:32:40 +00:00
renovate[bot]
e02a67a110 feat(deps): update dependency psycopg-binary to v3.2.13 2025-11-22 04:33:09 +00:00
renovate[bot]
35f9b97f7e feat(deps): update dependency psycopg to v3.2.13 2025-11-22 02:09:39 +00:00
renovate[bot]
ebda597f5f feat(deps): update dependency starlette to v0.50.0 (#49)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-20 00:53:34 +00:00
renovate[bot]
1732471eef feat(deps): update dependency fastapi to v0.121.3 2025-11-19 17:46:15 +00:00
renovate[bot]
ab964f2131 feat(deps): update dependency click to v8.3.1 2025-11-15 22:26:13 +00:00
renovate[bot]
d93cf4d754 feat(deps): update dependency alembic to v1.17.2 2025-11-14 21:58:59 +00:00
renovate[bot]
c666e51cf3 feat(deps): update dependency fastapi to v0.121.2 2025-11-13 17:59:27 +00:00
renovate[bot]
171c959f13 feat(deps): update dependency certifi to v2025.11.12 2025-11-12 03:54:37 +00:00
renovate[bot]
78e82a94a1 feat(deps): update dependency fastapi to v0.121.1 2025-11-09 00:47:06 +00:00
renovate[bot]
8cb63eed82 feat(deps): update dependency fastapi to v0.121.0 2025-11-03 19:30:22 +00:00
renovate[bot]
00107c9a32 feat(deps): update dependency fastapi to v0.120.4 2025-10-31 23:36:36 +00:00
renovate[bot]
6626ea39ef feat(deps): update dependency apscheduler to v3.11.1 2025-10-31 19:57:13 +00:00
renovate[bot]
0427bbfcc4 feat(deps): update dependency fastapi to v0.120.3 2025-10-30 21:06:39 +00:00
renovate[bot]
83bca89c91 feat(deps): update dependency alembic to v1.17.1 (#48)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-30 06:57:07 +00:00
renovate[bot]
7a4f2bf0a8 feat(deps): update dependency fastapi to v0.120.2 2025-10-29 17:43:44 +00:00
renovate[bot]
3c606b5e6d feat(deps): update dependency fastapi-pagination to v0.15.0 2025-10-28 23:55:27 +00:00
renovate[bot]
0c18fbebb0 feat(deps): update dependency starlette to v0.49.1 2025-10-28 17:36:52 +00:00
renovate[bot]
bbaca6878d feat(deps): update dependency fastapi to v0.120.1 2025-10-27 18:35:49 +00:00
renovate[bot]
8e28bf16a7 feat(deps): update dependency python-dotenv to v1.2.1 2025-10-26 17:33:25 +00:00
renovate[bot]
3d3857024a feat(deps): update dependency psycopg-pool to v3.2.7 2025-10-26 09:02:18 +00:00
renovate[bot]
ce9441cb99 feat(deps): update dependency psycopg-binary to v3.2.12 2025-10-26 04:35:15 +00:00
renovate[bot]
d1f8002353 feat(deps): update dependency psycopg to v3.2.12 2025-10-26 01:55:11 +00:00
renovate[bot]
0c7e1cb380 feat(deps): update dependency fastapi to v0.120.0 2025-10-24 04:48:15 +00:00
renovate[bot]
ab4a9b5019 feat(deps): update dependency fastapi to v0.119.1 2025-10-20 14:45:05 +00:00
renovate[bot]
2e41287840 feat(deps): update dependency iniconfig to v2.3.0 2025-10-19 09:11:31 +00:00
renovate[bot]
332e41f33b feat(deps): update dependency psycopg-binary to v3.2.11 2025-10-19 05:39:03 +00:00
renovate[bot]
b9c61e300c feat(deps): update dependency psycopg to v3.2.11 2025-10-19 03:25:29 +00:00
renovate[bot]
c5c823801b feat(deps): update dependency uvicorn to v0.38.0 2025-10-18 18:06:16 +00:00
renovate[bot]
a81ff366dc feat(deps): update dependency fastapi to v0.119.0 (#46)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 03:00:48 +00:00
renovate[bot]
6b53ba63d0 feat(deps): update dependency fastapi-filters to v0.3.1 2025-10-14 17:09:50 +00:00
renovate[bot]
171568685d feat(deps): update dependency idna to v3.11 2025-10-12 16:43:06 +00:00
renovate[bot]
15baaf0bb6 feat(deps): update dependency alembic to v1.17.0 2025-10-11 21:54:47 +00:00
renovate[bot]
38c4b30950 feat(deps): update dependency sqlalchemy to v2.0.44 2025-10-10 18:30:04 +00:00
renovate[bot]
2f191d9b8f feat(deps): update dependency fastapi to v0.118.3 2025-10-10 13:13:28 +00:00
renovate[bot]
8e1b17a52e feat(deps): update dependency fastapi to v0.118.2 2025-10-08 17:50:08 +00:00
renovate[bot]
5d41160514 feat(deps): update dependency fastapi-pagination to v0.14.3 2025-10-08 14:46:49 +00:00
renovate[bot]
b99070f735 feat(deps): update dependency fastapi to v0.118.1 2025-10-08 09:39:58 +00:00
renovate[bot]
15e62f1ff8 feat(deps): update dependency certifi to v2025.10.5 2025-10-05 04:33:20 +00:00
renovate[bot]
d0d94f3993 feat(deps): update dependency fastapi to v0.118.0 (#44)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 00:51:54 +00:00
renovate[bot]
53fe2c4a82 feat(deps): update dependency fastapi-pagination to v0.14.2 2025-09-29 17:13:07 +00:00
renovate[bot]
2e3fa63a94 feat(deps): update dependency markupsafe to v3.0.3 2025-09-27 21:50:44 +00:00
renovate[bot]
699bcc4fdc feat(deps): update dependency uvicorn to v0.37.0 2025-09-23 18:27:11 +00:00
renovate[bot]
2b112b56bf feat(deps): update dependency anyio to v4.11.0 2025-09-23 11:02:55 +00:00
renovate[bot]
9b40838bd9 feat(deps): update dependency fastapi to v0.117.1 2025-09-20 20:33:04 +00:00
renovate[bot]
fc7fe924bb feat(deps): update dependency uvicorn to v0.36.0 2025-09-20 01:59:00 +00:00
renovate[bot]
7588918306 feat(deps): update dependency click to v8.3.0 2025-09-18 21:03:06 +00:00
renovate[bot]
5739626959 feat(deps): update dependency starlette to v0.48.0 (#43)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 02:43:55 +00:00
renovate[bot]
84bab4ec16 feat(deps): update dependency fastapi to v0.116.2 2025-09-16 19:04:59 +00:00
renovate[bot]
6f8e06ac69 feat(deps): update dependency psycopg to v3.2.10 (#42)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 17:16:05 +00:00
renovate[bot]
25967b7e8e feat(deps): update dependency psycopg-binary to v3.2.10 2025-09-08 11:36:23 +00:00
renovate[bot]
e5fe4eb4da feat(deps): update dependency pytest to v8.4.2 2025-09-06 21:03:51 +00:00
renovate[bot]
776cd9c343 feat(deps): update dependency fastapi-pagination to v0.14.1 2025-09-06 19:33:41 +00:00
renovate[bot]
49fd344aaa feat(deps): update dependency alembic to v1.16.5 2025-08-27 19:55:09 +00:00
renovate[bot]
f22588275c feat(deps): update dependency typing_extensions to v4.15.0 2025-08-25 17:04:16 +00:00
renovate[bot]
9d82b0c566 feat(deps): update dependency starlette to v0.47.3 2025-08-24 14:30:50 +00:00
renovate[bot]
f77fe9f1ae feat(deps): update codacy/git-version action to v2.8.6 (#39)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-23 01:14:35 +00:00
renovate[bot]
3f8997f908 feat(deps): update codacy/git-version action to v2.8.5 2025-08-21 01:27:45 +00:00
renovate[bot]
bda6afbf2b feat(deps): update dependency fastapi-pagination to v0.14.0 2025-08-20 21:48:42 +00:00
renovate[bot]
315a73ea6f feat(deps): update dependency python to 3.13 (#37)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-12 03:14:15 +00:00
renovate[bot]
9820520cab feat(deps): update dependency sqlalchemy to v2.0.43 2025-08-11 17:48:36 +00:00
renovate[bot]
f49126f403 feat(deps): update codacy/git-version action to v2.8.4 (#36)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 21:43:27 +00:00
renovate[bot]
7e322b7fbc feat(deps): update dependency anyio to v4.10.0 2025-08-04 14:55:54 +00:00
renovate[bot]
30dce717c1 feat(deps): update dependency certifi to v2025.8.3 2025-08-03 06:08:06 +00:00
renovate[bot]
eae989a9ea feat(deps): update dependency click to v8.2.2 2025-08-02 06:06:13 +00:00
renovate[bot]
68f64d5e96 feat(deps): update dependency sqlalchemy to v2.0.42 2025-07-29 18:45:44 +00:00
renovate[bot]
b6eaa7c1e7 feat(deps): update dependency starlette to v0.47.2 2025-07-20 20:50:31 +00:00
renovate[bot]
38f7c9234d feat(deps): update dependency certifi to v2025.7.14 2025-07-14 05:23:34 +00:00
renovate[bot]
ca6a2a3eaa feat(deps): update dependency starlette to v0.47.1 (#32)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-12 05:58:24 +00:00
renovate[bot]
055b8af28a feat(deps): update codacy/git-version action to v2.8.3 2025-07-11 22:34:02 +00:00
renovate[bot]
abe103dc0f feat(deps): update dependency fastapi to v0.116.1 2025-07-11 17:06:04 +00:00
renovate[bot]
8da0f31b16 feat(deps): update dependency alembic to v1.16.4 2025-07-10 19:45:38 +00:00
d5907074c9 fix: moved to creyPY create_if_not_exist 2025-07-09 19:54:16 +02:00
renovate[bot]
06e5a3af30 feat(deps): update dependency certifi to v2025.7.9 2025-07-09 05:11:01 +00:00
renovate[bot]
f42ce7abe1 feat(deps): update dependency alembic to v1.16.3 2025-07-08 20:50:53 +00:00
renovate[bot]
a743969689 feat(deps): update dependency fastapi to v0.116.0 2025-07-07 19:31:35 +00:00
renovate[bot]
6fc6117400 feat(deps): update dependency typing_extensions to v4.14.1 2025-07-04 16:33:52 +00:00
renovate[bot]
d8057db909 feat(deps): update dependency uvicorn to v0.35.0 2025-06-28 16:47:39 +00:00
renovate[bot]
c8872ca437 feat(deps): update dependency fastapi to v0.115.14 2025-06-26 19:44:33 +00:00
renovate[bot]
e4a903cd61 feat(deps): update dependency fastapi-pagination to v0.13.3 2025-06-25 22:35:40 +00:00
renovate[bot]
de7ad24b49 feat(deps): update dependency python-dotenv to v1.1.1 2025-06-24 07:29:04 +00:00
renovate[bot]
da4ebd0a8b feat(deps): update dependency pytest to v8.4.1 2025-06-18 06:31:28 +00:00
renovate[bot]
9f3a7f55db feat(deps): update dependency fastapi to v0.115.13 2025-06-17 12:31:39 +00:00
renovate[bot]
f315369ff8 feat(deps): update dependency alembic to v1.16.2 2025-06-16 19:06:55 +00:00
renovate[bot]
86c8e4fc4e feat(deps): update dependency certifi to v2025.6.15 2025-06-15 06:02:05 +00:00
renovate[bot]
1c3c2347ee feat(deps): update codacy/git-version action to v2.8.2 (#33)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 22:43:09 +00:00
renovate[bot]
d28507ca15 feat(deps): update dependency fastapi-pagination to v0.13.2 2025-06-07 12:42:06 +00:00
renovate[bot]
191268af6a feat(deps): update dependency pytest to v8.4.0 2025-06-02 18:14:04 +00:00
renovate[bot]
96afee2cf4 feat(deps): update dependency typing_extensions to v4.14.0 2025-06-02 15:18:03 +00:00
renovate[bot]
995bdc0600 feat(deps): update dependency uvicorn to v0.34.3 2025-06-01 09:26:44 +00:00
renovate[bot]
f2f572ec9a feat(deps): update codacy/git-version action to v2.8.1 (#31)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 22:07:41 +00:00
renovate[bot]
61bc957a2c feat(deps): update dependency alembic to v1.16.1 2025-05-22 02:40:06 +00:00
renovate[bot]
235c07466e feat(deps): update dependency alembic to v1.16.0 2025-05-21 20:04:24 +00:00
renovate[bot]
2f70ab2dcf feat(deps): update dependency click to v8.2.1 2025-05-21 00:09:09 +00:00
renovate[bot]
076267ec3a feat(deps): update dependency pluggy to v1.6.0 2025-05-15 17:09:45 +00:00
renovate[bot]
0af16a831f feat(deps): update dependency sqlalchemy to v2.0.41 2025-05-14 22:30:57 +00:00
renovate[bot]
ecf784054f feat(deps): update dependency psycopg-binary to v3.2.9 2025-05-13 23:23:45 +00:00
renovate[bot]
50ad31f331 feat(deps): update dependency psycopg to v3.2.9 2025-05-13 16:30:15 +00:00
renovate[bot]
493492cd4f feat(deps): update dependency psycopg-binary to v3.2.8 2025-05-11 22:48:10 +00:00
renovate[bot]
2df1a18f70 feat(deps): update dependency psycopg to v3.2.8 2025-05-11 18:10:51 +00:00
renovate[bot]
9ab291afb5 feat(deps): update dependency click to v8.2.0 2025-05-10 22:51:13 +00:00
renovate[bot]
797f869e87 feat(deps): update dependency packaging to v25 (#27)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-06 17:04:15 +02:00
renovate[bot]
3d1597a4d4 feat(deps): update dependency psycopg-binary to v3.2.7 2025-04-30 20:24:40 +00:00
renovate[bot]
4c737620bb feat(deps): update dependency psycopg to v3.2.7 2025-04-30 15:44:03 +00:00
renovate[bot]
e1f0d012dd feat(deps): update dependency certifi to v2025.4.26 2025-04-26 02:47:49 +00:00
renovate[bot]
b6a23f66b4 feat(deps): update dependency fastapi-pagination to v0.13.1 2025-04-24 19:34:14 +00:00
renovate[bot]
3e4e5d9cf1 feat(deps): update dependency fastapi-pagination to v0.13.0 2025-04-21 15:30:45 +00:00
renovate[bot]
e3ae8ae526 feat(deps): update dependency uvicorn to v0.34.2 2025-04-19 06:22:30 +00:00
renovate[bot]
a69b2341d5 feat(deps): update dependency uvicorn to v0.34.1 2025-04-13 17:41:11 +00:00
renovate[bot]
9a2655d225 feat(deps): update dependency starlette to v0.46.2 2025-04-13 14:49:02 +00:00
renovate[bot]
f6d27c543f feat(deps): update dependency httpcore to v1.0.8 2025-04-11 15:29:49 +00:00
renovate[bot]
c53c2db27a feat(deps): update dependency fastapi-filters to v0.3.0 (#26)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-11 05:37:21 +00:00
renovate[bot]
9e888b9e96 feat(deps): update dependency typing_extensions to v4.13.2 2025-04-10 23:01:29 +00:00
renovate[bot]
f4973dd612 feat(deps): update dependency mako to v1.3.10 2025-04-10 17:03:19 +00:00
renovate[bot]
b590b4de6a feat(deps): update dependency typing_extensions to v4.13.1 2025-04-03 18:02:21 +00:00
renovate[bot]
7c38e09ac3 feat(deps): update dependency alembic to v1.15.2 2025-03-28 15:48:59 +00:00
renovate[bot]
36d59101fd feat(deps): update dependency sqlalchemy to v2.0.40 2025-03-27 20:26:07 +00:00
renovate[bot]
fee836f20e feat(deps): update dependency typing_extensions to v4.13.0 2025-03-26 06:30:34 +00:00
renovate[bot]
85649f94f2 feat(deps): update dependency python-dotenv to v1.1.0 2025-03-25 12:01:05 +00:00
renovate[bot]
a025b3994c feat(deps): update dependency fastapi to v0.115.12 2025-03-24 02:23:20 +00:00
renovate[bot]
20dc2c6fa0 feat(deps): update dependency iniconfig to v2.1.0 2025-03-19 23:00:28 +00:00
renovate[bot]
2c6b35e3dd feat(deps): update dependency anyio to v4.9.0 2025-03-17 01:34:35 +00:00
renovate[bot]
fadc83e19b feat(deps): update dependency psycopg-binary to v3.2.6 2025-03-13 02:23:58 +00:00
renovate[bot]
cdc0ac249a feat(deps): update dependency psycopg to v3.2.6 2025-03-12 23:02:50 +00:00
renovate[bot]
015d5eb13d feat(deps): update dependency sqlalchemy to v2.0.39 2025-03-11 22:08:22 +00:00
renovate[bot]
608ec8de6f feat(deps): update dependency starlette to v0.46.1 2025-03-08 13:12:47 +00:00
renovate[bot]
a21947fe02 feat(deps): update dependency tzlocal to v5.3.1 2025-03-05 22:10:10 +00:00
renovate[bot]
11e5ff9646 feat(deps): update dependency alembic to v1.15.1 2025-03-05 02:49:17 +00:00
renovate[bot]
971d7743f1 feat(deps): update dependency pytest to v8.3.5 2025-03-02 13:36:00 +00:00
renovate[bot]
1d34b32179 feat(deps): update dependency fastapi to v0.115.11 2025-03-02 01:23:16 +00:00
renovate[bot]
59abb07721 feat(deps): update dependency starlette to v0.46.0 (#23)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 03:10:09 +00:00
renovate[bot]
7fc2a7a1a9 feat(deps): update dependency fastapi to v0.115.10 2025-02-28 18:34:23 +00:00
renovate[bot]
ae570acc6a feat(deps): update dependency fastapi to v0.115.9 2025-02-27 20:01:50 +00:00
renovate[bot]
24aa470d6d feat(deps): update dependency psycopg-pool to v3.2.6 2025-02-26 15:40:27 +00:00
renovate[bot]
112b2def80 feat(deps): update dependency psycopg-binary to v3.2.5 2025-02-23 02:45:53 +00:00
renovate[bot]
cc7be6e4ac feat(deps): update dependency psycopg to v3.2.5 2025-02-22 22:32:43 +00:00
renovate[bot]
8410fc886e feat(deps): update dependency psycopg-pool to v3.2.5 2025-02-21 22:55:59 +00:00
renovate[bot]
13496b0cbd feat(deps): update dependency tzlocal to v5.3 2025-02-13 19:07:57 +00:00
renovate[bot]
e88a617e30 feat(deps): update dependency sqlalchemy to v2.0.38 2025-02-07 17:42:48 +00:00
renovate[bot]
76d0866595 feat(deps): update dependency certifi to v2025 (#21)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-05 09:41:47 +01:00
renovate[bot]
b194e583fb feat(deps): update dependency mako to v1.3.9 2025-02-04 17:20:34 +00:00
renovate[bot]
5f45d3aeb8 feat(deps): update dependency fastapi to v0.115.8 2025-01-30 17:07:56 +00:00
renovate[bot]
20a107a49c feat(deps): update dependency starlette to v0.45.3 2025-01-24 13:00:43 +00:00
renovate[bot]
087ea50c4e feat(deps): update dependency starlette to v0.45.2 (#20)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 09:25:31 +00:00
renovate[bot]
f47b44ba95 feat(deps): update dependency fastapi to v0.115.7 2025-01-23 02:14:28 +00:00
9b1343b90d fix: bumped creyPY version to 3 2025-01-21 12:42:45 +01:00
renovate[bot]
15d754f68d feat(deps): update python docker tag to v3.13 2025-01-20 20:55:43 +00:00
renovate[bot]
9e0c8f0173 feat(deps): update dependency uvicorn to v0.34.0 2025-01-20 16:46:01 +00:00
renovate[bot]
0c769ba843 feat(deps): update dependency certifi to v2024.12.14 2025-01-20 12:47:02 +00:00
18cce99967 Update README.md 2025-01-20 13:12:15 +01:00
4e7f352a15 feat: added retention_days deletion 2025-01-20 13:04:18 +01:00
263d962912 feat: added retention_days for compliance 2025-01-20 11:37:23 +01:00
renovate[bot]
3d4e5e3f4b feat(deps): update dependency alembic to v1.14.1 (#16)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 09:31:02 +00:00
renovate[bot]
6cdae87f42 feat(deps): update dependency httpx to v0.28.1 2025-01-20 05:11:08 +00:00
renovate[bot]
de36e60710 feat(deps): update dependency anyio to v4.8.0 2025-01-20 01:16:18 +00:00
14 changed files with 228 additions and 132 deletions

View File

@@ -58,9 +58,9 @@ jobs:
POSTGRES_DB: fastapi
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: 3.12
python-version: 3.13
cache: 'pip' # caching pip dependencies
- name: Setup tests (install dependencies, run migrations)
run: |
@@ -91,7 +91,7 @@ jobs:
git config --local user.name "creyD"
- name: Git Version
uses: codacy/git-version@2.8.0
uses: codacy/git-version@2.8.7
id: git_version
with:
minor-identifier: "feat:"

View File

@@ -1,4 +1,4 @@
FROM python:3.12-slim
FROM python:3.13-slim
ARG VERSION=unknown
# Create a non-root user and group

View File

@@ -1,3 +1,8 @@
# apilog
Tiny logging API server, for taking logs via HTTP POST requests.
## TODO
[ ] Application Patch
[ ] Team CRUD

View File

@@ -0,0 +1,29 @@
"""empty message
Revision ID: 1e695b024786
Revises: 21dc1dc045b8
Create Date: 2025-01-20 11:36:14.692849
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = "1e695b024786"
down_revision: Union[str, None] = "21dc1dc045b8"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
with op.batch_alter_table("application", schema=None) as batch_op:
batch_op.add_column(sa.Column("retention_days", sa.Integer(), nullable=True))
def downgrade() -> None:
with op.batch_alter_table("application", schema=None) as batch_op:
batch_op.drop_column("retention_days")

View File

@@ -1,6 +1,7 @@
from creyPY.fastapi.models.base import Base
from sqlalchemy import Column, String
from sqlalchemy import Column, Integer, String
class Application(Base):
name = Column(String(512), nullable=False, unique=True)
retention_days = Column(Integer, nullable=True)

View File

@@ -1,9 +1,9 @@
from creyPY.fastapi.models.base import Base
from sqlalchemy import Column, String, ForeignKey, Enum, JSON
from sqlalchemy.dialects.postgresql import UUID
from enum import Enum as pyenum
from creyPY.fastapi.models.base import Base
from sqlalchemy import JSON, Column, Enum, ForeignKey, String
from sqlalchemy.dialects.postgresql import UUID
class TransactionType(pyenum):
CREATE = "create"

View File

@@ -1,17 +1,16 @@
from creyPY.fastapi.crud import (
create_obj_from_data,
)
from creyPY.fastapi.db.session import get_db
from fastapi import APIRouter, Depends, Security, HTTPException
from sqlalchemy.orm import Session
from pydantic.json_schema import SkipJsonSchema
from app.services.auth import verify
from app.schema.app import AppIN, AppOUT
from app.models.app import Application
from creyPY.fastapi.pagination import Page
from uuid import UUID
from fastapi_pagination.ext.sqlalchemy import paginate
from creyPY.fastapi.crud import create_obj_from_data
from creyPY.fastapi.db.session import get_db
from creyPY.fastapi.pagination import Page, paginate
from fastapi import APIRouter, Depends, HTTPException, Security
from pydantic.json_schema import SkipJsonSchema
from sqlalchemy import select
from sqlalchemy.orm import Session
from app.models.app import Application
from app.schema.app import AppIN, AppOUT
from app.services.auth import verify
router = APIRouter(prefix="/app", tags=["apps"])
@@ -26,7 +25,7 @@ async def create_app(
data,
Application,
db,
additonal_data={"created_by_id": sub},
additional_data={"created_by_id": sub},
)
return AppOUT.model_validate(obj)

View File

@@ -1,24 +1,22 @@
from creyPY.fastapi.crud import (
create_obj_from_data,
)
from creyPY.fastapi.order_by import order_by
from datetime import datetime
from typing import Callable
from sqlalchemy.sql.selectable import Select
from creyPY.fastapi.db.session import get_db
from fastapi import APIRouter, Depends, Security, HTTPException
from sqlalchemy.orm import Session
from sqlalchemy import select
from app.services.auth import verify
from app.schema.entry import LogIN, LogOUT
from app.models.entry import LogEntry
from fastapi_pagination.ext.sqlalchemy import paginate
from creyPY.fastapi.pagination import Page
from uuid import UUID
from pydantic.json_schema import SkipJsonSchema
from creyPY.fastapi.crud import create_obj_from_data
from creyPY.fastapi.db.session import get_db
from creyPY.fastapi.order_by import order_by
from creyPY.fastapi.pagination import Page, paginate
from fastapi import APIRouter, Depends, HTTPException, Security
from fastapi_filters import FilterValues, create_filters
from fastapi_filters.ext.sqlalchemy import apply_filters
from app.models.entry import LogType, TransactionType
from datetime import datetime
from pydantic.json_schema import SkipJsonSchema
from sqlalchemy import select
from sqlalchemy.orm import Session
from sqlalchemy.sql.selectable import Select
from app.models.entry import LogEntry, LogType, TransactionType
from app.schema.entry import LogIN, LogOUT
from app.services.auth import verify
router = APIRouter(prefix="/log", tags=["logging"])
@@ -33,7 +31,7 @@ async def create_log(
data,
LogEntry,
db,
additonal_data={"created_by_id": sub},
additional_data={"created_by_id": sub},
)
return LogOUT.model_validate(obj)

View File

@@ -1,8 +1,11 @@
from pydantic.json_schema import SkipJsonSchema
from app.schema.common import BaseSchemaModelIN, BaseSchemaModelOUT
class AppIN(BaseSchemaModelIN):
name: str
retention_days: int | SkipJsonSchema[None] = 30
class AppOUT(BaseSchemaModelOUT, AppIN):

View File

@@ -1,8 +0,0 @@
from sqlalchemy_utils import create_database, database_exists
def create_if_not_exists(db_name: str):
from creyPY.fastapi.db.session import SQLALCHEMY_DATABASE_URL
if not database_exists(SQLALCHEMY_DATABASE_URL + db_name):
create_database(SQLALCHEMY_DATABASE_URL + db_name)

View File

@@ -1,10 +1,30 @@
import os
from datetime import datetime, timedelta
from creyPY.fastapi.db.session import SQLALCHEMY_DATABASE_URL, name
from apscheduler.schedulers.background import BackgroundScheduler
from creyPY.fastapi.db.helpers import create_if_not_exists
from creyPY.fastapi.db.session import SQLALCHEMY_DATABASE_URL, get_db, name
from sqlalchemy.orm import Session
from alembic import command
from alembic.config import Config
from app.services.db.session import create_if_not_exists
from app.models.app import Application
from app.models.entry import LogEntry
def delete_old_logs(sess: Session | None = None):
session = sess or next(get_db())
for app in session.query(Application).filter(Application.retention_days.isnot(None)):
cutoff = datetime.now() - timedelta(days=app.retention_days)
print(
f"Deleting logs older than {app.retention_days} days (cutoff: {cutoff}) for {app.name}",
)
session.query(LogEntry).filter(
LogEntry.application == app.id, LogEntry.created_at < cutoff
).delete()
session.commit()
def setup(db_name=name):
@@ -18,3 +38,17 @@ def setup(db_name=name):
"script_location", os.path.join(os.path.dirname(os.path.dirname(__file__)), "alembic")
)
command.upgrade(config, "head")
# Start retention deletion
scheduler = BackgroundScheduler()
scheduler.add_job(
delete_old_logs,
"interval",
id="deletor",
days=1,
max_instances=1,
replace_existing=True,
next_run_time=datetime.now(),
)
scheduler.start()
print("Deletion scheduler started")

View File

@@ -1,3 +1,6 @@
import contextlib
from datetime import datetime, timedelta
from creyPY.fastapi.db.session import SQLALCHEMY_DATABASE_URL, get_db
from creyPY.fastapi.models.base import Base
from creyPY.fastapi.testing import GenericClient
@@ -5,16 +8,55 @@ from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_utils import create_database, database_exists, drop_database
from app.models.entry import LogEntry
from app.services.auth import verify
import contextlib
from app.setup import delete_old_logs
from .main import app
CURRENT_USER = "api-key|testing"
ENTRY_EXAMPLES = [
{
"l_type": "info",
"t_type": "create",
"message": "User Max Mustermann created",
"environment": "dev",
},
{
"l_type": "info",
"t_type": "update",
"message": "User Max Mustermann updated",
"environment": "dev",
},
{
"l_type": "info",
"t_type": "create",
"author": "auth|max_muster",
"message": "User Max Mustermann created a Unit",
"object_reference": "1",
"environment": "dev",
},
{
"l_type": "info",
"t_type": "update",
"author": "auth|max_muster",
"message": "User Max Mustermann updated Unit 1",
"object_reference": "1",
"previous_object": {"name": "Unit 1"},
"environment": "prod",
},
{
"l_type": "warning",
"t_type": "delete",
"message": "User Max Mustermann deleted",
"environment": "prod",
},
]
@contextlib.contextmanager
def app_context(self, name: str = "Testing"):
app_id = self.create_app(name)
def app_context(self, name: str = "Testing", retention_days: int | None = None):
app_id = self.create_app(name, retention_days)
try:
yield app_id
finally:
@@ -23,45 +65,8 @@ def app_context(self, name: str = "Testing"):
@contextlib.contextmanager
def log_examples(self):
LOG_EXAMPLES = [
{
"l_type": "info",
"t_type": "create",
"message": "User Max Mustermann created",
"environment": "dev",
},
{
"l_type": "info",
"t_type": "update",
"message": "User Max Mustermann updated",
"environment": "dev",
},
{
"l_type": "info",
"t_type": "create",
"author": "auth|max_muster",
"message": "User Max Mustermann created a Unit",
"object_reference": "1",
"environment": "dev",
},
{
"l_type": "info",
"t_type": "update",
"author": "auth|max_muster",
"message": "User Max Mustermann updated Unit 1",
"object_reference": "1",
"previous_object": {"name": "Unit 1"},
"environment": "prod",
},
{
"l_type": "warning",
"t_type": "delete",
"message": "User Max Mustermann deleted",
"environment": "prod",
},
]
with app_context(self) as app_id:
for entry in LOG_EXAMPLES:
for entry in ENTRY_EXAMPLES:
self.log_message({"application": app_id, **entry})
yield app_id
@@ -86,6 +91,7 @@ class TestAPI:
global CURRENT_USER
return CURRENT_USER
self.db_instance = get_db_test()
app.dependency_overrides[get_db] = get_db_test
app.dependency_overrides[verify] = get_test_sub
self.c = GenericClient(app)
@@ -94,8 +100,8 @@ class TestAPI:
drop_database(self.engine.url)
# HELPERS
def create_app(self, name: str = "Testing"):
re = self.c.post("/app/", {"name": name})
def create_app(self, name: str = "Testing", retention_days: int | None = None):
re = self.c.post("/app/", {"name": name, "retention_days": retention_days})
return re["id"]
def destroy_app(self, app_id):
@@ -260,3 +266,29 @@ class TestAPI:
re = self.c.get("/log/?application=" + str(app_id))
assert re["total"] == 0
def test_retention_delete(self):
sess = next(self.db_instance)
with app_context(self, retention_days=2) as app_id:
for i in range(5):
sess.add(
LogEntry(
application=app_id,
created_at=datetime.now() - timedelta(days=i),
created_by_id=CURRENT_USER,
)
)
sess.commit()
assert sess.query(LogEntry).count() == 5
re = self.c.get("/log/?application=" + str(app_id))
assert re["total"] == 5
delete_old_logs(sess)
assert sess.query(LogEntry).count() == 2
# delete all logs
re = self.c.delete("/log/?application=" + str(app_id), r_code=200)

View File

@@ -3,21 +3,21 @@ x-restart-policy: &restart_policy
restart: unless-stopped
services:
# apilog_worker:
# build:
# context: .
# dockerfile: Dockerfile
# <<: *restart_policy
# container_name: api_worker
# environment:
# - POSTGRES_HOST=apilog_db
# - POSTGRES_PORT=5432
# - POSTGRES_USER=root
# - POSTGRES_PASSWORD=password
# - POSTGRES_DB=apilog
# depends_on:
# apilog_db:
# condition: service_healthy
apilog_worker:
build:
context: .
dockerfile: Dockerfile
<<: *restart_policy
container_name: api_worker
environment:
- POSTGRES_HOST=apilog_db
- POSTGRES_PORT=5432
- POSTGRES_USER=root
- POSTGRES_PASSWORD=password
- POSTGRES_DB=apilog
depends_on:
apilog_db:
condition: service_healthy
apilog_db:
image: postgres

View File

@@ -1,36 +1,39 @@
annotated-types==0.7.0
anyio==4.6.2.post1
certifi==2024.8.30
creyPY==1.2.5
fastapi==0.115.5
fastapi-pagination==0.12.31
anyio==4.13.0
certifi==2025.11.12
creyPY[postgres]==3.0.0
fastapi==0.135.2
fastapi-pagination==0.15.12
h11==0.14.0
httpcore==1.0.6
httpcore==1.0.8
httpx==0.28.1
idna==3.10
psycopg==3.2.4
psycopg-binary==3.2.4
psycopg-pool==3.2.3
idna==3.11
psycopg==3.3.3
psycopg-binary==3.3.3
psycopg-pool==3.3.0
pydantic==2.9.2
pydantic_core==2.23.4
python-dotenv==1.0.1
python-dotenv==1.2.2
sniffio==1.3.1
SQLAlchemy==2.0.35
starlette==0.40.0
typing_extensions==4.12.2
SQLAlchemy==2.0.48
starlette==0.52.1
typing_extensions==4.15.0
Mako==1.3.5 # Alembic
MarkupSafe==3.0.1 # Alembic
alembic==1.13.3 # Alembic
Mako==1.3.10 # Alembic
MarkupSafe==3.0.3 # Alembic
alembic==1.18.4 # Alembic
SQLAlchemy-Utils==0.41.2 # SQLAlchemy
click==8.1.8 # Uvicorn
uvicorn==0.31.1 # Uvicorn
click==8.3.1 # Uvicorn
uvicorn==0.41.0 # Uvicorn
iniconfig==2.0.0 # pytest
packaging==24.1 # pytest
pluggy==1.5.0 # pytest
pytest==8.3.4 # pytest
iniconfig==2.3.0 # pytest
packaging==25.0 # pytest
pluggy==1.6.0 # pytest
pytest==8.4.2 # pytest
fastapi-filters==0.2.9 # Filters
fastapi-filters==0.3.3 # Filters
APScheduler==3.11.2 # Scheduler for deletion
tzlocal==5.3.1 # Scheduler for deletion