Landing page at /landing with full marketing content: hero, features, pricing, testimonials, and beta email signup form. Beta signups email beta@resolutionflow.com via new public endpoint. Unauthenticated users redirect to landing instead of login. Also raises KB Accelerator node limit from 50 to 100 to accommodate dense troubleshooting articles. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
918 B
Python
32 lines
918 B
Python
"""Public beta signup endpoint — no auth required."""
|
|
|
|
import logging
|
|
from fastapi import APIRouter, HTTPException
|
|
from pydantic import BaseModel, EmailStr
|
|
from app.core.email import EmailService
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
router = APIRouter(prefix="/beta-signup", tags=["beta"])
|
|
|
|
|
|
class BetaSignupRequest(BaseModel):
|
|
email: EmailStr
|
|
|
|
|
|
class BetaSignupResponse(BaseModel):
|
|
success: bool
|
|
message: str
|
|
|
|
|
|
@router.post("", response_model=BetaSignupResponse)
|
|
async def beta_signup(data: BetaSignupRequest):
|
|
"""Collect beta interest — sends notification to beta@resolutionflow.com."""
|
|
sent = await EmailService.send_beta_signup_notification(data.email)
|
|
if not sent:
|
|
logger.warning("Beta signup recorded (email delivery skipped): %s", data.email)
|
|
return BetaSignupResponse(
|
|
success=True,
|
|
message="Thanks! We'll be in touch with beta access details.",
|
|
)
|