feat: Complete backend and docs rebrand from Patherly to ResolutionFlow

Update APP_NAME, OpenAPI metadata, log messages, root endpoint response,
model docstrings, seed script comments, README heading, and CLAUDE.md
branding references. Frontend rebrand was completed in PR #26; this
covers everything else.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Michael Chihlas
2026-02-04 00:41:22 -05:00
parent 29c1bcd204
commit 83df48291a
11 changed files with 364 additions and 18 deletions

View File

@@ -5,7 +5,7 @@ from typing import Optional
class Settings(BaseSettings):
# Application
APP_NAME: str = "Patherly"
APP_NAME: str = "ResolutionFlow"
DEBUG: bool = False
API_V1_PREFIX: str = "/api/v1"

View File

@@ -18,19 +18,19 @@ logger = logging.getLogger(__name__)
async def lifespan(app: FastAPI):
"""Application lifespan handler."""
# Startup
logger.info("Starting Patherly API server...")
logger.info("Starting ResolutionFlow API server...")
logger.info(f"Environment: {'Development' if settings.DEBUG else 'Production'}")
logger.info(f"ALLOW_RAILWAY_ORIGINS: {settings.ALLOW_RAILWAY_ORIGINS}")
# Note: In production, use Alembic migrations instead of init_db
# await init_db()
yield
# Shutdown
logger.info("Shutting down Patherly API server...")
logger.info("Shutting down ResolutionFlow API server...")
app = FastAPI(
title=settings.APP_NAME,
description="Patherly - Take the path MOST traveled. Guided troubleshooting with automatic documentation.",
description="ResolutionFlow - Take the path MOST traveled. Guided troubleshooting with automatic documentation.",
version="1.0.0",
docs_url="/api/docs",
redoc_url="/api/redoc",
@@ -44,7 +44,7 @@ app.add_middleware(RequestLoggingMiddleware)
# Configure CORS
# Note: When ALLOW_RAILWAY_ORIGINS is True, we use allow_origin_regex for Railway domains
# PLUS the explicit allowed_origins list (for custom domains like app.patherly.com)
# PLUS the explicit allowed_origins list (for custom domains like app.resolutionflow.com)
if settings.ALLOW_RAILWAY_ORIGINS:
app.add_middleware(
CORSMiddleware,
@@ -71,7 +71,7 @@ app.include_router(api_router, prefix=settings.API_V1_PREFIX)
async def root():
"""Root endpoint."""
return {
"message": "Patherly API",
"message": "ResolutionFlow API",
"docs": "/api/docs",
"version": "1.0.0"
}

View File

@@ -16,7 +16,7 @@ class TreeCategory(Base):
"""Admin-managed categories for organizing trees.
Categories can be:
- Global (team_id=NULL): Created by Patherly admins, visible to all
- Global (team_id=NULL): Created by ResolutionFlow admins, visible to all
- Team-specific (team_id set): Created by team admins, visible to team members
"""
__tablename__ = "tree_categories"

View File

@@ -15,7 +15,7 @@ class StepCategory(Base):
"""Admin-managed categories for organizing step library entries.
Categories can be:
- Global (team_id=NULL): Created by Patherly admins, visible to all
- Global (team_id=NULL): Created by ResolutionFlow admins, visible to all
- Team-specific (team_id set): Created by team admins, visible to team members
"""
__tablename__ = "step_categories"

View File

@@ -50,7 +50,7 @@ class User(Base):
@property
def is_admin(self) -> bool:
"""Returns True if user is a global (Patherly) admin."""
"""Returns True if user is a global (ResolutionFlow) admin."""
return self.role == "admin"
@property