24 lines
788 B
Python
24 lines
788 B
Python
import logging
|
|
from flask import Flask
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
from extensions import limiter # noqa: E402
|
|
from api import api_bp # noqa: E402
|
|
|
|
# Entry point only — imports and wires everything together. Business
|
|
# logic lives in services/, data access in repositories/, routes in
|
|
# api.py. Nothing else belongs in this file per CLAUDE.md §5/§18.
|
|
app = Flask(__name__)
|
|
limiter.init_app(app)
|
|
app.register_blueprint(api_bp)
|
|
|
|
# Sentry initialisation is a Phase 7 ship-gate item (CLAUDE.md §19 step
|
|
# 54 — "staging first, then production"). Deliberately not wired here
|
|
# yet so earlier phases never silently depend on SENTRY_DSN being set.
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host='0.0.0.0', port=5000, debug=False)
|