diff --git a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/pom.xml b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/pom.xml
index 1020350c4..b308689cb 100644
--- a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/pom.xml
+++ b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/pom.xml
@@ -32,10 +32,6 @@
WSO2 Siddhi Execution Extension - Device management Core functionality as Siddhi extension
http://entgra.io
-
- true
-
-
org.apache.felix
@@ -252,12 +248,19 @@
org.apache.maven.plugins
maven-surefire-plugin
+
+ --add-opens=java.xml/jdk.xml.internal=ALL-UNNAMED
+ --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
+
file:src/test/resources/log4j.properties
src/test/resources/testng.xml
+
+ org.ops4j.pax.logging
+
diff --git a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/java/io/entgra/device/mgt/plugins/extension/siddhi/device/ExtensionTestCase.java b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/java/io/entgra/device/mgt/plugins/extension/siddhi/device/ExtensionTestCase.java
index 1cefb7d0b..ad2199ed9 100644
--- a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/java/io/entgra/device/mgt/plugins/extension/siddhi/device/ExtensionTestCase.java
+++ b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/java/io/entgra/device/mgt/plugins/extension/siddhi/device/ExtensionTestCase.java
@@ -18,10 +18,6 @@
package io.entgra.device.mgt.plugins.extension.siddhi.device;
-import org.apache.log4j.Logger;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
import io.entgra.device.mgt.core.device.mgt.common.Device;
import io.entgra.device.mgt.core.device.mgt.common.DeviceIdentifier;
import io.entgra.device.mgt.core.device.mgt.common.exceptions.DeviceManagementException;
@@ -38,6 +34,14 @@ import io.entgra.device.mgt.core.device.mgt.core.service.DeviceManagementProvide
import io.entgra.device.mgt.core.device.mgt.core.service.DeviceManagementProviderServiceImpl;
import io.entgra.device.mgt.core.device.mgt.core.service.GroupManagementProviderService;
import io.entgra.device.mgt.core.device.mgt.core.service.GroupManagementProviderServiceImpl;
+import io.entgra.device.mgt.plugins.extension.siddhi.device.util.SiddhiTestHelper;
+import io.entgra.device.mgt.plugins.extension.siddhi.device.util.TestDataHolder;
+import io.entgra.device.mgt.plugins.extension.siddhi.device.util.TestDeviceManagementService;
+import io.entgra.device.mgt.plugins.extension.siddhi.device.utils.DeviceUtils;
+import org.apache.log4j.Logger;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
import org.wso2.carbon.registry.core.config.RegistryContext;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.internal.RegistryDataHolder;
@@ -46,10 +50,6 @@ import org.wso2.carbon.registry.core.service.RegistryService;
import org.wso2.carbon.user.core.UserStoreException;
import org.wso2.carbon.user.core.service.RealmService;
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-import io.entgra.device.mgt.plugins.extension.siddhi.device.util.SiddhiTestHelper;
-import io.entgra.device.mgt.plugins.extension.siddhi.device.util.TestDataHolder;
-import io.entgra.device.mgt.plugins.extension.siddhi.device.util.TestDeviceManagementService;
-import io.entgra.device.mgt.plugins.extension.siddhi.device.utils.DeviceUtils;
import org.wso2.siddhi.core.ExecutionPlanRuntime;
import org.wso2.siddhi.core.SiddhiManager;
import org.wso2.siddhi.core.event.Event;
diff --git a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/carbon-home/repository/conf/cdm-config.xml b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/carbon-home/repository/conf/cdm-config.xml
index d4360a04e..3ce48daef 100644
--- a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/carbon-home/repository/conf/cdm-config.xml
+++ b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/carbon-home/repository/conf/cdm-config.xml
@@ -32,22 +32,26 @@
true
io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.fcm.FCMBasedPushNotificationProvider
-
io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.mqtt.MQTTBasedPushNotificationProvider
- io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http.HTTPBasedPushNotificationProvider
+ io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.http.HTTPBasedPushNotificationProvider
io.entgra.device.mgt.core.device.mgt.extensions.push.notification.provider.xmpp.XMPPBasedPushNotificationProvider
-
- false
-
+
+ false
+
https://localhost:9443
- admin
- admin
+ ${admin.username}
+ ${admin.username}
+
+ https://localhost:9443
+ ${admin.username}
+ ${admin.username}
+
- org.wso2.carbon.policy.mgt
+ io.entgra.device.mgt.core.policy.mgt
true
60000
5
@@ -57,6 +61,7 @@
Simple
+ true
@@ -66,6 +71,7 @@
20
20
20
+ 20
@@ -76,21 +82,134 @@
device caching for upto configured expiry-time in seconds. In clustered setup all worker nodes can enable the
device-cache to improve performance. -->
- false
+ true
600
10000
+
+ true
+ 600
+ 10000
+
+
+ true
+ 600
+ 10000
+
+
+ true
+
- false
+ true
86400
+
+
+
+ jdbc/DM_ARCHIVAL_DS
+
+
+
+ false
+ false
+
+ DM_DB
+ ARCHIVAL_DB
+
+ io.entgra.device.mgt.core.device.mgt.core.task.impl.ArchivalTask
+
+ 0 0 0 1/1 * ? *
+
+ 30
+ 1000
+
+ false
+ io.entgra.device.mgt.core.device.mgt.core.task.impl.ArchivedDataDeletionTask
+
+ 0 0 3 1/1 * ? *
+
+ 365
+
+
+
- false
- false
+ false
+
+ false
+ false
+
+ false
+
+
+
+
+ *
+
+
+
+
+
+ true
+ ws://localhost:9763
+ 2
+ 100
+ 20
+ 15
+ 640
+
BYOD,COPE
+
+ false
+ false
+ io.entgra.device.mgt.core.device.mgt.common.enrollment.notification.EnrollmentNotifier
+ http://localhost:8280
+
+
+ false
+
+
+ test_role
+
+ /permission/admin/Login
+
+
+
+
+
+
+
+ <a href='https://entgra.io' target='_blank'>
+ Entgra
+ </a>
+ IoT Server 5.2.0 | © 2023
+ , All Rights Reserved.
+
+ Entgra
+
+ repository/resources/whitelabel
+ favicon.png
+ logo.png
+ icon.png
+ default
+
+
+
+
+
+
+
+
+
+ false
+ Replace with mail
+
diff --git a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/config/datasource/data-source-config.xml b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/config/datasource/data-source-config.xml
index f37cc19b1..60ba7b5d8 100644
--- a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/config/datasource/data-source-config.xml
+++ b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/config/datasource/data-source-config.xml
@@ -18,7 +18,7 @@
-->
- jdbc:h2:mem:cdm-test-db;DB_CLOSE_ON_EXIT=FALSE;MVCC=true
+ jdbc:h2:mem:cdm-test-db;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000
org.h2.Driver
wso2carbon
wso2carbon
diff --git a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/sql/h2.sql b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/sql/h2.sql
index 418f3d75f..15ffa6960 100644
--- a/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/sql/h2.sql
+++ b/components/extensions/siddhi-extensions/io.entgra.device.mgt.plugins.extension.siddhi.device/src/test/resources/sql/h2.sql
@@ -43,7 +43,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE (
ID INTEGER auto_increment NOT NULL,
DESCRIPTION TEXT DEFAULT NULL,
NAME VARCHAR(100) DEFAULT NULL,
- DEVICE_TYPE_ID INT(11) DEFAULT NULL,
+ DEVICE_TYPE_ID INT DEFAULT NULL,
DEVICE_IDENTIFICATION VARCHAR(300) DEFAULT NULL,
LAST_UPDATED_TIMESTAMP TIMESTAMP NOT NULL,
TENANT_ID INTEGER DEFAULT 0,
@@ -53,17 +53,6 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE (
CONSTRAINT uk_DM_DEVICE UNIQUE (NAME, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, TENANT_ID)
);
-CREATE TABLE IF NOT EXISTS DM_BILLING (
- INVOICE_ID INTEGER auto_increment NOT NULL,
- TENANT_ID INTEGER default 0,
- DEVICE_ID INT default NULL,
- BILLING_START TIMESTAMP not null,
- BILLING_END TIMESTAMP not null,
- PRIMARY KEY (INVOICE_ID),
- CONSTRAINT FK_DM_BILLING_DM_DEVICE
- FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID)
-);
-
CREATE TABLE IF NOT EXISTS DM_DEVICE_PROPERTIES (
DEVICE_TYPE_NAME VARCHAR(300) NOT NULL,
DEVICE_IDENTIFICATION VARCHAR(300) NOT NULL,
@@ -115,7 +104,6 @@ CREATE TABLE IF NOT EXISTS DM_ENROLMENT (
DATE_OF_ENROLMENT TIMESTAMP DEFAULT NULL,
DATE_OF_LAST_UPDATE TIMESTAMP DEFAULT NULL,
TENANT_ID INT NOT NULL,
- LAST_BILLED_DATE BIGINT DEFAULT 0,
PRIMARY KEY (ID),
CONSTRAINT fk_dm_device_enrolment FOREIGN KEY (DEVICE_ID) REFERENCES
DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION,
@@ -201,17 +189,17 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE (
);
CREATE TABLE IF NOT EXISTS DM_POLICY (
- ID INT(11) NOT NULL AUTO_INCREMENT ,
+ ID INT NOT NULL AUTO_INCREMENT ,
NAME VARCHAR(45) DEFAULT NULL ,
DESCRIPTION VARCHAR(1000) NULL,
PAYLOAD_VERSION VARCHAR (45) NULL,
- TENANT_ID INT(11) NOT NULL ,
- PROFILE_ID INT(11) NOT NULL ,
+ TENANT_ID INT NOT NULL ,
+ PROFILE_ID INT NOT NULL ,
OWNERSHIP_TYPE VARCHAR(45) NULL,
COMPLIANCE VARCHAR(100) NULL,
PRIORITY INT NOT NULL,
- ACTIVE INT(2) NOT NULL,
- UPDATED INT(1) NULL,
+ ACTIVE INT NOT NULL,
+ UPDATED INT NULL,
POLICY_TYPE VARCHAR(45) NULL,
PRIMARY KEY (ID) ,
CONSTRAINT FK_DM_PROFILE_DM_POLICY
@@ -222,11 +210,11 @@ CREATE TABLE IF NOT EXISTS DM_POLICY (
);
CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
- ID INT(11) NOT NULL AUTO_INCREMENT ,
- DEVICE_ID INT(11) NOT NULL ,
- ENROLMENT_ID INT(11) NOT NULL,
+ ID INT NOT NULL AUTO_INCREMENT ,
+ DEVICE_ID INT NOT NULL ,
+ ENROLMENT_ID INT NOT NULL,
DEVICE BLOB NOT NULL,
- POLICY_ID INT(11) NOT NULL ,
+ POLICY_ID INT NOT NULL ,
PRIMARY KEY (ID) ,
CONSTRAINT FK_POLICY_DEVICE_POLICY
FOREIGN KEY (POLICY_ID )
@@ -241,9 +229,9 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY (
);
CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
- ID INT(11) NOT NULL ,
+ ID INT NOT NULL ,
DEVICE_TYPE VARCHAR(300) NOT NULL ,
- POLICY_ID INT(11) NOT NULL ,
+ POLICY_ID INT NOT NULL ,
PRIMARY KEY (ID) ,
CONSTRAINT FK_DEVICE_TYPE_POLICY
FOREIGN KEY (POLICY_ID )
@@ -253,11 +241,11 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY (
);
CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES (
- ID INT(11) NOT NULL AUTO_INCREMENT,
- PROFILE_ID INT(11) NOT NULL,
+ ID INT NOT NULL AUTO_INCREMENT,
+ PROFILE_ID INT NOT NULL,
FEATURE_CODE VARCHAR(100) NOT NULL,
DEVICE_TYPE VARCHAR(300) NOT NULL,
- TENANT_ID INT(11) NOT NULL ,
+ TENANT_ID INT NOT NULL ,
CONTENT BLOB NULL DEFAULT NULL,
PRIMARY KEY (ID),
CONSTRAINT FK_DM_PROFILE_DM_POLICY_FEATURES
@@ -268,11 +256,11 @@ CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES (
);
CREATE TABLE IF NOT EXISTS DM_POLICY_CORRECTIVE_ACTION (
- ID INT(11) NOT NULL AUTO_INCREMENT,
+ ID INT NOT NULL AUTO_INCREMENT,
ACTION_TYPE VARCHAR(45) NOT NULL,
- CORRECTIVE_POLICY_ID INT(11) DEFAULT NULL,
- POLICY_ID INT(11) NOT NULL,
- FEATURE_ID INT(11) DEFAULT NULL,
+ CORRECTIVE_POLICY_ID INT DEFAULT NULL,
+ POLICY_ID INT NOT NULL,
+ FEATURE_ID INT DEFAULT NULL,
IS_REACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY (ID),
CONSTRAINT FK_DM_POLICY_DM_POLICY_CORRECTIVE_ACTION
@@ -283,9 +271,9 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_CORRECTIVE_ACTION (
);
CREATE TABLE IF NOT EXISTS DM_ROLE_POLICY (
- ID INT(11) NOT NULL AUTO_INCREMENT ,
+ ID INT NOT NULL AUTO_INCREMENT ,
ROLE_NAME VARCHAR(45) NOT NULL ,
- POLICY_ID INT(11) NOT NULL ,
+ POLICY_ID INT NOT NULL ,
PRIMARY KEY (ID) ,
CONSTRAINT FK_ROLE_POLICY_POLICY
FOREIGN KEY (POLICY_ID )
@@ -309,11 +297,11 @@ CREATE TABLE IF NOT EXISTS DM_USER_POLICY (
CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY_APPLIED (
ID INT NOT NULL AUTO_INCREMENT ,
DEVICE_ID INT NOT NULL ,
- ENROLMENT_ID INT(11) NOT NULL,
+ ENROLMENT_ID INT NOT NULL,
POLICY_ID INT NOT NULL ,
POLICY_CONTENT BLOB NULL ,
TENANT_ID INT NOT NULL,
- APPLIED TINYINT(1) NULL ,
+ APPLIED TINYINT NULL ,
CREATED_TIME TIMESTAMP NULL ,
UPDATED_TIME TIMESTAMP NULL ,
APPLIED_TIME TIMESTAMP NULL ,
@@ -366,7 +354,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_CRITERIA_PROPERTIES (
CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS (
ID INT NOT NULL AUTO_INCREMENT,
DEVICE_ID INT NOT NULL,
- ENROLMENT_ID INT(11) NOT NULL,
+ ENROLMENT_ID INT NOT NULL,
POLICY_ID INT NOT NULL,
TENANT_ID INT NOT NULL,
STATUS INT NULL,
@@ -381,7 +369,7 @@ CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT (
ID INT NOT NULL AUTO_INCREMENT,
POLICY_ID INT NOT NULL,
DEVICE_TYPE VARCHAR(300) NOT NULL ,
- TENANT_ID INT(11) NOT NULL,
+ TENANT_ID INT NOT NULL,
PRIMARY KEY (ID)
);
@@ -410,7 +398,7 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
LOCATION_URL VARCHAR(100) DEFAULT NULL,
IMAGE_URL VARCHAR(100) DEFAULT NULL,
APP_PROPERTIES BLOB NULL,
- MEMORY_USAGE INTEGER(10) NULL,
+ MEMORY_USAGE INTEGER NULL,
IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE,
DEVICE_ID INTEGER NOT NULL,
ENROLMENT_ID INTEGER NOT NULL,
@@ -430,6 +418,16 @@ CREATE TABLE IF NOT EXISTS DM_APPLICATION (
-- POLICY RELATED TABLES FINISHED --
+CREATE TABLE IF NOT EXISTS DM_APP_ICONS (
+ ID INTEGER AUTO_INCREMENT NOT NULL,
+ ICON_PATH VARCHAR(150) DEFAULT NULL,
+ PACKAGE_NAME VARCHAR(150) NOT NULL,
+ VERSION VARCHAR(50) DEFAULT '1.1.0',
+ CREATED_TIMESTAMP TIMESTAMP NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID)
+);
+
-- NOTIFICATION TABLE --
CREATE TABLE IF NOT EXISTS DM_NOTIFICATION (
NOTIFICATION_ID INTEGER AUTO_INCREMENT NOT NULL,
@@ -479,7 +477,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_LOCATION (
STATE VARCHAR(45) NULL,
COUNTRY VARCHAR(45) NULL,
GEO_HASH VARCHAR(45) NULL,
- UPDATE_TIMESTAMP BIGINT(15) NOT NULL,
+ UPDATE_TIMESTAMP BIGINT NOT NULL,
ALTITUDE DOUBLE NULL,
SPEED FLOAT NULL,
BEARING FLOAT NULL,
@@ -516,8 +514,8 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL (
CPU_USAGE DECIMAL(5) NULL,
TOTAL_RAM_MEMORY DECIMAL(30,3) NULL,
AVAILABLE_RAM_MEMORY DECIMAL(30,3) NULL,
- PLUGGED_IN INT(1) NULL,
- UPDATE_TIMESTAMP BIGINT(15) NOT NULL,
+ PLUGGED_IN INT NULL,
+ UPDATE_TIMESTAMP BIGINT NOT NULL,
PRIMARY KEY (ID),
CONSTRAINT FK_DM_DEVICE_DETAILS_DEVICE
FOREIGN KEY (DEVICE_ID)
@@ -544,7 +542,7 @@ CREATE TABLE IF NOT EXISTS DM_DEVICE_HISTORY_LAST_SEVEN_DAYS
LONGITUDE DOUBLE NULL,
SPEED FLOAT NULL,
HEADING FLOAT NULL,
- TIMESTAMP BIGINT(15) NOT NULL,
+ TIMESTAMP BIGINT NOT NULL,
GEO_HASH VARCHAR(45) NULL,
DEVICE_OWNER VARCHAR(45) NULL,
DEVICE_ALTITUDE DOUBLE NULL,
@@ -613,8 +611,7 @@ CREATE TABLE IF NOT EXISTS DM_OTP_DATA (
CREATED_AT TIMESTAMP NOT NULL,
EXPIRY_TIME INT NOT NULL DEFAULT 3600,
IS_EXPIRED BOOLEAN DEFAULT false,
- PRIMARY KEY (ID),
- CONSTRAINT email_type_uk UNIQUE (EMAIL, EMAIL_TYPE)
+ PRIMARY KEY (ID)
);
-- END OF DM_OTP_DATA TABLE --
@@ -748,24 +745,6 @@ CREATE TABLE IF NOT EXISTS DM_GEOFENCE_EVENT_MAPPING (
DM_DEVICE_EVENT (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
);
-/*
- * Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
- *
- * Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-- END OF DM_GEOFENCE_GROUP_MAPPING TABLE--
-- DM_EXT_GROUP_MAPPING TABLE--
@@ -796,3 +775,66 @@ CREATE TABLE IF NOT EXISTS DM_EXT_PERMISSION_MAPPING (
TRACCAR_USER_ID INT DEFAULT 0
);
-- END OF DM_EXT_PERMISSION_MAPPING TABLE--
+
+-- DYNAMIC TASK TABLES--
+CREATE TABLE IF NOT EXISTS DYNAMIC_TASK (
+ DYNAMIC_TASK_ID INTEGER AUTO_INCREMENT NOT NULL,
+ NAME VARCHAR(300) DEFAULT NULL ,
+ CRON VARCHAR(8000) DEFAULT NULL,
+ IS_ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
+ TASK_CLASS_NAME VARCHAR(8000) DEFAULT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ PRIMARY KEY (DYNAMIC_TASK_ID)
+);
+
+CREATE TABLE IF NOT EXISTS DYNAMIC_TASK_PROPERTIES (
+ DYNAMIC_TASK_ID INTEGER NOT NULL,
+ PROPERTY_NAME VARCHAR(100) DEFAULT 0,
+ PROPERTY_VALUE VARCHAR(100) DEFAULT NULL,
+ TENANT_ID VARCHAR(100),
+ PRIMARY KEY (DYNAMIC_TASK_ID, PROPERTY_NAME, TENANT_ID),
+ CONSTRAINT FK_DYNAMIC_TASK_TASK_PROPERTIES FOREIGN KEY (DYNAMIC_TASK_ID) REFERENCES
+ DYNAMIC_TASK (DYNAMIC_TASK_ID) ON DELETE CASCADE ON UPDATE CASCADE
+);
+-- END OF DYNAMIC TASK TABLE--
+
+-- DM_DEVICE_SUB_TYPE TABLE--
+CREATE TABLE IF NOT EXISTS DM_DEVICE_SUB_TYPE (
+ TENANT_ID INT DEFAULT 0,
+ SUB_TYPE_ID VARCHAR(45) NOT NULL,
+ DEVICE_TYPE VARCHAR(25) NOT NULL,
+ SUB_TYPE_NAME VARCHAR(45) NOT NULL,
+ TYPE_DEFINITION TEXT NOT NULL,
+ PRIMARY KEY (SUB_TYPE_ID,DEVICE_TYPE)
+);
+-- END OF DM_DEVICE_SUB_TYPE TABLE--
+
+-- DM_TRACCAR_UNSYNCED_DEVICES TABLE --
+CREATE TABLE IF NOT EXISTS DM_TRACCAR_UNSYNCED_DEVICES (
+ ID INT NOT NULL AUTO_INCREMENT,
+ DEVICE_NAME VARCHAR(100) NOT NULL,
+ IOTS_DEVICE_IDENTIFIER VARCHAR(300) DEFAULT NULL UNIQUE,
+ TRACCAR_DEVICE_UNIQUE_ID INT NOT NULL,
+ TRACCAR_USENAME VARCHAR(100) NULL,
+ STATUS VARCHAR(100) NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ PRIMARY KEY (ID)
+);
+-- END OF DM_TRACCAR_UNSYNCED_DEVICES TABLE --
+
+-- SUB_OPERATION_TEMPLATE TABLE--
+CREATE TABLE IF NOT EXISTS SUB_OPERATION_TEMPLATE (
+ SUB_OPERATION_TEMPLATE_ID INT NOT NULL AUTO_INCREMENT,
+ OPERATION_DEFINITION TEXT NOT NULL,
+ OPERATION_CODE VARCHAR(100) NOT NULL,
+ SUB_TYPE_ID INT NOT NULL,
+ DEVICE_TYPE VARCHAR(25) NOT NULL,
+ CREATE_TIMESTAMP TIMESTAMP NULL DEFAULT NULL,
+ UPDATE_TIMESTAMP TIMESTAMP NULL DEFAULT NULL,
+ PRIMARY KEY (SUB_OPERATION_TEMPLATE_ID),
+ CONSTRAINT uk_sub_operation_template UNIQUE (SUB_TYPE_ID, OPERATION_CODE, DEVICE_TYPE),
+-- UNIQUE KEY SUB_OPERATION_TEMPLATE (SUB_TYPE_ID, OPERATION_CODE, DEVICE_TYPE),
+ CONSTRAINT fk_SUB_OPERATION_TEMPLATE_DM_DEVICE_SUB_TYPE FOREIGN KEY (SUB_TYPE_ID, DEVICE_TYPE) REFERENCES DM_DEVICE_SUB_TYPE (SUB_TYPE_ID, DEVICE_TYPE)
+);
+
+-- END OF SUB_OPERATION_TEMPLATE TABLE--