Files
Sankofa/portal/src/app/network/page.tsx
defiQUG 9daf1fd378 Apply Composer changes: comprehensive API updates, migrations, middleware, and infrastructure improvements
- Add comprehensive database migrations (001-024) for schema evolution
- Enhance API schema with expanded type definitions and resolvers
- Add new middleware: audit logging, rate limiting, MFA enforcement, security, tenant auth
- Implement new services: AI optimization, billing, blockchain, compliance, marketplace
- Add adapter layer for cloud integrations (Cloudflare, Kubernetes, Proxmox, storage)
- Update Crossplane provider with enhanced VM management capabilities
- Add comprehensive test suite for API endpoints and services
- Update frontend components with improved GraphQL subscriptions and real-time updates
- Enhance security configurations and headers (CSP, CORS, etc.)
- Update documentation and configuration files
- Add new CI/CD workflows and validation scripts
- Implement design system improvements and UI enhancements
2025-12-12 18:01:35 -08:00

52 lines
1.8 KiB
TypeScript

'use client';
import { useSession } from 'next-auth/react';
import { signIn } from 'next-auth/react';
// Network topology view - component to be implemented
// import { NetworkTopologyView } from '@/components/network/NetworkTopologyView';
export default function NetworkPage() {
const { data: session, status } = useSession();
if (status === 'loading') {
return (
<div className="flex min-h-screen items-center justify-center bg-gray-900">
<div className="text-center">
<div className="mb-4 h-8 w-8 animate-spin rounded-full border-4 border-gray-300 border-t-blue-600 mx-auto"></div>
<p className="text-gray-400">Loading...</p>
</div>
</div>
);
}
if (status === 'unauthenticated') {
return (
<div className="flex min-h-screen items-center justify-center bg-gray-900">
<div className="text-center max-w-md mx-auto p-8">
<h1 className="text-2xl font-bold text-white mb-4">Access Denied</h1>
<p className="text-gray-400 mb-6">Please sign in to view network topology</p>
<button
onClick={() => signIn()}
className="px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors"
>
Sign In
</button>
</div>
</div>
);
}
return (
<div className="container mx-auto p-6">
<h1 className="text-3xl font-bold mb-6 text-white">Network Topology</h1>
<div className="border rounded-lg p-4 bg-gray-800">
<p className="text-gray-400">Network topology visualization coming soon</p>
<p className="text-sm text-gray-500 mt-2">
This will display the network graph showing relationships between resources across Proxmox, Kubernetes, and Cloudflare.
</p>
</div>
</div>
);
}