Files
gh-christianlouis-docuelevate/app/views/status.py
T
copilot-swe-agent[bot] d18c10996a feat(release): add named release anchors with codenames and roadmap integration
- Add release_names.json mapping version ranges to codenames
- Add release_name property to Settings in app/config.py
- Update build metadata script to include codename in RUNTIME_INFO
- Display release codename in status dashboard and page footer
- Inject release_name globally via template response wrapper
- Update ROADMAP.md with codenames for all milestone releases
- Add docs/ReleaseNaming.md with naming guide and best practices
- Add comprehensive tests for release name resolution

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-01 18:32:46 +00:00

93 lines
3.1 KiB
Python

"""
Status and configuration views for the application.
"""
import logging
import os
from datetime import datetime
from fastapi import Request
from app.utils.config_validator import get_provider_status
from app.views.base import APIRouter, require_login, settings, templates
logger = logging.getLogger(__name__)
router = APIRouter()
@router.get("/status")
@require_login
async def status_dashboard(request: Request):
"""
Status dashboard showing all configured integration targets
"""
# Get provider status
providers = get_provider_status()
# Get build date from settings
build_date = getattr(settings, "build_date", "Unknown")
# Try to get container information
container_info = {}
try:
# Check for Docker environment
if os.path.exists("/.dockerenv"):
# We're inside a Docker container
container_info["is_docker"] = True
# Try to get container ID
try:
with open("/proc/self/cgroup", "r") as f:
for line in f:
if "docker" in line:
container_id = line.split("/")[-1].strip()
container_info["id"] = container_id[:12] # Short ID format
break
except Exception:
container_info["id"] = "Unknown"
# Get Git commit SHA from settings
try:
git_sha = settings.git_sha
container_info["git_sha"] = git_sha[:7] if git_sha and git_sha != "unknown" else "Unknown"
except Exception:
container_info["git_sha"] = "Unknown"
# Try to get runtime information
try:
container_info["runtime_info"] = settings.runtime_info
except Exception: # noqa: S110
pass # Ignore if runtime_info not available
else:
container_info["is_docker"] = False
# If not in Docker, get Git info from settings
try:
git_sha = settings.git_sha
container_info["git_sha"] = git_sha[:7] if git_sha and git_sha != "unknown" else "Unknown"
except Exception:
container_info["git_sha"] = "Unknown"
except Exception:
container_info = {"is_docker": False, "id": "Unknown", "git_sha": "Unknown"}
# Get notification URLs for the notification box
notification_urls = getattr(settings, "notification_urls", [])
# Get release codename if available
release_name = getattr(settings, "release_name", None)
return templates.TemplateResponse(
"status_dashboard.html",
{
"request": request,
"providers": providers,
"app_version": settings.version,
"release_name": release_name,
"build_date": build_date,
"debug_enabled": getattr(settings, "debug", False),
"last_check": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"container_info": container_info,
"settings": {"notification_urls": notification_urls},
},
)