diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml
index c7828d37..cee5578e 100644
--- a/modules/distribution/pom.xml
+++ b/modules/distribution/pom.xml
@@ -316,7 +316,7 @@
+ file="${basedir}/src/repository/resources/dbscripts/apimgt/h2.sql"/>
diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml
index 3f73b0ad..cbba82c8 100644
--- a/modules/distribution/src/assembly/bin.xml
+++ b/modules/distribution/src/assembly/bin.xml
@@ -277,7 +277,7 @@
- ../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/apimgt
+ src/repository/resources/dbscripts/apimgt
${pom.artifactId}-${pom.version}/dbscripts/apimgt
@@ -469,6 +469,7 @@
**/saml1-assertion-config
**/msg-mgt.properties
**/entitlement.properties
+ **/EndpointConfig.properties
diff --git a/modules/distribution/src/repository/resources/dbscripts/apimgt/h2-sample-data.sql b/modules/distribution/src/repository/resources/dbscripts/apimgt/h2-sample-data.sql
new file mode 100644
index 00000000..2e83b858
--- /dev/null
+++ b/modules/distribution/src/repository/resources/dbscripts/apimgt/h2-sample-data.sql
@@ -0,0 +1,61 @@
+DELETE FROM AM_SUBSCRIPTION_KEY_MAPPING;
+DELETE FROM AM_APPLICATION_KEY_MAPPING;
+DELETE FROM AM_SUBSCRIPTION ;
+DELETE FROM AM_APPLICATION ;
+DELETE FROM AM_SUBSCRIBER;
+DELETE FROM AM_API;
+DELETE FROM IDN_OAUTH2_ACCESS_TOKEN ;
+DELETE FROM IDN_OAUTH_CONSUMER_APPS;
+
+ALTER TABLE AM_SUBSCRIBER ALTER COLUMN SUBSCRIBER_ID RESTART WITH 1;
+ALTER TABLE AM_APPLICATION ALTER COLUMN APPLICATION_ID RESTART WITH 100;
+ALTER TABLE AM_API ALTER COLUMN API_ID RESTART WITH 500;
+ALTER TABLE AM_SUBSCRIPTION ALTER COLUMN SUBSCRIPTION_ID RESTART WITH 1000;
+
+INSERT INTO AM_SUBSCRIBER ( USER_ID , TENANT_ID , EMAIL_ADDRESS , DATE_SUBSCRIBED ) VALUES ('SUMEDHA',-1234,'SUMEDHA@WSO2.COM','2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIBER ( USER_ID , TENANT_ID , EMAIL_ADDRESS , DATE_SUBSCRIBED ) VALUES ('PRABATH',-1234,'PRABATH@WSO2.COM','2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIBER ( USER_ID , TENANT_ID , EMAIL_ADDRESS , DATE_SUBSCRIBED ) VALUES ('THILINA',-1234,'THILINA@WSO2.COM','2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIBER ( USER_ID , TENANT_ID , EMAIL_ADDRESS , DATE_SUBSCRIBED ) VALUES ('UDAYANGA',-1234,'UDAYANGA@WSO2.COM','2012-03-05 12:10:11');
+
+
+INSERT INTO AM_APPLICATION (NAME,SUBSCRIBER_ID ) VALUES ('APPLICATION1',1);
+INSERT INTO AM_APPLICATION (NAME,SUBSCRIBER_ID ) VALUES ('APPLICATION2',1);
+INSERT INTO AM_APPLICATION (NAME,SUBSCRIBER_ID ) VALUES ('APPLICATION3',2);
+INSERT INTO AM_APPLICATION (NAME,SUBSCRIBER_ID ) VALUES ('APPLICATION4',2);
+INSERT INTO AM_APPLICATION (NAME,SUBSCRIBER_ID ) VALUES ('APPLICATION5',3);
+INSERT INTO AM_APPLICATION (NAME,SUBSCRIBER_ID ) VALUES ('DeliciousApp',4);
+
+INSERT INTO AM_API (API_PROVIDER,API_NAME,API_VERSION,CONTEXT) VALUES ('SUMEDHA', 'API1', 'V1.0.0','/context1');
+INSERT INTO AM_API (API_PROVIDER,API_NAME,API_VERSION,CONTEXT) VALUES ('PRABATH', 'API2', 'V1.0.0','/deli2');
+INSERT INTO AM_API (API_PROVIDER,API_NAME,API_VERSION,CONTEXT) VALUES ('ADMIN', 'API3', 'V1.0.0','/test');
+INSERT INTO AM_API (API_PROVIDER,API_NAME,API_VERSION,CONTEXT) VALUES ('DEL', 'Delicious', '1.0.0','/deli');
+
+INSERT INTO AM_SUBSCRIPTION ( TIER_ID , API_ID , APPLICATION_ID , LAST_ACCESSED ) VALUES ('T1',500,100,'2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIPTION ( TIER_ID , API_ID , APPLICATION_ID , LAST_ACCESSED ) VALUES ('T1',501,101,'2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIPTION ( TIER_ID , API_ID , APPLICATION_ID , LAST_ACCESSED ) VALUES ('T1',500,102,'2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIPTION ( TIER_ID , API_ID , APPLICATION_ID , LAST_ACCESSED ) VALUES ('T1',502,103,'2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIPTION ( TIER_ID , API_ID , APPLICATION_ID , LAST_ACCESSED ) VALUES ('T1',501,104,'2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIPTION ( TIER_ID , API_ID , APPLICATION_ID , LAST_ACCESSED ) VALUES ('T1',503,105,'2012-03-05 12:10:11');
+INSERT INTO AM_SUBSCRIPTION ( TIER_ID , API_ID , APPLICATION_ID , LAST_ACCESSED ) VALUES ('T1',501,102,'2012-03-05 12:10:11');
+
+INSERT INTO AM_SUBSCRIPTION_KEY_MAPPING (SUBSCRIPTION_ID, ACCESS_TOKEN, KEY_TYPE) VALUES (1000, 'SSDCHEJJ-AWUIS-232', 'PRODUCTION');
+INSERT INTO AM_SUBSCRIPTION_KEY_MAPPING (SUBSCRIPTION_ID, ACCESS_TOKEN, KEY_TYPE) VALUES (1001, 'a1b2c3d4', 'SANDBOX');
+INSERT INTO AM_SUBSCRIPTION_KEY_MAPPING (SUBSCRIPTION_ID, ACCESS_TOKEN, KEY_TYPE) VALUES (1002, 'p1q2r3s4', 'PRODUCTION');
+
+INSERT INTO AM_APPLICATION_KEY_MAPPING (APPLICATION_ID, CONSUMER_KEY, KEY_TYPE) VALUES (100, 'CON1', 'PRODUCTION');
+INSERT INTO AM_APPLICATION_KEY_MAPPING (APPLICATION_ID, CONSUMER_KEY, KEY_TYPE) VALUES (100, 'CON2', 'SANDBOX');
+INSERT INTO AM_APPLICATION_KEY_MAPPING (APPLICATION_ID, CONSUMER_KEY, KEY_TYPE) VALUES (101, 'CON3', 'PRODUCTION');
+
+INSERT INTO IDN_OAUTH_CONSUMER_APPS ( APP_NAME , CALLBACK_URL , CONSUMER_KEY , CONSUMER_SECRET ,OAUTH_VERSION , TENANT_ID , USERNAME ) VALUES (NULL,NULL,'CON1','MY PEN','2.0',0,'PRABATH');
+INSERT INTO IDN_OAUTH_CONSUMER_APPS ( APP_NAME , CALLBACK_URL , CONSUMER_KEY , CONSUMER_SECRET ,OAUTH_VERSION , TENANT_ID , USERNAME ) VALUES (NULL,NULL,'CON2','MY PEN','2.0',0,'PRABATH');
+INSERT INTO IDN_OAUTH_CONSUMER_APPS ( APP_NAME , CALLBACK_URL , CONSUMER_KEY , CONSUMER_SECRET ,OAUTH_VERSION , TENANT_ID , USERNAME ) VALUES (NULL,NULL,'CON3','MY PEN','2.0',0,'admin');
+
+INSERT INTO IDN_OAUTH2_ACCESS_TOKEN ( ACCESS_TOKEN ,AUTHZ_USER , USER_TYPE , CONSUMER_KEY , REFRESH_TOKEN ,TIME_CREATED , TOKEN_SCOPE , TOKEN_STATE ,VALIDITY_PERIOD ) VALUES ('a1b2c3d4','UDAYANGA','DEVELOPER','CON1',NULL,'2012-01-01','SANDBOX','ACTIVE',1343714931875);
+INSERT INTO IDN_OAUTH2_ACCESS_TOKEN ( ACCESS_TOKEN ,AUTHZ_USER , USER_TYPE , CONSUMER_KEY , REFRESH_TOKEN ,TIME_CREATED , TOKEN_SCOPE , TOKEN_STATE ,VALIDITY_PERIOD ) VALUES ('p1q2r3s4','UDAYANGA','DEVELOPER','CON1',NULL,'2012-01-01','PRODUCTION','ACTIVE',1343714931875);
+INSERT INTO IDN_OAUTH2_ACCESS_TOKEN ( ACCESS_TOKEN ,AUTHZ_USER , USER_TYPE , CONSUMER_KEY , REFRESH_TOKEN ,TIME_CREATED , TOKEN_SCOPE , TOKEN_STATE ,VALIDITY_PERIOD ) VALUES ('test1','UDAYANGA','DEVELOPER','CON1',NULL,'2012-01-01','PRODUCTION','ACTIVE',1343714931875);
+INSERT INTO IDN_OAUTH2_ACCESS_TOKEN ( ACCESS_TOKEN ,AUTHZ_USER , USER_TYPE , CONSUMER_KEY , REFRESH_TOKEN ,TIME_CREATED , TOKEN_SCOPE , TOKEN_STATE ,VALIDITY_PERIOD ) VALUES ('test2','UDAYANGA','DEVELOPER','CON2',NULL,'2012-01-01','SANDBOX','ACTIVE',1343714931875);
+INSERT INTO IDN_OAUTH2_ACCESS_TOKEN ( ACCESS_TOKEN ,AUTHZ_USER , USER_TYPE , CONSUMER_KEY , REFRESH_TOKEN ,TIME_CREATED , TOKEN_SCOPE , TOKEN_STATE ,VALIDITY_PERIOD ) VALUES ('test3','UDAYANGA','DEVELOPER','CON3',NULL,'2012-01-01','PRODUCTION','ACTIVE',3600);
+
+SELECT * FROM AM_SUBSCRIBER;
+SELECT * FROM AM_APPLICATION;
+SELECT * FROM AM_SUBSCRIPTION;
diff --git a/modules/distribution/src/repository/resources/dbscripts/apimgt/h2.sql b/modules/distribution/src/repository/resources/dbscripts/apimgt/h2.sql
new file mode 100644
index 00000000..60d557f6
--- /dev/null
+++ b/modules/distribution/src/repository/resources/dbscripts/apimgt/h2.sql
@@ -0,0 +1,779 @@
+-- Start of IDN Tables --
+CREATE TABLE IF NOT EXISTS IDN_BASE_TABLE (
+ PRODUCT_NAME VARCHAR (20),
+ PRIMARY KEY (PRODUCT_NAME)
+);
+
+INSERT INTO IDN_BASE_TABLE values ('WSO2 Identity Server');
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH_CONSUMER_APPS (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ CONSUMER_KEY VARCHAR (255),
+ CONSUMER_SECRET VARCHAR (512),
+ USERNAME VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT 0,
+ USER_DOMAIN VARCHAR(50),
+ APP_NAME VARCHAR (255),
+ OAUTH_VERSION VARCHAR (128),
+ CALLBACK_URL VARCHAR (1024),
+ GRANT_TYPES VARCHAR (1024),
+ CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_REQUEST_TOKEN (
+ REQUEST_TOKEN VARCHAR (512),
+ REQUEST_TOKEN_SECRET VARCHAR (512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR (1024),
+ SCOPE VARCHAR(2048),
+ AUTHORIZED VARCHAR (128),
+ OAUTH_VERIFIER VARCHAR (512),
+ AUTHZ_USER VARCHAR (512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (REQUEST_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_ACCESS_TOKEN (
+ ACCESS_TOKEN VARCHAR (512),
+ ACCESS_TOKEN_SECRET VARCHAR (512),
+ CONSUMER_KEY_ID INTEGER,
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR (512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ACCESS_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
+ TOKEN_ID VARCHAR (255),
+ ACCESS_TOKEN VARCHAR (255),
+ REFRESH_TOKEN VARCHAR (255),
+ CONSUMER_KEY_ID INTEGER,
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ USER_TYPE VARCHAR (25),
+ GRANT_TYPE VARCHAR (50),
+ TIME_CREATED TIMESTAMP DEFAULT 0,
+ REFRESH_TOKEN_TIME_CREATED TIMESTAMP DEFAULT 0,
+ VALIDITY_PERIOD BIGINT,
+ REFRESH_TOKEN_VALIDITY_PERIOD BIGINT,
+ TOKEN_SCOPE_HASH VARCHAR (32),
+ TOKEN_STATE VARCHAR (25) DEFAULT 'ACTIVE',
+ TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
+ PRIMARY KEY (TOKEN_ID),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
+ CONSTRAINT CON_APP_KEY UNIQUE (CONSUMER_KEY_ID,AUTHZ_USER,TENANT_ID,USER_DOMAIN,USER_TYPE,TOKEN_SCOPE_HASH,
+ TOKEN_STATE,TOKEN_STATE_ID)
+);
+
+CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER, TOKEN_STATE, USER_TYPE);
+
+CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
+ AUTHORIZATION_CODE VARCHAR (512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR (1024),
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD BIGINT,
+ STATE VARCHAR (25) DEFAULT 'ACTIVE',
+ TOKEN_ID VARCHAR(255),
+ PRIMARY KEY (AUTHORIZATION_CODE),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
+ TOKEN_ID VARCHAR (255),
+ TOKEN_SCOPE VARCHAR (60),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (TOKEN_ID, TOKEN_SCOPE),
+ FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE (
+ SCOPE_ID INTEGER NOT NULL AUTO_INCREMENT,
+ SCOPE_KEY VARCHAR(100) NOT NULL,
+ NAME VARCHAR(255) NULL,
+ DESCRIPTION VARCHAR(512) NULL,
+ TENANT_ID INTEGER NOT NULL DEFAULT 0,
+ ROLES VARCHAR (500) NULL,
+ PRIMARY KEY (SCOPE_ID)
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_RESOURCE_SCOPE (
+ RESOURCE_PATH VARCHAR(255) NOT NULL,
+ SCOPE_ID INTEGER (11) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RESOURCE_PATH),
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID)
+);
+
+CREATE TABLE IF NOT EXISTS IDN_SCIM_GROUP (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ ROLE_NAME VARCHAR(255) NOT NULL,
+ ATTR_NAME VARCHAR(1024) NOT NULL,
+ ATTR_VALUE VARCHAR(1024),
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OPENID_REMEMBER_ME (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ COOKIE_VALUE VARCHAR(1024),
+ CREATED_TIME TIMESTAMP,
+ PRIMARY KEY (USER_NAME, TENANT_ID)
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OPENID_USER_RPS (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ RP_URL VARCHAR(255) NOT NULL,
+ TRUSTED_ALWAYS VARCHAR(128) DEFAULT 'FALSE',
+ LAST_VISIT DATE NOT NULL,
+ VISIT_COUNT INTEGER DEFAULT 0,
+ DEFAULT_PROFILE_NAME VARCHAR(255) DEFAULT 'DEFAULT',
+ PRIMARY KEY (USER_NAME, TENANT_ID, RP_URL)
+);
+
+CREATE TABLE IF NOT EXISTS IDN_OPENID_ASSOCIATIONS (
+ HANDLE VARCHAR(255) NOT NULL,
+ ASSOC_TYPE VARCHAR(255) NOT NULL,
+ EXPIRE_IN TIMESTAMP NOT NULL,
+ MAC_KEY VARCHAR(255) NOT NULL,
+ ASSOC_STORE VARCHAR(128) DEFAULT 'SHARED',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (HANDLE)
+);
+
+CREATE TABLE IDN_STS_STORE (
+ ID INTEGER AUTO_INCREMENT,
+ TOKEN_ID VARCHAR(255) NOT NULL,
+ TOKEN_CONTENT BLOB NOT NULL,
+ CREATE_DATE TIMESTAMP NOT NULL,
+ EXPIRE_DATE TIMESTAMP NOT NULL,
+ STATE INTEGER DEFAULT 0,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IDN_IDENTITY_USER_DATA (
+ TENANT_ID INTEGER DEFAULT -1234,
+ USER_NAME VARCHAR(255) NOT NULL,
+ DATA_KEY VARCHAR(255) NOT NULL,
+ DATA_VALUE VARCHAR(255),
+ PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
+);
+
+CREATE TABLE IDN_IDENTITY_META_DATA (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ METADATA_TYPE VARCHAR(255) NOT NULL,
+ METADATA VARCHAR(255) NOT NULL,
+ VALID VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, USER_NAME, METADATA_TYPE,METADATA)
+);
+
+CREATE TABLE IF NOT EXISTS IDN_THRIFT_SESSION (
+ SESSION_ID VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ CREATED_TIME VARCHAR(255) NOT NULL,
+ LAST_MODIFIED_TIME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID)
+);
+
+CREATE TABLE IDN_AUTH_SESSION_STORE (
+ SESSION_ID VARCHAR (100) NOT NULL,
+ SESSION_TYPE VARCHAR(100) NOT NULL,
+ OPERATION VARCHAR(10) NOT NULL,
+ SESSION_OBJECT BLOB,
+ TIME_CREATED BIGINT,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID, SESSION_TYPE, TIME_CREATED, OPERATION)
+);
+CREATE TABLE IF NOT EXISTS SP_APP (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ APP_NAME VARCHAR (255) NOT NULL ,
+ USER_STORE VARCHAR (255) NOT NULL,
+ USERNAME VARCHAR (255) NOT NULL ,
+ DESCRIPTION VARCHAR (1024),
+ ROLE_CLAIM VARCHAR (512),
+ AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROVISIONING_USERSTORE_DOMAIN VARCHAR (512),
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '1',
+ IS_SEND_LOCAL_SUBJECT_ID CHAR(1) DEFAULT '0',
+ IS_SEND_AUTH_LIST_OF_IDPS CHAR(1) DEFAULT '0',
+ IS_USE_TENANT_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ IS_USE_USER_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ SUBJECT_CLAIM_URI VARCHAR (512),
+ IS_SAAS_APP CHAR(1) DEFAULT '0',
+ IS_DUMB_MODE CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_APP ADD CONSTRAINT APPLICATION_NAME_CONSTRAINT UNIQUE(APP_NAME, TENANT_ID);
+
+CREATE TABLE IF NOT EXISTS SP_METADATA (
+ ID INTEGER AUTO_INCREMENT,
+ SP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT SP_METADATA_CONSTRAINT UNIQUE (SP_ID, NAME),
+ FOREIGN KEY (SP_ID) REFERENCES SP_APP(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS SP_INBOUND_AUTH (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ INBOUND_AUTH_KEY VARCHAR (255) NOT NULL,
+ INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROP_NAME VARCHAR (255),
+ PROP_VALUE VARCHAR (1024) ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_INBOUND_AUTH ADD CONSTRAINT APPLICATION_ID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_AUTH_STEP (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ STEP_ORDER INTEGER DEFAULT 1,
+ APP_ID INTEGER NOT NULL ,
+ IS_SUBJECT_STEP CHAR(1) DEFAULT '0',
+ IS_ATTRIBUTE_STEP CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_AUTH_STEP ADD CONSTRAINT APPLICATION_ID_CONSTRAINT_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_FEDERATED_IDP (
+ ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID, AUTHENTICATOR_ID));
+
+ALTER TABLE SP_FEDERATED_IDP ADD CONSTRAINT STEP_ID_CONSTRAINT FOREIGN KEY (ID) REFERENCES SP_AUTH_STEP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_CLAIM_MAPPING (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_CLAIM VARCHAR (512) NOT NULL ,
+ SP_CLAIM VARCHAR (512) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ DEFAULT_VALUE VARCHAR(255),
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_CLAIM_MAPPING ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_ROLE_MAPPING (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_ROLE VARCHAR (255) NOT NULL ,
+ SP_ROLE VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_ROLE_MAPPING ADD CONSTRAINT ROLEID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_REQ_PATH_AUTHENTICATOR (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_REQ_PATH_AUTHENTICATOR ADD CONSTRAINT REQ_AUTH_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_PROVISIONING_CONNECTOR (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_NAME VARCHAR (255) NOT NULL ,
+ CONNECTOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
+ BLOCKING CHAR(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS IDP (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ NAME VARCHAR(254) NOT NULL,
+ IS_ENABLED CHAR(1) NOT NULL DEFAULT '1',
+ IS_PRIMARY CHAR(1) NOT NULL DEFAULT '0',
+ HOME_REALM_ID VARCHAR(254),
+ IMAGE MEDIUMBLOB,
+ CERTIFICATE BLOB,
+ ALIAS VARCHAR(254),
+ INBOUND_PROV_ENABLED CHAR (1) NOT NULL DEFAULT '0',
+ INBOUND_PROV_USER_STORE_ID VARCHAR(254),
+ USER_CLAIM_URI VARCHAR(254),
+ ROLE_CLAIM_URI VARCHAR(254),
+ DESCRIPTION VARCHAR (1024),
+ DEFAULT_AUTHENTICATOR_NAME VARCHAR(254),
+ DEFAULT_PRO_CONNECTOR_NAME VARCHAR(254),
+ PROVISIONING_ROLE VARCHAR(128),
+ IS_FEDERATION_HUB CHAR(1) NOT NULL DEFAULT '0',
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) NOT NULL DEFAULT '0',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, NAME));
+
+INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost');
+
+CREATE TABLE IF NOT EXISTS IDP_ROLE (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ ROLE VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, ROLE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDP_ROLE_MAPPING (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ROLE_ID INTEGER,
+ TENANT_ID INTEGER,
+ USER_STORE_ID VARCHAR (253),
+ LOCAL_ROLE VARCHAR(253),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ROLE_ID, TENANT_ID, USER_STORE_ID, LOCAL_ROLE),
+ FOREIGN KEY (IDP_ROLE_ID) REFERENCES IDP_ROLE(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDP_CLAIM (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ CLAIM VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, CLAIM),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDP_CLAIM_MAPPING (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_CLAIM_ID INTEGER,
+ TENANT_ID INTEGER,
+ LOCAL_CLAIM VARCHAR(253),
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_CLAIM_ID, TENANT_ID, LOCAL_CLAIM),
+ FOREIGN KEY (IDP_CLAIM_ID) REFERENCES IDP_CLAIM(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'samlsso');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'IDPProperties');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'passivests');
+
+CREATE TABLE IF NOT EXISTS IDP_METADATA (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT IDP_METADATA_CONSTRAINT UNIQUE (IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'SessionIdleTimeout', '20160', 'Session Idle Timeout');
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'RememberMeTimeout', '15', 'RememberMe Timeout');
+
+CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR_PROPERTY (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ AUTHENTICATOR_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2047),
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY),
+ FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 1 , 'IdPEntityId', 'localhost', '0');
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 3 , 'IdPEntityId', 'localhost', '0');
+
+CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_CONFIG (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '0',
+ IS_BLOCKING CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, PROVISIONING_CONNECTOR_TYPE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDP_PROV_CONFIG_PROPERTY (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2048),
+ PROPERTY_BLOB_VALUE BLOB,
+ PROPERTY_TYPE CHAR(32) NOT NULL,
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, PROVISIONING_CONFIG_ID, PROPERTY_KEY),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_ENTITY (
+ ID INTEGER AUTO_INCREMENT,
+ PROVISIONING_CONFIG_ID INTEGER,
+ ENTITY_TYPE VARCHAR(255) NOT NULL,
+ ENTITY_LOCAL_USERSTORE VARCHAR(255) NOT NULL,
+ ENTITY_NAME VARCHAR(255) NOT NULL,
+ ENTITY_VALUE VARCHAR(255),
+ TENANT_ID INTEGER,
+ ENTITY_LOCAL_ID VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (ENTITY_TYPE, TENANT_ID, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, PROVISIONING_CONFIG_ID),
+ UNIQUE (PROVISIONING_CONFIG_ID, ENTITY_TYPE, ENTITY_VALUE),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDP_LOCAL_CLAIM (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ CLAIM_URI VARCHAR(255) NOT NULL,
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, CLAIM_URI),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+CREATE TABLE IF NOT EXISTS IDN_ASSOCIATED_ID (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ IDP_ID INTEGER NOT NULL,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (ID),
+ UNIQUE(IDP_USER_ID, TENANT_ID, IDP_ID),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS IDN_USER_ACCOUNT_ASSOCIATION (
+ ASSOCIATION_KEY VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME));
+
+CREATE TABLE IF NOT EXISTS FIDO_DEVICE_STORE (
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(45) NOT NULL,
+ TIME_REGISTERED TIMESTAMP,
+ KEY_HANDLE VARCHAR(200) NOT NULL,
+ DEVICE_DATA LONGVARCHAR NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME, KEY_HANDLE));
+
+CREATE TABLE IF NOT EXISTS WF_REQUEST (
+ UUID VARCHAR (45),
+ CREATED_BY VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ OPERATION_TYPE VARCHAR (50),
+ CREATED_AT TIMESTAMP,
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ REQUEST BLOB,
+ PRIMARY KEY (UUID)
+);
+
+CREATE TABLE IF NOT EXISTS WF_BPS_PROFILE (
+ PROFILE_NAME VARCHAR(45),
+ HOST_URL_MANAGER VARCHAR(45),
+ HOST_URL_WORKER VARCHAR(45),
+ USERNAME VARCHAR(45),
+ PASSWORD VARCHAR(255),
+ CALLBACK_HOST VARCHAR (45),
+ CALLBACK_USERNAME VARCHAR (45),
+ CALLBACK_PASSWORD VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (PROFILE_NAME, TENANT_ID)
+);
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW(
+ ID VARCHAR (45),
+ WF_NAME VARCHAR (45),
+ DESCRIPTION VARCHAR (255),
+ TEMPLATE_ID VARCHAR (45),
+ IMPL_ID VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID)
+);
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW_ASSOCIATION(
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ ASSOC_NAME VARCHAR (45),
+ EVENT_ID VARCHAR(45),
+ ASSOC_CONDITION VARCHAR (2000),
+ WORKFLOW_ID VARCHAR (45),
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW_CONFIG_PARAM(
+ WORKFLOW_ID VARCHAR (45),
+ PARAM_NAME VARCHAR (45),
+ PARAM_VALUE VARCHAR (1000),
+ PARAM_QNAME VARCHAR (45),
+ PARAM_HOLDER VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (WORKFLOW_ID, PARAM_NAME, PARAM_QNAME, PARAM_HOLDER),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS WF_REQUEST_ENTITY_RELATIONSHIP(
+ REQUEST_ID VARCHAR (45),
+ ENTITY_NAME VARCHAR (255),
+ ENTITY_TYPE VARCHAR (50),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(REQUEST_ID, ENTITY_NAME, ENTITY_TYPE, TENANT_ID),
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW_REQUEST_RELATION(
+ RELATIONSHIP_ID VARCHAR (45),
+ WORKFLOW_ID VARCHAR (45),
+ REQUEST_ID VARCHAR (45),
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RELATIONSHIP_ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+);
+
+-- Start of API-MGT Tables --
+
+CREATE TABLE IF NOT EXISTS AM_SUBSCRIBER (
+ SUBSCRIBER_ID INTEGER AUTO_INCREMENT,
+ USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EMAIL_ADDRESS VARCHAR(256) NULL,
+ DATE_SUBSCRIBED TIMESTAMP NOT NULL,
+ PRIMARY KEY (SUBSCRIBER_ID),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ UNIQUE (TENANT_ID,USER_ID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_APPLICATION (
+ APPLICATION_ID INTEGER AUTO_INCREMENT,
+ NAME VARCHAR(100),
+ SUBSCRIBER_ID INTEGER,
+ APPLICATION_TIER VARCHAR(50) DEFAULT 'Unlimited',
+ CALLBACK_URL VARCHAR(512),
+ DESCRIPTION VARCHAR(512),
+ APPLICATION_STATUS VARCHAR(50) DEFAULT 'APPROVED',
+ GROUP_ID VARCHAR(100),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ UUID VARCHAR(256),
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(APPLICATION_ID),
+ UNIQUE (NAME,SUBSCRIBER_ID),
+ UNIQUE (UUID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_API (
+ API_ID INTEGER AUTO_INCREMENT,
+ API_PROVIDER VARCHAR(256),
+ API_NAME VARCHAR(256),
+ API_VERSION VARCHAR(30),
+ CONTEXT VARCHAR(256),
+ CONTEXT_TEMPLATE VARCHAR(256),
+ PRIMARY KEY(API_ID),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ UNIQUE (API_PROVIDER,API_NAME,API_VERSION)
+);
+
+CREATE TABLE IF NOT EXISTS AM_API_URL_MAPPING (
+ URL_MAPPING_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER NOT NULL,
+ HTTP_METHOD VARCHAR(20) NULL,
+ AUTH_SCHEME VARCHAR(50) NULL,
+ URL_PATTERN VARCHAR(512) NULL,
+ THROTTLING_TIER varchar(512) DEFAULT NULL,
+ MEDIATION_SCRIPT BLOB DEFAULT NULL,
+ PRIMARY KEY(URL_MAPPING_ID)
+);
+
+
+CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION (
+ SUBSCRIPTION_ID INTEGER AUTO_INCREMENT,
+ TIER_ID VARCHAR(50),
+ API_ID INTEGER,
+ LAST_ACCESSED TIMESTAMP NULL,
+ APPLICATION_ID INTEGER,
+ SUB_STATUS VARCHAR(50),
+ SUBS_CREATE_STATE VARCHAR(50) DEFAULT 'SUBSCRIBE',
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ UUID VARCHAR(256),
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (SUBSCRIPTION_ID),
+ UNIQUE (UUID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION_KEY_MAPPING (
+ SUBSCRIPTION_ID INTEGER,
+ ACCESS_TOKEN VARCHAR(512),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
+);
+
+CREATE TABLE IF NOT EXISTS AM_APPLICATION_KEY_MAPPING (
+ APPLICATION_ID INTEGER,
+ CONSUMER_KEY VARCHAR(512),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ STATE VARCHAR(30) NOT NULL,
+ CREATE_MODE VARCHAR(30) DEFAULT 'CREATED',
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(APPLICATION_ID,KEY_TYPE)
+);
+
+CREATE TABLE IF NOT EXISTS AM_API_LC_EVENT (
+ EVENT_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER NOT NULL,
+ PREVIOUS_STATE VARCHAR(50),
+ NEW_STATE VARCHAR(50) NOT NULL,
+ USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EVENT_DATE TIMESTAMP NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (EVENT_ID)
+);
+
+CREATE TABLE AM_APP_KEY_DOMAIN_MAPPING (
+ CONSUMER_KEY VARCHAR(255),
+ AUTHZ_DOMAIN VARCHAR(255) DEFAULT 'ALL',
+ PRIMARY KEY (CONSUMER_KEY,AUTHZ_DOMAIN)
+);
+
+CREATE TABLE IF NOT EXISTS AM_API_COMMENTS (
+ COMMENT_ID INTEGER AUTO_INCREMENT,
+ COMMENT_TEXT VARCHAR(512),
+ COMMENTED_USER VARCHAR(255),
+ DATE_COMMENTED TIMESTAMP NOT NULL,
+ API_ID INTEGER NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (COMMENT_ID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_API_RATINGS(
+ RATING_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER,
+ RATING INTEGER,
+ SUBSCRIBER_ID INTEGER,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (RATING_ID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_TIER_PERMISSIONS (
+ TIER_PERMISSIONS_ID INTEGER AUTO_INCREMENT,
+ TIER VARCHAR(50) NOT NULL,
+ PERMISSIONS_TYPE VARCHAR(50) NOT NULL,
+ ROLES VARCHAR(512) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY(TIER_PERMISSIONS_ID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_EXTERNAL_STORES(
+ APISTORE_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER,
+ STORE_ID VARCHAR(255) NOT NULL,
+ STORE_DISPLAY_NAME VARCHAR(255) NOT NULL,
+ STORE_ENDPOINT VARCHAR(255) NOT NULL,
+ STORE_TYPE VARCHAR(255) NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (APISTORE_ID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_WORKFLOWS(
+ WF_ID INTEGER AUTO_INCREMENT,
+ WF_REFERENCE VARCHAR(255) NOT NULL,
+ WF_TYPE VARCHAR(255) NOT NULL,
+ WF_STATUS VARCHAR(255) NOT NULL,
+ WF_CREATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ WF_UPDATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
+ WF_STATUS_DESC VARCHAR(1000),
+ TENANT_ID INTEGER,
+ TENANT_DOMAIN VARCHAR(255),
+ WF_EXTERNAL_REFERENCE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (WF_ID),
+ UNIQUE (WF_EXTERNAL_REFERENCE)
+);
+
+CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
+ REG_ID INT AUTO_INCREMENT,
+ SUBSCRIBER_ID INT,
+ WF_REF VARCHAR(255) NOT NULL,
+ APP_ID INT,
+ TOKEN_TYPE VARCHAR(30),
+ TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
+ INPUTS VARCHAR(1000),
+ ALLOWED_DOMAINS VARCHAR(256),
+ VALIDITY_PERIOD BIGINT,
+ UNIQUE (SUBSCRIBER_ID,APP_ID,TOKEN_TYPE),
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(APP_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (REG_ID)
+);
+
+CREATE TABLE IF NOT EXISTS AM_API_SCOPES (
+ API_ID INTEGER NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ FOREIGN KEY (API_ID) REFERENCES AM_API (API_ID) ON DELETE CASCADE ON UPDATE CASCADE,
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE ON UPDATE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS AM_API_DEFAULT_VERSION (
+ DEFAULT_VERSION_ID INT AUTO_INCREMENT,
+ API_NAME VARCHAR(256) NOT NULL ,
+ API_PROVIDER VARCHAR(256) NOT NULL ,
+ DEFAULT_API_VERSION VARCHAR(30) ,
+ PUBLISHED_DEFAULT_API_VERSION VARCHAR(30) ,
+ PRIMARY KEY (DEFAULT_VERSION_ID)
+);
+
+CREATE INDEX IDX_SUB_APP_ID ON AM_SUBSCRIPTION (APPLICATION_ID, SUBSCRIPTION_ID);
+
+-- End of API-MGT Tables --
diff --git a/modules/distribution/src/repository/resources/dbscripts/apimgt/mssql.sql b/modules/distribution/src/repository/resources/dbscripts/apimgt/mssql.sql
new file mode 100644
index 00000000..3500f4a1
--- /dev/null
+++ b/modules/distribution/src/repository/resources/dbscripts/apimgt/mssql.sql
@@ -0,0 +1,858 @@
+-- Start of IDN Tables --
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_BASE_TABLE]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_BASE_TABLE (
+ PRODUCT_NAME VARCHAR(20),
+ PRIMARY KEY (PRODUCT_NAME)
+);
+
+INSERT INTO IDN_BASE_TABLE values ('WSO2 Identity Server');
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH_CONSUMER_APPS]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
+ ID INTEGER IDENTITY,
+ CONSUMER_KEY VARCHAR(255),
+ CONSUMER_SECRET VARCHAR(512),
+ USERNAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT 0,
+ USER_DOMAIN VARCHAR(50),
+ APP_NAME VARCHAR(255),
+ OAUTH_VERSION VARCHAR(128),
+ CALLBACK_URL VARCHAR(1024),
+ GRANT_TYPES VARCHAR(1024),
+ CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
+ PRIMARY KEY (ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH1A_REQUEST_TOKEN]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH1A_REQUEST_TOKEN (
+ REQUEST_TOKEN VARCHAR(512),
+ REQUEST_TOKEN_SECRET VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR(1024),
+ SCOPE VARCHAR(2048),
+ AUTHORIZED VARCHAR(128),
+ OAUTH_VERIFIER VARCHAR(512),
+ AUTHZ_USER VARCHAR(512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (REQUEST_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH1A_ACCESS_TOKEN]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
+ ACCESS_TOKEN VARCHAR(512),
+ ACCESS_TOKEN_SECRET VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR(512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ACCESS_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH2_ACCESS_TOKEN]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
+ TOKEN_ID VARCHAR (255),
+ ACCESS_TOKEN VARCHAR(255),
+ REFRESH_TOKEN VARCHAR(255),
+ CONSUMER_KEY_ID INTEGER,
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ USER_TYPE VARCHAR (25),
+ GRANT_TYPE VARCHAR (50),
+ TIME_CREATED DATETIME,
+ REFRESH_TOKEN_TIME_CREATED DATETIME,
+ VALIDITY_PERIOD BIGINT,
+ REFRESH_TOKEN_VALIDITY_PERIOD BIGINT,
+ TOKEN_SCOPE_HASH VARCHAR(32),
+ TOKEN_STATE VARCHAR(25) DEFAULT 'ACTIVE',
+ TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
+ PRIMARY KEY (TOKEN_ID),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
+ CONSTRAINT CON_APP_KEY UNIQUE (CONSUMER_KEY_ID,AUTHZ_USER,TENANT_ID,USER_DOMAIN,USER_TYPE,TOKEN_SCOPE_HASH,
+ TOKEN_STATE,TOKEN_STATE_ID)
+);
+
+CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER, TOKEN_STATE, USER_TYPE);
+
+CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
+
+IF EXISTS (SELECT NAME FROM SYSINDEXES WHERE NAME = 'IDX_AT_CK_AU')
+DROP INDEX IDN_OAUTH2_ACCESS_TOKEN.IDX_AT_CK_AU
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH2_AUTHORIZATION_CODE]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
+ AUTHORIZATION_CODE VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR(1024),
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ TIME_CREATED DATETIME,
+ VALIDITY_PERIOD BIGINT,
+ STATE VARCHAR (25) DEFAULT 'ACTIVE',
+ TOKEN_ID VARCHAR(255),
+ PRIMARY KEY (AUTHORIZATION_CODE),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH2_ACCESS_TOKEN_SCOPE]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
+ TOKEN_ID VARCHAR (255),
+ TOKEN_SCOPE VARCHAR (60),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (TOKEN_ID, TOKEN_SCOPE),
+ FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH2_SCOPE]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH2_SCOPE (
+ SCOPE_ID INTEGER IDENTITY,
+ SCOPE_KEY VARCHAR(100) NOT NULL,
+ NAME VARCHAR(255) NULL,
+ DESCRIPTION VARCHAR(512) NULL,
+ TENANT_ID INTEGER NOT NULL DEFAULT 0,
+ ROLES VARCHAR (500) NULL,
+ PRIMARY KEY (SCOPE_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH2_RESOURCE_SCOPE]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OAUTH2_RESOURCE_SCOPE (
+ RESOURCE_PATH VARCHAR(255) NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RESOURCE_PATH),
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_SCIM_GROUP]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_SCIM_GROUP (
+ ID INTEGER IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ ROLE_NAME VARCHAR(255) NOT NULL,
+ ATTR_NAME VARCHAR(1024) NOT NULL,
+ ATTR_VALUE VARCHAR(1024),
+ PRIMARY KEY (ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OPENID_REMEMBER_ME]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OPENID_REMEMBER_ME (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ COOKIE_VALUE VARCHAR(1024),
+ CREATED_TIME DATETIME,
+ PRIMARY KEY (USER_NAME, TENANT_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OPENID_USER_RPS]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OPENID_USER_RPS (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ RP_URL VARCHAR(255) NOT NULL,
+ TRUSTED_ALWAYS VARCHAR(128) DEFAULT 'FALSE',
+ LAST_VISIT DATE NOT NULL,
+ VISIT_COUNT INTEGER DEFAULT 0,
+ DEFAULT_PROFILE_NAME VARCHAR(255) DEFAULT 'DEFAULT',
+ PRIMARY KEY (USER_NAME, TENANT_ID, RP_URL)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OPENID_ASSOCIATIONS]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_OPENID_ASSOCIATIONS (
+ HANDLE VARCHAR(255) NOT NULL,
+ ASSOC_TYPE VARCHAR(255) NOT NULL,
+ EXPIRE_IN DATETIME NOT NULL,
+ MAC_KEY VARCHAR(255) NOT NULL,
+ ASSOC_STORE VARCHAR(128) DEFAULT 'SHARED',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (HANDLE)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_STS_STORE]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_STS_STORE (
+ ID INTEGER IDENTITY,
+ TOKEN_ID VARCHAR(255) NOT NULL,
+ TOKEN_CONTENT VARBINARY(MAX) NOT NULL,
+ CREATE_DATE DATETIME NOT NULL,
+ EXPIRE_DATE DATETIME NOT NULL,
+ STATE INTEGER DEFAULT 0,
+ PRIMARY KEY (ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_IDENTITY_USER_DATA]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_IDENTITY_USER_DATA (
+ TENANT_ID INTEGER DEFAULT -1234,
+ USER_NAME VARCHAR(255) NOT NULL,
+ DATA_KEY VARCHAR(255) NOT NULL,
+ DATA_VALUE VARCHAR(255),
+ PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_IDENTITY_META_DATA]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_IDENTITY_META_DATA (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ METADATA_TYPE VARCHAR(255) NOT NULL,
+ METADATA VARCHAR(255) NOT NULL,
+ VALID VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, USER_NAME, METADATA_TYPE,METADATA)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_THRIFT_SESSION]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_THRIFT_SESSION (
+ SESSION_ID VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ CREATED_TIME VARCHAR(255) NOT NULL,
+ LAST_MODIFIED_TIME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_AUTH_SESSION_STORE]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_AUTH_SESSION_STORE (
+ SESSION_ID VARCHAR (100) NOT NULL,
+ SESSION_TYPE VARCHAR(100) NOT NULL,
+ OPERATION VARCHAR(10) NOT NULL,
+ SESSION_OBJECT VARBINARY(MAX),
+ TIME_CREATED BIGINT,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID, SESSION_TYPE, TIME_CREATED, OPERATION)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_APP]') AND TYPE IN (N'U'))
+CREATE TABLE SP_APP (
+ ID INTEGER NOT NULL IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ APP_NAME VARCHAR (255) NOT NULL ,
+ USER_STORE VARCHAR (255) NOT NULL,
+ USERNAME VARCHAR (255) NOT NULL ,
+ DESCRIPTION VARCHAR (1024),
+ ROLE_CLAIM VARCHAR (512),
+ AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROVISIONING_USERSTORE_DOMAIN VARCHAR (512),
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '1',
+ IS_SEND_LOCAL_SUBJECT_ID CHAR(1) DEFAULT '0',
+ IS_SEND_AUTH_LIST_OF_IDPS CHAR(1) DEFAULT '0',
+ IS_USE_TENANT_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ IS_USE_USER_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ SUBJECT_CLAIM_URI VARCHAR (512),
+ IS_SAAS_APP CHAR(1) DEFAULT '0',
+ IS_DUMB_MODE CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_APP ADD CONSTRAINT APPLICATION_NAME_CONSTRAINT UNIQUE(APP_NAME, TENANT_ID);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_METADATA]') AND TYPE IN (N'U'))
+CREATE TABLE SP_METADATA (
+ ID INTEGER IDENTITY,
+ SP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT SP_METADATA_CONSTRAINT UNIQUE (SP_ID, NAME),
+ FOREIGN KEY (SP_ID) REFERENCES SP_APP(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_INBOUND_AUTH]') AND TYPE IN (N'U'))
+CREATE TABLE SP_INBOUND_AUTH (
+ ID INTEGER NOT NULL IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ INBOUND_AUTH_KEY VARCHAR (255) NOT NULL,
+ INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROP_NAME VARCHAR (255),
+ PROP_VALUE VARCHAR (1024) ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_INBOUND_AUTH ADD CONSTRAINT APPLICATION_ID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_AUTH_STEP]') AND TYPE IN (N'U'))
+CREATE TABLE SP_AUTH_STEP (
+ ID INTEGER NOT NULL IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ STEP_ORDER INTEGER DEFAULT 1,
+ APP_ID INTEGER NOT NULL,
+ IS_SUBJECT_STEP CHAR(1) DEFAULT '0',
+ IS_ATTRIBUTE_STEP CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_AUTH_STEP ADD CONSTRAINT APPLICATION_ID_CONSTRAINT_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_FEDERATED_IDP]') AND TYPE IN (N'U'))
+CREATE TABLE SP_FEDERATED_IDP (
+ ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID, AUTHENTICATOR_ID));
+
+ALTER TABLE SP_FEDERATED_IDP ADD CONSTRAINT STEP_ID_CONSTRAINT FOREIGN KEY (ID) REFERENCES SP_AUTH_STEP (ID) ON DELETE CASCADE;
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_CLAIM_MAPPING]') AND TYPE IN (N'U'))
+CREATE TABLE SP_CLAIM_MAPPING (
+ ID INTEGER NOT NULL IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_CLAIM VARCHAR (512) NOT NULL ,
+ SP_CLAIM VARCHAR (512) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ DEFAULT_VALUE VARCHAR(255),
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_CLAIM_MAPPING ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_ROLE_MAPPING]') AND TYPE IN (N'U'))
+CREATE TABLE SP_ROLE_MAPPING (
+ ID INTEGER NOT NULL IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_ROLE VARCHAR (255) NOT NULL ,
+ SP_ROLE VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_ROLE_MAPPING ADD CONSTRAINT ROLEID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_REQ_PATH_AUTHENTICATOR]') AND TYPE IN (N'U'))
+CREATE TABLE SP_REQ_PATH_AUTHENTICATOR (
+ ID INTEGER NOT NULL IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_REQ_PATH_AUTHENTICATOR ADD CONSTRAINT REQ_AUTH_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[SP_PROVISIONING_CONNECTOR]') AND TYPE IN (N'U'))
+CREATE TABLE SP_PROVISIONING_CONNECTOR (
+ ID INTEGER NOT NULL IDENTITY,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_NAME VARCHAR (255) NOT NULL ,
+ CONNECTOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
+ BLOCKING CHAR(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP]') AND TYPE IN (N'U'))
+CREATE TABLE IDP (
+ ID INTEGER IDENTITY,
+ TENANT_ID INTEGER,
+ NAME VARCHAR(254) NOT NULL,
+ IS_ENABLED CHAR(1) NOT NULL DEFAULT '1',
+ IS_PRIMARY CHAR(1) NOT NULL DEFAULT '0',
+ HOME_REALM_ID VARCHAR(254),
+ IMAGE VARBINARY(MAX),
+ CERTIFICATE VARBINARY(MAX),
+ ALIAS VARCHAR(254),
+ INBOUND_PROV_ENABLED CHAR (1) NOT NULL DEFAULT '0',
+ INBOUND_PROV_USER_STORE_ID VARCHAR(254),
+ USER_CLAIM_URI VARCHAR(254),
+ ROLE_CLAIM_URI VARCHAR(254),
+ DESCRIPTION VARCHAR (1024),
+ DEFAULT_AUTHENTICATOR_NAME VARCHAR(254),
+ DEFAULT_PRO_CONNECTOR_NAME VARCHAR(254),
+ PROVISIONING_ROLE VARCHAR(128),
+ IS_FEDERATION_HUB CHAR(1) NOT NULL DEFAULT '0',
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (ID),
+ DISPLAY_NAME VARCHAR(255),
+ UNIQUE (TENANT_ID, NAME));
+
+INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost');
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_ROLE]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_ROLE (
+ ID INTEGER IDENTITY,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ ROLE VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, ROLE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_ROLE_MAPPING]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_ROLE_MAPPING (
+ ID INTEGER IDENTITY,
+ IDP_ROLE_ID INTEGER,
+ TENANT_ID INTEGER,
+ USER_STORE_ID VARCHAR (253),
+ LOCAL_ROLE VARCHAR(253),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ROLE_ID, TENANT_ID, USER_STORE_ID, LOCAL_ROLE),
+ FOREIGN KEY (IDP_ROLE_ID) REFERENCES IDP_ROLE(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_CLAIM]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_CLAIM (
+ ID INTEGER IDENTITY,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ CLAIM VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, CLAIM),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_CLAIM_MAPPING]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_CLAIM_MAPPING (
+ ID INTEGER IDENTITY,
+ IDP_CLAIM_ID INTEGER,
+ TENANT_ID INTEGER,
+ LOCAL_CLAIM VARCHAR(253),
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_CLAIM_ID, TENANT_ID, LOCAL_CLAIM),
+ FOREIGN KEY (IDP_CLAIM_ID) REFERENCES IDP_CLAIM(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_AUTHENTICATOR]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_AUTHENTICATOR (
+ ID INTEGER IDENTITY,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'samlsso');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'IDPProperties');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'passivests');
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_METADATA]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_METADATA (
+ ID INTEGER IDENTITY,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT IDP_METADATA_CONSTRAINT UNIQUE (IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'SessionIdleTimeout', '20160', 'Session Idle Timeout');
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'RememberMeTimeout', '15', 'RememberMe Timeout');
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_AUTHENTICATOR_PROPERTY]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_AUTHENTICATOR_PROPERTY (
+ ID INTEGER IDENTITY,
+ TENANT_ID INTEGER,
+ AUTHENTICATOR_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2047),
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY),
+ FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 1 , 'IdPEntityId', 'localhost', '0');
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 3 , 'IdPEntityId', 'localhost', '0');
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_PROVISIONING_CONFIG]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_PROVISIONING_CONFIG (
+ ID INTEGER IDENTITY,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '0',
+ IS_BLOCKING CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, PROVISIONING_CONNECTOR_TYPE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_PROV_CONFIG_PROPERTY]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_PROV_CONFIG_PROPERTY (
+ ID INTEGER IDENTITY,
+ TENANT_ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2048),
+ PROPERTY_BLOB_VALUE VARBINARY(MAX),
+ PROPERTY_TYPE CHAR(32) NOT NULL,
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, PROVISIONING_CONFIG_ID, PROPERTY_KEY),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_PROVISIONING_ENTITY]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_PROVISIONING_ENTITY (
+ ID INTEGER IDENTITY,
+ PROVISIONING_CONFIG_ID INTEGER,
+ ENTITY_TYPE VARCHAR(255) NOT NULL,
+ ENTITY_LOCAL_USERSTORE VARCHAR(255) NOT NULL,
+ ENTITY_NAME VARCHAR(255) NOT NULL,
+ ENTITY_VALUE VARCHAR(255),
+ TENANT_ID INTEGER,
+ ENTITY_LOCAL_ID VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (ENTITY_TYPE, TENANT_ID, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, PROVISIONING_CONFIG_ID),
+ UNIQUE (PROVISIONING_CONFIG_ID, ENTITY_TYPE, ENTITY_VALUE),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP_LOCAL_CLAIM]') AND TYPE IN (N'U'))
+CREATE TABLE IDP_LOCAL_CLAIM (
+ ID INTEGER IDENTITY,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ CLAIM_URI VARCHAR(255) NOT NULL,
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, CLAIM_URI),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_ASSOCIATED_ID]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_ASSOCIATED_ID (
+ ID INTEGER IDENTITY,
+ IDP_USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ IDP_ID INTEGER NOT NULL,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (ID),
+ UNIQUE(IDP_USER_ID, TENANT_ID, IDP_ID),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_USER_ACCOUNT_ASSOCIATION]') AND TYPE IN (N'U'))
+CREATE TABLE IDN_USER_ACCOUNT_ASSOCIATION (
+ ASSOCIATION_KEY VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME));
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[FIDO_DEVICE_STORE]') AND TYPE IN (N'U'))
+CREATE TABLE FIDO_DEVICE_STORE (
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(45) NOT NULL,
+ TIME_REGISTERED DATETIME,
+ KEY_HANDLE VARCHAR(200) NOT NULL,
+ DEVICE_DATA VARCHAR(2048) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME, KEY_HANDLE));
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[WF_REQUEST]') AND TYPE IN (N'U'))
+CREATE TABLE WF_REQUEST (
+ UUID VARCHAR (45),
+ CREATED_BY VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ OPERATION_TYPE VARCHAR (50),
+ CREATED_AT DATETIME,
+ UPDATED_AT DATETIME,
+ STATUS VARCHAR (30),
+ REQUEST VARBINARY(MAX),
+ PRIMARY KEY (UUID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[WF_BPS_PROFILE]') AND TYPE IN (N'U'))
+CREATE TABLE WF_BPS_PROFILE (
+ PROFILE_NAME VARCHAR(45),
+ HOST_URL_MANAGER VARCHAR(45),
+ HOST_URL_WORKER VARCHAR(45),
+ USERNAME VARCHAR(45),
+ PASSWORD VARCHAR(255),
+ CALLBACK_HOST VARCHAR (45),
+ CALLBACK_USERNAME VARCHAR (45),
+ CALLBACK_PASSWORD VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (PROFILE_NAME, TENANT_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[WF_WORKFLOW]') AND TYPE IN (N'U'))
+CREATE TABLE WF_WORKFLOW(
+ ID VARCHAR (45),
+ WF_NAME VARCHAR (45),
+ DESCRIPTION VARCHAR (255),
+ TEMPLATE_ID VARCHAR (45),
+ IMPL_ID VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[WF_WORKFLOW_ASSOCIATION]') AND TYPE IN (N'U'))
+CREATE TABLE WF_WORKFLOW_ASSOCIATION(
+ ID INTEGER NOT NULL IDENTITY ,
+ ASSOC_NAME VARCHAR (45),
+ EVENT_ID VARCHAR(45),
+ ASSOC_CONDITION VARCHAR (2000),
+ WORKFLOW_ID VARCHAR (45),
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[WF_WORKFLOW_CONFIG_PARAM]') AND TYPE IN (N'U'))
+CREATE TABLE WF_WORKFLOW_CONFIG_PARAM(
+ WORKFLOW_ID VARCHAR (45),
+ PARAM_NAME VARCHAR (45),
+ PARAM_VALUE VARCHAR (1000),
+ PARAM_QNAME VARCHAR (45),
+ PARAM_HOLDER VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (WORKFLOW_ID, PARAM_NAME, PARAM_QNAME, PARAM_HOLDER),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[WF_REQUEST_ENTITY_RELATIONSHIP]') AND TYPE IN (N'U'))
+CREATE TABLE WF_REQUEST_ENTITY_RELATIONSHIP(
+ REQUEST_ID VARCHAR (45),
+ ENTITY_NAME VARCHAR (255),
+ ENTITY_TYPE VARCHAR (50),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(REQUEST_ID, ENTITY_NAME, ENTITY_TYPE, TENANT_ID),
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[WF_WORKFLOW_REQUEST_RELATION]') AND TYPE IN (N'U'))
+CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
+ RELATIONSHIP_ID VARCHAR (45),
+ WORKFLOW_ID VARCHAR (45),
+ REQUEST_ID VARCHAR (45),
+ UPDATED_AT DATETIME,
+ STATUS VARCHAR (30),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RELATIONSHIP_ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+);
+
+-- Start of API-Mgt Tables --
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_SUBSCRIBER]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_SUBSCRIBER (
+ SUBSCRIBER_ID INTEGER IDENTITY(1,1),
+ USER_ID VARCHAR(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EMAIL_ADDRESS VARCHAR(256) NULL,
+ DATE_SUBSCRIBED DATETIME NOT NULL,
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATETIME,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATETIME,
+ PRIMARY KEY (SUBSCRIBER_ID),
+ UNIQUE (TENANT_ID,USER_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_APPLICATION]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_APPLICATION (
+ APPLICATION_ID INTEGER IDENTITY(1,1),
+ NAME VARCHAR(100) COLLATE Latin1_General_CS_AS,
+ SUBSCRIBER_ID INTEGER,
+ APPLICATION_TIER VARCHAR(50) DEFAULT 'Unlimited',
+ CALLBACK_URL VARCHAR(512),
+ DESCRIPTION VARCHAR(512),
+ APPLICATION_STATUS VARCHAR(50) DEFAULT 'APPROVED',
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATETIME,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATETIME,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE,
+ PRIMARY KEY(APPLICATION_ID),
+ UNIQUE (NAME,SUBSCRIBER_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_API (
+ API_ID INTEGER IDENTITY(1,1),
+ API_PROVIDER VARCHAR(200),
+ API_NAME VARCHAR(200),
+ API_VERSION VARCHAR(30),
+ CONTEXT VARCHAR(256),
+ CONTEXT_TEMPLATE VARCHAR(256),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATETIME,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATETIME,
+ PRIMARY KEY(API_ID),
+ UNIQUE (API_PROVIDER,API_NAME,API_VERSION)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API_URL_MAPPING]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_API_URL_MAPPING (
+ URL_MAPPING_ID INTEGER IDENTITY(1,1),
+ API_ID INTEGER NOT NULL,
+ HTTP_METHOD VARCHAR(20) NULL,
+ AUTH_SCHEME VARCHAR(50) NULL,
+ URL_PATTERN VARCHAR(512) NULL,
+ THROTTLING_TIER varchar(512) DEFAULT NULL,
+ MEDIATION_SCRIPT VARBINARY(MAX),
+ PRIMARY KEY (URL_MAPPING_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_SUBSCRIPTION]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_SUBSCRIPTION (
+ SUBSCRIPTION_ID INTEGER IDENTITY(1,1),
+ TIER_ID VARCHAR(50),
+ API_ID INTEGER,
+ LAST_ACCESSED DATETIME NULL,
+ APPLICATION_ID INTEGER,
+ SUB_STATUS VARCHAR(50),
+ SUBS_CREATE_STATE VARCHAR(50) DEFAULT 'SUBSCRIBE',
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATETIME,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATETIME,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE,
+ PRIMARY KEY (SUBSCRIPTION_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_SUBSCRIPTION_KEY_MAPPING]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_SUBSCRIPTION_KEY_MAPPING (
+ SUBSCRIPTION_ID INTEGER,
+ ACCESS_TOKEN VARCHAR(255),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON UPDATE CASCADE,
+ PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_APPLICATION_KEY_MAPPING]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_APPLICATION_KEY_MAPPING (
+ APPLICATION_ID INTEGER,
+ CONSUMER_KEY VARCHAR(512),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ STATE VARCHAR(30) NOT NULL,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE,
+ PRIMARY KEY(APPLICATION_ID,KEY_TYPE)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_APPLICATION_REGISTRATION]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_APPLICATION_REGISTRATION (
+ REG_ID INTEGER IDENTITY(1,1),
+ SUBSCRIBER_ID INTEGER,
+ WF_REF VARCHAR(255) NOT NULL,
+ APP_ID INTEGER,
+ TOKEN_TYPE VARCHAR(30),
+ TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
+ ALLOWED_DOMAINS VARCHAR(256),
+ VALIDITY_PERIOD BIGINT,
+ UNIQUE (SUBSCRIBER_ID,APP_ID,TOKEN_TYPE),
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON DELETE NO ACTION,
+ FOREIGN KEY(APP_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE NO ACTION,
+ PRIMARY KEY (REG_ID)
+);
+
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API_LC_EVENT]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_API_LC_EVENT (
+ EVENT_ID INTEGER IDENTITY(1,1),
+ API_ID INTEGER NOT NULL,
+ PREVIOUS_STATE VARCHAR(50),
+ NEW_STATE VARCHAR(50) NOT NULL,
+ USER_ID VARCHAR(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EVENT_DATE DATETIME NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE,
+ PRIMARY KEY (EVENT_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_APP_KEY_DOMAIN_MAPPING]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_APP_KEY_DOMAIN_MAPPING (
+ CONSUMER_KEY VARCHAR(512),
+ AUTHZ_DOMAIN VARCHAR(255) DEFAULT 'ALL',
+ PRIMARY KEY (CONSUMER_KEY,AUTHZ_DOMAIN)
+
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API_COMMENTS]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_API_COMMENTS (
+ COMMENT_ID INTEGER IDENTITY(1,1),
+ COMMENT_TEXT VARCHAR(512),
+ COMMENTED_USER VARCHAR(255),
+ DATE_COMMENTED DATETIME NOT NULL,
+ API_ID INTEGER NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE,
+ PRIMARY KEY (COMMENT_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API_RATINGS]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_API_RATINGS (
+ RATING_ID INTEGER IDENTITY(1,1),
+ API_ID INTEGER,
+ RATING INTEGER,
+ SUBSCRIBER_ID INTEGER,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE,
+ PRIMARY KEY (RATING_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_TIER_PERMISSIONS]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_TIER_PERMISSIONS (
+ TIER_PERMISSIONS_ID INTEGER IDENTITY(1,1),
+ TIER VARCHAR(50) NOT NULL,
+ PERMISSIONS_TYPE VARCHAR(50) NOT NULL,
+ ROLES VARCHAR(512) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY(TIER_PERMISSIONS_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_EXTERNAL_STORES]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_EXTERNAL_STORES (
+ APISTORE_ID INTEGER IDENTITY(1,1),
+ API_ID INTEGER,
+ STORE_ID VARCHAR(255) NOT NULL,
+ STORE_DISPLAY_NAME VARCHAR(255) NOT NULL,
+ STORE_ENDPOINT VARCHAR(255) NOT NULL,
+ STORE_TYPE VARCHAR(255) NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE,
+ PRIMARY KEY (API_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_WORKFLOWS]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_WORKFLOWS(
+ WF_ID INTEGER IDENTITY(1,1),
+ WF_REFERENCE VARCHAR(255) NOT NULL,
+ WF_TYPE VARCHAR(255) NOT NULL,
+ WF_STATUS VARCHAR(255) NOT NULL,
+ WF_CREATED_TIME DATETIME DEFAULT GETDATE(),
+ WF_UPDATED_TIME DATETIME DEFAULT GETDATE(),
+ WF_STATUS_DESC VARCHAR(1000),
+ TENANT_ID INTEGER,
+ TENANT_DOMAIN VARCHAR(255),
+ WF_EXTERNAL_REFERENCE VARCHAR(255) NOT NULL UNIQUE,
+ PRIMARY KEY (WF_ID)
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API_SCOPES]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_API_SCOPES (
+ API_ID INTEGER NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ FOREIGN KEY (API_ID) REFERENCES AM_API (API_ID) ON DELETE CASCADE ON UPDATE CASCADE,
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE ON UPDATE CASCADE
+);
+
+IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API_DEFAULT_VERSION]') AND TYPE IN (N'U'))
+
+CREATE TABLE AM_API_DEFAULT_VERSION (
+ DEFAULT_VERSION_ID INTEGER NOT NULL IDENTITY,
+ API_NAME VARCHAR(256) NOT NULL ,
+ API_PROVIDER VARCHAR(256) NOT NULL ,
+ DEFAULT_API_VERSION VARCHAR(30) ,
+ PUBLISHED_DEFAULT_API_VERSION VARCHAR(30) ,
+ PRIMARY KEY (DEFAULT_VERSION_ID)
+);
+
+
+CREATE INDEX IDX_SUB_APP_ID ON AM_SUBSCRIPTION (APPLICATION_ID, SUBSCRIPTION_ID);
diff --git a/modules/distribution/src/repository/resources/dbscripts/apimgt/mysql.sql b/modules/distribution/src/repository/resources/dbscripts/apimgt/mysql.sql
new file mode 100644
index 00000000..c188587f
--- /dev/null
+++ b/modules/distribution/src/repository/resources/dbscripts/apimgt/mysql.sql
@@ -0,0 +1,798 @@
+-- Start of IDENTITY Tables--
+
+CREATE TABLE IF NOT EXISTS IDN_BASE_TABLE (
+ PRODUCT_NAME VARCHAR(20),
+ PRIMARY KEY (PRODUCT_NAME)
+)ENGINE INNODB;
+
+INSERT INTO IDN_BASE_TABLE values ('WSO2 Identity Server');
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH_CONSUMER_APPS (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ CONSUMER_KEY VARCHAR(255),
+ CONSUMER_SECRET VARCHAR(512),
+ USERNAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT 0,
+ USER_DOMAIN VARCHAR(50),
+ APP_NAME VARCHAR(255),
+ OAUTH_VERSION VARCHAR(128),
+ CALLBACK_URL VARCHAR(1024),
+ GRANT_TYPES VARCHAR (1024),
+ CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_REQUEST_TOKEN (
+ REQUEST_TOKEN VARCHAR(255),
+ REQUEST_TOKEN_SECRET VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR(1024),
+ SCOPE VARCHAR(2048),
+ AUTHORIZED VARCHAR(128),
+ OAUTH_VERIFIER VARCHAR(512),
+ AUTHZ_USER VARCHAR(512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (REQUEST_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_ACCESS_TOKEN (
+ ACCESS_TOKEN VARCHAR(255),
+ ACCESS_TOKEN_SECRET VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR(512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ACCESS_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
+ TOKEN_ID VARCHAR (255),
+ ACCESS_TOKEN VARCHAR(255),
+ REFRESH_TOKEN VARCHAR(255),
+ CONSUMER_KEY_ID INTEGER,
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ USER_TYPE VARCHAR (25),
+ GRANT_TYPE VARCHAR (50),
+ TIME_CREATED TIMESTAMP DEFAULT 0,
+ REFRESH_TOKEN_TIME_CREATED TIMESTAMP DEFAULT 0,
+ VALIDITY_PERIOD BIGINT,
+ REFRESH_TOKEN_VALIDITY_PERIOD BIGINT,
+ TOKEN_SCOPE_HASH VARCHAR(32),
+ TOKEN_STATE VARCHAR(25) DEFAULT 'ACTIVE',
+ TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
+ PRIMARY KEY (TOKEN_ID),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
+ CONSTRAINT CON_APP_KEY UNIQUE (CONSUMER_KEY_ID,AUTHZ_USER,TENANT_ID,USER_DOMAIN,USER_TYPE,TOKEN_SCOPE_HASH,
+ TOKEN_STATE,TOKEN_STATE_ID)
+)ENGINE INNODB;
+
+CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER, TOKEN_STATE, USER_TYPE);
+
+CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
+ AUTHORIZATION_CODE VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR(1024),
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD BIGINT,
+ STATE VARCHAR (25) DEFAULT 'ACTIVE',
+ TOKEN_ID VARCHAR(255),
+ PRIMARY KEY (AUTHORIZATION_CODE),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
+ TOKEN_ID VARCHAR (255),
+ TOKEN_SCOPE VARCHAR (60),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (TOKEN_ID, TOKEN_SCOPE),
+ FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE (
+ SCOPE_ID INT(11) NOT NULL AUTO_INCREMENT,
+ SCOPE_KEY VARCHAR(100) NOT NULL,
+ NAME VARCHAR(255) NULL,
+ DESCRIPTION VARCHAR(512) NULL,
+ TENANT_ID INT(11) NOT NULL DEFAULT 0,
+ ROLES VARCHAR (500) NULL,
+ PRIMARY KEY (SCOPE_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_RESOURCE_SCOPE (
+ RESOURCE_PATH VARCHAR(255) NOT NULL,
+ SCOPE_ID INTEGER (11) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RESOURCE_PATH),
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_SCIM_GROUP (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ ROLE_NAME VARCHAR(255) NOT NULL,
+ ATTR_NAME VARCHAR(1024) NOT NULL,
+ ATTR_VALUE VARCHAR(1024),
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OPENID_REMEMBER_ME (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ COOKIE_VALUE VARCHAR(1024),
+ CREATED_TIME TIMESTAMP,
+ PRIMARY KEY (USER_NAME, TENANT_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OPENID_USER_RPS (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ RP_URL VARCHAR(255) NOT NULL,
+ TRUSTED_ALWAYS VARCHAR(128) DEFAULT 'FALSE',
+ LAST_VISIT DATE NOT NULL,
+ VISIT_COUNT INTEGER DEFAULT 0,
+ DEFAULT_PROFILE_NAME VARCHAR(255) DEFAULT 'DEFAULT',
+ PRIMARY KEY (USER_NAME, TENANT_ID, RP_URL)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_OPENID_ASSOCIATIONS (
+ HANDLE VARCHAR(255) NOT NULL,
+ ASSOC_TYPE VARCHAR(255) NOT NULL,
+ EXPIRE_IN TIMESTAMP NOT NULL,
+ MAC_KEY VARCHAR(255) NOT NULL,
+ ASSOC_STORE VARCHAR(128) DEFAULT 'SHARED',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (HANDLE)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_STS_STORE (
+ ID INTEGER AUTO_INCREMENT,
+ TOKEN_ID VARCHAR(255) NOT NULL,
+ TOKEN_CONTENT BLOB(1024) NOT NULL,
+ CREATE_DATE TIMESTAMP NOT NULL,
+ EXPIRE_DATE TIMESTAMP NOT NULL,
+ STATE INTEGER DEFAULT 0,
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_IDENTITY_USER_DATA (
+ TENANT_ID INTEGER DEFAULT -1234,
+ USER_NAME VARCHAR(255) NOT NULL,
+ DATA_KEY VARCHAR(255) NOT NULL,
+ DATA_VALUE VARCHAR(255),
+ PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_IDENTITY_META_DATA (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ METADATA_TYPE VARCHAR(255) NOT NULL,
+ METADATA VARCHAR(255) NOT NULL,
+ VALID VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, USER_NAME, METADATA_TYPE,METADATA)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_THRIFT_SESSION (
+ SESSION_ID VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ CREATED_TIME VARCHAR(255) NOT NULL,
+ LAST_MODIFIED_TIME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_AUTH_SESSION_STORE (
+ SESSION_ID VARCHAR (100) NOT NULL,
+ SESSION_TYPE VARCHAR(100) NOT NULL,
+ OPERATION VARCHAR(10) NOT NULL,
+ SESSION_OBJECT BLOB,
+ TIME_CREATED BIGINT,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID, SESSION_TYPE, TIME_CREATED, OPERATION)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS SP_APP (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ APP_NAME VARCHAR (255) NOT NULL ,
+ USER_STORE VARCHAR (255) NOT NULL,
+ USERNAME VARCHAR (255) NOT NULL ,
+ DESCRIPTION VARCHAR (1024),
+ ROLE_CLAIM VARCHAR (512),
+ AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROVISIONING_USERSTORE_DOMAIN VARCHAR (512),
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '1',
+ IS_SEND_LOCAL_SUBJECT_ID CHAR(1) DEFAULT '0',
+ IS_SEND_AUTH_LIST_OF_IDPS CHAR(1) DEFAULT '0',
+ IS_USE_TENANT_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ IS_USE_USER_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ SUBJECT_CLAIM_URI VARCHAR (512),
+ IS_SAAS_APP CHAR(1) DEFAULT '0',
+ IS_DUMB_MODE CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_APP ADD CONSTRAINT APPLICATION_NAME_CONSTRAINT UNIQUE(APP_NAME, TENANT_ID);
+
+CREATE TABLE IF NOT EXISTS SP_METADATA (
+ ID INTEGER AUTO_INCREMENT,
+ SP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT SP_METADATA_CONSTRAINT UNIQUE (SP_ID, NAME),
+ FOREIGN KEY (SP_ID) REFERENCES SP_APP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS SP_INBOUND_AUTH (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ INBOUND_AUTH_KEY VARCHAR (255) NOT NULL,
+ INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROP_NAME VARCHAR (255),
+ PROP_VALUE VARCHAR (1024) ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_INBOUND_AUTH ADD CONSTRAINT APPLICATION_ID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_AUTH_STEP (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ STEP_ORDER INTEGER DEFAULT 1,
+ APP_ID INTEGER NOT NULL ,
+ IS_SUBJECT_STEP CHAR(1) DEFAULT '0',
+ IS_ATTRIBUTE_STEP CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_AUTH_STEP ADD CONSTRAINT APPLICATION_ID_CONSTRAINT_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_FEDERATED_IDP (
+ ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID, AUTHENTICATOR_ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_FEDERATED_IDP ADD CONSTRAINT STEP_ID_CONSTRAINT FOREIGN KEY (ID) REFERENCES SP_AUTH_STEP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_CLAIM_MAPPING (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_CLAIM VARCHAR (512) NOT NULL ,
+ SP_CLAIM VARCHAR (512) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ DEFAULT_VALUE VARCHAR(255),
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_CLAIM_MAPPING ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_ROLE_MAPPING (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_ROLE VARCHAR (255) NOT NULL ,
+ SP_ROLE VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_ROLE_MAPPING ADD CONSTRAINT ROLEID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_REQ_PATH_AUTHENTICATOR (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_REQ_PATH_AUTHENTICATOR ADD CONSTRAINT REQ_AUTH_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS SP_PROVISIONING_CONNECTOR (
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_NAME VARCHAR (255) NOT NULL ,
+ CONNECTOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
+ BLOCKING CHAR(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+CREATE TABLE IF NOT EXISTS IDP (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ NAME VARCHAR(254) NOT NULL,
+ IS_ENABLED CHAR(1) NOT NULL DEFAULT '1',
+ IS_PRIMARY CHAR(1) NOT NULL DEFAULT '0',
+ HOME_REALM_ID VARCHAR(254),
+ IMAGE MEDIUMBLOB,
+ CERTIFICATE BLOB,
+ ALIAS VARCHAR(254),
+ INBOUND_PROV_ENABLED CHAR (1) NOT NULL DEFAULT '0',
+ INBOUND_PROV_USER_STORE_ID VARCHAR(254),
+ USER_CLAIM_URI VARCHAR(254),
+ ROLE_CLAIM_URI VARCHAR(254),
+ DESCRIPTION VARCHAR (1024),
+ DEFAULT_AUTHENTICATOR_NAME VARCHAR(254),
+ DEFAULT_PRO_CONNECTOR_NAME VARCHAR(254),
+ PROVISIONING_ROLE VARCHAR(128),
+ IS_FEDERATION_HUB CHAR(1) NOT NULL DEFAULT '0',
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) NOT NULL DEFAULT '0',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, NAME)
+)ENGINE INNODB;
+
+INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost');
+
+CREATE TABLE IF NOT EXISTS IDP_ROLE (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ ROLE VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, ROLE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDP_ROLE_MAPPING (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ROLE_ID INTEGER,
+ TENANT_ID INTEGER,
+ USER_STORE_ID VARCHAR (253),
+ LOCAL_ROLE VARCHAR(253),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ROLE_ID, TENANT_ID, USER_STORE_ID, LOCAL_ROLE),
+ FOREIGN KEY (IDP_ROLE_ID) REFERENCES IDP_ROLE(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDP_CLAIM (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ CLAIM VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, CLAIM),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDP_CLAIM_MAPPING (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_CLAIM_ID INTEGER,
+ TENANT_ID INTEGER,
+ LOCAL_CLAIM VARCHAR(253),
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_CLAIM_ID, TENANT_ID, LOCAL_CLAIM),
+ FOREIGN KEY (IDP_CLAIM_ID) REFERENCES IDP_CLAIM(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'samlsso');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'IDPProperties');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'passivests');
+
+CREATE TABLE IF NOT EXISTS IDP_METADATA (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT IDP_METADATA_CONSTRAINT UNIQUE (IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'SessionIdleTimeout', '20160', 'Session Idle Timeout');
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'RememberMeTimeout', '15', 'RememberMe Timeout');
+
+CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR_PROPERTY (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ AUTHENTICATOR_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2047),
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY),
+ FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 1 , 'IdPEntityId', 'localhost', '0');
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 3 , 'IdPEntityId', 'localhost', '0');
+
+CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_CONFIG (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '0',
+ IS_BLOCKING CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, PROVISIONING_CONNECTOR_TYPE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDP_PROV_CONFIG_PROPERTY (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2048),
+ PROPERTY_BLOB_VALUE BLOB,
+ PROPERTY_TYPE CHAR(32) NOT NULL,
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, PROVISIONING_CONFIG_ID, PROPERTY_KEY),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_ENTITY (
+ ID INTEGER AUTO_INCREMENT,
+ PROVISIONING_CONFIG_ID INTEGER,
+ ENTITY_TYPE VARCHAR(255) NOT NULL,
+ ENTITY_LOCAL_USERSTORE VARCHAR(255) NOT NULL,
+ ENTITY_NAME VARCHAR(255) NOT NULL,
+ ENTITY_VALUE VARCHAR(255),
+ TENANT_ID INTEGER,
+ ENTITY_LOCAL_ID VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (ENTITY_TYPE, TENANT_ID, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, PROVISIONING_CONFIG_ID),
+ UNIQUE (PROVISIONING_CONFIG_ID, ENTITY_TYPE, ENTITY_VALUE),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDP_LOCAL_CLAIM (
+ ID INTEGER AUTO_INCREMENT,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ CLAIM_URI VARCHAR(255) NOT NULL,
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, CLAIM_URI),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_ASSOCIATED_ID (
+ ID INTEGER AUTO_INCREMENT,
+ IDP_USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ IDP_ID INTEGER NOT NULL,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (ID),
+ UNIQUE(IDP_USER_ID, TENANT_ID, IDP_ID),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS IDN_USER_ACCOUNT_ASSOCIATION (
+ ASSOCIATION_KEY VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS FIDO_DEVICE_STORE (
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(45) NOT NULL,
+ TIME_REGISTERED TIMESTAMP,
+ KEY_HANDLE VARCHAR(200) NOT NULL,
+ DEVICE_DATA VARCHAR(2048) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME, KEY_HANDLE)
+ )ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS WF_REQUEST (
+ UUID VARCHAR (45),
+ CREATED_BY VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ OPERATION_TYPE VARCHAR (50),
+ CREATED_AT TIMESTAMP,
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ REQUEST BLOB,
+ PRIMARY KEY (UUID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS WF_BPS_PROFILE (
+ PROFILE_NAME VARCHAR(45),
+ HOST_URL_MANAGER VARCHAR(45),
+ HOST_URL_WORKER VARCHAR(45),
+ USERNAME VARCHAR(45),
+ PASSWORD VARCHAR(255),
+ CALLBACK_HOST VARCHAR (45),
+ CALLBACK_USERNAME VARCHAR (45),
+ CALLBACK_PASSWORD VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (PROFILE_NAME, TENANT_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW(
+ ID VARCHAR (45),
+ WF_NAME VARCHAR (45),
+ DESCRIPTION VARCHAR (255),
+ TEMPLATE_ID VARCHAR (45),
+ IMPL_ID VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW_ASSOCIATION(
+ ID INTEGER NOT NULL AUTO_INCREMENT,
+ ASSOC_NAME VARCHAR (45),
+ EVENT_ID VARCHAR(45),
+ ASSOC_CONDITION VARCHAR (2000),
+ WORKFLOW_ID VARCHAR (45),
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW_CONFIG_PARAM(
+ WORKFLOW_ID VARCHAR (45),
+ PARAM_NAME VARCHAR (45),
+ PARAM_VALUE VARCHAR (1000),
+ PARAM_QNAME VARCHAR (45),
+ PARAM_HOLDER VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (WORKFLOW_ID, PARAM_NAME, PARAM_QNAME, PARAM_HOLDER),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS WF_REQUEST_ENTITY_RELATIONSHIP(
+ REQUEST_ID VARCHAR (45),
+ ENTITY_NAME VARCHAR (255),
+ ENTITY_TYPE VARCHAR (50),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(REQUEST_ID, ENTITY_NAME, ENTITY_TYPE, TENANT_ID),
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS WF_WORKFLOW_REQUEST_RELATION(
+ RELATIONSHIP_ID VARCHAR (45),
+ WORKFLOW_ID VARCHAR (45),
+ REQUEST_ID VARCHAR (45),
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RELATIONSHIP_ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+)ENGINE INNODB;
+
+-- End of IDENTITY Tables--
+
+-- Start of API-MGT Tables --
+CREATE TABLE IF NOT EXISTS AM_SUBSCRIBER (
+ SUBSCRIBER_ID INTEGER AUTO_INCREMENT,
+ USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EMAIL_ADDRESS VARCHAR(256) NULL,
+ DATE_SUBSCRIBED TIMESTAMP NOT NULL,
+ PRIMARY KEY (SUBSCRIBER_ID),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ UNIQUE (TENANT_ID,USER_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_APPLICATION (
+ APPLICATION_ID INTEGER AUTO_INCREMENT,
+ NAME VARCHAR(100),
+ SUBSCRIBER_ID INTEGER,
+ APPLICATION_TIER VARCHAR(50) DEFAULT 'Unlimited',
+ CALLBACK_URL VARCHAR(512),
+ DESCRIPTION VARCHAR(512),
+ APPLICATION_STATUS VARCHAR(50) DEFAULT 'APPROVED',
+ GROUP_ID VARCHAR(100),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(APPLICATION_ID),
+ UNIQUE (NAME,SUBSCRIBER_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_API (
+ API_ID INTEGER AUTO_INCREMENT,
+ API_PROVIDER VARCHAR(200),
+ API_NAME VARCHAR(200),
+ API_VERSION VARCHAR(30),
+ CONTEXT VARCHAR(256),
+ CONTEXT_TEMPLATE VARCHAR(256),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ PRIMARY KEY(API_ID),
+ UNIQUE (API_PROVIDER,API_NAME,API_VERSION)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_API_URL_MAPPING (
+ URL_MAPPING_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER NOT NULL,
+ HTTP_METHOD VARCHAR(20) NULL,
+ AUTH_SCHEME VARCHAR(50) NULL,
+ URL_PATTERN VARCHAR(512) NULL,
+ THROTTLING_TIER varchar(512) DEFAULT NULL,
+ MEDIATION_SCRIPT BLOB,
+ PRIMARY KEY (URL_MAPPING_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION (
+ SUBSCRIPTION_ID INTEGER AUTO_INCREMENT,
+ TIER_ID VARCHAR(50),
+ API_ID INTEGER,
+ LAST_ACCESSED TIMESTAMP NULL,
+ APPLICATION_ID INTEGER,
+ SUB_STATUS VARCHAR(50),
+ SUBS_CREATE_STATE VARCHAR(50) DEFAULT 'SUBSCRIBE',
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME TIMESTAMP,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME TIMESTAMP,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (SUBSCRIPTION_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION_KEY_MAPPING (
+ SUBSCRIPTION_ID INTEGER,
+ ACCESS_TOKEN VARCHAR(255),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_APPLICATION_KEY_MAPPING (
+ APPLICATION_ID INTEGER,
+ CONSUMER_KEY VARCHAR(255),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ STATE VARCHAR(30) NOT NULL,
+ CREATE_MODE VARCHAR(30) DEFAULT 'CREATED',
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(APPLICATION_ID,KEY_TYPE)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_API_LC_EVENT (
+ EVENT_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER NOT NULL,
+ PREVIOUS_STATE VARCHAR(50),
+ NEW_STATE VARCHAR(50) NOT NULL,
+ USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EVENT_DATE TIMESTAMP NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (EVENT_ID)
+)ENGINE INNODB;
+
+CREATE TABLE AM_APP_KEY_DOMAIN_MAPPING (
+ CONSUMER_KEY VARCHAR(255),
+ AUTHZ_DOMAIN VARCHAR(255) DEFAULT 'ALL',
+ PRIMARY KEY (CONSUMER_KEY,AUTHZ_DOMAIN)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_API_COMMENTS (
+ COMMENT_ID INTEGER AUTO_INCREMENT,
+ COMMENT_TEXT VARCHAR(512),
+ COMMENTED_USER VARCHAR(255),
+ DATE_COMMENTED TIMESTAMP NOT NULL,
+ API_ID INTEGER NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (COMMENT_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_API_RATINGS (
+ RATING_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER,
+ RATING INTEGER,
+ SUBSCRIBER_ID INTEGER,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+PRIMARY KEY (RATING_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_TIER_PERMISSIONS (
+ TIER_PERMISSIONS_ID INTEGER AUTO_INCREMENT,
+ TIER VARCHAR(50) NOT NULL,
+ PERMISSIONS_TYPE VARCHAR(50) NOT NULL,
+ ROLES VARCHAR(512) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY(TIER_PERMISSIONS_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_EXTERNAL_STORES (
+ APISTORE_ID INTEGER AUTO_INCREMENT,
+ API_ID INTEGER,
+ STORE_ID VARCHAR(255) NOT NULL,
+ STORE_DISPLAY_NAME VARCHAR(255) NOT NULL,
+ STORE_ENDPOINT VARCHAR(255) NOT NULL,
+ STORE_TYPE VARCHAR(255) NOT NULL,
+FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+PRIMARY KEY (APISTORE_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_WORKFLOWS(
+ WF_ID INTEGER AUTO_INCREMENT,
+ WF_REFERENCE VARCHAR(255) NOT NULL,
+ WF_TYPE VARCHAR(255) NOT NULL,
+ WF_STATUS VARCHAR(255) NOT NULL,
+ WF_CREATED_TIME TIMESTAMP DEFAULT 0,
+ WF_UPDATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
+ WF_STATUS_DESC VARCHAR(1000),
+ TENANT_ID INTEGER,
+ TENANT_DOMAIN VARCHAR(255),
+ WF_EXTERNAL_REFERENCE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (WF_ID),
+ UNIQUE (WF_EXTERNAL_REFERENCE)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
+ REG_ID INT AUTO_INCREMENT,
+ SUBSCRIBER_ID INT,
+ WF_REF VARCHAR(255) NOT NULL,
+ APP_ID INT,
+ TOKEN_TYPE VARCHAR(30),
+ TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
+ INPUTS VARCHAR(1000),
+ ALLOWED_DOMAINS VARCHAR(256),
+ VALIDITY_PERIOD BIGINT,
+ UNIQUE (SUBSCRIBER_ID,APP_ID,TOKEN_TYPE),
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(APP_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (REG_ID)
+)ENGINE INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_API_SCOPES (
+ API_ID INTEGER NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ FOREIGN KEY (API_ID) REFERENCES AM_API (API_ID) ON DELETE CASCADE ON UPDATE CASCADE,
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE ON UPDATE CASCADE
+)ENGINE = INNODB;
+
+CREATE TABLE IF NOT EXISTS AM_API_DEFAULT_VERSION (
+ DEFAULT_VERSION_ID INT AUTO_INCREMENT,
+ API_NAME VARCHAR(256) NOT NULL ,
+ API_PROVIDER VARCHAR(256) NOT NULL ,
+ DEFAULT_API_VERSION VARCHAR(30) ,
+ PUBLISHED_DEFAULT_API_VERSION VARCHAR(30) ,
+ PRIMARY KEY (DEFAULT_VERSION_ID)
+);
+
+CREATE INDEX IDX_SUB_APP_ID ON AM_SUBSCRIPTION (APPLICATION_ID, SUBSCRIPTION_ID);
\ No newline at end of file
diff --git a/modules/distribution/src/repository/resources/dbscripts/apimgt/oracle.sql b/modules/distribution/src/repository/resources/dbscripts/apimgt/oracle.sql
new file mode 100644
index 00000000..badfa6cc
--- /dev/null
+++ b/modules/distribution/src/repository/resources/dbscripts/apimgt/oracle.sql
@@ -0,0 +1,1256 @@
+-- Create Oracle New User and Connect
+--------------------------------------
+-- CREATE USER apimuser IDENTIFIED BY wso2;
+-- GRANT CONNECT,RESOURCE to apimuser WITH ADMIN OPTION;
+-- CONNECT apimuser/wso2
+--
+
+-- Start of IDN Tables --
+
+CREATE TABLE IDN_BASE_TABLE (
+ PRODUCT_NAME VARCHAR2 (20),
+ PRIMARY KEY (PRODUCT_NAME))
+/
+INSERT INTO IDN_BASE_TABLE values ('WSO2 Identity Server')
+/
+CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
+ ID INTEGER,
+ CONSUMER_KEY VARCHAR2 (255),
+ CONSUMER_SECRET VARCHAR2 (512),
+ USERNAME VARCHAR2 (255),
+ TENANT_ID INTEGER DEFAULT 0,
+ USER_DOMAIN VARCHAR(50),
+ APP_NAME VARCHAR2 (255),
+ OAUTH_VERSION VARCHAR2 (128),
+ CALLBACK_URL VARCHAR2 (1024),
+ GRANT_TYPES VARCHAR (1024),
+ CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE IDN_OAUTH_CONSUMER_APPS_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDN_OAUTH_CONSUMER_APPS_TRIG
+ BEFORE INSERT
+ ON IDN_OAUTH_CONSUMER_APPS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_OAUTH_CONSUMER_APPS_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_OAUTH1A_REQUEST_TOKEN (
+ REQUEST_TOKEN VARCHAR2 (512),
+ REQUEST_TOKEN_SECRET VARCHAR2 (512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR2 (1024),
+ SCOPE VARCHAR2(2048),
+ AUTHORIZED VARCHAR2 (128),
+ OAUTH_VERIFIER VARCHAR2 (512),
+ AUTHZ_USER VARCHAR2 (512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (REQUEST_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
+ ACCESS_TOKEN VARCHAR2 (512),
+ ACCESS_TOKEN_SECRET VARCHAR2 (512),
+ CONSUMER_KEY_ID INTEGER,
+ SCOPE VARCHAR2(2048),
+ AUTHZ_USER VARCHAR2 (512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ACCESS_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
+ TOKEN_ID VARCHAR (255),
+ ACCESS_TOKEN VARCHAR2 (255),
+ REFRESH_TOKEN VARCHAR2 (255),
+ CONSUMER_KEY_ID INTEGER,
+ AUTHZ_USER VARCHAR2 (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR2 (50),
+ USER_TYPE VARCHAR (25),
+ GRANT_TYPE VARCHAR (50),
+ TIME_CREATED TIMESTAMP,
+ REFRESH_TOKEN_TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD NUMBER(19),
+ REFRESH_TOKEN_VALIDITY_PERIOD NUMBER(19),
+ TOKEN_SCOPE_HASH VARCHAR2 (32),
+ TOKEN_STATE VARCHAR2 (25) DEFAULT 'ACTIVE',
+ TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
+ PRIMARY KEY (TOKEN_ID),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
+ CONSTRAINT CON_APP_KEY UNIQUE (CONSUMER_KEY_ID,AUTHZ_USER,TOKEN_ID,USER_DOMAIN,USER_TYPE,TOKEN_SCOPE_HASH,
+ TOKEN_STATE,TOKEN_STATE_ID))
+/
+CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED)
+/
+CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER, TOKEN_STATE, USER_TYPE)
+/
+CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
+ AUTHORIZATION_CODE VARCHAR2 (512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR2 (1024),
+ SCOPE VARCHAR2(2048),
+ AUTHZ_USER VARCHAR2 (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR2 (50),
+ TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD NUMBER(19),
+ STATE VARCHAR (25) DEFAULT 'ACTIVE',
+ TOKEN_ID VARCHAR(255),
+ PRIMARY KEY (AUTHORIZATION_CODE),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
+ TOKEN_ID VARCHAR2 (255),
+ TOKEN_SCOPE VARCHAR2 (60),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (TOKEN_ID, TOKEN_SCOPE),
+ FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH2_SCOPE (
+ SCOPE_ID INTEGER,
+ SCOPE_KEY VARCHAR2 (100) NOT NULL,
+ NAME VARCHAR2 (255) NULL,
+ DESCRIPTION VARCHAR2 (512) NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ ROLES VARCHAR2 (500) NULL,
+ PRIMARY KEY (SCOPE_ID))
+/
+CREATE SEQUENCE IDN_OAUTH2_SCOPE_SEQUENCE START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDN_OAUTH2_SCOPE_TRIGGER
+ BEFORE INSERT
+ ON IDN_OAUTH2_SCOPE
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_OAUTH2_SCOPE_SEQUENCE.nextval INTO :NEW.SCOPE_ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_OAUTH2_RESOURCE_SCOPE (
+ RESOURCE_PATH VARCHAR2 (255) NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RESOURCE_PATH),
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID))
+/
+CREATE TABLE IDN_SCIM_GROUP (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ ROLE_NAME VARCHAR2(255) NOT NULL,
+ ATTR_NAME VARCHAR2(1024) NOT NULL,
+ ATTR_VALUE VARCHAR2(1024),
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE IDN_SCIM_GROUP_SEQUENCE START WITH 1 INCREMENT BY 1 NOCACHE
+/
+
+CREATE OR REPLACE TRIGGER IDN_SCIM_GROUP_TRIGGER
+ BEFORE INSERT
+ ON IDN_SCIM_GROUP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_SCIM_GROUP_SEQUENCE.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_OPENID_REMEMBER_ME (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ COOKIE_VALUE VARCHAR(1024),
+ CREATED_TIME TIMESTAMP,
+ PRIMARY KEY (USER_NAME, TENANT_ID))
+/
+CREATE TABLE IDN_OPENID_USER_RPS (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ RP_URL VARCHAR(255) NOT NULL,
+ TRUSTED_ALWAYS VARCHAR(128) DEFAULT 'FALSE',
+ LAST_VISIT DATE NOT NULL,
+ VISIT_COUNT INTEGER DEFAULT 0,
+ DEFAULT_PROFILE_NAME VARCHAR(255) DEFAULT 'DEFAULT',
+ PRIMARY KEY (USER_NAME, TENANT_ID, RP_URL))
+/
+CREATE TABLE IDN_OPENID_ASSOCIATIONS (
+ HANDLE VARCHAR(255) NOT NULL,
+ ASSOC_TYPE VARCHAR(255) NOT NULL,
+ EXPIRE_IN TIMESTAMP NOT NULL,
+ MAC_KEY VARCHAR(255) NOT NULL,
+ ASSOC_STORE VARCHAR(128) DEFAULT 'SHARED',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (HANDLE))
+/
+CREATE TABLE IDN_STS_STORE (
+ ID INTEGER,
+ TOKEN_ID VARCHAR(255) NOT NULL,
+ TOKEN_CONTENT BLOB NOT NULL,
+ CREATE_DATE TIMESTAMP NOT NULL,
+ EXPIRE_DATE TIMESTAMP NOT NULL,
+ STATE INTEGER DEFAULT 0,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE IDN_STS_STORE_SEQUENCE START WITH 1 INCREMENT BY 1 NOCACHE
+/
+
+CREATE OR REPLACE TRIGGER IDN_STS_STORE_TRIGGER
+ BEFORE INSERT
+ ON IDN_STS_STORE
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_STS_STORE_SEQUENCE.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_IDENTITY_USER_DATA (
+ TENANT_ID INTEGER DEFAULT -1234,
+ USER_NAME VARCHAR(255) NOT NULL,
+ DATA_KEY VARCHAR(255) NOT NULL,
+ DATA_VALUE VARCHAR(255),
+ PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY))
+/
+CREATE TABLE IDN_IDENTITY_META_DATA (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ METADATA_TYPE VARCHAR(255) NOT NULL,
+ METADATA VARCHAR(255) NOT NULL,
+ VALID VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, USER_NAME, METADATA_TYPE,METADATA))
+/
+CREATE TABLE IDN_THRIFT_SESSION (
+ SESSION_ID VARCHAR2(255) NOT NULL,
+ USER_NAME VARCHAR2(255) NOT NULL,
+ CREATED_TIME VARCHAR2(255) NOT NULL,
+ LAST_MODIFIED_TIME VARCHAR2(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID)
+)
+/
+CREATE TABLE IDN_AUTH_SESSION_STORE (
+ SESSION_ID VARCHAR (100) NOT NULL,
+ SESSION_TYPE VARCHAR(100) NOT NULL,
+ OPERATION VARCHAR(10) NOT NULL,
+ SESSION_OBJECT BLOB,
+ TIME_CREATED NUMBER(19),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID, SESSION_TYPE, TIME_CREATED, OPERATION)
+)
+/
+CREATE TABLE SP_APP (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ APP_NAME VARCHAR (255) NOT NULL ,
+ USER_STORE VARCHAR (255) NOT NULL,
+ USERNAME VARCHAR (255) NOT NULL ,
+ DESCRIPTION VARCHAR (1024),
+ ROLE_CLAIM VARCHAR (512),
+ AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROVISIONING_USERSTORE_DOMAIN VARCHAR (512),
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '1',
+ IS_SEND_LOCAL_SUBJECT_ID CHAR(1) DEFAULT '0',
+ IS_SEND_AUTH_LIST_OF_IDPS CHAR(1) DEFAULT '0',
+ IS_USE_TENANT_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ IS_USE_USER_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ SUBJECT_CLAIM_URI VARCHAR (512),
+ IS_SAAS_APP CHAR(1) DEFAULT '0',
+ IS_DUMB_MODE CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_APP_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_APP_TRIG
+ BEFORE INSERT
+ ON SP_APP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_APP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_APP ADD CONSTRAINT APPLICATION_NAME_CONSTRAINT UNIQUE(APP_NAME, TENANT_ID)
+/
+
+
+CREATE TABLE SP_METADATA (
+ ID INTEGER,
+ SP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT SP_METADATA_CONSTRAINT UNIQUE (SP_ID, NAME),
+ FOREIGN KEY (SP_ID) REFERENCES SP_APP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE SP_METADATA_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_METADATA_TRIG
+ BEFORE INSERT
+ ON SP_METADATA
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_METADATA_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+
+CREATE TABLE SP_INBOUND_AUTH (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ INBOUND_AUTH_KEY VARCHAR (255) NOT NULL,
+ INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROP_NAME VARCHAR (255),
+ PROP_VALUE VARCHAR (1024) ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_INBOUND_AUTH_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_INBOUND_AUTH_TRIG
+ BEFORE INSERT
+ ON SP_INBOUND_AUTH
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_INBOUND_AUTH_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_INBOUND_AUTH ADD CONSTRAINT APPLICATION_ID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_AUTH_STEP (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ STEP_ORDER INTEGER DEFAULT 1,
+ APP_ID INTEGER NOT NULL,
+ IS_SUBJECT_STEP CHAR(1) DEFAULT '0',
+ IS_ATTRIBUTE_STEP CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_AUTH_STEP_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_AUTH_STEP_TRIG
+ BEFORE INSERT
+ ON SP_AUTH_STEP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_AUTH_STEP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_AUTH_STEP ADD CONSTRAINT APPLICATION_ID_CONSTRAINT_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_FEDERATED_IDP (
+ ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID, AUTHENTICATOR_ID))
+/
+ALTER TABLE SP_FEDERATED_IDP ADD CONSTRAINT STEP_ID_CONSTRAINT FOREIGN KEY (ID) REFERENCES SP_AUTH_STEP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_CLAIM_MAPPING (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_CLAIM VARCHAR (512) NOT NULL ,
+ SP_CLAIM VARCHAR (512) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ DEFAULT_VALUE VARCHAR(255),
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_CLAIM_MAPPING_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_CLAIM_MAPPING_TRIG
+ BEFORE INSERT
+ ON SP_CLAIM_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_CLAIM_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_CLAIM_MAPPING ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_ROLE_MAPPING (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_ROLE VARCHAR (255) NOT NULL ,
+ SP_ROLE VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_ROLE_MAPPING_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_ROLE_MAPPING_TRIG
+ BEFORE INSERT
+ ON SP_ROLE_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_ROLE_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_ROLE_MAPPING ADD CONSTRAINT ROLEID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_REQ_PATH_AUTHENTICATOR (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_REQ_PATH_AUTH_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_REQ_PATH_AUTH_TRIG
+ BEFORE INSERT
+ ON SP_REQ_PATH_AUTHENTICATOR
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_REQ_PATH_AUTH_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_REQ_PATH_AUTHENTICATOR ADD CONSTRAINT REQ_AUTH_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_PROVISIONING_CONNECTOR (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_NAME VARCHAR (255) NOT NULL ,
+ CONNECTOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_JIT_ENABLED CHAR(1) DEFAULT '0',
+ BLOCKING CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_PROV_CONNECTOR_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER SP_PROV_CONNECTOR_TRIG
+ BEFORE INSERT
+ ON SP_PROVISIONING_CONNECTOR
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_PROV_CONNECTOR_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE IDP (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ NAME VARCHAR(254) NOT NULL,
+ IS_ENABLED CHAR(1) DEFAULT '1',
+ IS_PRIMARY CHAR(1) DEFAULT '0',
+ HOME_REALM_ID VARCHAR(254),
+ IMAGE BLOB,
+ CERTIFICATE BLOB,
+ ALIAS VARCHAR(254),
+ INBOUND_PROV_ENABLED CHAR (1) DEFAULT '0',
+ INBOUND_PROV_USER_STORE_ID VARCHAR(254),
+ USER_CLAIM_URI VARCHAR(254),
+ ROLE_CLAIM_URI VARCHAR(254),
+ DESCRIPTION VARCHAR (1024),
+ DEFAULT_AUTHENTICATOR_NAME VARCHAR(254),
+ DEFAULT_PRO_CONNECTOR_NAME VARCHAR(254),
+ PROVISIONING_ROLE VARCHAR(128),
+ IS_FEDERATION_HUB CHAR(1) DEFAULT '0',
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '0',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, NAME))
+/
+CREATE SEQUENCE IDP_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_TRIG
+ BEFORE INSERT
+ ON IDP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost')
+/
+CREATE TABLE IDP_ROLE (
+ ID INTEGER,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ ROLE VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, ROLE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_ROLE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_ROLE_TRIG
+ BEFORE INSERT
+ ON IDP_ROLE
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_ROLE_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_ROLE_MAPPING (
+ ID INTEGER,
+ IDP_ROLE_ID INTEGER,
+ TENANT_ID INTEGER,
+ USER_STORE_ID VARCHAR (253),
+ LOCAL_ROLE VARCHAR(253),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ROLE_ID, TENANT_ID, USER_STORE_ID, LOCAL_ROLE),
+ FOREIGN KEY (IDP_ROLE_ID) REFERENCES IDP_ROLE(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_ROLE_MAPPING_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_ROLE_MAPPING_TRIG
+ BEFORE INSERT
+ ON IDP_ROLE_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_ROLE_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_CLAIM (
+ ID INTEGER,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ CLAIM VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, CLAIM),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_CLAIM_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_CLAIM_TRIG
+ BEFORE INSERT
+ ON IDP_CLAIM
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_CLAIM_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_CLAIM_MAPPING (
+ ID INTEGER,
+ IDP_CLAIM_ID INTEGER,
+ TENANT_ID INTEGER,
+ LOCAL_CLAIM VARCHAR(253),
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_CLAIM_ID, TENANT_ID, LOCAL_CLAIM),
+ FOREIGN KEY (IDP_CLAIM_ID) REFERENCES IDP_CLAIM(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_CLAIM_MAPPING_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_CLAIM_MAPPING_TRIG
+ BEFORE INSERT
+ ON IDP_CLAIM_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_CLAIM_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_AUTHENTICATOR (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_AUTHENTICATOR_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_TRIG
+ BEFORE INSERT
+ ON IDP_AUTHENTICATOR
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_AUTHENTICATOR_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'samlsso')
+/
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'IDPProperties')
+/
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'passivests')
+/
+
+CREATE TABLE IDP_METADATA (
+ ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT IDP_METADATA_CONSTRAINT UNIQUE (IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_METADATA_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_METADATA_TRIG
+ BEFORE INSERT
+ ON IDP_METADATA
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_METADATA_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'SessionIdleTimeout', '20160', 'Session Idle Timeout')
+/
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'RememberMeTimeout', '15', 'RememberMe Timeout')
+/
+
+CREATE TABLE IDP_AUTHENTICATOR_PROPERTY (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ AUTHENTICATOR_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2047),
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY),
+ FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_AUTHENTICATOR_PROP_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_PROP_TRIG
+ BEFORE INSERT
+ ON IDP_AUTHENTICATOR_PROPERTY
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_AUTHENTICATOR_PROP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 1 , 'IdPEntityId', 'localhost', '0')
+/
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 3 , 'IdPEntityId', 'localhost', '0')
+/
+
+CREATE TABLE IDP_PROVISIONING_CONFIG (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '0',
+ IS_BLOCKING CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, PROVISIONING_CONNECTOR_TYPE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_PROVISIONING_CONFIG_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_PROVISIONING_CONFIG_TRIG
+ BEFORE INSERT
+ ON IDP_PROVISIONING_CONFIG
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_PROVISIONING_CONFIG_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_PROV_CONFIG_PROPERTY (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2048),
+ PROPERTY_BLOB_VALUE BLOB,
+ PROPERTY_TYPE CHAR(32) NOT NULL,
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, PROVISIONING_CONFIG_ID, PROPERTY_KEY),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_PROV_CONFIG_PROP_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_PROV_CONFIG_PROP_TRIG
+ BEFORE INSERT
+ ON IDP_PROV_CONFIG_PROPERTY
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_PROV_CONFIG_PROP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_PROVISIONING_ENTITY (
+ ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ ENTITY_TYPE VARCHAR(255) NOT NULL,
+ ENTITY_LOCAL_USERSTORE VARCHAR(255) NOT NULL,
+ ENTITY_NAME VARCHAR(255) NOT NULL,
+ ENTITY_VALUE VARCHAR(255),
+ TENANT_ID INTEGER,
+ ENTITY_LOCAL_ID VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (ENTITY_TYPE, TENANT_ID, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, PROVISIONING_CONFIG_ID),
+ UNIQUE (PROVISIONING_CONFIG_ID, ENTITY_TYPE, ENTITY_VALUE),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_PROV_ENTITY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_PROV_ENTITY_TRIG
+ BEFORE INSERT
+ ON IDP_PROVISIONING_ENTITY
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_PROV_ENTITY_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_LOCAL_CLAIM (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ CLAIM_URI VARCHAR(255) NOT NULL,
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, CLAIM_URI),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_LOCAL_CLAIM_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDP_LOCAL_CLAIM_TRIG
+ BEFORE INSERT
+ ON IDP_LOCAL_CLAIM
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_LOCAL_CLAIM_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_ASSOCIATED_ID (
+ ID INTEGER,
+ IDP_USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ IDP_ID INTEGER NOT NULL,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (ID),
+ UNIQUE(IDP_USER_ID, TENANT_ID, IDP_ID),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)
+/
+CREATE SEQUENCE IDN_ASSOCIATED_ID_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDN_ASSOCIATED_ID_TRIG
+BEFORE INSERT
+ON IDN_ASSOCIATED_ID
+REFERENCING NEW AS NEW
+FOR EACH ROW
+ BEGIN
+ SELECT IDN_ASSOCIATED_ID_SEQ.nextval
+ INTO :NEW.ID
+ FROM dual;
+ END;
+/
+CREATE TABLE IDN_USER_ACCOUNT_ASSOCIATION (
+ ASSOCIATION_KEY VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME))
+/
+CREATE TABLE FIDO_DEVICE_STORE (
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(45) NOT NULL,
+ TIME_REGISTERED TIMESTAMP,
+ KEY_HANDLE VARCHAR(200) NOT NULL,
+ DEVICE_DATA VARCHAR(2048) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME, KEY_HANDLE))
+/
+
+CREATE TABLE WF_REQUEST (
+ UUID VARCHAR2 (45),
+ CREATED_BY VARCHAR2 (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ OPERATION_TYPE VARCHAR2 (50),
+ CREATED_AT TIMESTAMP,
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR2 (30),
+ REQUEST BLOB,
+ PRIMARY KEY (UUID))
+/
+
+CREATE TABLE WF_BPS_PROFILE (
+ PROFILE_NAME VARCHAR2(45),
+ HOST_URL_MANAGER VARCHAR2(45),
+ HOST_URL_WORKER VARCHAR2(45),
+ USERNAME VARCHAR2(45),
+ PASSWORD VARCHAR2(255),
+ CALLBACK_HOST VARCHAR2 (45),
+ CALLBACK_USERNAME VARCHAR2 (45),
+ CALLBACK_PASSWORD VARCHAR2 (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (PROFILE_NAME, TENANT_ID))
+/
+
+CREATE TABLE WF_WORKFLOW(
+ ID VARCHAR2 (45),
+ WF_NAME VARCHAR2 (45),
+ DESCRIPTION VARCHAR2 (255),
+ TEMPLATE_ID VARCHAR2 (45),
+ IMPL_ID VARCHAR2 (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID))
+/
+
+CREATE TABLE WF_WORKFLOW_ASSOCIATION(
+ ID INTEGER,
+ ASSOC_NAME VARCHAR2 (45),
+ EVENT_ID VARCHAR2(45),
+ ASSOC_CONDITION VARCHAR2 (2000),
+ WORKFLOW_ID VARCHAR2 (45),
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE)
+/
+
+CREATE SEQUENCE WF_WORKFLOW_ASSOCIATION_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER WF_WORKFLOW_ASSOCIATION_TRIG
+BEFORE INSERT
+ON WF_WORKFLOW_ASSOCIATION
+REFERENCING NEW AS NEW
+FOR EACH ROW
+ BEGIN
+ SELECT WF_WORKFLOW_ASSOCIATION_SEQ.nextval
+ INTO :NEW.ID
+ FROM dual;
+ END;
+/
+
+CREATE TABLE WF_WORKFLOW_CONFIG_PARAM(
+ WORKFLOW_ID VARCHAR2 (45),
+ PARAM_NAME VARCHAR2 (45),
+ PARAM_VALUE VARCHAR2 (1000),
+ PARAM_QNAME VARCHAR2 (45),
+ PARAM_HOLDER VARCHAR2 (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (WORKFLOW_ID, PARAM_NAME, PARAM_QNAME, PARAM_HOLDER),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE)
+/
+
+CREATE TABLE WF_REQUEST_ENTITY_RELATIONSHIP(
+ REQUEST_ID VARCHAR2 (45),
+ ENTITY_NAME VARCHAR2 (255),
+ ENTITY_TYPE VARCHAR2 (50),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(REQUEST_ID, ENTITY_NAME, ENTITY_TYPE, TENANT_ID),
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE)
+/
+
+CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
+ RELATIONSHIP_ID VARCHAR2 (45),
+ WORKFLOW_ID VARCHAR2 (45),
+ REQUEST_ID VARCHAR2 (45),
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RELATIONSHIP_ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE)
+/
+-- End of IDENTITY Tables--
+
+-- Start of API-MGT Tables--
+CREATE TABLE AM_SUBSCRIBER (
+ SUBSCRIBER_ID INTEGER,
+ USER_ID VARCHAR2(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EMAIL_ADDRESS VARCHAR2(256) NULL,
+ DATE_SUBSCRIBED DATE NOT NULL,
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ PRIMARY KEY (SUBSCRIBER_ID),
+ UNIQUE (TENANT_ID,USER_ID)
+)
+/
+
+CREATE SEQUENCE AM_SUBSCRIBER_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_SUBSCRIBER_TRIGGER
+ BEFORE INSERT
+ ON AM_SUBSCRIBER
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_SUBSCRIBER_SEQUENCE.nextval INTO :NEW.SUBSCRIBER_ID FROM dual;
+ END;
+/
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(SUBSCRIBER_ID) relation
+CREATE TABLE AM_APPLICATION (
+ APPLICATION_ID INTEGER,
+ NAME VARCHAR2(100),
+ SUBSCRIBER_ID INTEGER,
+ APPLICATION_TIER VARCHAR2(50) DEFAULT 'Unlimited',
+ CALLBACK_URL VARCHAR2(512),
+ DESCRIPTION VARCHAR2(512),
+ APPLICATION_STATUS VARCHAR2(50) DEFAULT 'APPROVED',
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON DELETE CASCADE,
+ PRIMARY KEY(APPLICATION_ID),
+ UNIQUE (NAME,SUBSCRIBER_ID)
+)
+/
+
+CREATE SEQUENCE AM_APPLICATION_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_APPLICATION_TRIGGER
+ BEFORE INSERT
+ ON AM_APPLICATION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_APPLICATION_SEQUENCE.nextval INTO :NEW.APPLICATION_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API (
+ API_ID INTEGER,
+ API_PROVIDER VARCHAR2(256),
+ API_NAME VARCHAR2(256),
+ API_VERSION VARCHAR2(30),
+ CONTEXT VARCHAR2(256),
+ CONTEXT_TEMPLATE VARCHAR2(256),
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ PRIMARY KEY(API_ID),
+ UNIQUE (API_PROVIDER,API_NAME,API_VERSION)
+)
+/
+
+CREATE SEQUENCE AM_API_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_API_TRIGGER
+ BEFORE INSERT
+ ON AM_API
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_SEQUENCE.nextval INTO :NEW.API_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API_URL_MAPPING (
+ URL_MAPPING_ID INTEGER,
+ API_ID INTEGER NOT NULL,
+ HTTP_METHOD VARCHAR(20) NULL,
+ AUTH_SCHEME VARCHAR(50) NULL,
+ URL_PATTERN VARCHAR(512) NULL,
+ THROTTLING_TIER varchar(512) DEFAULT NULL,
+ MEDIATION_SCRIPT BLOB,
+ PRIMARY KEY(URL_MAPPING_ID)
+)
+/
+
+CREATE SEQUENCE AM_API_URL_MAPPING_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_API_URL_MAPPING_TRIGGER
+ BEFORE INSERT
+ ON AM_API_URL_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_URL_MAPPING_SEQUENCE.nextval INTO :NEW.URL_MAPPING_ID FROM dual;
+ END;
+/
+
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(SUBSCRIPTION_ID) relation
+CREATE TABLE AM_SUBSCRIPTION (
+ SUBSCRIPTION_ID INTEGER,
+ TIER_ID VARCHAR2(50),
+ API_ID INTEGER,
+ LAST_ACCESSED DATE NULL,
+ APPLICATION_ID INTEGER,
+ SUB_STATUS VARCHAR(50),
+ SUBS_CREATE_STATE VARCHAR(50) DEFAULT 'SUBSCRIBE',
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (SUBSCRIPTION_ID)
+)
+/
+
+CREATE SEQUENCE AM_SUBSCRIPTION_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_SUBSCRIPTION_TRIGGER
+ BEFORE INSERT
+ ON AM_SUBSCRIPTION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_SUBSCRIPTION_SEQUENCE.nextval INTO :NEW.SUBSCRIPTION_ID FROM dual;
+ END;
+/
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(APPLICATION_ID) and FOREIGN KEY(API_ID) relations
+CREATE TABLE AM_SUBSCRIPTION_KEY_MAPPING (
+ SUBSCRIPTION_ID INTEGER,
+ ACCESS_TOKEN VARCHAR2(512),
+ KEY_TYPE VARCHAR2(512) NOT NULL,
+ FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON DELETE CASCADE,
+ PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
+)
+/
+--TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(APPLICATION_ID) relation
+CREATE TABLE AM_APPLICATION_KEY_MAPPING (
+ APPLICATION_ID INTEGER,
+ CONSUMER_KEY VARCHAR2(512),
+ KEY_TYPE VARCHAR2(512) NOT NULL,
+ STATE VARCHAR2(30) NOT NULL,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE,
+ PRIMARY KEY(APPLICATION_ID,KEY_TYPE)
+)
+/
+
+CREATE TABLE AM_APPLICATION_REGISTRATION (
+ REG_ID INTEGER ,
+ SUBSCRIBER_ID INTEGER,
+ WF_REF VARCHAR2(255) NOT NULL,
+ APP_ID INTEGER,
+ TOKEN_TYPE VARCHAR2(30),
+ TOKEN_SCOPE VARCHAR2(256) DEFAULT 'default',
+ ALLOWED_DOMAINS VARCHAR2(256),
+ VALIDITY_PERIOD NUMBER(19),
+ UNIQUE (SUBSCRIBER_ID,APP_ID,TOKEN_TYPE),
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID),
+ FOREIGN KEY(APP_ID) REFERENCES AM_APPLICATION(APPLICATION_ID),
+ PRIMARY KEY (REG_ID)
+)
+/
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(API_ID) relation
+CREATE TABLE AM_API_LC_EVENT (
+ EVENT_ID INTEGER,
+ API_ID INTEGER NOT NULL,
+ PREVIOUS_STATE VARCHAR2(50),
+ NEW_STATE VARCHAR2(50) NOT NULL,
+ USER_ID VARCHAR2(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EVENT_DATE DATE NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (EVENT_ID)
+)
+/
+
+CREATE TABLE AM_APP_KEY_DOMAIN_MAPPING (
+ CONSUMER_KEY VARCHAR(255),
+ AUTHZ_DOMAIN VARCHAR(255) DEFAULT 'ALL',
+ PRIMARY KEY (CONSUMER_KEY,AUTHZ_DOMAIN)
+
+)
+/
+
+CREATE TABLE AM_API_COMMENTS (
+ COMMENT_ID INTEGER,
+ COMMENT_TEXT VARCHAR2(512),
+ COMMENTED_USER VARCHAR2(255),
+ DATE_COMMENTED DATE NOT NULL,
+ API_ID INTEGER NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (COMMENT_ID)
+)
+/
+
+CREATE SEQUENCE AM_API_COMMENTS_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_API_COMMENTS_TRIGGER
+ BEFORE INSERT
+ ON AM_API_COMMENTS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_COMMENTS_SEQUENCE.nextval INTO :NEW.COMMENT_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API_RATINGS (
+ RATING_ID INTEGER,
+ API_ID INTEGER,
+ RATING INTEGER,
+ SUBSCRIBER_ID INTEGER,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON DELETE CASCADE,
+ PRIMARY KEY (RATING_ID)
+)
+/
+
+CREATE SEQUENCE AM_API_RATINGS_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_API_RATINGS_TRIGGER
+ BEFORE INSERT
+ ON AM_API_RATINGS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_RATINGS_SEQUENCE.nextval INTO :NEW.RATING_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_TIER_PERMISSIONS (
+ TIER_PERMISSIONS_ID INTEGER,
+ TIER VARCHAR2(50) NOT NULL,
+ PERMISSIONS_TYPE VARCHAR2(50) NOT NULL,
+ ROLES VARCHAR2(512) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY(TIER_PERMISSIONS_ID)
+)
+/
+
+CREATE SEQUENCE AM_TIER_PERMISSIONS_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_TIER_PERMISSIONS_TRIGGER
+ BEFORE INSERT
+ ON AM_TIER_PERMISSIONS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_TIER_PERMISSIONS_SEQUENCE.nextval INTO :NEW.TIER_PERMISSIONS_ID FROM dual;
+ END;
+/
+
+CREATE SEQUENCE AM_API_LC_EVENT_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_API_LC_EVENT_TRIGGER
+ BEFORE INSERT
+ ON AM_API_LC_EVENT
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_LC_EVENT_SEQUENCE.nextval INTO :NEW.EVENT_ID FROM dual;
+ END;
+/
+-- Start of IDP-APPLICATION-MGT Tables --
+
+-- End of IDP-APPLICATION-MGT Tables --
+
+
+CREATE TABLE AM_EXTERNAL_STORES (
+ APISTORE_ID INTEGER,
+ API_ID INTEGER,
+ STORE_ID VARCHAR2(255) NOT NULL,
+ STORE_DISPLAY_NAME VARCHAR2(255) NOT NULL,
+ STORE_ENDPOINT VARCHAR2(255) NOT NULL,
+ STORE_TYPE VARCHAR2(255) NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (APISTORE_ID)
+)
+/
+
+CREATE TABLE AM_WORKFLOWS(
+ WF_ID INTEGER,
+ WF_REFERENCE VARCHAR(255) NOT NULL,
+ WF_TYPE VARCHAR(255) NOT NULL,
+ WF_STATUS VARCHAR(255) NOT NULL,
+ WF_CREATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ WF_UPDATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ WF_STATUS_DESC VARCHAR(1000),
+ TENANT_ID INTEGER,
+ TENANT_DOMAIN VARCHAR(255),
+ WF_EXTERNAL_REFERENCE VARCHAR(255) NOT NULL UNIQUE,
+ PRIMARY KEY (WF_ID)
+)
+/
+
+CREATE TABLE AM_API_SCOPES (
+ API_ID INTEGER NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ FOREIGN KEY (API_ID) REFERENCES AM_API (API_ID) ON DELETE CASCADE,
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE
+)
+/
+CREATE SEQUENCE AM_APP_REGISTRATION_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_APP_REGISTRATION_TRIGGER
+ BEFORE INSERT
+ ON AM_APPLICATION_REGISTRATION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_APP_REGISTRATION_SEQUENCE.nextval INTO :NEW.REG_ID FROM dual;
+ END;
+/
+
+CREATE SEQUENCE AM_WORKFLOWS_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_WORKFLOWS_TRIGGER
+ BEFORE INSERT
+ ON AM_WORKFLOWS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_WORKFLOWS_SEQUENCE.nextval INTO :NEW.WF_ID FROM dual;
+ END;
+/
+
+CREATE SEQUENCE AM_EXTERNAL_STORES_SEQUENCE START WITH 1 INCREMENT BY 1
+/
+
+CREATE OR REPLACE TRIGGER AM_EXTERNAL_STORES_TRIGGER
+ BEFORE INSERT
+ ON AM_EXTERNAL_STORES
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_EXTERNAL_STORES_SEQUENCE.nextval INTO :NEW.APISTORE_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API_DEFAULT_VERSION (
+ DEFAULT_VERSION_ID NUMBER,
+ API_NAME VARCHAR(256) NOT NULL ,
+ API_PROVIDER VARCHAR(256) NOT NULL ,
+ DEFAULT_API_VERSION VARCHAR(30) ,
+ PUBLISHED_DEFAULT_API_VERSION VARCHAR(30) ,
+ PRIMARY KEY (DEFAULT_VERSION_ID)
+)
+/
+CREATE SEQUENCE AM_API_DEFAULT_VERSION_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER AM_API_DEFAULT_VERSION_TRG
+ BEFORE INSERT
+ ON AM_API_DEFAULT_VERSION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_DEFAULT_VERSION_SEQ.nextval INTO :NEW.DEFAULT_VERSION_ID FROM dual;
+ END;
+/
+CREATE INDEX IDX_SUB_APP_ID ON AM_SUBSCRIPTION (APPLICATION_ID, SUBSCRIPTION_ID)
+/
+
diff --git a/modules/distribution/src/repository/resources/dbscripts/apimgt/oracle_rac.sql b/modules/distribution/src/repository/resources/dbscripts/apimgt/oracle_rac.sql
new file mode 100644
index 00000000..77282503
--- /dev/null
+++ b/modules/distribution/src/repository/resources/dbscripts/apimgt/oracle_rac.sql
@@ -0,0 +1,1253 @@
+-- Create Oracle New User and Connect
+--------------------------------------
+-- CREATE USER apimuser IDENTIFIED BY wso2;
+-- GRANT CONNECT,RESOURCE to apimuser WITH ADMIN OPTION;
+-- CONNECT apimuser/wso2
+--
+
+-- Start of IDN Tables --
+CREATE TABLE IDN_BASE_TABLE (
+ PRODUCT_NAME VARCHAR2 (20),
+ PRIMARY KEY (PRODUCT_NAME))
+/
+INSERT INTO IDN_BASE_TABLE values ('WSO2 Identity Server')
+/
+CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
+ ID INTEGER,
+ CONSUMER_KEY VARCHAR2 (255),
+ CONSUMER_SECRET VARCHAR2 (512),
+ USERNAME VARCHAR2 (255),
+ TENANT_ID INTEGER DEFAULT 0,
+ USER_DOMAIN VARCHAR(50),
+ APP_NAME VARCHAR2 (255),
+ OAUTH_VERSION VARCHAR2 (128),
+ CALLBACK_URL VARCHAR2 (1024),
+ GRANT_TYPES VARCHAR (1024),
+ CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE IDN_OAUTH_CONSUMER_APPS_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDN_OAUTH_CONSUMER_APPS_TRIG
+ BEFORE INSERT
+ ON IDN_OAUTH_CONSUMER_APPS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_OAUTH_CONSUMER_APPS_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_OAUTH1A_REQUEST_TOKEN (
+ REQUEST_TOKEN VARCHAR2 (512),
+ REQUEST_TOKEN_SECRET VARCHAR2 (512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR2 (1024),
+ SCOPE VARCHAR2(2048),
+ AUTHORIZED VARCHAR2 (128),
+ OAUTH_VERIFIER VARCHAR2 (512),
+ AUTHZ_USER VARCHAR2 (512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (REQUEST_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
+ ACCESS_TOKEN VARCHAR2 (512),
+ ACCESS_TOKEN_SECRET VARCHAR2 (512),
+ CONSUMER_KEY_ID INTEGER,
+ SCOPE VARCHAR2(2048),
+ AUTHZ_USER VARCHAR2 (512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ACCESS_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
+ TOKEN_ID VARCHAR (255),
+ ACCESS_TOKEN VARCHAR2 (255),
+ REFRESH_TOKEN VARCHAR2 (255),
+ CONSUMER_KEY_ID INTEGER,
+ AUTHZ_USER VARCHAR2 (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR2 (50),
+ USER_TYPE VARCHAR (25),
+ GRANT_TYPE VARCHAR (50),
+ TIME_CREATED TIMESTAMP,
+ REFRESH_TOKEN_TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD NUMBER(19),
+ REFRESH_TOKEN_VALIDITY_PERIOD NUMBER(19),
+ TOKEN_SCOPE_HASH VARCHAR2 (32),
+ TOKEN_STATE VARCHAR2 (25) DEFAULT 'ACTIVE',
+ TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
+ PRIMARY KEY (TOKEN_ID),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
+ CONSTRAINT CON_APP_KEY UNIQUE (CONSUMER_KEY_ID,AUTHZ_USER,TOKEN_ID,USER_DOMAIN,USER_TYPE,TOKEN_SCOPE_HASH,
+ TOKEN_STATE,TOKEN_STATE_ID))
+/
+CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER, TOKEN_STATE, USER_TYPE)
+/
+CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED)
+/
+CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
+ AUTHORIZATION_CODE VARCHAR2 (512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR2 (1024),
+ SCOPE VARCHAR2(2048),
+ AUTHZ_USER VARCHAR2 (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR2(50),
+ TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD NUMBER(19),
+ STATE VARCHAR (25) DEFAULT 'ACTIVE',
+ TOKEN_ID VARCHAR(255),
+ PRIMARY KEY (AUTHORIZATION_CODE),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
+ TOKEN_ID VARCHAR2 (255),
+ TOKEN_SCOPE VARCHAR2 (60),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (TOKEN_ID, TOKEN_SCOPE),
+ FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE)
+/
+CREATE TABLE IDN_OAUTH2_SCOPE (
+ SCOPE_ID INTEGER,
+ SCOPE_KEY VARCHAR2 (100) NOT NULL,
+ NAME VARCHAR2 (255) NULL,
+ DESCRIPTION VARCHAR2 (512) NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ ROLES VARCHAR2 (500) NULL,
+ PRIMARY KEY (SCOPE_ID))
+/
+CREATE SEQUENCE IDN_OAUTH2_SCOPE_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDN_OAUTH2_SCOPE_TRIGGER
+ BEFORE INSERT
+ ON IDN_OAUTH2_SCOPE
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_OAUTH2_SCOPE_SEQUENCE.nextval INTO :NEW.SCOPE_ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_OAUTH2_RESOURCE_SCOPE (
+ RESOURCE_PATH VARCHAR2 (255) NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RESOURCE_PATH),
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID))
+/
+CREATE TABLE IDN_SCIM_GROUP (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ ROLE_NAME VARCHAR2(255) NOT NULL,
+ ATTR_NAME VARCHAR2(1024) NOT NULL,
+ ATTR_VALUE VARCHAR2(1024),
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE IDN_SCIM_GROUP_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER IDN_SCIM_GROUP_TRIGGER
+ BEFORE INSERT
+ ON IDN_SCIM_GROUP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_SCIM_GROUP_SEQUENCE.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_OPENID_REMEMBER_ME (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ COOKIE_VALUE VARCHAR(1024),
+ CREATED_TIME TIMESTAMP,
+ PRIMARY KEY (USER_NAME, TENANT_ID))
+/
+CREATE TABLE IDN_OPENID_USER_RPS (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ RP_URL VARCHAR(255) NOT NULL,
+ TRUSTED_ALWAYS VARCHAR(128) DEFAULT 'FALSE',
+ LAST_VISIT DATE NOT NULL,
+ VISIT_COUNT INTEGER DEFAULT 0,
+ DEFAULT_PROFILE_NAME VARCHAR(255) DEFAULT 'DEFAULT',
+ PRIMARY KEY (USER_NAME, TENANT_ID, RP_URL))
+/
+CREATE TABLE IDN_OPENID_ASSOCIATIONS (
+ HANDLE VARCHAR(255) NOT NULL,
+ ASSOC_TYPE VARCHAR(255) NOT NULL,
+ EXPIRE_IN TIMESTAMP NOT NULL,
+ MAC_KEY VARCHAR(255) NOT NULL,
+ ASSOC_STORE VARCHAR(128) DEFAULT 'SHARED',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (HANDLE))
+/
+CREATE TABLE IDN_STS_STORE (
+ ID INTEGER,
+ TOKEN_ID VARCHAR(255) NOT NULL,
+ TOKEN_CONTENT BLOB NOT NULL,
+ CREATE_DATE TIMESTAMP NOT NULL,
+ EXPIRE_DATE TIMESTAMP NOT NULL,
+ STATE INTEGER DEFAULT 0,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE IDN_STS_STORE_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER IDN_STS_STORE_TRIGGER
+ BEFORE INSERT
+ ON IDN_STS_STORE
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_STS_STORE_SEQUENCE.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_IDENTITY_USER_DATA (
+ TENANT_ID INTEGER DEFAULT -1234,
+ USER_NAME VARCHAR(255) NOT NULL,
+ DATA_KEY VARCHAR(255) NOT NULL,
+ DATA_VALUE VARCHAR(255),
+ PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY))
+/
+CREATE TABLE IDN_IDENTITY_META_DATA (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ METADATA_TYPE VARCHAR(255) NOT NULL,
+ METADATA VARCHAR(255) NOT NULL,
+ VALID VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, USER_NAME, METADATA_TYPE,METADATA))
+/
+CREATE TABLE IDN_THRIFT_SESSION (
+ SESSION_ID VARCHAR2(255) NOT NULL,
+ USER_NAME VARCHAR2(255) NOT NULL,
+ CREATED_TIME VARCHAR2(255) NOT NULL,
+ LAST_MODIFIED_TIME VARCHAR2(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID)
+)
+/
+CREATE TABLE IDN_AUTH_SESSION_STORE (
+ SESSION_ID VARCHAR (100) NOT NULL,
+ SESSION_TYPE VARCHAR(100) NOT NULL,
+ OPERATION VARCHAR(10) NOT NULL,
+ SESSION_OBJECT BLOB,
+ TIME_CREATED NUMBER(19),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID, SESSION_TYPE, TIME_CREATED, OPERATION)
+)
+/
+CREATE TABLE SP_APP (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ APP_NAME VARCHAR (255) NOT NULL ,
+ USER_STORE VARCHAR (255) NOT NULL,
+ USERNAME VARCHAR (255) NOT NULL ,
+ DESCRIPTION VARCHAR (1024),
+ ROLE_CLAIM VARCHAR (512),
+ AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROVISIONING_USERSTORE_DOMAIN VARCHAR (512),
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '1',
+ IS_SEND_LOCAL_SUBJECT_ID CHAR(1) DEFAULT '0',
+ IS_SEND_AUTH_LIST_OF_IDPS CHAR(1) DEFAULT '0',
+ IS_USE_TENANT_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ IS_USE_USER_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ SUBJECT_CLAIM_URI VARCHAR (512),
+ IS_SAAS_APP CHAR(1) DEFAULT '0',
+ IS_DUMB_MODE CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_APP_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_APP_TRIG
+ BEFORE INSERT
+ ON SP_APP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_APP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_APP ADD CONSTRAINT APPLICATION_NAME_CONSTRAINT UNIQUE(APP_NAME, TENANT_ID)
+/
+
+CREATE TABLE SP_METADATA (
+ ID INTEGER,
+ SP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT SP_METADATA_CONSTRAINT UNIQUE (SP_ID, NAME),
+ FOREIGN KEY (SP_ID) REFERENCES SP_APP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE SP_METADATA_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_METADATA_TRIG
+ BEFORE INSERT
+ ON SP_METADATA
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_METADATA_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+
+CREATE TABLE SP_INBOUND_AUTH (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ INBOUND_AUTH_KEY VARCHAR (255) NOT NULL,
+ INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROP_NAME VARCHAR (255),
+ PROP_VALUE VARCHAR (1024) ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_INBOUND_AUTH_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_INBOUND_AUTH_TRIG
+ BEFORE INSERT
+ ON SP_INBOUND_AUTH
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_INBOUND_AUTH_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_INBOUND_AUTH ADD CONSTRAINT APPLICATION_ID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_AUTH_STEP (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ STEP_ORDER INTEGER DEFAULT 1,
+ APP_ID INTEGER NOT NULL,
+ IS_SUBJECT_STEP CHAR(1) DEFAULT '0',
+ IS_ATTRIBUTE_STEP CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_AUTH_STEP_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_AUTH_STEP_TRIG
+ BEFORE INSERT
+ ON SP_AUTH_STEP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_AUTH_STEP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_AUTH_STEP ADD CONSTRAINT APPLICATION_ID_CONSTRAINT_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_FEDERATED_IDP (
+ ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID, AUTHENTICATOR_ID))
+/
+ALTER TABLE SP_FEDERATED_IDP ADD CONSTRAINT STEP_ID_CONSTRAINT FOREIGN KEY (ID) REFERENCES SP_AUTH_STEP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_CLAIM_MAPPING (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_CLAIM VARCHAR (512) NOT NULL ,
+ SP_CLAIM VARCHAR (512) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ DEFAULT_VALUE VARCHAR(255),
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_CLAIM_MAPPING_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_CLAIM_MAPPING_TRIG
+ BEFORE INSERT
+ ON SP_CLAIM_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_CLAIM_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_CLAIM_MAPPING ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_ROLE_MAPPING (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_ROLE VARCHAR (255) NOT NULL ,
+ SP_ROLE VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_ROLE_MAPPING_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_ROLE_MAPPING_TRIG
+ BEFORE INSERT
+ ON SP_ROLE_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_ROLE_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_ROLE_MAPPING ADD CONSTRAINT ROLEID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_REQ_PATH_AUTHENTICATOR (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_REQ_PATH_AUTH_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_REQ_PATH_AUTH_TRIG
+ BEFORE INSERT
+ ON SP_REQ_PATH_AUTHENTICATOR
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_REQ_PATH_AUTH_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_REQ_PATH_AUTHENTICATOR ADD CONSTRAINT REQ_AUTH_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE SP_PROVISIONING_CONNECTOR (
+ ID INTEGER,
+ TENANT_ID INTEGER NOT NULL,
+ IDP_NAME VARCHAR (255) NOT NULL ,
+ CONNECTOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_JIT_ENABLED CHAR(1) DEFAULT '0',
+ BLOCKING CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID))
+/
+CREATE SEQUENCE SP_PROV_CONNECTOR_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER SP_PROV_CONNECTOR_TRIG
+ BEFORE INSERT
+ ON SP_PROVISIONING_CONNECTOR
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT SP_PROV_CONNECTOR_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
+/
+CREATE TABLE IDP (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ NAME VARCHAR(254) NOT NULL,
+ IS_ENABLED CHAR(1) DEFAULT '1',
+ IS_PRIMARY CHAR(1) DEFAULT '0',
+ HOME_REALM_ID VARCHAR(254),
+ IMAGE BLOB,
+ CERTIFICATE BLOB,
+ ALIAS VARCHAR(254),
+ INBOUND_PROV_ENABLED CHAR (1) DEFAULT '0',
+ INBOUND_PROV_USER_STORE_ID VARCHAR(254),
+ USER_CLAIM_URI VARCHAR(254),
+ ROLE_CLAIM_URI VARCHAR(254),
+ DESCRIPTION VARCHAR (1024),
+ DEFAULT_AUTHENTICATOR_NAME VARCHAR(254),
+ DEFAULT_PRO_CONNECTOR_NAME VARCHAR(254),
+ PROVISIONING_ROLE VARCHAR(128),
+ IS_FEDERATION_HUB CHAR(1) DEFAULT '0',
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '0',
+ DISPLAY_NAME VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, NAME))
+/
+CREATE SEQUENCE IDP_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_TRIG
+ BEFORE INSERT
+ ON IDP
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost')
+/
+CREATE TABLE IDP_ROLE (
+ ID INTEGER,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ ROLE VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, ROLE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_ROLE_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_ROLE_TRIG
+ BEFORE INSERT
+ ON IDP_ROLE
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_ROLE_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_ROLE_MAPPING (
+ ID INTEGER,
+ IDP_ROLE_ID INTEGER,
+ TENANT_ID INTEGER,
+ USER_STORE_ID VARCHAR (253),
+ LOCAL_ROLE VARCHAR(253),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ROLE_ID, TENANT_ID, USER_STORE_ID, LOCAL_ROLE),
+ FOREIGN KEY (IDP_ROLE_ID) REFERENCES IDP_ROLE(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_ROLE_MAPPING_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_ROLE_MAPPING_TRIG
+ BEFORE INSERT
+ ON IDP_ROLE_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_ROLE_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_CLAIM (
+ ID INTEGER,
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ CLAIM VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, CLAIM),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_CLAIM_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_CLAIM_TRIG
+ BEFORE INSERT
+ ON IDP_CLAIM
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_CLAIM_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_CLAIM_MAPPING (
+ ID INTEGER,
+ IDP_CLAIM_ID INTEGER,
+ TENANT_ID INTEGER,
+ LOCAL_CLAIM VARCHAR(253),
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_CLAIM_ID, TENANT_ID, LOCAL_CLAIM),
+ FOREIGN KEY (IDP_CLAIM_ID) REFERENCES IDP_CLAIM(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_CLAIM_MAPPING_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_CLAIM_MAPPING_TRIG
+ BEFORE INSERT
+ ON IDP_CLAIM_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_CLAIM_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_AUTHENTICATOR (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_AUTHENTICATOR_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_TRIG
+ BEFORE INSERT
+ ON IDP_AUTHENTICATOR
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_AUTHENTICATOR_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'samlsso')
+/
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'IDPProperties')
+/
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'passivests')
+/
+
+CREATE TABLE IDP_METADATA (
+ ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT IDP_METADATA_CONSTRAINT UNIQUE (IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_METADATA_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_METADATA_TRIG
+ BEFORE INSERT
+ ON IDP_METADATA
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_METADATA_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+
+/
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'SessionIdleTimeout', '20160', 'Session Idle Timeout')
+/
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'RememberMeTimeout', '15', 'RememberMe Timeout')
+/
+
+CREATE TABLE IDP_AUTHENTICATOR_PROPERTY (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ AUTHENTICATOR_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2047),
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY),
+ FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_AUTHENTICATOR_PROP_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_PROP_TRIG
+ BEFORE INSERT
+ ON IDP_AUTHENTICATOR_PROPERTY
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_AUTHENTICATOR_PROP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 1 , 'IdPEntityId', 'localhost', '0')
+/
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 3 , 'IdPEntityId', 'localhost', '0')
+/
+CREATE TABLE IDP_PROVISIONING_CONFIG (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '0',
+ IS_BLOCKING CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, PROVISIONING_CONNECTOR_TYPE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_PROVISIONING_CONFIG_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_PROVISIONING_CONFIG_TRIG
+ BEFORE INSERT
+ ON IDP_PROVISIONING_CONFIG
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_PROVISIONING_CONFIG_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_PROV_CONFIG_PROPERTY (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2048),
+ PROPERTY_BLOB_VALUE BLOB,
+ PROPERTY_TYPE CHAR(32) NOT NULL,
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, PROVISIONING_CONFIG_ID, PROPERTY_KEY),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_PROV_CONFIG_PROP_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_PROV_CONFIG_PROP_TRIG
+ BEFORE INSERT
+ ON IDP_PROV_CONFIG_PROPERTY
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_PROV_CONFIG_PROP_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_PROVISIONING_ENTITY (
+ ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ ENTITY_TYPE VARCHAR(255) NOT NULL,
+ ENTITY_LOCAL_USERSTORE VARCHAR(255) NOT NULL,
+ ENTITY_NAME VARCHAR(255) NOT NULL,
+ ENTITY_VALUE VARCHAR(255),
+ TENANT_ID INTEGER,
+ ENTITY_LOCAL_ID VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (ENTITY_TYPE, TENANT_ID, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, PROVISIONING_CONFIG_ID),
+ UNIQUE (PROVISIONING_CONFIG_ID, ENTITY_TYPE, ENTITY_VALUE),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_PROV_ENTITY_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_PROV_ENTITY_TRIG
+ BEFORE INSERT
+ ON IDP_PROVISIONING_ENTITY
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_PROV_ENTITY_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDP_LOCAL_CLAIM (
+ ID INTEGER,
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ CLAIM_URI VARCHAR(255) NOT NULL,
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, CLAIM_URI),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE)
+/
+CREATE SEQUENCE IDP_LOCAL_CLAIM_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER IDP_LOCAL_CLAIM_TRIG
+ BEFORE INSERT
+ ON IDP_LOCAL_CLAIM
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDP_LOCAL_CLAIM_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_ASSOCIATED_ID (
+ ID INTEGER,
+ IDP_USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ IDP_ID INTEGER NOT NULL,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (ID),
+ UNIQUE(IDP_USER_ID, TENANT_ID, IDP_ID),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+)
+/
+CREATE SEQUENCE IDN_ASSOCIATED_ID_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
+/
+CREATE OR REPLACE TRIGGER IDN_ASSOCIATED_ID_TRIG
+ BEFORE INSERT
+ ON IDN_ASSOCIATED_ID
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT IDN_ASSOCIATED_ID_SEQ.nextval INTO :NEW.ID FROM dual;
+ END;
+/
+CREATE TABLE IDN_USER_ACCOUNT_ASSOCIATION (
+ ASSOCIATION_KEY VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME))
+/
+CREATE TABLE FIDO_DEVICE_STORE (
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(45) NOT NULL,
+ TIME_REGISTERED TIMESTAMP,
+ KEY_HANDLE VARCHAR(200) NOT NULL,
+ DEVICE_DATA VARCHAR(2048) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME, KEY_HANDLE))
+/
+
+CREATE TABLE WF_REQUEST (
+ UUID VARCHAR2 (45),
+ CREATED_BY VARCHAR2 (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ OPERATION_TYPE VARCHAR2 (50),
+ CREATED_AT TIMESTAMP,
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR2 (30),
+ REQUEST BLOB,
+ PRIMARY KEY (UUID))
+/
+
+CREATE TABLE WF_BPS_PROFILE (
+ PROFILE_NAME VARCHAR2(45),
+ HOST_URL_MANAGER VARCHAR2(45),
+ HOST_URL_WORKER VARCHAR2(45),
+ USERNAME VARCHAR2(45),
+ PASSWORD VARCHAR2(255),
+ CALLBACK_HOST VARCHAR2 (45),
+ CALLBACK_USERNAME VARCHAR2 (45),
+ CALLBACK_PASSWORD VARCHAR2 (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (PROFILE_NAME, TENANT_ID))
+/
+
+CREATE TABLE WF_WORKFLOW(
+ ID VARCHAR2 (45),
+ WF_NAME VARCHAR2 (45),
+ DESCRIPTION VARCHAR2 (255),
+ TEMPLATE_ID VARCHAR2 (45),
+ IMPL_ID VARCHAR2 (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID))
+/
+
+CREATE TABLE WF_WORKFLOW_ASSOCIATION(
+ ID INTEGER,
+ ASSOC_NAME VARCHAR2 (45),
+ EVENT_ID VARCHAR2(45),
+ ASSOC_CONDITION VARCHAR2 (2000),
+ WORKFLOW_ID VARCHAR2 (45),
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE)
+/
+
+CREATE SEQUENCE WF_WORKFLOW_ASSOCIATION_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER WF_WORKFLOW_ASSOCIATION_TRIG
+BEFORE INSERT
+ON WF_WORKFLOW_ASSOCIATION
+REFERENCING NEW AS NEW
+FOR EACH ROW
+ BEGIN
+ SELECT WF_WORKFLOW_ASSOCIATION_SEQ.nextval
+ INTO :NEW.ID
+ FROM dual;
+ END;
+/
+
+CREATE TABLE WF_WORKFLOW_CONFIG_PARAM(
+ WORKFLOW_ID VARCHAR2 (45),
+ PARAM_NAME VARCHAR2 (45),
+ PARAM_VALUE VARCHAR2 (1000),
+ PARAM_QNAME VARCHAR2 (45),
+ PARAM_HOLDER VARCHAR2 (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (WORKFLOW_ID, PARAM_NAME, PARAM_QNAME, PARAM_HOLDER),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE)
+/
+
+CREATE TABLE WF_REQUEST_ENTITY_RELATIONSHIP(
+ REQUEST_ID VARCHAR2 (45),
+ ENTITY_NAME VARCHAR2 (255),
+ ENTITY_TYPE VARCHAR2 (50),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(REQUEST_ID, ENTITY_NAME, ENTITY_TYPE, TENANT_ID),
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE)
+/
+
+CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
+ RELATIONSHIP_ID VARCHAR2 (45),
+ WORKFLOW_ID VARCHAR2 (45),
+ REQUEST_ID VARCHAR2 (45),
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RELATIONSHIP_ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE)
+/
+
+-- End of IDENTITY Tables--
+
+-- Start of API-MGT Tables--
+CREATE TABLE AM_SUBSCRIBER (
+ SUBSCRIBER_ID INTEGER,
+ USER_ID VARCHAR2(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EMAIL_ADDRESS VARCHAR2(256) NULL,
+ DATE_SUBSCRIBED DATE NOT NULL,
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ PRIMARY KEY (SUBSCRIBER_ID),
+ UNIQUE (TENANT_ID,USER_ID)
+)
+/
+
+CREATE SEQUENCE AM_SUBSCRIBER_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_SUBSCRIBER_TRIGGER
+ BEFORE INSERT
+ ON AM_SUBSCRIBER
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_SUBSCRIBER_SEQUENCE.nextval INTO :NEW.SUBSCRIBER_ID FROM dual;
+ END;
+/
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(SUBSCRIBER_ID) relation
+CREATE TABLE AM_APPLICATION (
+ APPLICATION_ID INTEGER,
+ NAME VARCHAR2(100),
+ SUBSCRIBER_ID INTEGER,
+ APPLICATION_TIER VARCHAR2(50) DEFAULT 'Unlimited',
+ CALLBACK_URL VARCHAR2(512),
+ DESCRIPTION VARCHAR2(512),
+ APPLICATION_STATUS VARCHAR2(50) DEFAULT 'APPROVED',
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON DELETE CASCADE,
+ PRIMARY KEY(APPLICATION_ID),
+ UNIQUE (NAME,SUBSCRIBER_ID)
+)
+/
+
+CREATE SEQUENCE AM_APPLICATION_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_APPLICATION_TRIGGER
+ BEFORE INSERT
+ ON AM_APPLICATION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_APPLICATION_SEQUENCE.nextval INTO :NEW.APPLICATION_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API (
+ API_ID INTEGER,
+ API_PROVIDER VARCHAR2(256),
+ API_NAME VARCHAR2(256),
+ API_VERSION VARCHAR2(30),
+ CONTEXT VARCHAR2(256),
+ CONTEXT VARCHAR2(256),
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ PRIMARY KEY(API_ID),
+ UNIQUE (API_PROVIDER,API_NAME,API_VERSION)
+)
+/
+
+CREATE SEQUENCE AM_API_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_API_TRIGGER
+ BEFORE INSERT
+ ON AM_API
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_SEQUENCE.nextval INTO :NEW.API_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API_URL_MAPPING (
+ URL_MAPPING_ID INTEGER,
+ API_ID INTEGER NOT NULL,
+ HTTP_METHOD VARCHAR(20) NULL,
+ AUTH_SCHEME VARCHAR(50) NULL,
+ URL_PATTERN VARCHAR(512) NULL,
+ THROTTLING_TIER varchar(512) DEFAULT NULL,
+ MEDIATION_SCRIPT BLOB,
+ PRIMARY KEY(URL_MAPPING_ID)
+)
+/
+
+CREATE SEQUENCE AM_API_URL_MAPPING_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_API_URL_MAPPING_TRIGGER
+ BEFORE INSERT
+ ON AM_API_URL_MAPPING
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_URL_MAPPING_SEQUENCE.nextval INTO :NEW.URL_MAPPING_ID FROM dual;
+ END;
+/
+
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(SUBSCRIPTION_ID) relation
+CREATE TABLE AM_SUBSCRIPTION (
+ SUBSCRIPTION_ID INTEGER,
+ TIER_ID VARCHAR2(50),
+ API_ID INTEGER,
+ LAST_ACCESSED DATE NULL,
+ APPLICATION_ID INTEGER,
+ SUB_STATUS VARCHAR(50),
+ SUBS_CREATE_STATE VARCHAR(50) DEFAULT 'SUBSCRIBE',
+ CREATED_BY VARCHAR2(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR2(100),
+ UPDATED_TIME DATE,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (SUBSCRIPTION_ID)
+)
+/
+
+CREATE SEQUENCE AM_SUBSCRIPTION_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_SUBSCRIPTION_TRIGGER
+ BEFORE INSERT
+ ON AM_SUBSCRIPTION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_SUBSCRIPTION_SEQUENCE.nextval INTO :NEW.SUBSCRIPTION_ID FROM dual;
+ END;
+/
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(APPLICATION_ID) and FOREIGN KEY(API_ID) relations
+CREATE TABLE AM_SUBSCRIPTION_KEY_MAPPING (
+ SUBSCRIPTION_ID INTEGER,
+ ACCESS_TOKEN VARCHAR2(512),
+ KEY_TYPE VARCHAR2(512) NOT NULL,
+ FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON DELETE CASCADE,
+ PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
+)
+/
+--TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(APPLICATION_ID) relation
+CREATE TABLE AM_APPLICATION_KEY_MAPPING (
+ APPLICATION_ID INTEGER,
+ CONSUMER_KEY VARCHAR2(512),
+ KEY_TYPE VARCHAR2(512) NOT NULL,
+ STATE VARCHAR2(30) NOT NULL,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE,
+ PRIMARY KEY(APPLICATION_ID,KEY_TYPE)
+)
+/
+
+CREATE TABLE AM_APPLICATION_REGISTRATION (
+ REG_ID INTEGER ,
+ SUBSCRIBER_ID INTEGER,
+ WF_REF VARCHAR2(255) NOT NULL,
+ APP_ID INTEGER,
+ TOKEN_TYPE VARCHAR2(30),
+ TOKEN_SCOPE VARCHAR2(256) DEFAULT 'default',
+ ALLOWED_DOMAINS VARCHAR2(256),
+ VALIDITY_PERIOD NUMBER(19),
+ UNIQUE (SUBSCRIBER_ID,APP_ID,TOKEN_TYPE),
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID),
+ FOREIGN KEY(APP_ID) REFERENCES AM_APPLICATION(APPLICATION_ID),
+ PRIMARY KEY (REG_ID)
+)
+/
+-- TODO: Have to add ON UPDATE CASCADE for the FOREIGN KEY(API_ID) relation
+CREATE TABLE AM_API_LC_EVENT (
+ EVENT_ID INTEGER,
+ API_ID INTEGER NOT NULL,
+ PREVIOUS_STATE VARCHAR2(50),
+ NEW_STATE VARCHAR2(50) NOT NULL,
+ USER_ID VARCHAR2(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EVENT_DATE DATE NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (EVENT_ID)
+)
+/
+
+CREATE TABLE AM_APP_KEY_DOMAIN_MAPPING (
+ CONSUMER_KEY VARCHAR(255),
+ AUTHZ_DOMAIN VARCHAR(255) DEFAULT 'ALL',
+ PRIMARY KEY (CONSUMER_KEY,AUTHZ_DOMAIN)
+
+)
+/
+
+CREATE TABLE AM_API_COMMENTS (
+ COMMENT_ID INTEGER,
+ COMMENT_TEXT VARCHAR2(512),
+ COMMENTED_USER VARCHAR2(255),
+ DATE_COMMENTED DATE NOT NULL,
+ API_ID INTEGER NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (COMMENT_ID)
+)
+/
+
+CREATE SEQUENCE AM_API_COMMENTS_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_API_COMMENTS_TRIGGER
+ BEFORE INSERT
+ ON AM_API_COMMENTS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_COMMENTS_SEQUENCE.nextval INTO :NEW.COMMENT_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API_RATINGS (
+ RATING_ID INTEGER,
+ API_ID INTEGER,
+ RATING INTEGER,
+ SUBSCRIBER_ID INTEGER,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON DELETE CASCADE,
+ PRIMARY KEY (RATING_ID)
+)
+/
+
+CREATE SEQUENCE AM_API_RATINGS_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_API_RATINGS_TRIGGER
+ BEFORE INSERT
+ ON AM_API_RATINGS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_RATINGS_SEQUENCE.nextval INTO :NEW.RATING_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_TIER_PERMISSIONS (
+ TIER_PERMISSIONS_ID INTEGER,
+ TIER VARCHAR2(50) NOT NULL,
+ PERMISSIONS_TYPE VARCHAR2(50) NOT NULL,
+ ROLES VARCHAR2(512) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY(TIER_PERMISSIONS_ID)
+)
+/
+
+CREATE SEQUENCE AM_TIER_PERMISSIONS_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_TIER_PERMISSIONS_TRIGGER
+ BEFORE INSERT
+ ON AM_TIER_PERMISSIONS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_TIER_PERMISSIONS_SEQUENCE.nextval INTO :NEW.TIER_PERMISSIONS_ID FROM dual;
+ END;
+/
+
+CREATE SEQUENCE AM_API_LC_EVENT_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_API_LC_EVENT_TRIGGER
+ BEFORE INSERT
+ ON AM_API_LC_EVENT
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_LC_EVENT_SEQUENCE.nextval INTO :NEW.EVENT_ID FROM dual;
+ END;
+/
+-- Start of IDP-APPLICATION-MGT Tables --
+
+-- End of IDP-APPLICATION-MGT Tables --
+
+
+CREATE TABLE AM_EXTERNAL_STORES (
+ APISTORE_ID INTEGER,
+ API_ID INTEGER,
+ STORE_ID VARCHAR2(255) NOT NULL,
+ STORE_DISPLAY_NAME VARCHAR2(255) NOT NULL,
+ STORE_ENDPOINT VARCHAR2(255) NOT NULL,
+ STORE_TYPE VARCHAR2(255) NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON DELETE CASCADE,
+ PRIMARY KEY (APISTORE_ID)
+)
+/
+
+CREATE TABLE AM_WORKFLOWS(
+ WF_ID INTEGER,
+ WF_REFERENCE VARCHAR(255) NOT NULL,
+ WF_TYPE VARCHAR(255) NOT NULL,
+ WF_STATUS VARCHAR(255) NOT NULL,
+ WF_CREATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ WF_UPDATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ WF_STATUS_DESC VARCHAR(1000),
+ TENANT_ID INTEGER,
+ TENANT_DOMAIN VARCHAR(255),
+ WF_EXTERNAL_REFERENCE VARCHAR(255) NOT NULL UNIQUE,
+ PRIMARY KEY (WF_ID)
+)
+/
+
+CREATE TABLE AM_API_SCOPES (
+ API_ID INTEGER NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ FOREIGN KEY (API_ID) REFERENCES AM_API (API_ID) ON DELETE CASCADE,
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE
+)
+/
+CREATE SEQUENCE AM_APP_REGISTRATION_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_APP_REGISTRATION_TRIGGER
+ BEFORE INSERT
+ ON AM_APPLICATION_REGISTRATION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_APP_REGISTRATION_SEQUENCE.nextval INTO :NEW.REG_ID FROM dual;
+ END;
+/
+
+CREATE SEQUENCE AM_WORKFLOWS_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_WORKFLOWS_TRIGGER
+ BEFORE INSERT
+ ON AM_WORKFLOWS
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_WORKFLOWS_SEQUENCE.nextval INTO :NEW.WF_ID FROM dual;
+ END;
+/
+
+CREATE SEQUENCE AM_EXTERNAL_STORES_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+
+CREATE OR REPLACE TRIGGER AM_EXTERNAL_STORES_TRIGGER
+ BEFORE INSERT
+ ON AM_EXTERNAL_STORES
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_EXTERNAL_STORES_SEQUENCE.nextval INTO :NEW.APISTORE_ID FROM dual;
+ END;
+/
+
+CREATE TABLE AM_API_DEFAULT_VERSION (
+ DEFAULT_VERSION_ID NUMBER,
+ API_NAME VARCHAR(256) NOT NULL ,
+ API_PROVIDER VARCHAR(256) NOT NULL ,
+ DEFAULT_API_VERSION VARCHAR(30) ,
+ PUBLISHED_DEFAULT_API_VERSION VARCHAR(30) ,
+ PRIMARY KEY (DEFAULT_VERSION_ID)
+)
+/
+CREATE SEQUENCE AM_API_DEFAULT_VERSION_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
+/
+CREATE OR REPLACE TRIGGER AM_API_DEFAULT_VERSION_TRG
+ BEFORE INSERT
+ ON AM_API_DEFAULT_VERSION
+ REFERENCING NEW AS NEW
+ FOR EACH ROW
+ BEGIN
+ SELECT AM_API_DEFAULT_VERSION_SEQ.nextval INTO :NEW.DEFAULT_VERSION_ID FROM dual;
+ END;
+/
+CREATE INDEX IDX_SUB_APP_ID ON AM_SUBSCRIPTION (APPLICATION_ID, SUBSCRIPTION_ID)
+/
+
diff --git a/modules/distribution/src/repository/resources/dbscripts/apimgt/postgresql.sql b/modules/distribution/src/repository/resources/dbscripts/apimgt/postgresql.sql
new file mode 100644
index 00000000..8ad4b264
--- /dev/null
+++ b/modules/distribution/src/repository/resources/dbscripts/apimgt/postgresql.sql
@@ -0,0 +1,908 @@
+BEGIN TRANSACTION;
+
+-- Start of IDN Tables --
+DROP TABLE IF EXISTS IDN_BASE_TABLE;
+CREATE TABLE IDN_BASE_TABLE (
+ PRODUCT_NAME VARCHAR(20),
+ PRIMARY KEY (PRODUCT_NAME)
+);
+
+INSERT INTO IDN_BASE_TABLE values ('WSO2 Identity Server');
+
+DROP TABLE IF EXISTS IDN_OAUTH_CONSUMER_APPS;
+DROP SEQUENCE IF EXISTS IDN_OAUTH_CONSUMER_APPS_PK_SEQ;
+CREATE SEQUENCE IDN_OAUTH_CONSUMER_APPS_PK_SEQ;
+CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
+ ID INTEGER DEFAULT NEXTVAL('IDN_OAUTH_CONSUMER_APPS_PK_SEQ'),
+ CONSUMER_KEY VARCHAR(255),
+ CONSUMER_SECRET VARCHAR(512),
+ USERNAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT 0,
+ USER_DOMAIN VARCHAR(50),
+ APP_NAME VARCHAR(255),
+ OAUTH_VERSION VARCHAR(128),
+ CALLBACK_URL VARCHAR(1024),
+ GRANT_TYPES VARCHAR (1024),
+ CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
+ PRIMARY KEY (ID)
+);
+
+DROP TABLE IF EXISTS IDN_OAUTH1A_REQUEST_TOKEN;
+CREATE TABLE IDN_OAUTH1A_REQUEST_TOKEN (
+ REQUEST_TOKEN VARCHAR(512),
+ REQUEST_TOKEN_SECRET VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR(1024),
+ SCOPE VARCHAR(2048),
+ AUTHORIZED VARCHAR(128),
+ OAUTH_VERIFIER VARCHAR(512),
+ AUTHZ_USER VARCHAR(512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (REQUEST_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+DROP TABLE IF EXISTS IDN_OAUTH1A_ACCESS_TOKEN;
+CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
+ ACCESS_TOKEN VARCHAR(512),
+ ACCESS_TOKEN_SECRET VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR(512),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ACCESS_TOKEN),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+DROP TABLE IF EXISTS IDN_OAUTH2_ACCESS_TOKEN;
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
+ TOKEN_ID VARCHAR (255),
+ ACCESS_TOKEN VARCHAR(255),
+ REFRESH_TOKEN VARCHAR(255),
+ CONSUMER_KEY_ID INTEGER,
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ USER_TYPE VARCHAR (25),
+ GRANT_TYPE VARCHAR (50),
+ TIME_CREATED TIMESTAMP,
+ REFRESH_TOKEN_TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD BIGINT,
+ REFRESH_TOKEN_VALIDITY_PERIOD BIGINT,
+ TOKEN_SCOPE_HASH VARCHAR(32),
+ TOKEN_STATE VARCHAR(25) DEFAULT 'ACTIVE',
+ TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
+ PRIMARY KEY (TOKEN_ID),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
+ CONSTRAINT CON_APP_KEY UNIQUE (CONSUMER_KEY_ID,AUTHZ_USER,TOKEN_ID,USER_DOMAIN,USER_TYPE,TOKEN_SCOPE_HASH,
+ TOKEN_STATE,TOKEN_STATE_ID)
+);
+
+CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER, TOKEN_STATE, USER_TYPE);
+
+CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
+
+DROP TABLE IF EXISTS IDN_OAUTH2_AUTHORIZATION_CODE;
+CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
+ AUTHORIZATION_CODE VARCHAR(512),
+ CONSUMER_KEY_ID INTEGER,
+ CALLBACK_URL VARCHAR(1024),
+ SCOPE VARCHAR(2048),
+ AUTHZ_USER VARCHAR (100),
+ TENANT_ID INTEGER,
+ USER_DOMAIN VARCHAR(50),
+ TIME_CREATED TIMESTAMP,
+ VALIDITY_PERIOD BIGINT,
+ STATE VARCHAR (25) DEFAULT 'ACTIVE',
+ TOKEN_ID VARCHAR(255),
+ PRIMARY KEY (AUTHORIZATION_CODE),
+ FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
+);
+
+DROP TABLE IF EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE;
+CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
+ TOKEN_ID VARCHAR (255),
+ TOKEN_SCOPE VARCHAR (60),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (TOKEN_ID, TOKEN_SCOPE),
+ FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDN_OAUTH2_SCOPE;
+DROP SEQUENCE IF EXISTS IDN_OAUTH2_SCOPE_PK_SEQ;
+CREATE SEQUENCE IDN_OAUTH2_SCOPE_PK_SEQ;
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE (
+ SCOPE_ID INTEGER DEFAULT NEXTVAL('IDN_OAUTH2_SCOPE_PK_SEQ'),
+ SCOPE_KEY VARCHAR(100) NOT NULL,
+ NAME VARCHAR(255) NULL,
+ DESCRIPTION VARCHAR(512) NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ ROLES VARCHAR (500) NULL,
+ PRIMARY KEY (SCOPE_ID)
+);
+
+DROP TABLE IF EXISTS IDN_OAUTH2_RESOURCE_SCOPE;
+CREATE TABLE IF NOT EXISTS IDN_OAUTH2_RESOURCE_SCOPE (
+ RESOURCE_PATH VARCHAR(255) NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RESOURCE_PATH),
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID)
+);
+
+DROP TABLE IF EXISTS IDN_SCIM_GROUP;
+DROP SEQUENCE IF EXISTS IDN_SCIM_GROUP_PK_SEQ;
+CREATE SEQUENCE IDN_SCIM_GROUP_PK_SEQ;
+CREATE TABLE IDN_SCIM_GROUP (
+ ID INTEGER DEFAULT NEXTVAL('IDN_SCIM_GROUP_PK_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ ROLE_NAME VARCHAR(255) NOT NULL,
+ ATTR_NAME VARCHAR(1024) NOT NULL,
+ ATTR_VALUE VARCHAR(1024),
+ PRIMARY KEY (ID)
+);
+
+DROP TABLE IF EXISTS IDN_OPENID_REMEMBER_ME;
+CREATE TABLE IDN_OPENID_REMEMBER_ME (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ COOKIE_VALUE VARCHAR(1024),
+ CREATED_TIME TIMESTAMP,
+ PRIMARY KEY (USER_NAME, TENANT_ID)
+);
+
+DROP TABLE IF EXISTS IDN_OPENID_USER_RPS;
+CREATE TABLE IDN_OPENID_USER_RPS (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT 0,
+ RP_URL VARCHAR(255) NOT NULL,
+ TRUSTED_ALWAYS VARCHAR(128) DEFAULT 'FALSE',
+ LAST_VISIT DATE NOT NULL,
+ VISIT_COUNT INTEGER DEFAULT 0,
+ DEFAULT_PROFILE_NAME VARCHAR(255) DEFAULT 'DEFAULT',
+ PRIMARY KEY (USER_NAME, TENANT_ID, RP_URL)
+);
+
+DROP TABLE IF EXISTS IDN_OPENID_ASSOCIATIONS;
+CREATE TABLE IDN_OPENID_ASSOCIATIONS (
+ HANDLE VARCHAR(255) NOT NULL,
+ ASSOC_TYPE VARCHAR(255) NOT NULL,
+ EXPIRE_IN TIMESTAMP NOT NULL,
+ MAC_KEY VARCHAR(255) NOT NULL,
+ ASSOC_STORE VARCHAR(128) DEFAULT 'SHARED',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (HANDLE)
+);
+
+DROP TABLE IF EXISTS IDN_STS_STORE;
+DROP SEQUENCE IF EXISTS IDN_STS_STORE_PK_SEQ;
+CREATE SEQUENCE IDN_STS_STORE_PK_SEQ;
+CREATE TABLE IDN_STS_STORE (
+ ID INTEGER DEFAULT NEXTVAL('IDN_STS_STORE_PK_SEQ'),
+ TOKEN_ID VARCHAR(255) NOT NULL,
+ TOKEN_CONTENT BYTEA NOT NULL,
+ CREATE_DATE TIMESTAMP NOT NULL,
+ EXPIRE_DATE TIMESTAMP NOT NULL,
+ STATE INTEGER DEFAULT 0,
+ PRIMARY KEY (ID)
+);
+
+DROP TABLE IF EXISTS IDN_IDENTITY_USER_DATA;
+CREATE TABLE IDN_IDENTITY_USER_DATA (
+ TENANT_ID INTEGER DEFAULT -1234,
+ USER_NAME VARCHAR(255) NOT NULL,
+ DATA_KEY VARCHAR(255) NOT NULL,
+ DATA_VALUE VARCHAR(255),
+ PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
+);
+
+DROP TABLE IF EXISTS IDN_IDENTITY_META_DATA;
+CREATE TABLE IDN_IDENTITY_META_DATA (
+ USER_NAME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ METADATA_TYPE VARCHAR(255) NOT NULL,
+ METADATA VARCHAR(255) NOT NULL,
+ VALID VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, USER_NAME, METADATA_TYPE,METADATA)
+);
+
+DROP TABLE IF EXISTS IDN_THRIFT_SESSION;
+CREATE TABLE IDN_THRIFT_SESSION (
+ SESSION_ID VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ CREATED_TIME VARCHAR(255) NOT NULL,
+ LAST_MODIFIED_TIME VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID)
+);
+
+DROP TABLE IF EXISTS IDN_AUTH_SESSION_STORE;
+CREATE TABLE IDN_AUTH_SESSION_STORE (
+ SESSION_ID VARCHAR(100) NOT NULL,
+ SESSION_TYPE VARCHAR(100) NOT NULL,
+ OPERATION VARCHAR(10) NOT NULL,
+ SESSION_OBJECT BYTEA,
+ TIME_CREATED BIGINT,
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (SESSION_ID, SESSION_TYPE, TIME_CREATED, OPERATION)
+ );
+
+DROP TABLE IF EXISTS SP_APP;
+DROP SEQUENCE IF EXISTS SP_APP_SEQ;
+CREATE SEQUENCE SP_APP_SEQ;
+CREATE TABLE SP_APP (
+ ID INTEGER DEFAULT NEXTVAL('SP_APP_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ APP_NAME VARCHAR (255) NOT NULL ,
+ USER_STORE VARCHAR (255) NOT NULL,
+ USERNAME VARCHAR (255) NOT NULL ,
+ DESCRIPTION VARCHAR (1024),
+ ROLE_CLAIM VARCHAR (512),
+ AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROVISIONING_USERSTORE_DOMAIN VARCHAR (512),
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) DEFAULT '1',
+ IS_SEND_LOCAL_SUBJECT_ID CHAR(1) DEFAULT '0',
+ IS_SEND_AUTH_LIST_OF_IDPS CHAR(1) DEFAULT '0',
+ IS_USE_TENANT_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ IS_USE_USER_DOMAIN_SUBJECT CHAR(1) DEFAULT '1',
+ SUBJECT_CLAIM_URI VARCHAR (512),
+ IS_SAAS_APP CHAR(1) DEFAULT '0',
+ IS_DUMB_MODE CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_APP ADD CONSTRAINT APPLICATION_NAME_CONSTRAINT UNIQUE(APP_NAME, TENANT_ID);
+
+DROP TABLE IF EXISTS SP_METADATA;
+DROP SEQUENCE IF EXISTS SP_METADATA_SEQ;
+CREATE SEQUENCE SP_METADATA_SEQ;
+CREATE TABLE SP_METADATA (
+ ID INTEGER DEFAULT NEXTVAL('SP_METADATA_SEQ'),
+ SP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT SP_METADATA_CONSTRAINT UNIQUE (SP_ID, NAME),
+ FOREIGN KEY (SP_ID) REFERENCES SP_APP(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS SP_INBOUND_AUTH;
+DROP SEQUENCE IF EXISTS SP_INBOUND_AUTH_SEQ;
+CREATE SEQUENCE SP_INBOUND_AUTH_SEQ;
+CREATE TABLE SP_INBOUND_AUTH (
+ ID INTEGER DEFAULT NEXTVAL('SP_INBOUND_AUTH_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ INBOUND_AUTH_KEY VARCHAR (255) NOT NULL,
+ INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
+ PROP_NAME VARCHAR (255),
+ PROP_VALUE VARCHAR (1024) ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_INBOUND_AUTH ADD CONSTRAINT APPLICATION_ID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+DROP TABLE IF EXISTS SP_AUTH_STEP;
+DROP SEQUENCE IF EXISTS SP_AUTH_STEP_SEQ;
+CREATE SEQUENCE SP_AUTH_STEP_SEQ;
+CREATE TABLE SP_AUTH_STEP (
+ ID INTEGER DEFAULT NEXTVAL('SP_AUTH_STEP_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ STEP_ORDER INTEGER DEFAULT 1,
+ APP_ID INTEGER NOT NULL,
+ IS_SUBJECT_STEP CHAR(1) DEFAULT '0',
+ IS_ATTRIBUTE_STEP CHAR(1) DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_AUTH_STEP ADD CONSTRAINT APPLICATION_ID_CONSTRAINT_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+DROP TABLE IF EXISTS SP_FEDERATED_IDP;
+CREATE TABLE SP_FEDERATED_IDP (
+ ID INTEGER NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID, AUTHENTICATOR_ID));
+
+ALTER TABLE SP_FEDERATED_IDP ADD CONSTRAINT STEP_ID_CONSTRAINT FOREIGN KEY (ID) REFERENCES SP_AUTH_STEP (ID) ON DELETE CASCADE;
+
+DROP TABLE IF EXISTS SP_CLAIM_MAPPING;
+DROP SEQUENCE IF EXISTS SP_CLAIM_MAPPING_SEQ;
+CREATE SEQUENCE SP_CLAIM_MAPPING_SEQ;
+CREATE TABLE SP_CLAIM_MAPPING (
+ ID INTEGER DEFAULT NEXTVAL('SP_CLAIM_MAPPING_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ IDP_CLAIM VARCHAR (512) NOT NULL ,
+ SP_CLAIM VARCHAR (512) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ DEFAULT_VALUE VARCHAR(255),
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_CLAIM_MAPPING ADD CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+DROP TABLE IF EXISTS SP_ROLE_MAPPING;
+DROP SEQUENCE IF EXISTS SP_ROLE_MAPPING_SEQ;
+CREATE SEQUENCE SP_ROLE_MAPPING_SEQ;
+CREATE TABLE SP_ROLE_MAPPING (
+ ID INTEGER DEFAULT NEXTVAL('SP_ROLE_MAPPING_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ IDP_ROLE VARCHAR (255) NOT NULL ,
+ SP_ROLE VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_ROLE_MAPPING ADD CONSTRAINT ROLEID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+DROP TABLE IF EXISTS SP_REQ_PATH_AUTH;
+DROP SEQUENCE IF EXISTS SP_REQ_PATH_AUTH_SEQ;
+CREATE SEQUENCE SP_REQ_PATH_AUTH_SEQ;
+CREATE TABLE SP_REQ_PATH_AUTHENTICATOR (
+ ID INTEGER DEFAULT NEXTVAL('SP_REQ_PATH_AUTH_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ AUTHENTICATOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_REQ_PATH_AUTHENTICATOR ADD CONSTRAINT REQ_AUTH_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+DROP TABLE IF EXISTS SP_PROV_CONNECTOR;
+DROP SEQUENCE IF EXISTS SP_PROV_CONNECTOR_SEQ;
+CREATE SEQUENCE SP_PROV_CONNECTOR_SEQ;
+CREATE TABLE SP_PROVISIONING_CONNECTOR (
+ ID INTEGER DEFAULT NEXTVAL('SP_PROV_CONNECTOR_SEQ'),
+ TENANT_ID INTEGER NOT NULL,
+ IDP_NAME VARCHAR (255) NOT NULL ,
+ CONNECTOR_NAME VARCHAR (255) NOT NULL ,
+ APP_ID INTEGER NOT NULL,
+ IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
+ BLOCKING CHAR(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (ID));
+
+ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
+
+DROP TABLE IF EXISTS IDP;
+DROP SEQUENCE IF EXISTS IDP_SEQ;
+CREATE SEQUENCE IDP_SEQ;
+CREATE TABLE IDP (
+ ID INTEGER DEFAULT NEXTVAL('IDP_SEQ'),
+ TENANT_ID INTEGER,
+ NAME VARCHAR(254) NOT NULL,
+ IS_ENABLED CHAR(1) NOT NULL DEFAULT '1',
+ IS_PRIMARY CHAR(1) NOT NULL DEFAULT '0',
+ HOME_REALM_ID VARCHAR(254),
+ IMAGE BYTEA,
+ CERTIFICATE BYTEA,
+ ALIAS VARCHAR(254),
+ INBOUND_PROV_ENABLED CHAR (1) NOT NULL DEFAULT '0',
+ INBOUND_PROV_USER_STORE_ID VARCHAR(254),
+ USER_CLAIM_URI VARCHAR(254),
+ ROLE_CLAIM_URI VARCHAR(254),
+ DESCRIPTION VARCHAR (1024),
+ DEFAULT_AUTHENTICATOR_NAME VARCHAR(254),
+ DEFAULT_PRO_CONNECTOR_NAME VARCHAR(254),
+ PROVISIONING_ROLE VARCHAR(128),
+ IS_FEDERATION_HUB CHAR(1) NOT NULL DEFAULT '0',
+ IS_LOCAL_CLAIM_DIALECT CHAR(1) NOT NULL DEFAULT '0',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, NAME));
+
+INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost');
+
+DROP TABLE IF EXISTS IDP_ROLE;
+DROP SEQUENCE IF EXISTS IDP_ROLE_SEQ;
+CREATE SEQUENCE IDP_ROLE_SEQ;
+CREATE TABLE IDP_ROLE (
+ ID INTEGER DEFAULT NEXTVAL('IDP_ROLE_SEQ'),
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ ROLE VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, ROLE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDP_ROLE_MAPPING;
+DROP SEQUENCE IF EXISTS IDP_ROLE_MAPPING_SEQ;
+CREATE SEQUENCE IDP_ROLE_MAPPING_SEQ;
+CREATE TABLE IDP_ROLE_MAPPING (
+ ID INTEGER DEFAULT NEXTVAL('IDP_ROLE_MAPPING_SEQ'),
+ IDP_ROLE_ID INTEGER,
+ TENANT_ID INTEGER,
+ USER_STORE_ID VARCHAR (253),
+ LOCAL_ROLE VARCHAR(253),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ROLE_ID, TENANT_ID, USER_STORE_ID, LOCAL_ROLE),
+ FOREIGN KEY (IDP_ROLE_ID) REFERENCES IDP_ROLE(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDP_CLAIM;
+DROP SEQUENCE IF EXISTS IDP_CLAIM_SEQ;
+CREATE SEQUENCE IDP_CLAIM_SEQ;
+CREATE TABLE IDP_CLAIM (
+ ID INTEGER DEFAULT NEXTVAL('IDP_CLAIM_SEQ'),
+ IDP_ID INTEGER,
+ TENANT_ID INTEGER,
+ CLAIM VARCHAR(254),
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_ID, CLAIM),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDP_CLAIM_MAPPING;
+DROP SEQUENCE IF EXISTS IDP_CLAIM_MAPPING_SEQ;
+CREATE SEQUENCE IDP_CLAIM_MAPPING_SEQ;
+CREATE TABLE IDP_CLAIM_MAPPING (
+ ID INTEGER DEFAULT NEXTVAL('IDP_CLAIM_MAPPING_SEQ'),
+ IDP_CLAIM_ID INTEGER,
+ TENANT_ID INTEGER,
+ LOCAL_CLAIM VARCHAR(253),
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (IDP_CLAIM_ID, TENANT_ID, LOCAL_CLAIM),
+ FOREIGN KEY (IDP_CLAIM_ID) REFERENCES IDP_CLAIM(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDP_AUTHENTICATOR;
+DROP SEQUENCE IF EXISTS IDP_AUTHENTICATOR_SEQ;
+CREATE SEQUENCE IDP_AUTHENTICATOR_SEQ;
+CREATE TABLE IDP_AUTHENTICATOR (
+ ID INTEGER DEFAULT NEXTVAL('IDP_AUTHENTICATOR_SEQ'),
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ DISPLAY_NAME VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'samlsso');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'IDPProperties');
+INSERT INTO IDP_AUTHENTICATOR (TENANT_ID, IDP_ID, NAME) VALUES (-1234, 1, 'passivests');
+
+
+DROP TABLE IF EXISTS IDP_METADATA;
+DROP SEQUENCE IF EXISTS IDP_METADATA_SEQ;
+CREATE SEQUENCE IDP_METADATA_SEQ;
+CREATE TABLE IDP_METADATA (
+ ID INTEGER DEFAULT NEXTVAL('IDP_METADATA_SEQ'),
+ IDP_ID INTEGER,
+ NAME VARCHAR(255) NOT NULL,
+ VALUE VARCHAR(255) NOT NULL,
+ DISPLAY_NAME VARCHAR(255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID),
+ CONSTRAINT IDP_METADATA_CONSTRAINT UNIQUE (IDP_ID, NAME),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'SessionIdleTimeout', '20160', 'Session Idle Timeout');
+INSERT INTO IDP_METADATA (IDP_ID, NAME, VALUE, DISPLAY_NAME) VALUES (1, 'RememberMeTimeout', '15', 'RememberMe Timeout');
+
+DROP TABLE IF EXISTS IDP_AUTHENTICATOR_PROP;
+DROP SEQUENCE IF EXISTS IDP_AUTHENTICATOR_PROP_SEQ;
+CREATE SEQUENCE IDP_AUTHENTICATOR_PROP_SEQ;
+CREATE TABLE IDP_AUTHENTICATOR_PROPERTY (
+ ID INTEGER DEFAULT NEXTVAL('IDP_AUTHENTICATOR_PROP_SEQ'),
+ TENANT_ID INTEGER,
+ AUTHENTICATOR_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2047),
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY),
+ FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE);
+
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 1 , 'IdPEntityId', 'localhost', '0');
+INSERT INTO IDP_AUTHENTICATOR_PROPERTY (TENANT_ID, AUTHENTICATOR_ID, PROPERTY_KEY,PROPERTY_VALUE, IS_SECRET ) VALUES (-1234, 3 , 'IdPEntityId', 'localhost', '0');
+
+DROP TABLE IF EXISTS IDP_PROV_CONFIG;
+DROP SEQUENCE IF EXISTS IDP_PROV_CONFIG_SEQ;
+CREATE SEQUENCE IDP_PROV_CONFIG_SEQ;
+CREATE TABLE IDP_PROVISIONING_CONFIG (
+ ID INTEGER DEFAULT NEXTVAL('IDP_PROV_CONFIG_SEQ'),
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
+ IS_ENABLED CHAR (1) DEFAULT '0',
+ IS_BLOCKING CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, PROVISIONING_CONNECTOR_TYPE),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDP_PROV_CONFIG_PROP;
+DROP SEQUENCE IF EXISTS IDP_PROV_CONFIG_PROP_SEQ;
+CREATE SEQUENCE IDP_PROV_CONFIG_PROP_SEQ;
+CREATE TABLE IDP_PROV_CONFIG_PROPERTY (
+ ID INTEGER DEFAULT NEXTVAL('IDP_PROV_CONFIG_PROP_SEQ'),
+ TENANT_ID INTEGER,
+ PROVISIONING_CONFIG_ID INTEGER,
+ PROPERTY_KEY VARCHAR(255) NOT NULL,
+ PROPERTY_VALUE VARCHAR(2048),
+ PROPERTY_BLOB_VALUE BYTEA,
+ PROPERTY_TYPE CHAR(32) NOT NULL,
+ IS_SECRET CHAR (1) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, PROVISIONING_CONFIG_ID, PROPERTY_KEY),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDP_PROV_ENTITY;
+DROP SEQUENCE IF EXISTS IDP_PROV_ENTITY_SEQ;
+CREATE SEQUENCE IDP_PROV_ENTITY_SEQ;
+CREATE TABLE IDP_PROVISIONING_ENTITY (
+ ID INTEGER DEFAULT NEXTVAL('IDP_PROV_ENTITY_SEQ'),
+ PROVISIONING_CONFIG_ID INTEGER,
+ ENTITY_TYPE VARCHAR(255) NOT NULL,
+ ENTITY_LOCAL_USERSTORE VARCHAR(255) NOT NULL,
+ ENTITY_NAME VARCHAR(255) NOT NULL,
+ ENTITY_VALUE VARCHAR(255),
+ TENANT_ID INTEGER,
+ ENTITY_LOCAL_ID VARCHAR(255),
+ PRIMARY KEY (ID),
+ UNIQUE (ENTITY_TYPE, TENANT_ID, ENTITY_LOCAL_USERSTORE, ENTITY_NAME, PROVISIONING_CONFIG_ID),
+ UNIQUE (PROVISIONING_CONFIG_ID, ENTITY_TYPE, ENTITY_VALUE),
+ FOREIGN KEY (PROVISIONING_CONFIG_ID) REFERENCES IDP_PROVISIONING_CONFIG(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDP_LOCAL_CLAIM;
+DROP SEQUENCE IF EXISTS IDP_LOCAL_CLAIM_SEQ;
+CREATE SEQUENCE IDP_LOCAL_CLAIM_SEQ;
+CREATE TABLE IF NOT EXISTS IDP_LOCAL_CLAIM(
+ ID INTEGER DEFAULT NEXTVAL('IDP_LOCAL_CLAIM_SEQ'),
+ TENANT_ID INTEGER,
+ IDP_ID INTEGER,
+ CLAIM_URI VARCHAR(255) NOT NULL,
+ DEFAULT_VALUE VARCHAR(255),
+ IS_REQUESTED VARCHAR(128) DEFAULT '0',
+ PRIMARY KEY (ID),
+ UNIQUE (TENANT_ID, IDP_ID, CLAIM_URI),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
+
+DROP TABLE IF EXISTS IDN_ASSOCIATED_ID;
+DROP SEQUENCE IF EXISTS IDN_ASSOCIATED_ID_SEQ;
+CREATE SEQUENCE IDN_ASSOCIATED_ID_SEQ;
+CREATE TABLE IDN_ASSOCIATED_ID (
+ ID INTEGER DEFAULT NEXTVAL('IDN_ASSOCIATED_ID_SEQ'),
+ IDP_USER_ID VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER DEFAULT -1234,
+ IDP_ID INTEGER NOT NULL,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (ID),
+ UNIQUE(IDP_USER_ID, TENANT_ID, IDP_ID),
+ FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
+);
+
+DROP TABLE IF EXISTS IDN_USER_ACCOUNT_ASSOCIATION;
+CREATE TABLE IDN_USER_ACCOUNT_ASSOCIATION (
+ ASSOCIATION_KEY VARCHAR(255) NOT NULL,
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME));
+
+DROP TABLE IF EXISTS FIDO_DEVICE_STORE;
+CREATE TABLE FIDO_DEVICE_STORE (
+ TENANT_ID INTEGER,
+ DOMAIN_NAME VARCHAR(255) NOT NULL,
+ USER_NAME VARCHAR(45) NOT NULL,
+ TIME_REGISTERED TIMESTAMP,
+ KEY_HANDLE VARCHAR(200) NOT NULL,
+ DEVICE_DATA VARCHAR(2048) NOT NULL,
+ PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME, KEY_HANDLE));
+
+DROP TABLE IF EXISTS WF_REQUEST;
+CREATE TABLE WF_REQUEST (
+ UUID VARCHAR (45),
+ CREATED_BY VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ OPERATION_TYPE VARCHAR (50),
+ CREATED_AT TIMESTAMP,
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ REQUEST BYTEA,
+ PRIMARY KEY (UUID)
+);
+
+DROP TABLE IF EXISTS WF_BPS_PROFILE;
+CREATE TABLE WF_BPS_PROFILE (
+ PROFILE_NAME VARCHAR(45),
+ HOST_URL_MANAGER VARCHAR(45),
+ HOST_URL_WORKER VARCHAR(45),
+ USERNAME VARCHAR(45),
+ PASSWORD VARCHAR(255),
+ CALLBACK_HOST VARCHAR (45),
+ CALLBACK_USERNAME VARCHAR (45),
+ CALLBACK_PASSWORD VARCHAR (255),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (PROFILE_NAME, TENANT_ID)
+);
+
+DROP TABLE IF EXISTS WF_WORKFLOW;
+CREATE TABLE WF_WORKFLOW(
+ ID VARCHAR (45),
+ WF_NAME VARCHAR (45),
+ DESCRIPTION VARCHAR (255),
+ TEMPLATE_ID VARCHAR (45),
+ IMPL_ID VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (ID)
+);
+
+DROP TABLE IF EXISTS WF_WORKFLOW_ASSOCIATION;
+DROP SEQUENCE IF EXISTS WF_WORKFLOW_ASSOCIATION_PK_SEQ;
+CREATE SEQUENCE WF_WORKFLOW_ASSOCIATION_PK_SEQ;
+CREATE TABLE WF_WORKFLOW_ASSOCIATION(
+ ID INTEGER DEFAULT NEXTVAL('WF_WORKFLOW_ASSOCIATION_PK_SEQ'),
+ ASSOC_NAME VARCHAR (45),
+ EVENT_ID VARCHAR(45),
+ ASSOC_CONDITION VARCHAR (2000),
+ WORKFLOW_ID VARCHAR (45),
+ IS_ENABLED CHAR (1) DEFAULT '1',
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+);
+
+DROP TABLE IF EXISTS WF_WORKFLOW_CONFIG_PARAM;
+CREATE TABLE WF_WORKFLOW_CONFIG_PARAM(
+ WORKFLOW_ID VARCHAR (45),
+ PARAM_NAME VARCHAR (45),
+ PARAM_VALUE VARCHAR (1000),
+ PARAM_QNAME VARCHAR (45),
+ PARAM_HOLDER VARCHAR (45),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (WORKFLOW_ID, PARAM_NAME, PARAM_QNAME, PARAM_HOLDER),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE
+);
+
+DROP TABLE IF EXISTS WF_REQUEST_ENTITY_RELATIONSHIP;
+CREATE TABLE WF_REQUEST_ENTITY_RELATIONSHIP(
+ REQUEST_ID VARCHAR (45),
+ ENTITY_NAME VARCHAR (255),
+ ENTITY_TYPE VARCHAR (50),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY(REQUEST_ID, ENTITY_NAME, ENTITY_TYPE, TENANT_ID),
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+);
+
+DROP TABLE IF EXISTS WF_WORKFLOW_REQUEST_RELATION;
+CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
+ RELATIONSHIP_ID VARCHAR (45),
+ WORKFLOW_ID VARCHAR (45),
+ REQUEST_ID VARCHAR (45),
+ UPDATED_AT TIMESTAMP,
+ STATUS VARCHAR (30),
+ TENANT_ID INTEGER DEFAULT -1,
+ PRIMARY KEY (RELATIONSHIP_ID),
+ FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
+ FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
+);
+
+-- End of IDENTITY Tables--
+
+CREATE SEQUENCE AM_SUBSCRIBER_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_SUBSCRIBER (
+ SUBSCRIBER_ID INTEGER DEFAULT nextval('am_subscriber_sequence'),
+ USER_ID VARCHAR(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EMAIL_ADDRESS VARCHAR(256) NULL,
+ DATE_SUBSCRIBED DATE NOT NULL,
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATE,
+ PRIMARY KEY (SUBSCRIBER_ID),
+ UNIQUE (TENANT_ID,USER_ID)
+)
+;
+
+CREATE SEQUENCE AM_APPLICATION_SEQUENCE START WITH 1 INCREMENT BY 1 ;
+CREATE TABLE AM_APPLICATION (
+ APPLICATION_ID INTEGER DEFAULT nextval('am_application_sequence'),
+ NAME VARCHAR(100),
+ SUBSCRIBER_ID INTEGER,
+ APPLICATION_TIER VARCHAR(50) DEFAULT 'Unlimited',
+ CALLBACK_URL VARCHAR(512),
+ DESCRIPTION VARCHAR(512),
+ APPLICATION_STATUS VARCHAR(50) DEFAULT 'APPROVED',
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATE,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(APPLICATION_ID),
+ UNIQUE (NAME,SUBSCRIBER_ID)
+)
+;
+
+CREATE SEQUENCE AM_API_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_API (
+ API_ID INTEGER DEFAULT nextval('am_api_sequence'),
+ API_PROVIDER VARCHAR(256),
+ API_NAME VARCHAR(256),
+ API_VERSION VARCHAR(30),
+ CONTEXT VARCHAR(256),
+ CONTEXT_TEMPLATE VARCHAR(256),
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATE,
+ PRIMARY KEY(API_ID),
+ UNIQUE (API_PROVIDER,API_NAME,API_VERSION)
+)
+;
+
+CREATE SEQUENCE AM_API_URL_MAPPING_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_API_URL_MAPPING (
+ URL_MAPPING_ID INTEGER DEFAULT nextval('am_api_url_mapping_sequence'),
+ API_ID INTEGER NOT NULL,
+ HTTP_METHOD VARCHAR(20) NULL,
+ AUTH_SCHEME VARCHAR(50) NULL,
+ URL_PATTERN VARCHAR(512) NULL,
+ THROTTLING_TIER varchar(512) DEFAULT NULL,
+ MEDIATION_SCRIPT BYTEA,
+ PRIMARY KEY(URL_MAPPING_ID)
+)
+;
+
+CREATE SEQUENCE AM_SUBSCRIPTION_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_SUBSCRIPTION (
+ SUBSCRIPTION_ID INTEGER DEFAULT nextval('am_subscription_sequence'),
+ TIER_ID VARCHAR(50),
+ API_ID INTEGER,
+ LAST_ACCESSED DATE NULL,
+ APPLICATION_ID INTEGER,
+ SUB_STATUS VARCHAR(50),
+ SUBS_CREATE_STATE VARCHAR(50) DEFAULT 'SUBSCRIBE',
+ CREATED_BY VARCHAR(100),
+ CREATED_TIME DATE,
+ UPDATED_BY VARCHAR(100),
+ UPDATED_TIME DATE,
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (SUBSCRIPTION_ID)
+)
+;
+
+CREATE TABLE AM_SUBSCRIPTION_KEY_MAPPING (
+ SUBSCRIPTION_ID INTEGER,
+ ACCESS_TOKEN VARCHAR(512),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
+)
+;
+
+CREATE TABLE AM_APPLICATION_KEY_MAPPING (
+ APPLICATION_ID INTEGER,
+ CONSUMER_KEY VARCHAR(512),
+ KEY_TYPE VARCHAR(512) NOT NULL,
+ STATE VARCHAR(30),
+ FOREIGN KEY(APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY(APPLICATION_ID,KEY_TYPE)
+)
+;
+
+CREATE SEQUENCE AM_APPLICATION_REGISTRATION_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
+ REG_ID INTEGER DEFAULT nextval('am_application_registration_sequence'),
+ SUBSCRIBER_ID INT,
+ WF_REF VARCHAR(255) NOT NULL,
+ APP_ID INT,
+ TOKEN_TYPE VARCHAR(30),
+ TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
+ ALLOWED_DOMAINS VARCHAR(256),
+ VALIDITY_PERIOD BIGINT,
+ UNIQUE (SUBSCRIBER_ID,APP_ID,TOKEN_TYPE),
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(APP_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (REG_ID)
+)
+;
+
+
+
+CREATE SEQUENCE AM_API_LC_EVENT_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_API_LC_EVENT (
+ EVENT_ID INTEGER DEFAULT nextval('am_api_lc_event_sequence'),
+ API_ID INTEGER NOT NULL,
+ PREVIOUS_STATE VARCHAR(50),
+ NEW_STATE VARCHAR(50) NOT NULL,
+ USER_ID VARCHAR(50) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ EVENT_DATE DATE NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (EVENT_ID)
+)
+;
+
+CREATE TABLE AM_APP_KEY_DOMAIN_MAPPING (
+ CONSUMER_KEY VARCHAR(255),
+ AUTHZ_DOMAIN VARCHAR(255) DEFAULT 'ALL',
+ PRIMARY KEY (CONSUMER_KEY,AUTHZ_DOMAIN)
+)
+;
+
+CREATE SEQUENCE AM_API_COMMENTS_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_API_COMMENTS (
+ COMMENT_ID INTEGER DEFAULT nextval('am_api_comments_sequence'),
+ COMMENT_TEXT VARCHAR(512),
+ COMMENTED_USER VARCHAR(255),
+ DATE_COMMENTED DATE NOT NULL,
+ API_ID INTEGER NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (COMMENT_ID)
+)
+;
+
+CREATE SEQUENCE AM_WORKFLOWS_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_WORKFLOWS(
+ WF_ID INTEGER DEFAULT nextval('am_workflows_sequence'),
+ WF_REFERENCE VARCHAR(255) NOT NULL,
+ WF_TYPE VARCHAR(255) NOT NULL,
+ WF_STATUS VARCHAR(255) NOT NULL,
+ WF_CREATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ WF_UPDATED_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
+ WF_STATUS_DESC VARCHAR(1000),
+ TENANT_ID INTEGER,
+ TENANT_DOMAIN VARCHAR(255),
+ WF_EXTERNAL_REFERENCE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (WF_ID),
+ UNIQUE (WF_EXTERNAL_REFERENCE)
+)
+;
+
+CREATE SEQUENCE AM_API_RATINGS_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_API_RATINGS (
+ RATING_ID INTEGER DEFAULT nextval('am_api_ratings_sequence'),
+ API_ID INTEGER,
+ RATING INTEGER,
+ SUBSCRIBER_ID INTEGER,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ FOREIGN KEY(SUBSCRIBER_ID) REFERENCES AM_SUBSCRIBER(SUBSCRIBER_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (RATING_ID)
+)
+;
+
+CREATE SEQUENCE AM_TIER_PERMISSIONS_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_TIER_PERMISSIONS (
+ TIER_PERMISSIONS_ID INTEGER DEFAULT nextval('am_tier_permissions_sequence'),
+ TIER VARCHAR(50) NOT NULL,
+ PERMISSIONS_TYPE VARCHAR(50) NOT NULL,
+ ROLES VARCHAR(512) NOT NULL,
+ TENANT_ID INTEGER NOT NULL,
+ PRIMARY KEY(TIER_PERMISSIONS_ID)
+);
+
+CREATE SEQUENCE AM_EXTERNAL_STORES_SEQUENCE START WITH 1 INCREMENT BY 1;
+CREATE TABLE AM_EXTERNAL_STORES (
+ APISTORE_ID INTEGER DEFAULT nextval('am_external_stores_sequence'),
+ API_ID INTEGER,
+ STORE_ID VARCHAR(255) NOT NULL,
+ STORE_DISPLAY_NAME VARCHAR(255) NOT NULL,
+ STORE_ENDPOINT VARCHAR(255) NOT NULL,
+ STORE_TYPE VARCHAR(255) NOT NULL,
+ FOREIGN KEY(API_ID) REFERENCES AM_API(API_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
+ PRIMARY KEY (APISTORE_ID)
+)
+;
+
+DROP TABLE IF EXISTS AM_API_SCOPES;
+CREATE TABLE IF NOT EXISTS AM_API_SCOPES (
+ API_ID INTEGER NOT NULL,
+ SCOPE_ID INTEGER NOT NULL,
+ FOREIGN KEY (API_ID) REFERENCES AM_API (API_ID) ON DELETE CASCADE ON UPDATE CASCADE,
+ FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE ON UPDATE CASCADE
+);
+
+DROP TABLE IF EXISTS AM_API_DEFAULT_VERSION;
+DROP SEQUENCE IF EXISTS AM_API_DEFAULT_VERSION_PK_SEQ;
+CREATE SEQUENCE AM_API_DEFAULT_VERSION_PK_SEQ;
+CREATE TABLE AM_API_DEFAULT_VERSION (
+ DEFAULT_VERSION_ID INTEGER DEFAULT NEXTVAL('am_api_default_version_pk_seq'),
+ API_NAME VARCHAR(256) NOT NULL ,
+ API_PROVIDER VARCHAR(256) NOT NULL ,
+ DEFAULT_API_VERSION VARCHAR(30) ,
+ PUBLISHED_DEFAULT_API_VERSION VARCHAR(30) ,
+ PRIMARY KEY (DEFAULT_VERSION_ID)
+);
+
+
+CREATE INDEX IDX_SUB_APP_ID ON AM_SUBSCRIPTION (APPLICATION_ID, SUBSCRIPTION_ID)
+;
+commit;
diff --git a/modules/p2-profile-gen/pom.xml b/modules/p2-profile-gen/pom.xml
index dd40eec0..102fdaa8 100644
--- a/modules/p2-profile-gen/pom.xml
+++ b/modules/p2-profile-gen/pom.xml
@@ -171,6 +171,9 @@
org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature:${carbon.mobile.device.mgt.version}
+
+ org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.digitaldisplay.feature:${carbon.mobile.device.mgt.version}
+
@@ -874,6 +877,10 @@
org.wso2.carbon.device.mgt.iot.virtualfirealarm.feature.group
${carbon.mobile.device.mgt.version}
+
+ org.wso2.carbon.device.mgt.iot.digitaldisplay.feature.group
+ ${carbon.mobile.device.mgt.version}
+
diff --git a/pom.xml b/pom.xml
index 9d77eb37..2fe1efa5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1034,7 +1034,7 @@
4.6.0
- 5.0.2
+ 5.0.3
4.5.0