- 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.