Moved models to shared base

This commit is contained in:
2025-09-23 19:27:08 +01:00
parent 7d811fede0
commit 3eaed88074
5 changed files with 26 additions and 16 deletions

View File

@@ -27,7 +27,7 @@ target_metadata = Base.metadata
# Get DB URL from env (prefer KEYWARDEN_ prefix, fall back to unprefixed, then a sane default for local) # Get DB URL from env (prefer KEYWARDEN_ prefix, fall back to unprefixed, then a sane default for local)
DB_USER = os.getenv("KEYWARDEN_POSTGRES_USER", "postgres") DB_USER = os.getenv("KEYWARDEN_POSTGRES_USER", "postgres")
DB_PASS = os.getenv("KEYWARDEN_POSTGRES_PASSWORD", "postgres") DB_PASS = os.getenv("KEYWARDEN_POSTGRES_PASSWORD", "postgres")
DB_HOST = os.getenv("KEYWARDEN_POSTGRES_HOST", "localhost") DB_HOST = os.getenv("KEYWARDEN_POSTGRES_HOST", "keywarden-db")
DB_PORT = os.getenv("KEYWARDEN_POSTGRES_PORT", "5432") DB_PORT = os.getenv("KEYWARDEN_POSTGRES_PORT", "5432")
DB_NAME = os.getenv("KEYWARDEN_POSTGRES_DB", "keywarden") DB_NAME = os.getenv("KEYWARDEN_POSTGRES_DB", "keywarden")

View File

@@ -1,9 +1,8 @@
from sqlalchemy.orm import declarative_base from app.db.base_class import Base # noqa: F401
from app.models.access_request import AccessRequest # noqa: F401 # Import all models so their tables are registered on Base.metadata
from app.models.audit import AuditEvent # noqa: F401 from app.models.user import User # noqa: F401
from app.models.server import Server # noqa: F401 from app.models.server import Server # noqa: F401
from app.models.sshkey import SSHKey # noqa: F401 from app.models.sshkey import SSHKey # noqa: F401
from app.models.user import User # noqa: F401 from app.models.access_request import AccessRequest # noqa: F401
from app.models.audit import AuditEvent # noqa: F401
Base = declarative_base()

13
app/db/base_class.py Normal file
View File

@@ -0,0 +1,13 @@
from sqlalchemy import MetaData
from sqlalchemy.orm import declarative_base
# Optional: naming convention keeps Alembic diffs stable
convention = {
"ix": "ix_%(column_0_label)s",
"uq": "uq_%(table_name)s_%(column_0_name)s",
"ck": "ck_%(table_name)s_%(constraint_name)s",
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
"pk": "pk_%(table_name)s",
}
metadata = MetaData(naming_convention=convention)
Base = declarative_base(metadata=metadata)

View File

@@ -1,10 +1,8 @@
from sqlalchemy import Boolean, String from sqlalchemy import Boolean, String
from sqlalchemy.orm import Mapped, declarative_base, mapped_column from sqlalchemy.orm import Mapped, mapped_column
# only for Alembic discovery, not used here from app.db.base_class import Base # <-- use the shared Base
from app.db.session import engine # noqa: F401
Base = declarative_base()
class User(Base): class User(Base):
__tablename__ = "users" __tablename__ = "users"

View File

@@ -25,19 +25,19 @@ server {
} }
location /docs { location /docs {
proxy_pass http://api:8000; proxy_pass http://keywarden-api:8000;
} }
location /openapi.json { location /openapi.json {
proxy_pass http://api:8000; proxy_pass http://keywarden-api:8000;
} }
location /api/v1/ { location /api/v1/ {
proxy_pass http://api:8000; proxy_pass http://keywarden-api:8000;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
} }
location /healthz { location /healthz {
proxy_pass http://api:8000; proxy_pass http://keywarden-api:8000;
} }
} }