diff --git a/agent/modals/asset/asset_interface_multiple_add.php b/agent/modals/asset/asset_interface_multiple_add.php
index 328ac5af..0ffb0bca 100644
--- a/agent/modals/asset/asset_interface_multiple_add.php
+++ b/agent/modals/asset/asset_interface_multiple_add.php
@@ -38,15 +38,24 @@
-
+
diff --git a/db.sql b/db.sql
index 1e6409b0..a1c36a53 100644
--- a/db.sql
+++ b/db.sql
@@ -1,4 +1,4 @@
-/*M!999999\- enable the sandbox mode */
+/*M!999999\- enable the sandbox mode */
-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: itflow_dev
@@ -449,9 +449,11 @@ DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories` (
`category_id` int(11) NOT NULL AUTO_INCREMENT,
`category_name` varchar(200) NOT NULL,
+ `category_description` varchar(255) DEFAULT NULL,
`category_type` varchar(200) NOT NULL,
`category_color` varchar(200) DEFAULT NULL,
`category_icon` varchar(200) DEFAULT NULL,
+ `category_order` int(11) NOT NULL DEFAULT 0,
`category_parent` int(11) DEFAULT 0,
`category_created_at` datetime NOT NULL DEFAULT current_timestamp(),
`category_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(),
@@ -960,6 +962,132 @@ CREATE TABLE `custom_fields` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Table structure for table `custom_hosting_api_keys`
+--
+
+DROP TABLE IF EXISTS `custom_hosting_api_keys`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `custom_hosting_api_keys` (
+ `api_key_id` int(11) NOT NULL AUTO_INCREMENT,
+ `api_key_name` varchar(200) NOT NULL,
+ `api_key_url` varchar(250) NOT NULL,
+ `api_key_token_id` varchar(200) NOT NULL,
+ `api_key_token_secret` varchar(250) NOT NULL,
+ `api_key_created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`api_key_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `custom_hosting_networks`
+--
+
+DROP TABLE IF EXISTS `custom_hosting_networks`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `custom_hosting_networks` (
+ `network_id` int(11) NOT NULL AUTO_INCREMENT,
+ `network_name` varchar(200) NOT NULL,
+ `network` varchar(100) NOT NULL,
+ `network_mask` varchar(100) NOT NULL,
+ `gateway` varchar(100) NOT NULL,
+ `network_start` varchar(100) NOT NULL,
+ `network_end` varchar(100) NOT NULL,
+ PRIMARY KEY (`network_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `custom_hosting_plans`
+--
+
+DROP TABLE IF EXISTS `custom_hosting_plans`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `custom_hosting_plans` (
+ `plan_id` int(11) NOT NULL AUTO_INCREMENT,
+ `plan_name` varchar(250) NOT NULL,
+ `plan_description` text NOT NULL,
+ `plan_created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`plan_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `custom_hosting_regions`
+--
+
+DROP TABLE IF EXISTS `custom_hosting_regions`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `custom_hosting_regions` (
+ `region_id` int(11) NOT NULL AUTO_INCREMENT,
+ `region_name` varchar(200) NOT NULL,
+ `region_created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ PRIMARY KEY (`region_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `custom_hosting_servers`
+--
+
+DROP TABLE IF EXISTS `custom_hosting_servers`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `custom_hosting_servers` (
+ `server_id` int(11) NOT NULL AUTO_INCREMENT,
+ `server_node` varchar(200) NOT NULL,
+ `server_storage` varchar(200) NOT NULL,
+ `server_created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ `server_region_id` int(11) NOT NULL,
+ `server_api_key_id` varchar(200) NOT NULL,
+ PRIMARY KEY (`server_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `custom_hosting_vm_templates`
+--
+
+DROP TABLE IF EXISTS `custom_hosting_vm_templates`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `custom_hosting_vm_templates` (
+ `template_id` int(11) NOT NULL AUTO_INCREMENT,
+ `template_name` varchar(200) NOT NULL,
+ `vcpus` int(11) NOT NULL,
+ `memory` int(11) NOT NULL,
+ `disk` int(11) NOT NULL,
+ `template_created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ `template_plan_id` int(11) NOT NULL,
+ PRIMARY KEY (`template_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `custom_hosting_vms`
+--
+
+DROP TABLE IF EXISTS `custom_hosting_vms`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8mb4 */;
+CREATE TABLE `custom_hosting_vms` (
+ `vm_id` int(11) NOT NULL AUTO_INCREMENT,
+ `vm_hostname` varchar(200) NOT NULL,
+ `vm_ip` varchar(100) NOT NULL,
+ `vm_created_at` datetime NOT NULL DEFAULT current_timestamp(),
+ `vm_network_id` int(11) NOT NULL,
+ `vm_server_id` int(11) NOT NULL,
+ `vm_template_id` int(11) NOT NULL,
+ `vm_recurring_invoice_id` int(11) DEFAULT NULL,
+ `vm_client_id` int(11) NOT NULL,
+ PRIMARY KEY (`vm_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
--
-- Table structure for table `custom_links`
--
@@ -1293,8 +1421,6 @@ CREATE TABLE `invoice_items` (
`item_archived_at` datetime DEFAULT NULL,
`item_tax_id` int(11) NOT NULL DEFAULT 0,
`item_product_id` int(11) NOT NULL DEFAULT 0,
- `item_quote_id` int(11) NOT NULL DEFAULT 0,
- `item_recurring_invoice_id` int(11) NOT NULL DEFAULT 0,
`item_invoice_id` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
@@ -2997,4 +3123,4 @@ CREATE TABLE `vendors` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2026-03-07 18:46:25
+-- Dump completed on 2026-03-30 15:22:51
diff --git a/includes/app_version.php b/includes/app_version.php
index 67a54bcb..c04690b7 100644
--- a/includes/app_version.php
+++ b/includes/app_version.php
@@ -5,4 +5,4 @@
* Update this file each time we merge develop into master. Format is YY.MM (add a .v if there is more than one release a month.
*/
-DEFINE("APP_VERSION", "26.03");
+DEFINE("APP_VERSION", "26.03.1");
diff --git a/includes/database_version.php b/includes/database_version.php
index d848c3e8..af7a117a 100644
--- a/includes/database_version.php
+++ b/includes/database_version.php
@@ -5,4 +5,4 @@
* It is used in conjunction with database_updates.php
*/
-DEFINE("LATEST_DATABASE_VERSION", "2.4.2");
+DEFINE("LATEST_DATABASE_VERSION", "2.4.3");
diff --git a/includes/load_global_settings.php b/includes/load_global_settings.php
index dcbf8fca..98429693 100644
--- a/includes/load_global_settings.php
+++ b/includes/load_global_settings.php
@@ -307,9 +307,3 @@ $note_types_array = array (
'In Person'=>'fa-people-arrows',
'Note'=>'fa-sticky-note'
);
-
-$interface_types_array = array (
- 'Ethernet',
- 'SFP',
- 'WiFi'
-);
diff --git a/setup/index.php b/setup/index.php
index 86f43b76..efc5a47d 100644
--- a/setup/index.php
+++ b/setup/index.php
@@ -583,6 +583,16 @@ if (isset($_POST['add_company_settings'])) {
// Custom Links
mysqli_query($mysqli,"INSERT INTO custom_links SET custom_link_name = 'Docs', custom_link_uri = 'https://docs.itflow.org', custom_link_new_tab = 1, custom_link_icon = 'question-circle'");
+ // network_interfaces
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'Ethernet', category_type = 'network_interface', category_order = 1"); // 1
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'SFP', category_type = 'network_interface', category_order = 2"); // 2
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'SFP+', category_type = 'network_interface', category_order = 3"); // 3
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'QSFP28', category_type = 'network_interface', category_order = 4"); // 4
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'QSFP-DD', category_type = 'network_interface', category_order = 5"); // 5
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'Coaxial', category_type = 'network_interface', category_order = 6"); // 6
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'Fiber', category_type = 'network_interface', category_order = 7"); // 7
+ mysqli_query($mysqli, "INSERT INTO categories SET category_name = 'WiFi', category_type = 'network_interface', category_order = 8"); // 8
+
$_SESSION['alert_message'] = "Company
$name created";