- Customer (marketplace, leases, compute on the leased node),
provider (their nodes) and operator (everything) as separate apps
- Shared chrome with community's own session; identity switcher
only in dev mode
Core now only flags use_dns; the hostname comes from the cloud or
community exposure record. Ports that asked to be public but have no
confirmed tunnel yet show as pending instead of a broken link.
- operatorDetail capability: host placement and raw API records,
core console only
- Dashboard leads with a failure lane (VMs, pods, hosts)
- Per-section error banners instead of silently empty lists
- Audit log no longer shows user_id
useTenantScope answers "what am I working inside": a VDC on cloud,
a lease on community. The create wizard, volumes, storage and
infrastructure screens use it, so they work on both planes.
- Shell requires a session (oauth2-proxy), with sign-in and sign-out
- Project switcher; first-VDC screen when a project has no VDC yet
- Core calls route through /vdcs/<id>/core/* for the active VDC
- Tenants manage their own VDCs, members and Cloudflare account
under Data Centers; the cloud admin area and server groups are removed
- Drop the root .env.* files; every app now has its own .env.example
- Core console talks to core directly with its build-time key
- ALLOWED_HOST passed through docker-compose
- Remove all static mock data (auditLogs, networkInterfaces, storageVolumes, nfsMounts, portForwards, firewallRules)
- Replace with real API data: network_ports and volumes from vmData
- Add Refresh button that re-fetches VM data without page reload
- Replace dummy Power/Reboot/Destroy buttons with AlertDialog-confirmed destroy action
- Networking tab: real network ports table (IP, MAC, network link, status badge)
- Storage tab: real volumes table (size, type, boot flag, status, created date)
- Remove Firewall tab (static-only, no API backing)
- Add Console Log tab: live log streaming via socket.io (user_start/stop_vm_log_stream)
with start/stop controls, auto-scroll toggle, clear, line count, status badge
- Add socket lifecycle management (connect on mount, disconnect on unmount)
- Resolve workload host name by fetching getWorkloadHosts()
- Show placeholder banner in monitoring tab (charts are mock data)
- Replace Port Forward dialog with Launch Configuration panel (shows vcpu, memory, requested networks/volumes from launch_params)
- Fix VNC connect to not require running status
- Various UI polish: flex-wrap headers, consistent label sizing, newline at EOF
NetworkDetailsPage:
- Refactor data fetching to useCallback + Promise.all (network, ports, NSControllers, hosts)
- Add 5-stat summary row (VNI, IPv4/IPv6 CIDR, active ports, encapsulation)
- Add 4-tab layout: Overview, Ports, NSControllers, Configuration
- Port management: create/edit/delete ports via Dialog with full field support
- NSController panel: list controllers, create for a host, refresh DNS/DHCP
- Add delete network with AlertDialog confirmation
- Improved save-changes logic: only send dirty fields; optimistic local state update
- Replace static mock data with real API data throughout
- Add enriched port type with workload metadata fields
xcloudifyApi:
- Fix deleteNetwork URL (remove spurious /api/ prefix)
- Add network port CRUD: getNetworkPort, createNetworkPort, updateNetworkPort, deleteNetworkPort
- Add NSController methods: createNSControllerForNetwork, getNSControllersForNetwork, refreshNSController
- Add createNetwork() handler in CreateResourceWizard with full field mapping
- Route 'network' resource type to createNetwork() on submit
- Redesign network form in ResourceConfigurationForm with real API fields:
VDC selector, network type, encapsulation, OVS bridge, IPv4/IPv6 CIDR,
gateway, DHCP range, NSController IP
- Add 'Create Network' button to Infrastructure networks tab header
- Wire network delete (with confirm) and configure dropdown items in InfrastructurePage
- Add refetchNetworks callback on network resource creation
- Add IPv4 gateway, DHCP range start/end, and NSController IP fields to
VirtualDataCentersPage network creation dialog
- Add GPU model state, fetching (getGpuModels API), and model-based picker in wizard
- Add SSH key selection in VM creation form (dropdown with fingerprint preview)
- Add configurable boot disk size field (defaults to 50 GB)
- Fix VM spec string parsing (startsWith instead of includes, add 2-vcpu variants)
- Extract GPU count from spec string (e.g. 8-vcpu-32gb-1gpu)
- Validate vcpu/memory before submission; pass gpu and ssh_key to creation payload
- Wire new props (vmDiskSize, sshKeys, gpuModels, etc.) through to ResourceConfigurationForm
Sort Pod in VDC by newest at top
Widen Clickable Pod range to expand
add bottom padding to prevent content hidden by floating UI
Resolve workload host id to host name
fix hosts showing workload routes to workload page
Added/Fixed VM Creation Window
Handled String error to navigate in vm detailed view page
Fix load bar over expanded.
Add comprehensive NetworkDetailsPage component with tabs for overview, ports, and configuration.
Support editing network settings including IPv4/IPv6 CIDR, gateway, DNS servers, OVS bridge, and encapsulation.
Add navigation from infrastructure network cards to details page via click and dropdown menu.
Add failover pause/unpause toggle button to RegionsPage with loading states and visual feedback.
Update useNetworks hook with updateNetwork function and improved API response handling for both wrapped and raw array formats.
Add new API endpoints in xcloudifyApi for getNetwork, updateNetwork, pauseFailover, and unpauseFailover.
Add new "Failover" column to regions table showing pause state with detailed tooltip containing pause reason and timestamp. Update Region interface to support failover_paused, pause_reason, and pause_started_at fields.
- Display network ports section with table showing port name, MAC/IP addresses, and network
- Add expandable container details for user and sidecar containers with chevron toggles
- Replace native confirm() dialogs with DeleteConfirmationDialog in Regions and VDCs pages
- Add NetworkPort interface and integrate network_ports data throughout the pod workflow
- Add debug logging for network ports data in PodCard and useXCloudifyPods hook
- Add full networks tab implementation replacing coming soon placeholder
- Display networks grouped by Virtual Data Center with detailed cards
- Show network VNI, CIDR, gateway, OVS bridge, and metadata
- Add network management dropdown menu with actions
- Fix useNetworks hook to extract data from wrapped API response
- Add groupNetworksByVDC utility function for network organization
- Add injected files display to container details view
Add a new Networks tab to the Virtual Data Center details page that displays virtual networks with expandable rows showing associated network ports. Includes new hooks (useNetworksForVdc, useNetworkPorts) and API method (getNetworkPortsByNetwork) to fetch and display network data with collapsible details for each network's ports.
Updated getOVSBridgesForHost to type response as string[] and safely return data.
Adjusted WorkloadHostsPage to render bridge strings directly and add Array.isArray check for robustness.
- Complete implementation of VDC details view with properties, workloads, and storage tabs
- Add tabs for viewing containers/pods, virtual machines, and storage volumes
- Implement API endpoint getWorkloadsForVirtualDataCenter to fetch workloads for a VDC
- Include loading states, error handling, and status badges for workloads and volumes
Add Workloads section to VirtualDataCentersPage
- Fetch pods for selected VDC and display in a new Workloads card
- Filter pods by virtual_data_center_id, then map to table using ApiPod fields id, name, status, containers, created
- Include loading state and empty state handling
X-Lovable-Edit-ID: edt-08fcba7e-ea3e-4e0c-8299-2319860dc719