mirror of
				https://gitea.publichub.eu/oscar.krause/fastapi-dls.git
				synced 2025-11-04 01:06:08 +00:00 
			
		
		
		
	code styling & comments
This commit is contained in:
		
							
								
								
									
										16
									
								
								app/main.py
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								app/main.py
									
									
									
									
									
								
							@@ -23,18 +23,20 @@ from starlette.responses import StreamingResponse, JSONResponse as JSONr, HTMLRe
 | 
				
			|||||||
from orm import Origin, Lease, init as db_init, migrate
 | 
					from orm import Origin, Lease, init as db_init, migrate
 | 
				
			||||||
from util import load_key, load_file
 | 
					from util import load_key, load_file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Load variables
 | 
				
			||||||
load_dotenv('../version.env')
 | 
					load_dotenv('../version.env')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Get current timezone
 | 
				
			||||||
TZ = datetime.now().astimezone().tzinfo
 | 
					TZ = datetime.now().astimezone().tzinfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Load basic variables
 | 
				
			||||||
VERSION, COMMIT, DEBUG = env('VERSION', 'unknown'), env('COMMIT', 'unknown'), bool(env('DEBUG', False))
 | 
					VERSION, COMMIT, DEBUG = env('VERSION', 'unknown'), env('COMMIT', 'unknown'), bool(env('DEBUG', False))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config = dict(openapi_url=None, docs_url=None, redoc_url=None)  # dict(openapi_url='/-/openapi.json', docs_url='/-/docs', redoc_url='/-/redoc')
 | 
					# Database connection
 | 
				
			||||||
app = FastAPI(title='FastAPI-DLS', description='Minimal Delegated License Service (DLS).', version=VERSION, **config)
 | 
					 | 
				
			||||||
db = create_engine(str(env('DATABASE', 'sqlite:///db.sqlite')))
 | 
					db = create_engine(str(env('DATABASE', 'sqlite:///db.sqlite')))
 | 
				
			||||||
db_init(db), migrate(db)
 | 
					db_init(db), migrate(db)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# everything prefixed with "INSTANCE_*" is used as "SERVICE_INSTANCE_*" or "SI_*" in official dls service
 | 
					# Load DLS variables (all prefixed with "INSTANCE_*" is used as "SERVICE_INSTANCE_*" or "SI_*" in official dls service)
 | 
				
			||||||
DLS_URL = str(env('DLS_URL', 'localhost'))
 | 
					DLS_URL = str(env('DLS_URL', 'localhost'))
 | 
				
			||||||
DLS_PORT = int(env('DLS_PORT', '443'))
 | 
					DLS_PORT = int(env('DLS_PORT', '443'))
 | 
				
			||||||
SITE_KEY_XID = str(env('SITE_KEY_XID', '00000000-0000-0000-0000-000000000000'))
 | 
					SITE_KEY_XID = str(env('SITE_KEY_XID', '00000000-0000-0000-0000-000000000000'))
 | 
				
			||||||
@@ -52,6 +54,7 @@ CORS_ORIGINS = str(env('CORS_ORIGINS', '')).split(',') if (env('CORS_ORIGINS'))
 | 
				
			|||||||
jwt_encode_key = jwk.construct(INSTANCE_KEY_RSA.export_key().decode('utf-8'), algorithm=ALGORITHMS.RS256)
 | 
					jwt_encode_key = jwk.construct(INSTANCE_KEY_RSA.export_key().decode('utf-8'), algorithm=ALGORITHMS.RS256)
 | 
				
			||||||
jwt_decode_key = jwk.construct(INSTANCE_KEY_PUB.export_key().decode('utf-8'), algorithm=ALGORITHMS.RS256)
 | 
					jwt_decode_key = jwk.construct(INSTANCE_KEY_PUB.export_key().decode('utf-8'), algorithm=ALGORITHMS.RS256)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# FastAPI
 | 
					# FastAPI
 | 
				
			||||||
@asynccontextmanager
 | 
					@asynccontextmanager
 | 
				
			||||||
async def lifespan(_: FastAPI):
 | 
					async def lifespan(_: FastAPI):
 | 
				
			||||||
@@ -74,6 +77,9 @@ async def lifespan(_: FastAPI):
 | 
				
			|||||||
    logger.info(f'Shutting down ...')
 | 
					    logger.info(f'Shutting down ...')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config = dict(openapi_url=None, docs_url=None, redoc_url=None)  # dict(openapi_url='/-/openapi.json', docs_url='/-/docs', redoc_url='/-/redoc')
 | 
				
			||||||
 | 
					app = FastAPI(title='FastAPI-DLS', description='Minimal Delegated License Service (DLS).', version=VERSION, lifespan=lifespan, **config)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
app.debug = DEBUG
 | 
					app.debug = DEBUG
 | 
				
			||||||
app.add_middleware(
 | 
					app.add_middleware(
 | 
				
			||||||
    CORSMiddleware,
 | 
					    CORSMiddleware,
 | 
				
			||||||
@@ -83,6 +89,7 @@ app.add_middleware(
 | 
				
			|||||||
    allow_headers=['*'],
 | 
					    allow_headers=['*'],
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Logging
 | 
				
			||||||
LOG_LEVEL = logging.DEBUG if DEBUG else logging.INFO
 | 
					LOG_LEVEL = logging.DEBUG if DEBUG else logging.INFO
 | 
				
			||||||
logging.basicConfig()
 | 
					logging.basicConfig()
 | 
				
			||||||
logger = logging.getLogger(__name__)
 | 
					logger = logging.getLogger(__name__)
 | 
				
			||||||
@@ -90,12 +97,15 @@ logger.setLevel(LOG_LEVEL)
 | 
				
			|||||||
logging.getLogger('util').setLevel(LOG_LEVEL)
 | 
					logging.getLogger('util').setLevel(LOG_LEVEL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Helper
 | 
				
			||||||
def __get_token(request: Request) -> dict:
 | 
					def __get_token(request: Request) -> dict:
 | 
				
			||||||
    authorization_header = request.headers.get('authorization')
 | 
					    authorization_header = request.headers.get('authorization')
 | 
				
			||||||
    token = authorization_header.split(' ')[1]
 | 
					    token = authorization_header.split(' ')[1]
 | 
				
			||||||
    return jwt.decode(token=token, key=jwt_decode_key, algorithms=ALGORITHMS.RS256, options={'verify_aud': False})
 | 
					    return jwt.decode(token=token, key=jwt_decode_key, algorithms=ALGORITHMS.RS256, options={'verify_aud': False})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Endpoints
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@app.get('/', summary='Index')
 | 
					@app.get('/', summary='Index')
 | 
				
			||||||
async def index():
 | 
					async def index():
 | 
				
			||||||
    return RedirectResponse('/-/readme')
 | 
					    return RedirectResponse('/-/readme')
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user