mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-09 22:31:41 +00:00
Remove the /project/* management endpoints and the enable_projects_ui admin-settings flag from the OSS litellm package. Project endpoints now live under litellm_enterprise and are wired through the existing enterprise router; OSS builds return 404 for every /project/* route. The enable_projects_ui UI flag is registered back onto UISettings via a small extension registry when the enterprise package is imported, so the admin toggle and downstream key/sidebar gating continue to work in enterprise builds. On OSS, explicit PATCH attempts with the flag return 403 with a clear enterprise-only message instead of being silently dropped. Pydantic request/response types (NewProjectRequest, UpdateProjectRequest, DeleteProjectRequest, NewProjectResponse) stay in litellm/proxy/_types.py because management_endpoints/common_utils.py and pydantic-shape tests import them. LiteLLM_ProjectTable and all FK columns in schema.prisma are unchanged.
29 lines
1 KiB
Python
29 lines
1 KiB
Python
from fastapi import APIRouter
|
|
from fastapi.responses import Response
|
|
from litellm_enterprise.enterprise_callbacks.send_emails.endpoints import (
|
|
router as email_events_router,
|
|
)
|
|
|
|
from . import ui_crud_endpoints # side-effect: registers extra UI settings
|
|
from .audit_logging_endpoints import router as audit_logging_router
|
|
from .management_endpoints import management_endpoints_router
|
|
from .utils import _should_block_robots
|
|
|
|
__all__ = ["router", "ui_crud_endpoints"]
|
|
|
|
router = APIRouter()
|
|
router.include_router(email_events_router)
|
|
router.include_router(audit_logging_router)
|
|
router.include_router(management_endpoints_router)
|
|
|
|
|
|
@router.get("/robots.txt")
|
|
async def get_robots():
|
|
"""
|
|
Block all web crawlers from indexing the proxy server endpoints
|
|
This is useful for ensuring that the API endpoints aren't indexed by search engines
|
|
"""
|
|
if _should_block_robots():
|
|
return Response(content="User-agent: *\nDisallow: /", media_type="text/plain")
|
|
else:
|
|
return Response(status_code=404)
|