增加web_api
This commit is contained in:
67
src/gasflux/blueprints/config.py
Normal file
67
src/gasflux/blueprints/config.py
Normal file
@ -0,0 +1,67 @@
|
||||
"""
|
||||
Configuration Blueprint
|
||||
Provides configuration information and environment variables endpoints.
|
||||
"""
|
||||
|
||||
import os
|
||||
from flask import Blueprint
|
||||
|
||||
from ..app import Config
|
||||
from ..shared import _format_response, log_performance, logger
|
||||
|
||||
# Create blueprint
|
||||
config_bp = Blueprint('config', __name__, url_prefix='/config')
|
||||
|
||||
|
||||
@config_bp.route('', methods=['GET'])
|
||||
@log_performance
|
||||
def get_config():
|
||||
"""Get current configuration (without sensitive information)."""
|
||||
logger.debug("Configuration requested")
|
||||
|
||||
try:
|
||||
config_info = Config.to_dict()
|
||||
|
||||
# Remove potentially sensitive information
|
||||
safe_config = config_info.copy()
|
||||
|
||||
data = {
|
||||
"configuration": safe_config,
|
||||
"environment_variables": {
|
||||
"supported": [
|
||||
"GASFLUX_HOST",
|
||||
"GASFLUX_PORT",
|
||||
"GASFLUX_DEBUG",
|
||||
"GASFLUX_UPLOAD_FOLDER",
|
||||
"GASFLUX_OUTPUT_FOLDER",
|
||||
"GASFLUX_MAX_CONTENT_LENGTH",
|
||||
"GASFLUX_LOG_LEVEL",
|
||||
"GASFLUX_LOG_FILE",
|
||||
"GASFLUX_CORS_ORIGINS",
|
||||
"GASFLUX_TASK_CLEANUP_INTERVAL",
|
||||
"GASFLUX_MAX_TASK_AGE",
|
||||
"GASFLUX_THREADS",
|
||||
"GASFLUX_CONNECTION_LIMIT",
|
||||
"GASFLUX_CHANNEL_TIMEOUT"
|
||||
],
|
||||
"current_values": {
|
||||
key: os.getenv(key, "not set") if key.startswith("GASFLUX_") else "internal"
|
||||
for key in [
|
||||
"GASFLUX_HOST", "GASFLUX_PORT", "GASFLUX_DEBUG",
|
||||
"GASFLUX_UPLOAD_FOLDER", "GASFLUX_OUTPUT_FOLDER",
|
||||
"GASFLUX_MAX_CONTENT_LENGTH", "GASFLUX_LOG_LEVEL",
|
||||
"GASFLUX_LOG_FILE", "GASFLUX_CORS_ORIGINS",
|
||||
"GASFLUX_TASK_CLEANUP_INTERVAL", "GASFLUX_MAX_TASK_AGE",
|
||||
"GASFLUX_THREADS", "GASFLUX_CONNECTION_LIMIT",
|
||||
"GASFLUX_CHANNEL_TIMEOUT"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
return _format_response(200, "配置信息获取成功", data)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to retrieve configuration: {str(e)}", exc_info=True)
|
||||
return _format_response(500, "获取配置信息失败", {
|
||||
"error_details": str(e)
|
||||
})
|
||||
Reference in New Issue
Block a user