Compare commits
2 Commits
7d811fede0
...
c93f0ccda6
| Author | SHA1 | Date | |
|---|---|---|---|
| c93f0ccda6 | |||
| 3eaed88074 |
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
from sqlalchemy.orm import declarative_base
|
from app.db.base_class import Base # noqa: F401
|
||||||
|
|
||||||
from app.models.access_request import AccessRequest # noqa: F401
|
from app.models.access_request import AccessRequest # noqa: F401
|
||||||
from app.models.audit import AuditEvent # noqa: F401
|
from app.models.audit import AuditEvent # 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.user import User # noqa: F401
|
||||||
|
|
||||||
Base = declarative_base()
|
|
||||||
13
app/db/base_class.py
Normal file
13
app/db/base_class.py
Normal 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)
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
from datetime import datetime, timezone #noqa
|
from datetime import datetime
|
||||||
|
|
||||||
from sqlalchemy import DateTime, ForeignKey, String
|
from sqlalchemy import DateTime, ForeignKey, String
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
from app.models.user import Base
|
from app.db.base_class import Base
|
||||||
|
|
||||||
|
|
||||||
class AccessRequest(Base):
|
class AccessRequest(Base):
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from datetime import datetime, timezone
|
|||||||
from sqlalchemy import DateTime, String
|
from sqlalchemy import DateTime, String
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
from app.models.user import Base
|
from app.db.base_class import Base
|
||||||
|
|
||||||
|
|
||||||
class AuditEvent(Base):
|
class AuditEvent(Base):
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from sqlalchemy import JSON, Boolean, Integer, String
|
from sqlalchemy import JSON, Boolean, Integer, String
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
from app.models.user import Base
|
from app.db.base_class import Base
|
||||||
|
|
||||||
|
|
||||||
class Server(Base):
|
class Server(Base):
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from datetime import datetime, timezone # noqa: F401
|
from datetime import datetime, timezone # noqa: F401
|
||||||
|
|
||||||
from sqlalchemy import Boolean, DateTime, ForeignKey, String
|
from sqlalchemy import Boolean, DateTime, ForeignKey, String
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship # noqa: F401
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
from app.models.user import Base
|
from app.db.base_class import Base
|
||||||
|
|
||||||
|
|
||||||
class SSHKey(Base):
|
class SSHKey(Base):
|
||||||
|
|||||||
@@ -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
|
||||||
from app.db.session import engine # noqa: F401
|
|
||||||
|
|
||||||
Base = declarative_base()
|
|
||||||
|
|
||||||
class User(Base):
|
class User(Base):
|
||||||
__tablename__ = "users"
|
__tablename__ = "users"
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user