mirror of
https://github.com/aljazceru/enclava.git
synced 2025-12-17 07:24:34 +01:00
renaming
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
"""
|
||||
Confidential Empire - Modular AI Gateway Platform
|
||||
Enclava - Modular AI Platform
|
||||
"""
|
||||
|
||||
__version__ = "1.0.0"
|
||||
__author__ = "Confidential Empire Team"
|
||||
__description__ = "Modular AI Gateway Platform with confidential AI processing"
|
||||
__author__ = "Enclava Team"
|
||||
__description__ = "Enclava - Modular AI Platform with confidential processing"
|
||||
@@ -12,7 +12,7 @@ class Settings(BaseSettings):
|
||||
"""Application settings"""
|
||||
|
||||
# Application
|
||||
APP_NAME: str = "Shifra"
|
||||
APP_NAME: str = "Enclava"
|
||||
APP_DEBUG: bool = False
|
||||
APP_LOG_LEVEL: str = "INFO"
|
||||
APP_HOST: str = "0.0.0.0"
|
||||
@@ -33,7 +33,7 @@ class Settings(BaseSettings):
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
|
||||
REFRESH_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7 days
|
||||
SESSION_EXPIRE_MINUTES: int = 60 * 24 # 24 hours
|
||||
API_KEY_PREFIX: str = "ce_"
|
||||
API_KEY_PREFIX: str = "en_"
|
||||
|
||||
# Admin user provisioning
|
||||
ADMIN_USER: str = "admin"
|
||||
@@ -45,7 +45,7 @@ class Settings(BaseSettings):
|
||||
|
||||
# LiteLLM
|
||||
LITELLM_BASE_URL: str = "http://localhost:4000"
|
||||
LITELLM_MASTER_KEY: str = "empire-master-key"
|
||||
LITELLM_MASTER_KEY: str = "enclava-master-key"
|
||||
|
||||
# API Keys for LLM providers
|
||||
OPENAI_API_KEY: Optional[str] = None
|
||||
|
||||
@@ -26,7 +26,7 @@ engine = create_async_engine(
|
||||
connect_args={
|
||||
"command_timeout": 5,
|
||||
"server_settings": {
|
||||
"application_name": "shifra_backend",
|
||||
"application_name": "enclava_backend",
|
||||
},
|
||||
},
|
||||
)
|
||||
@@ -49,7 +49,7 @@ sync_engine = create_engine(
|
||||
pool_recycle=3600, # Recycle connections every hour
|
||||
pool_timeout=30, # Max time to get connection from pool
|
||||
connect_args={
|
||||
"application_name": "shifra_backend_sync",
|
||||
"application_name": "enclava_backend_sync",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ async def lifespan(app: FastAPI):
|
||||
"""
|
||||
Application lifespan handler
|
||||
"""
|
||||
logger.info("Starting Confidential Empire platform...")
|
||||
logger.info("Starting Enclava platform...")
|
||||
|
||||
# Initialize database
|
||||
await init_db()
|
||||
@@ -85,7 +85,7 @@ async def lifespan(app: FastAPI):
|
||||
# Create FastAPI application
|
||||
app = FastAPI(
|
||||
title=settings.APP_NAME,
|
||||
description="Modular AI Gateway Platform with confidential AI processing",
|
||||
description="Enclava - Modular AI Platform with confidential processing",
|
||||
version="1.0.0",
|
||||
openapi_url="/api/v1/openapi.json",
|
||||
docs_url="/api/v1/docs",
|
||||
@@ -201,7 +201,7 @@ async def health_check():
|
||||
async def root():
|
||||
"""Root endpoint"""
|
||||
return {
|
||||
"message": "Confidential Empire - Modular AI Gateway Platform",
|
||||
"message": "Enclava - Modular AI Platform",
|
||||
"version": "1.0.0",
|
||||
"docs": "/api/v1/docs",
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ This module provides AI chatbot capabilities with:
|
||||
from .main import ChatbotModule, create_module
|
||||
|
||||
__version__ = "1.0.0"
|
||||
__author__ = "AI Gateway Team"
|
||||
__author__ = "Enclava Team"
|
||||
|
||||
# Export main classes for easy importing
|
||||
__all__ = [
|
||||
|
||||
@@ -803,7 +803,7 @@ class ChatbotModule(BaseModule):
|
||||
try:
|
||||
# Try to verify the collection exists in Qdrant
|
||||
from qdrant_client import QdrantClient
|
||||
qdrant_client = QdrantClient(host="shifra-qdrant", port=6333)
|
||||
qdrant_client = QdrantClient(host="enclava-qdrant", port=6333)
|
||||
collections = qdrant_client.get_collections()
|
||||
collection_names = [c.name for c in collections.collections]
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: chatbot
|
||||
version: 1.0.0
|
||||
description: "AI Chatbot with RAG integration and customizable prompts"
|
||||
author: "AI Gateway Team"
|
||||
author: "Enclava Team"
|
||||
category: "conversation"
|
||||
|
||||
# Module lifecycle
|
||||
|
||||
@@ -13,8 +13,8 @@ from typing import Dict, List, Tuple
|
||||
# Test configuration
|
||||
PLATFORM_URL = "http://localhost:58000/api/v1/llm/chat/completions"
|
||||
LITELLM_URL = "http://localhost:54000/chat/completions"
|
||||
API_KEY = "ce_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
|
||||
LITELLM_KEY = "shifra-master-key" # From docker-compose.yml
|
||||
API_KEY = "en_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
|
||||
LITELLM_KEY = "enclava-master-key" # From docker-compose.yml
|
||||
|
||||
TEST_PROMPT = "What is the capital of France? Give a brief answer."
|
||||
MODEL = "ollama-deepseek-r1"
|
||||
|
||||
@@ -8,8 +8,8 @@ import requests
|
||||
import json
|
||||
|
||||
# Configuration
|
||||
API_KEY = "ce_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
|
||||
LITELLM_KEY = "shifra-master-key"
|
||||
API_KEY = "en_mMJNyEznKHJRvvNyyuwuQotuWJ2BvdD8"
|
||||
LITELLM_KEY = "enclava-master-key"
|
||||
TEST_PROMPT = "What is 2+2? Answer briefly."
|
||||
MODEL = "ollama-deepseek-r1"
|
||||
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
name: shifra
|
||||
name: enclava
|
||||
|
||||
services:
|
||||
# Main application backend
|
||||
shifra-backend:
|
||||
enclava-backend:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile
|
||||
environment:
|
||||
- DATABASE_URL=postgresql://shifra_user:shifra_pass@shifra-postgres:5432/shifra_db
|
||||
- REDIS_URL=redis://shifra-redis:6379
|
||||
- QDRANT_HOST=shifra-qdrant
|
||||
- DATABASE_URL=postgresql://enclava_user:enclava_pass@enclava-postgres:5432/enclava_db
|
||||
- REDIS_URL=redis://enclava-redis:6379
|
||||
- QDRANT_HOST=enclava-qdrant
|
||||
- LITELLM_BASE_URL=http://litellm-proxy:4000
|
||||
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY:-shifra-master-key}
|
||||
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY:-enclava-master-key}
|
||||
- JWT_SECRET=${JWT_SECRET:-your-jwt-secret-here}
|
||||
- PRIVATEMODE_API_KEY=${PRIVATEMODE_API_KEY:-}
|
||||
- ADMIN_USER=${ADMIN_USER:-admin}
|
||||
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin123}
|
||||
- LOG_LLM_PROMPTS=${LOG_LLM_PROMPTS:-false}
|
||||
depends_on:
|
||||
- shifra-postgres
|
||||
- shifra-redis
|
||||
- shifra-qdrant
|
||||
- enclava-postgres
|
||||
- enclava-redis
|
||||
- enclava-qdrant
|
||||
- litellm-proxy
|
||||
ports:
|
||||
- "58000:8000"
|
||||
@@ -28,51 +28,51 @@ services:
|
||||
- ./backend:/app
|
||||
- ./logs:/app/logs
|
||||
networks:
|
||||
- conf-ai-net
|
||||
- enclava-net
|
||||
restart: unless-stopped
|
||||
|
||||
# Next.js frontend
|
||||
shifra-frontend:
|
||||
enclava-frontend:
|
||||
image: node:18-alpine
|
||||
working_dir: /app
|
||||
command: sh -c "npm install && npm run dev"
|
||||
environment:
|
||||
- NEXT_PUBLIC_API_URL=http://localhost:58000
|
||||
- NEXT_PUBLIC_WS_URL=ws://localhost:58000
|
||||
- INTERNAL_API_URL=http://shifra-backend:8000
|
||||
- INTERNAL_API_URL=http://enclava-backend:8000
|
||||
depends_on:
|
||||
- shifra-backend
|
||||
- enclava-backend
|
||||
ports:
|
||||
- "53000:3000"
|
||||
volumes:
|
||||
- ./frontend:/app
|
||||
- /app/node_modules
|
||||
networks:
|
||||
- conf-ai-net
|
||||
- enclava-net
|
||||
restart: unless-stopped
|
||||
|
||||
# PostgreSQL database
|
||||
shifra-postgres:
|
||||
enclava-postgres:
|
||||
image: postgres:16
|
||||
environment:
|
||||
- POSTGRES_DB=shifra_db
|
||||
- POSTGRES_USER=shifra_user
|
||||
- POSTGRES_PASSWORD=shifra_pass
|
||||
- POSTGRES_DB=enclava_db
|
||||
- POSTGRES_USER=enclava_user
|
||||
- POSTGRES_PASSWORD=enclava_pass
|
||||
volumes:
|
||||
- shifra-postgres-data:/var/lib/postgresql/data
|
||||
- enclava-postgres-data:/var/lib/postgresql/data
|
||||
- ./backend/migrations:/docker-entrypoint-initdb.d
|
||||
networks:
|
||||
- conf-ai-net
|
||||
- enclava-net
|
||||
restart: unless-stopped
|
||||
|
||||
# Redis for caching and message queue
|
||||
shifra-redis:
|
||||
enclava-redis:
|
||||
image: redis:7-alpine
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- shifra-redis-data:/data
|
||||
- enclava-redis-data:/data
|
||||
networks:
|
||||
- conf-ai-net
|
||||
- enclava-net
|
||||
restart: unless-stopped
|
||||
|
||||
# LiteLLM proxy for unified LLM API
|
||||
@@ -81,9 +81,9 @@ services:
|
||||
environment:
|
||||
- UI_USERNAME=admin
|
||||
- UI_PASSWORD=${LITELLM_UI_PASSWORD:-admin123}
|
||||
- DATABASE_URL=postgresql://shifra_user:shifra_pass@shifra-postgres:5432/shifra_db
|
||||
- DATABASE_URL=postgresql://enclava_user:enclava_pass@enclava-postgres:5432/enclava_db
|
||||
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
||||
#- OLLAMA_BASE_URL=http://shifra-ollama-proxy:11434/v1
|
||||
#- OLLAMA_BASE_URL=http://enclava-ollama-proxy:11434/v1
|
||||
#- OLLAMA_API_KEY=ollama
|
||||
- PRIVATEMODE_API_KEY=${PRIVATEMODE_API_KEY:-}
|
||||
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY}
|
||||
@@ -92,15 +92,15 @@ services:
|
||||
- ./litellm_config.yaml:/app/config.yaml
|
||||
command: --config /app/config.yaml --port 4000 --num_workers 1
|
||||
depends_on:
|
||||
- shifra-postgres
|
||||
- enclava-postgres
|
||||
ports:
|
||||
- "54000:4000"
|
||||
networks:
|
||||
- conf-ai-net
|
||||
- enclava-net
|
||||
restart: unless-stopped
|
||||
|
||||
# Ollama Free Model Proxy
|
||||
#shifra-ollama-proxy:
|
||||
#enclava-ollama-proxy:
|
||||
# build:
|
||||
# context: /home/lio/cloud/code/ollama-free-model-proxy
|
||||
# dockerfile: Dockerfile
|
||||
@@ -109,10 +109,10 @@ services:
|
||||
# - FREE_MODE=true
|
||||
# - TOOL_USE_ONLY=false
|
||||
# volumes:
|
||||
# - shifra-ollama-data:/data
|
||||
# - enclava-ollama-data:/data
|
||||
# working_dir: /data
|
||||
# networks:
|
||||
# - conf-ai-net
|
||||
# - enclava-net
|
||||
# restart: unless-stopped
|
||||
#healthcheck:
|
||||
# test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:11434/"]
|
||||
@@ -122,7 +122,7 @@ services:
|
||||
# start_period: 40s
|
||||
|
||||
# Qdrant vector database
|
||||
shifra-qdrant:
|
||||
enclava-qdrant:
|
||||
image: qdrant/qdrant:latest
|
||||
environment:
|
||||
- QDRANT__SERVICE__HTTP_PORT=6333
|
||||
@@ -131,9 +131,9 @@ services:
|
||||
- "56333:6333" # HTTP API and Web Interface
|
||||
- "56334:6334" # GRPC API (optional)
|
||||
volumes:
|
||||
- shifra-qdrant-data:/qdrant/storage
|
||||
- enclava-qdrant-data:/qdrant/storage
|
||||
networks:
|
||||
- conf-ai-net
|
||||
- enclava-net
|
||||
restart: unless-stopped
|
||||
|
||||
# Privatemode.ai service (optional - for confidential models)
|
||||
@@ -151,15 +151,15 @@ services:
|
||||
ports:
|
||||
- "58080:8080"
|
||||
networks:
|
||||
- conf-ai-net
|
||||
- enclava-net
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
shifra-postgres-data:
|
||||
shifra-redis-data:
|
||||
shifra-qdrant-data:
|
||||
# shifra-ollama-data:
|
||||
enclava-postgres-data:
|
||||
enclava-redis-data:
|
||||
enclava-qdrant-data:
|
||||
# enclava-ollama-data:
|
||||
|
||||
networks:
|
||||
conf-ai-net:
|
||||
enclava-net:
|
||||
driver: bridge
|
||||
|
||||
@@ -6,7 +6,7 @@ const nextConfig = {
|
||||
},
|
||||
env: {
|
||||
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8000',
|
||||
NEXT_PUBLIC_APP_NAME: process.env.NEXT_PUBLIC_APP_NAME || 'AI Gateway',
|
||||
NEXT_PUBLIC_APP_NAME: process.env.NEXT_PUBLIC_APP_NAME || 'Enclava',
|
||||
},
|
||||
async headers() {
|
||||
return [
|
||||
|
||||
4
frontend/package-lock.json
generated
4
frontend/package-lock.json
generated
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "ai-gateway-frontend",
|
||||
"name": "enclava-frontend",
|
||||
"version": "0.1.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "ai-gateway-frontend",
|
||||
"name": "enclava-frontend",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^3.3.2",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "ai-gateway-frontend",
|
||||
"name": "enclava-frontend",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
const REQUEST_TIMEOUT = 30000 // 30 seconds
|
||||
|
||||
interface ChatRequestBody {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function DELETE(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function PUT(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function DELETE(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from "next/server"
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || "http://shifra-backend:8000"
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || "http://enclava-backend:8000"
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function PUT(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function DELETE(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function DELETE(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.BACKEND_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://shifra-backend:8000'
|
||||
const BACKEND_URL = process.env.INTERNAL_API_URL || 'http://enclava-backend:8000'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
|
||||
@@ -205,7 +205,7 @@ function DashboardContent() {
|
||||
Welcome back, {user.name}
|
||||
</h1>
|
||||
<p className="text-empire-gold/60 mt-1">
|
||||
Manage your AI gateway and modules
|
||||
Manage your Enclava platform and modules
|
||||
</p>
|
||||
</div>
|
||||
<Button className="bg-empire-gold hover:bg-empire-gold/90 text-empire-dark">
|
||||
|
||||
@@ -17,22 +17,22 @@ export const viewport: Viewport = {
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase: new URL('http://localhost:3000'),
|
||||
title: 'AI Gateway Platform',
|
||||
title: 'Enclava Platform',
|
||||
description: 'Secure AI processing platform with plugin-based architecture and confidential computing',
|
||||
keywords: ['AI', 'Gateway', 'Confidential Computing', 'LLM', 'TEE'],
|
||||
authors: [{ name: 'AI Gateway Team' }],
|
||||
keywords: ['AI', 'Enclava', 'Confidential Computing', 'LLM', 'TEE'],
|
||||
authors: [{ name: 'Enclava Team' }],
|
||||
robots: 'index, follow',
|
||||
openGraph: {
|
||||
type: 'website',
|
||||
locale: 'en_US',
|
||||
url: 'http://localhost:3000',
|
||||
title: 'AI Gateway Platform',
|
||||
title: 'Enclava Platform',
|
||||
description: 'Secure AI processing platform with plugin-based architecture and confidential computing',
|
||||
siteName: 'AI Gateway',
|
||||
siteName: 'Enclava',
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: 'AI Gateway Platform',
|
||||
title: 'Enclava Platform',
|
||||
description: 'Secure AI processing platform with plugin-based architecture and confidential computing',
|
||||
},
|
||||
}
|
||||
|
||||
@@ -675,7 +675,7 @@ function LLMPageContent() {
|
||||
<CardHeader>
|
||||
<CardTitle>Available Models</CardTitle>
|
||||
<CardDescription>
|
||||
Models available through your LLM gateway.
|
||||
Models available through your LLM platform.
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
@@ -691,7 +691,7 @@ function LLMPageContent() {
|
||||
))}
|
||||
{models.length === 0 && (
|
||||
<div className="col-span-full text-center py-8 text-muted-foreground">
|
||||
No models available. Check your LLM gateway configuration.
|
||||
No models available. Check your LLM platform configuration.
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -30,7 +30,7 @@ export default function LoginPage() {
|
||||
await login(email, password)
|
||||
toast({
|
||||
title: "Login successful",
|
||||
description: "Welcome to Confidential Empire",
|
||||
description: "Welcome to Enclava",
|
||||
})
|
||||
router.push("/dashboard")
|
||||
} catch (error) {
|
||||
@@ -54,10 +54,10 @@ export default function LoginPage() {
|
||||
</div>
|
||||
</div>
|
||||
<CardTitle className="text-2xl font-bold text-empire-gold">
|
||||
Confidential Empire
|
||||
Enclava
|
||||
</CardTitle>
|
||||
<CardDescription>
|
||||
Sign in to your secure AI gateway
|
||||
Sign in to your secure AI platform
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
|
||||
@@ -43,7 +43,7 @@ export default function HomePage() {
|
||||
<div className="w-8 h-8 bg-empire-gold rounded-lg flex items-center justify-center">
|
||||
<Shield className="w-5 h-5 text-empire-dark" />
|
||||
</div>
|
||||
<span className="text-xl font-bold text-empire-gold">AI Gateway</span>
|
||||
<span className="text-xl font-bold text-empire-gold">Enclava</span>
|
||||
</div>
|
||||
<nav className="hidden md:flex items-center space-x-6">
|
||||
<a href="#features" className="text-empire-gold/60 hover:text-empire-gold">
|
||||
@@ -78,9 +78,9 @@ export default function HomePage() {
|
||||
AI Processing Platform
|
||||
</Badge>
|
||||
<h1 className="text-4xl md:text-6xl font-bold mb-6 text-empire-gold">
|
||||
Secure AI Gateway with{' '}
|
||||
Secure AI Platform with{' '}
|
||||
<span className="bg-gradient-to-r from-empire-gold to-empire-gold/80 bg-clip-text text-transparent">
|
||||
Secure Computing
|
||||
Confidential Computing
|
||||
</span>
|
||||
</h1>
|
||||
<p className="text-xl text-empire-gold/60 mb-8">
|
||||
@@ -206,7 +206,7 @@ export default function HomePage() {
|
||||
<div className="text-center mb-16">
|
||||
<h2 className="text-3xl font-bold mb-4 text-empire-gold">Available Modules</h2>
|
||||
<p className="text-empire-gold/60 max-w-2xl mx-auto">
|
||||
Extend your AI gateway with powerful modules for enhanced functionality
|
||||
Extend your Enclava platform with powerful modules for enhanced functionality
|
||||
</p>
|
||||
</div>
|
||||
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
@@ -278,7 +278,7 @@ export default function HomePage() {
|
||||
<div className="w-6 h-6 bg-empire-gold rounded flex items-center justify-center">
|
||||
<Shield className="w-4 h-4 text-empire-dark" />
|
||||
</div>
|
||||
<span className="font-semibold text-empire-gold">AI Gateway</span>
|
||||
<span className="font-semibold text-empire-gold">Enclava</span>
|
||||
</div>
|
||||
<div className="flex items-center space-x-6 text-sm text-empire-gold/60">
|
||||
<a href="/docs" className="hover:text-empire-gold">Documentation</a>
|
||||
@@ -288,7 +288,7 @@ export default function HomePage() {
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-8 pt-8 border-t border-empire-gold/20 text-center text-sm text-empire-gold/60">
|
||||
<p>© 2024 AI Gateway. All rights reserved.</p>
|
||||
<p>© 2024 Enclava. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
@@ -69,7 +69,7 @@ const Navigation = () => {
|
||||
<Link href={user ? "/dashboard" : "/"} className="mr-6 flex items-center space-x-2">
|
||||
<div className="h-6 w-6 rounded bg-gradient-to-br from-empire-600 to-empire-800" />
|
||||
<span className="hidden font-bold sm:inline-block">
|
||||
AI Gateway
|
||||
Enclava
|
||||
</span>
|
||||
</Link>
|
||||
{user && (
|
||||
|
||||
Reference in New Issue
Block a user