This commit establishes the foundational infrastructure for the Aegis MITRE ATT&CK Coverage Platform. T-001: Initialize project and Docker Compose - Set up Docker Compose with PostgreSQL 15, MinIO, and FastAPI backend - Create basic FastAPI application with health endpoint - Configure persistent volumes for data storage T-002: Configuration and database connection - Add centralized configuration using pydantic-settings - Implement SQLAlchemy database connection with session management - Configure MinIO and JWT settings T-003: Initialize Alembic for migrations - Set up Alembic with PostgreSQL connection from settings - Create initial empty migration - Configure autogenerate support for future models Also includes: - Professional README with setup instructions - Comprehensive .gitignore for Python/Node/Docker - Project task plan (AegisTestPlan.md)
91 lines
2.3 KiB
INI
91 lines
2.3 KiB
INI
# A generic, single database configuration.
|
|
|
|
[alembic]
|
|
# path to migration scripts.
|
|
# this is typically a path given in POSIX (e.g. forward slashes)
|
|
# format, relative to the token %(here)s which refers to the location of this
|
|
# ini file
|
|
script_location = %(here)s/alembic
|
|
|
|
# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s
|
|
# Uncomment the line below if you want the files to be prepended with date and time
|
|
# see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file
|
|
# for all available tokens
|
|
# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s
|
|
|
|
# sys.path path, will be prepended to sys.path if present.
|
|
# defaults to the current working directory.
|
|
prepend_sys_path = .
|
|
|
|
# timezone to use when rendering the date within the migration file
|
|
# as well as the filename.
|
|
# timezone =
|
|
|
|
# max length of characters to apply to the "slug" field
|
|
# truncate_slug_length = 40
|
|
|
|
# set to 'true' to run the environment during
|
|
# the 'revision' command, regardless of autogenerate
|
|
# revision_environment = false
|
|
|
|
# set to 'true' to allow .pyc and .pyo files without
|
|
# a source .py file to be detected as revisions in the
|
|
# versions/ directory
|
|
# sourceless = false
|
|
|
|
# version location specification
|
|
# version_locations = %(here)s/bar:%(here)s/bat:%(here)s/alembic/versions
|
|
|
|
# path_separator; Use os.pathsep
|
|
path_separator = os
|
|
|
|
# set to 'true' to search source files recursively
|
|
# recursive_version_locations = false
|
|
|
|
# the output encoding used when revision files
|
|
# are written from script.py.mako
|
|
# output_encoding = utf-8
|
|
|
|
# database URL - left empty, overridden in env.py using settings
|
|
sqlalchemy.url =
|
|
|
|
|
|
[post_write_hooks]
|
|
# post_write_hooks defines scripts or Python functions that are run
|
|
# on newly generated revision scripts.
|
|
|
|
# Logging configuration
|
|
[loggers]
|
|
keys = root,sqlalchemy,alembic
|
|
|
|
[handlers]
|
|
keys = console
|
|
|
|
[formatters]
|
|
keys = generic
|
|
|
|
[logger_root]
|
|
level = WARNING
|
|
handlers = console
|
|
qualname =
|
|
|
|
[logger_sqlalchemy]
|
|
level = WARNING
|
|
handlers =
|
|
qualname = sqlalchemy.engine
|
|
|
|
[logger_alembic]
|
|
level = INFO
|
|
handlers =
|
|
qualname = alembic
|
|
|
|
[handler_console]
|
|
class = StreamHandler
|
|
args = (sys.stderr,)
|
|
level = NOTSET
|
|
formatter = generic
|
|
|
|
[formatter_generic]
|
|
format = %(levelname)-5.5s [%(name)s] %(message)s
|
|
datefmt = %H:%M:%S
|