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
Fix rendering of cloudflare_tunnel object by converting to string or displaying its fields, avoiding rendering a raw object inside a <p> and related fragment prop warnings.
X-Lovable-Edit-ID: edt-9e748cee-cbe3-42ff-9d1e-abcbda882039
- Show workload host name instead of ID
- Display region name instead of ID
- Show VDC name with hyperlink to VDC details
- Remove NS Controller ID from Pod details
- Wire VDC name hyperlink and fetch lookup data in InfrastructurePage and PodCard via new region/workload host/VDC data flows
X-Lovable-Edit-ID: edt-c2a4e113-e82e-4fb4-bbbb-70e96d0345a3
Enhance infrastructure containers pod card expanded view to display key pod metadata (pod_id, created_at, region_id, virtual_data_center_id, workload_host_id, nscontroller_workload_id, cloudflare_tunnel) from SPI response. Update Pod interface and mapping to include new fields and render a Pod Details section in the expanded card. Ensure created_at is shown in user local time.
X-Lovable-Edit-ID: edt-b3902e2e-757d-4c14-b09f-bf8f3dca6722
Update WorkloadHostsPage to consider hosts with reconciling status as online in the list, instead of marking them offline. Adjust filtering/display logic so reconciling hosts are shown as online.
X-Lovable-Edit-ID: edt-6f070efe-9100-4868-ada9-6d3f20820821
Convert UTC created_at to local timezone by parsing with Z suffix when missing,
and update running time display to reflect local time calculations for pod lifetimes.
X-Lovable-Edit-ID: edt-18787742-c4e3-4e22-b709-9629c4f14d17
Add live per-second running time display for pods under 5 minutes:
- Show seconds precision when running < 5 minutes
- Update every second via a timer
- Stop live updates after reaching 5 minutes
- Integrate with existing getRunningTime logic in PodCard.tsx
X-Lovable-Edit-ID: edt-85232477-29e9-4721-b98a-84bb21f828fb
Update PodCard to display running time for the pod header instead of per-container rows by mapping created_at to a new created field and rendering Running: <time> in the pod header.
X-Lovable-Edit-ID: edt-790c15f6-e0b6-42d7-baea-af34ff3311ac
Move the Running time display from the container list to the pod header in PodCard.tsx, showing pod running time in the header section and removing it from the container rows.
X-Lovable-Edit-ID: edt-85e0472f-bd61-43f5-ba99-ad091db9724a
Add a Running time column to the containers list in infrastructure/containers, calculating and displaying the duration since each pod's created_at timestamp (reused getRunningTime logic for uptime). Also update PodCard table headers and cells to show the new column for both main containers and sidecars.
X-Lovable-Edit-ID: edt-8e307318-49b7-4893-a4fd-a40533534ea4
Parse launch_params to extract docker_image and show in Image field; use workload_type for Type field in ContainerDetails.tsx.
X-Lovable-Edit-ID: edt-cd160a24-a9d3-4c81-b955-81d9c3bdaf7f
Update ContainerDetails to display CPU usage as vCPUs (e.g., "10 vCPUs" or "10") instead of percentage, using resource_usage cpu used_amount.
X-Lovable-Edit-ID: edt-87bc0662-4cc4-4d5e-9069-8c2c1dd7cdee
Update container details to display CPU and RAM from the new resource_usage API data in the Resource Allocation section, replacing hardcoded values and aligning with the improved API response.
X-Lovable-Edit-ID: edt-ee131bd4-1213-4289-9180-998227ac28cb
Revert the Available for Scheduling display back to text with green for true and red for false (removing the previous button styling).
X-Lovable-Edit-ID: edt-ed5c2166-769b-4f85-8058-19ece4242c5b
Render Available for Scheduling as a colored button (green true, red false) on workload host details and remove text label; keep as toggle button.
X-Lovable-Edit-ID: edt-1c98febe-c0d4-4fec-b497-bb65f5e462f3
- Extend WorkloadHostsPage status indicator to support a new reconciling state with a yellow icon and label, alongside online/offline.
X-Lovable-Edit-ID: edt-5a9959a9-a727-4b6e-aada-436f6006e89a
The AI has implemented the plan to address the blank virtual machines window on the Infrastructure page when no VMs are found. This includes normalizing the API response for VMs to always return an array, hardening the `useVirtualMachines` hook to ensure it always sets an array, and updating `InfrastructurePage.tsx` to correctly display an empty state card when `virtualMachines` is not an array or is empty. This ensures a consistent and informative user experience when no virtual machines are available.
The memory for Workload Hosts on the Resource Overview page was being displayed in MB instead of GB. This commit updates the code to convert the memory values from MB to GB, ensuring accurate representation of resource utilization.
The AI is addressing an error where `<Select.Item />` components are missing a valid `value` prop. This is likely occurring in a component that renders a list of selectable items, such as a dropdown or a similar UI element. The fix will involve ensuring that each `<Select.Item />` has a non-empty string `value` prop.
Create a shared component for displaying audit logs, which will be used for both pods and containers. This component will fetch and display audit history from the `/audit/pod/<pod_id>` API, including pagination.
The `groupVirtualMachinesByVDC` function in `InfrastructurePage.tsx` was causing a `TypeError` because `virtualMachines` was not an array. This commit adds a check to ensure `virtualMachines` is an array before attempting to iterate over it, preventing the error.
The error "filteredAndSortedHosts is not defined" indicates that the variable `filteredAndSortedHosts` is being used before it has been declared or assigned a value in the `WorkloadHostsPage` component. This likely occurred after the recent changes to group workload hosts by region. The fix will involve ensuring that `filteredAndSortedHosts` is properly defined and populated before it is referenced in the component's render method.
Group workload hosts by region ID on the workload hosts list page. Remove the "Infrastructure Hosts" heading and ensure regions can be sorted and filtered.
Update the container wizard to filter networks by the selected VDC ID when fetching network data. This change modifies the `useNetworks` hook to accept a `vdcId` parameter and uses it to apply the `virtual_datacenter_id={id}` filter in the API call.
List networks in the VDC details page using the new API endpoint `/networks?virtual_datacenter_id={id}`. Display relevant network parameters such as IPv4 CIDR, gateway, DNS servers, IPv6 CIDR, gateway, VNI, encapsulation, and OVS bridge.
The commit addresses an issue where workload host information was not being displayed on the region details page. It ensures that the workload host data is correctly fetched and rendered in the UI for each region.
Create a shared component for the "Back to list" button to ensure consistent styling and visibility across all detail pages. This component will be used on various detail views, including project and workload host details.
The AI implemented the plan to fix duplicate logging of failed API requests. The catch block in `src/services/xcloudifyApi.ts` was modified to prevent re-logging of `XCloudifyApiError` instances, ensuring that only network errors are logged in such cases.
Changed the VDC API endpoint for fetching VDCs by project from `/virtual_data_centers/by_project/<project_id>` to `/virtual_data_centers?project_id=<project_id>`. This change was made in `src/services/xcloudifyApi.ts`.
The delete button on the workload host details page is not performing any action. This commit addresses the issue by ensuring the delete functionality is correctly implemented and triggered.
Adds a delete button to the workload host details page. This button triggers a confirmation dialog, which is implemented as a reusable component to be used across the application.
Change the API endpoint for fetching virtual data centers by region in the region details page. The call will be updated from `/virtual_data_centers/by_region/<region_id>` to `/virtual_data_centers?region_id=<region_id>`.
Add a user profile section in the top right corner displaying the user's name. This section will include a dropdown menu with options for profile management, such as logout and settings. Clicking on "Settings" will display user profile information. Additionally, a developer console section will be included with a checkbox to toggle its visibility. The developer console will be enabled by default, and its state will be managed using a cookie to remember user preferences.
Log the failure reason for API requests in the developer console, even when the request fails. This ensures that all API call results, including errors, are recorded for debugging purposes.
Fetch and display Virtual Data Centers associated with a region when viewing region details. This involves calling the `/virtual_data_centers/by_region/<region_id>` API endpoint.
The project edit dialog now appears correctly, similar to the VDC edit dialog fix. Additionally, functionality to edit region names has been added, mirroring the editing capabilities for projects and virtual data centers.
The VDC edit dialog was not appearing immediately after clicking the "Edit VDC" button. The dialog would only appear after navigating away from the VDC details page and then back to the VDC list. This commit addresses the issue by ensuring the edit dialog pops up correctly when the "Edit VDC" button is clicked.
Implement the ability to rename projects in the admin portal by adding a PUT request to the `/projects/<project_id>` endpoint. This allows updating the project's name, description, status, and visibility.
Implement the plan to fix the Dev Bypass button by setting the authentication flag in localStorage and dispatching a custom event before navigating to the dashboard. This ensures the route guard correctly identifies the user as authenticated.
The `triggerDownload` function in `certificatesApi.ts` was updated to correctly derive download URLs for both CA and regular certificates. The function now handles opening the download link in a new tab for downloads and the copy link functionality separately, ensuring consistency and fixing the broken download button.
Removes the `downloadCertificate` function from `CertificatesPage.tsx` as it is now handled by `certificatesApi.ts`. This consolidates download logic and eliminates redundancy.
The `triggerDownload` function was overriding the filename set by the server. This commit modifies the function to respect the server-provided filename when downloading certificates.
The API was crashing when revoking a certificate due to an incorrect API call that was not handling the response properly, causing a page refresh. This commit addresses the issue by ensuring the correct API call is made and the response is handled appropriately.
The `downloadCertificate` function was defined twice, once in `certificatespage.tsx` and once in `certificatesAPI.tsx`. This commit removes the duplicate definition in `certificatespage.tsx` to resolve the issue.
Removed the options to download public keys for both CA certificates and regular certificates. This change affects the actions menu in `src/components/CertificatesPage.tsx`.