feat: add Redis support and update service/proxy models
Build and Push to Registry / build (push) Successful in 13s

This commit is contained in:
gabdevele
2026-04-12 00:16:46 +02:00 Unverified
parent f6351805ba
commit b5c854a243
7 changed files with 47 additions and 1 deletions
+1
View File
@@ -7,6 +7,7 @@ dependencies = [
"fastapi[standard]>=0.135.3", "fastapi[standard]>=0.135.3",
"motor>=3.7.1", "motor>=3.7.1",
"pydantic-settings>=2.13.1", "pydantic-settings>=2.13.1",
"redis>=7.4.0",
] ]
[tool.ruff.lint] [tool.ruff.lint]
+1
View File
@@ -5,6 +5,7 @@ class Settings(BaseSettings):
MONGODB_URI: str MONGODB_URI: str
MONGODB_DB_NAME: str MONGODB_DB_NAME: str
REDIS_URL: str
settings = Settings() settings = Settings()
+21
View File
@@ -0,0 +1,21 @@
import redis.asyncio as aioredis
from core.config import settings
_redis_pool: aioredis.Redis | None = None
async def init_redis() -> None:
global _redis_pool
_redis_pool = aioredis.from_url(
settings.REDIS_URL, encoding="utf-8", decode_responses=True
)
async def close_redis() -> None:
if _redis_pool:
await _redis_pool.aclose()
async def get_redis() -> aioredis.Redis:
if _redis_pool is None:
raise RuntimeError("Redis pool has not been initialized")
return _redis_pool
+6
View File
@@ -0,0 +1,6 @@
from pydantic import BaseModel, Field
from models.service import ServiceDocument
class ProxyDocument(BaseModel):
port: int = Field(..., description="Port number of the proxy")
service: ServiceDocument = Field(..., description="Associated service details")
+6
View File
@@ -0,0 +1,6 @@
from pydantic import BaseModel, Field
class ServiceDocument(BaseModel):
name: str = Field(..., description="Name of the service")
port: int = Field(..., description="Port number of the service")
category: str = Field(..., description="Category of the service (e.g., web, pwn, etc.)")
Generated
+11
View File
@@ -497,6 +497,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" },
] ]
[[package]]
name = "redis"
version = "7.4.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/7b/7f/3759b1d0d72b7c92f0d70ffd9dc962b7b7b5ee74e135f9d7d8ab06b8a318/redis-7.4.0.tar.gz", hash = "sha256:64a6ea7bf567ad43c964d2c30d82853f8df927c5c9017766c55a1d1ed95d18ad", size = 4943913, upload-time = "2026-03-24T09:14:37.53Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/74/3a/95deec7db1eb53979973ebd156f3369a72732208d1391cd2e5d127062a32/redis-7.4.0-py3-none-any.whl", hash = "sha256:a9c74a5c893a5ef8455a5adb793a31bb70feb821c86eccb62eebef5a19c429ec", size = 409772, upload-time = "2026-03-24T09:14:35.968Z" },
]
[[package]] [[package]]
name = "rich" name = "rich"
version = "14.3.4" version = "14.3.4"
@@ -604,6 +613,7 @@ dependencies = [
{ name = "fastapi", extra = ["standard"] }, { name = "fastapi", extra = ["standard"] },
{ name = "motor" }, { name = "motor" },
{ name = "pydantic-settings" }, { name = "pydantic-settings" },
{ name = "redis" },
] ]
[package.metadata] [package.metadata]
@@ -611,6 +621,7 @@ requires-dist = [
{ name = "fastapi", extras = ["standard"], specifier = ">=0.135.3" }, { name = "fastapi", extras = ["standard"], specifier = ">=0.135.3" },
{ name = "motor", specifier = ">=3.7.1" }, { name = "motor", specifier = ">=3.7.1" },
{ name = "pydantic-settings", specifier = ">=2.13.1" }, { name = "pydantic-settings", specifier = ">=2.13.1" },
{ name = "redis", specifier = ">=7.4.0" },
] ]
[[package]] [[package]]