mirror of
https://repository.entgra.net/community/product-iots.git
synced 2025-09-16 23:32:19 +00:00
Compare commits
107 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bad4e9c66f | ||
|
|
0fefc44da6 | ||
|
|
cb18546152 | ||
|
|
3d06168c45 | ||
|
|
3dd8a5feac | ||
|
|
da03264fc3 | ||
|
|
e8c5c55288 | ||
|
|
405a915b2d | ||
|
|
243d8cdf02 | ||
|
|
52c37fdf77 | ||
|
|
f7f33b0674 | ||
|
|
f910f98399 | ||
|
|
d40bdf830e | ||
|
|
be1a9b7001 | ||
|
|
913c47e5ca | ||
|
|
b291989c2f | ||
|
|
d5d53abf79 | ||
|
|
e893678b0c | ||
|
|
58249bfa5e | ||
|
|
b23279ecac | ||
|
|
59d160d7e2 | ||
|
|
bc7a144154 | ||
|
|
00d223ce26 | ||
|
|
601ed4e8d2 | ||
|
|
94c576ef83 | ||
|
|
f8dfa2e3af | ||
|
|
06b526a6d9 | ||
|
|
ea539937d6 | ||
|
|
a269603cbf | ||
|
|
3bff220048 | ||
|
|
5fb4ed1a9c | ||
|
|
ee2cad5759 | ||
|
|
7c7d9ded58 | ||
|
|
8a3e2d254d | ||
|
|
f3b92f5306 | ||
|
|
0dc2e7477b | ||
|
|
052f9dcce6 | ||
|
|
1549d2c2a0 | ||
|
|
98cdf15f4e | ||
|
|
51b358839b | ||
|
|
be696e9784 | ||
|
|
0b9418a86e | ||
|
|
e4b593ee8d | ||
|
|
15e7ffe6ed | ||
|
|
fe1147ea9d | ||
|
|
c966fd71d1 | ||
|
|
513b4f81ae | ||
|
|
d1a2ece03c | ||
|
|
a37055fa6f | ||
|
|
67feb009d6 | ||
|
|
043d6df638 | ||
|
|
3df58d269e | ||
|
|
fe22e6399e | ||
|
|
a356d880fa | ||
|
|
c24f97afce | ||
|
|
23bc695927 | ||
|
|
292390f6cc | ||
|
|
839fddc9db | ||
|
|
78ef939cf2 | ||
|
|
bdf40d61ac | ||
|
|
71ab64afa6 | ||
|
|
019c9bea35 | ||
|
|
8519ae2486 | ||
|
|
60664f7fc9 | ||
|
|
6d9aa6d35f | ||
|
|
809fbc7e2a | ||
|
|
3cd96e872c | ||
|
|
0a36124533 | ||
|
|
262a915d3a | ||
|
|
5f93b38726 | ||
|
|
6118ef821b | ||
|
|
5c89a76318 | ||
|
|
071e44b56a | ||
|
|
8f83a85e0a | ||
|
|
93e604e98f | ||
|
|
87a6bd894f | ||
|
|
d9eca966a1 | ||
|
|
5ff8ad8c99 | ||
|
|
7a79c39b62 | ||
|
|
ee60d903d3 | ||
|
|
2738febcb1 | ||
|
|
1d21be428d | ||
|
|
4179bc73a8 | ||
|
|
ea1eda6de9 | ||
|
|
e612725297 | ||
|
|
8cd1b01c18 | ||
|
|
c6556b4c12 | ||
|
|
9c8943d45f | ||
|
|
d53a59cf9f | ||
|
|
3cd5896a97 | ||
|
|
fcee8e4306 | ||
|
|
4e1b26402d | ||
|
|
7eda0a8ced | ||
|
|
458dc8886b | ||
|
|
b5ac87e741 | ||
|
|
dfe3b9019d | ||
|
|
3eba25f1e4 | ||
|
|
e212b1dc3d | ||
|
|
c8ca8616eb | ||
|
|
b96507a77d | ||
|
|
e38d0dfd1f | ||
|
|
29020bf2be | ||
|
|
75bcbcaa46 | ||
|
|
c664bf8d7a | ||
|
|
e977fd3b2f | ||
|
|
a6c31bae33 | ||
|
|
dd18462899 |
@ -1,15 +1,26 @@
|
||||
variables:
|
||||
MAVEN_CLI_OPTS: "--batch-mode"
|
||||
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
|
||||
MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
|
||||
|
||||
cache:
|
||||
paths:
|
||||
- .m2/repository/
|
||||
- target/
|
||||
|
||||
build:
|
||||
stage: build
|
||||
script:
|
||||
- rm -rf ~/.m2/repository/org/wso2/carbon/devicemgt
|
||||
- rm -rf ~/.m2/repository/org/wso2/carbon/devicemgt-plugins
|
||||
- rm -rf ~/.m2/repository/org/wso2/carbon/org/wso2/iot
|
||||
- rm -rf ~/.m2/repository/io/entgra
|
||||
- mvn $MAVEN_CLI_OPTS clean install
|
||||
tags:
|
||||
- OracleJDK1.8
|
||||
|
||||
deploy:
|
||||
stage: deploy
|
||||
script:
|
||||
- mvn $MAVEN_CLI_OPTS deploy
|
||||
only:
|
||||
- master@entgra/product-iots
|
||||
tags:
|
||||
- OracleJDK1.8
|
||||
|
||||
12
.m2/settings.xml
Normal file
12
.m2/settings.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
|
||||
https://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<servers>
|
||||
<server>
|
||||
<id>maven-snapshots</id>
|
||||
<username>${env.MAVEN_REPO_USER}</username>
|
||||
<password>${env.MAVEN_REPO_PASS}</password>
|
||||
</server>
|
||||
</servers>
|
||||
</settings>
|
||||
@ -19,17 +19,17 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.iot</groupId>
|
||||
<artifactId>wso2iot-components</artifactId>
|
||||
<version>3.8.2</version>
|
||||
<groupId>io.entgra.iot</groupId>
|
||||
<artifactId>entgra-iot-components</artifactId>
|
||||
<version>4.1.1-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.wso2.iot.core.admin.styles</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
<name>WSO2 IoT - UI Styles</name>
|
||||
<url>http://wso2.org</url>
|
||||
<name>Entgra IoT - UI Styles</name>
|
||||
<url>http://entgra.io</url>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
@ -18,24 +18,24 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content=""/>
|
||||
<title>WSO2 IoT 1.0.0</title>
|
||||
<title>Entgra IoT 4.1.0</title>
|
||||
<link href="./tools/cmd/css/gs-dist-doc.css" rel="stylesheet"
|
||||
type="text/css" media="all"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>WSO2 IoT 1.0.0</h1>
|
||||
<h1>Entgra IoT 4.1.0</h1>
|
||||
|
||||
<p>
|
||||
With its modular, extensible, and customizable capabilities,
|
||||
WSO2 Internet of Things Server (IoT Server) offers a complete, secure,
|
||||
Entgra Internet of Things Server (IoT Server) offers a complete, secure,
|
||||
open source, enterprise-grade IoT device management solution.
|
||||
|
||||
Built by re-using WSO2 middleware platform capabilities,
|
||||
WSO2 IoT Server provides the server-side of IoT device management architecture for device manufacturers;
|
||||
the extensibility of the underlying WSO2 Connected Device Management Framework enables WSO2 IoT Server
|
||||
Entgra IoT Server provides the server-side of IoT device management architecture for device manufacturers;
|
||||
the extensibility of the underlying WSO2 Connected Device Management Framework enables Entgra IoT Server
|
||||
to be extended to any device type and support other protocols and data formats.
|
||||
Moreover, it’s in-built tooling capability allows developers to extend WSO2 IoT Server’s functionality.
|
||||
Moreover, it’s in-built tooling capability allows developers to extend Entgra IoT Server’s functionality.
|
||||
|
||||
It offers customizable and advanced IoT device analytics via WSO2 Data Analytics Server
|
||||
that include predictive analytics using machine learning capabilities.
|
||||
|
||||
@ -21,17 +21,17 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.iot</groupId>
|
||||
<artifactId>wso2iot-parent</artifactId>
|
||||
<version>3.8.2</version>
|
||||
<groupId>io.entgra.iot</groupId>
|
||||
<artifactId>entgra-iot-server-parent</artifactId>
|
||||
<version>4.1.1-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>wso2iot-components</artifactId>
|
||||
<artifactId>entgra-iot-components</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>WSO2 IoT - Components Module</name>
|
||||
<url>http://wso2.org</url>
|
||||
<name>Entgra IoT - Components Module</name>
|
||||
<url>http://entgra.io</url>
|
||||
|
||||
<modules>
|
||||
<module>org.wso2.iot.core.admin.styles</module>
|
||||
|
||||
@ -17,9 +17,9 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.iot</groupId>
|
||||
<artifactId>wso2iot-parent</artifactId>
|
||||
<version>3.8.2</version>
|
||||
<groupId>io.entgra.iot</groupId>
|
||||
<artifactId>entgra-iot-server-parent</artifactId>
|
||||
<version>4.1.1-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@ -20,9 +20,9 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.wso2.iot</groupId>
|
||||
<artifactId>wso2iot-parent</artifactId>
|
||||
<version>3.8.2</version>
|
||||
<groupId>io.entgra.iot</groupId>
|
||||
<artifactId>entgra-iot-server-parent</artifactId>
|
||||
<version>4.1.1-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
@ -515,7 +515,7 @@
|
||||
<classpath refid="maven.compile.classpath" />
|
||||
<classpath refid="maven.runtime.classpath" />
|
||||
|
||||
<fileset file="${basedir}/../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/apimgt/h2.sql" />
|
||||
<fileset file="${basedir}/src/core/resources/dbscripts/apimgt/h2.sql" />
|
||||
</sql>
|
||||
<echo message="##################### END ####################" />
|
||||
</tasks>
|
||||
@ -795,14 +795,6 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
@ -1,95 +0,0 @@
|
||||
{
|
||||
"store": {
|
||||
"types": ["fs"]
|
||||
},
|
||||
"gadgetGeneration" :{
|
||||
"isCreateGadgetEnable": false,
|
||||
"ignoreProviders": ["rt"]
|
||||
},
|
||||
"authentication": {
|
||||
"activeMethod": "sso",
|
||||
"methods": {
|
||||
"sso": {
|
||||
"attributes": {
|
||||
"issuer": "analyticsportal",
|
||||
"identityProviderURL": "https://localhost:9443/samlsso",
|
||||
"responseSigningEnabled": true,
|
||||
"validateAssertionValidityPeriod": true,
|
||||
"validateAudienceRestriction": true,
|
||||
"assertionSigningEnabled": true,
|
||||
"acs": "https://localhost:9445/portal/acs",
|
||||
"identityAlias": "wso2carbon",
|
||||
"defaultNameIDPolicy": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
|
||||
"useTenantKey": false,
|
||||
"isPassive": false
|
||||
}
|
||||
},
|
||||
"basic": {
|
||||
"attributes": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"authorization": {
|
||||
"activeMethod": "oauth",
|
||||
"methods": {
|
||||
"oauth": {
|
||||
"attributes": {
|
||||
"apimgt-gateway": true,
|
||||
"oauthProvider": {
|
||||
"appRegistration": {
|
||||
"appType": "webapp",
|
||||
"clientName": "analyticsportal",
|
||||
"owner": "admin",
|
||||
"password":"admin",
|
||||
"dynamicClientAppRegistrationServiceURL": "https://localhost:9443/dynamic-client-web/register",
|
||||
"apiManagerClientAppRegistrationServiceURL": "https://localhost:9443/api-application-registration/register/tenants",
|
||||
"grantType": "urn:ietf:urn:ietf:params:oauth:grant-type:saml2-bearer",
|
||||
"tokenScope": "admin",
|
||||
"callbackUrl": "https://localhost:9445/portal",
|
||||
"saasApp":true
|
||||
|
||||
},
|
||||
"tokenServiceURL": "https://localhost:9443/oauth2/token"
|
||||
},
|
||||
"adminUser":"admin@carbon.super",
|
||||
"adminUserTenantId":"-1234",
|
||||
"adminRole":"admin",
|
||||
"scopes" : [
|
||||
"device:view"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"designers": [
|
||||
"Internal/everyone"
|
||||
],
|
||||
"tenantPrefix": "/t",
|
||||
"shareStore": false,
|
||||
"theme": "basic",
|
||||
"cacheTimeoutSeconds": "5",
|
||||
"cacheSizeBytes": "1073741824",
|
||||
"defaultDashboardRedirect": false,
|
||||
"isCreateGadgetEnable": true,
|
||||
"isSecureVaultEnabled" : false,
|
||||
"assets": {
|
||||
"gadget": {
|
||||
"fileSizeLimit": 5
|
||||
},
|
||||
"layout": {
|
||||
"fileSizeLimit": 1
|
||||
}
|
||||
},
|
||||
"oauth": {
|
||||
"username": "admin",
|
||||
"password": "admin"
|
||||
},
|
||||
"host": {
|
||||
"hostname": "localhost",
|
||||
"port": "",
|
||||
"protocol": ""
|
||||
},
|
||||
"queryParameters" : {
|
||||
"passBetweenPages" : ["shared", "owner", "deviceId"]
|
||||
}
|
||||
}
|
||||
@ -1,187 +0,0 @@
|
||||
{
|
||||
"initScripts": [
|
||||
"js/dashboard-deployer.js"
|
||||
],
|
||||
"welcomeFiles": [
|
||||
"routers/tenant.jag"
|
||||
],
|
||||
"errorPages": {
|
||||
"500": "/controllers/error-pages/error500.html",
|
||||
"404": "/controllers/error-pages/error404.html",
|
||||
"401": "/controllers/error-pages/error401.html",
|
||||
"405": "/controllers/error-pages/error405.html",
|
||||
"403": "/controllers/error-pages/error403.html",
|
||||
"400": "/controllers/error-pages/error400.html"
|
||||
},
|
||||
"urlMappings": [
|
||||
{
|
||||
"url": "/login-controller",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/login",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/logout",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/t/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/apis/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/dashboards/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/gadget/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/layout/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/assets/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/create-dashboard",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/dashboard-settings/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/select-layout",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/create-gadget",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/upload-gadget",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/upload-layout",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/world/*",
|
||||
"path": "/templates/geojson/world.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/europe/*",
|
||||
"path": "/templates/geojson/europe.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/usa/*",
|
||||
"path": "/templates/geojson/usa.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/countryInfo/*",
|
||||
"path": "/templates/geojson/countryInfo.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/usaInfo/*",
|
||||
"path": "/templates/geojson/usaInfo.json"
|
||||
},
|
||||
{
|
||||
"url": "/acs",
|
||||
"path": "/controllers/acs.jag"
|
||||
},
|
||||
{
|
||||
"url": "/banners/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/gadgets/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/configs/designer.json",
|
||||
"path": "/controllers/error-pages/error404.html"
|
||||
}
|
||||
],
|
||||
"listeners": [
|
||||
{
|
||||
"class": "org.owasp.csrfguard.CsrfGuardServletContextListener"
|
||||
},
|
||||
{
|
||||
"class": "org.owasp.csrfguard.CsrfGuardHttpSessionListener"
|
||||
}
|
||||
],
|
||||
"servlets": [
|
||||
{
|
||||
"name": "JavaScriptServlet",
|
||||
"class": "org.owasp.csrfguard.servlet.JavaScriptServlet"
|
||||
}
|
||||
],
|
||||
"servletMappings": [
|
||||
{
|
||||
"name": "JavaScriptServlet",
|
||||
"url": "/csrf.js"
|
||||
}
|
||||
],
|
||||
"contextParams": [
|
||||
{
|
||||
"name": "Owasp.CsrfGuard.Config",
|
||||
"value": "repository/conf/security/Owasp.CsrfGuard.dashboard.properties"
|
||||
}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
"name": "ContentTypeBasedCachePreventionFilter",
|
||||
"class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter",
|
||||
"params" : [
|
||||
{"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"},
|
||||
{"name" : "filterAction", "value" : "enforce"},
|
||||
{"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "HttpHeaderSecurityFilter",
|
||||
"class": "org.apache.catalina.filters.HttpHeaderSecurityFilter",
|
||||
"params": [
|
||||
{
|
||||
"name": "hstsEnabled",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "antiClickJackingOption",
|
||||
"value": "SAMEORIGIN"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "TenantStoresFilter",
|
||||
"class": "org.wso2.carbon.dashboard.store.filter.TenantStoreFilter"
|
||||
}
|
||||
],
|
||||
"filterMappings": [
|
||||
{
|
||||
"name": "HttpHeaderSecurityFilter",
|
||||
"url": "*"
|
||||
},
|
||||
{
|
||||
"name": "TenantStoresFilter",
|
||||
"url": "/store/*"
|
||||
},
|
||||
{
|
||||
"name": "TenantStoresFilter",
|
||||
"url": "/temp/*"
|
||||
},
|
||||
{
|
||||
"name":"ContentTypeBasedCachePreventionFilter",
|
||||
"url":"*"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,60 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
var getDateString, getDuration;
|
||||
|
||||
(function() {
|
||||
|
||||
getDateString = function (timestamp) {
|
||||
var date = new Date();
|
||||
date.setTime(timestamp);
|
||||
return date.toString();
|
||||
};
|
||||
|
||||
getDuration = function (durationInMS) {
|
||||
var time = '';
|
||||
var date = new Date();
|
||||
date.setTime(durationInMS);
|
||||
|
||||
var day = Math.floor(durationInMS/86400000);
|
||||
if (day > 0){
|
||||
//More than 1 day
|
||||
time = day +' day : ';
|
||||
durationInMS = durationInMS - (day * 86400000);
|
||||
}
|
||||
var hour = Math.floor(durationInMS/3600000);
|
||||
if (hour > 0){
|
||||
//More than 1 hour
|
||||
time = time + hour + ' hour : ';
|
||||
durationInMS = durationInMS - (hour * 3600000);
|
||||
}
|
||||
|
||||
var minutes = Math.floor(durationInMS/60000);
|
||||
if (minutes > 0){
|
||||
//More than 1 minute
|
||||
time = time + minutes + ' minutes : ';
|
||||
durationInMS = durationInMS - (minutes * 60000);
|
||||
}
|
||||
|
||||
var seconds = Math.ceil(durationInMS/1000);
|
||||
if (seconds > 0){
|
||||
//More than 1 minute
|
||||
time = time + seconds + ' seconds : ';
|
||||
}
|
||||
time = time.slice(0, -2);
|
||||
return time;
|
||||
};
|
||||
}());
|
||||
@ -1,598 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var utils = function () {
|
||||
var log = new Log("/modules/oauth/token-handler-utils.js");
|
||||
|
||||
var configs = require('/configs/portal.js').config();
|
||||
var constants = require("/modules/constants.js");
|
||||
var carbon = require("carbon");
|
||||
|
||||
//noinspection JSUnresolvedVariable
|
||||
var Base64 = Packages.org.apache.commons.codec.binary.Base64;
|
||||
//noinspection JSUnresolvedVariable
|
||||
var String = Packages.java.lang.String;
|
||||
|
||||
var publicMethods = {};
|
||||
var privateMethods = {};
|
||||
|
||||
publicMethods["encode"] = function (payload) {
|
||||
return String(Base64.encodeBase64(String(payload).getBytes()));
|
||||
};
|
||||
|
||||
publicMethods["decode"] = function (payload) {
|
||||
return String(Base64.decodeBase64(String(payload).getBytes()));
|
||||
};
|
||||
|
||||
/**
|
||||
* Check whether this application is oauth enable or not
|
||||
* @returns boolean if oauth enable
|
||||
*/
|
||||
publicMethods["checkOAuthEnabled"] = function () {
|
||||
if (constants.AUTHORIZATION_TYPE_OAUTH === configs["authorization"]["activeMethod"]) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
/**
|
||||
* Set access token into xml http request header
|
||||
* @param xhr xml http request
|
||||
* @returns {*} xhr which has access token it's header
|
||||
*/
|
||||
publicMethods["setAccessToken"] = function (xhr, callback) {
|
||||
var accessToken;
|
||||
if (publicMethods.checkOAuthEnabled()) {
|
||||
try {
|
||||
accessToken = parse(session.get(constants.ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL))["accessToken"];
|
||||
xhr.setRequestHeader(constants.AUTHORIZATION_HEADER, constants.BEARER_PREFIX + accessToken);
|
||||
} catch (exception) {
|
||||
log.error("Access token hasn't been set yet, " + exception);
|
||||
} finally {
|
||||
callback(xhr);
|
||||
}
|
||||
}
|
||||
callback(xhr);
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token of current logged user
|
||||
* @param callBack response with access token
|
||||
*/
|
||||
publicMethods["getAccessToken"] = function (callBack) {
|
||||
var accessToken = null;
|
||||
if (publicMethods.checkOAuthEnabled()) {
|
||||
try {
|
||||
accessToken = parse(session.get(constants.ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL))["accessToken"];
|
||||
} catch (exception) {
|
||||
log.error("Access token hasn't been set yet, " + exception);
|
||||
} finally {
|
||||
callBack(accessToken);
|
||||
}
|
||||
}
|
||||
callBack(accessToken);
|
||||
};
|
||||
|
||||
/**
|
||||
* Create error message which adhere to xml http response object
|
||||
* @param statusCode response status code
|
||||
* @param status response status
|
||||
* @param responseText response message
|
||||
* @returns {{statusCode: *, status: *, responseText: *}}
|
||||
*/
|
||||
publicMethods["createXHRObject"] = function (statusCode, status, responseText) {
|
||||
return {"statusCode": statusCode, "status": status, "responseText": responseText};
|
||||
};
|
||||
|
||||
/**
|
||||
* check whether user already logged to system before invoking any apis
|
||||
* @param callBack
|
||||
*/
|
||||
publicMethods["isUserAuthorized"] = function (callBack) {
|
||||
if (session.get("Loged") !== constants.LOGIN_MESSAGE) {
|
||||
callBack(false);
|
||||
} else {
|
||||
callBack(true);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get identity provider uir
|
||||
* @returns {*}
|
||||
*/
|
||||
publicMethods["getIdPServerURL"] = function () {
|
||||
return configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["tokenServiceURL"];
|
||||
};
|
||||
|
||||
/**
|
||||
* Get an Access token pair based on client secret
|
||||
* @param encodedClientKeys {{clientId:"", clientSecret:""}}
|
||||
* @param scope eg: PRODUCTION
|
||||
* @param idPServer identity provider url
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenWithClientSecretType"] = function (encodedClientKeys, scope, idPServer) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
var tokenEndpoint = idPServer;
|
||||
xhr.open(constants.HTTP_POST, tokenEndpoint, false);
|
||||
xhr.setRequestHeader(constants.CONTENT_TYPE_IDENTIFIER, constants.APPLICATION_X_WWW_FOR_URLENCODED);
|
||||
xhr.setRequestHeader(constants.AUTHORIZATION_HEADER, constants.BASIC_PREFIX + encodedClientKeys);
|
||||
xhr.send("grant_type=client_credentials&scope=" + scope);
|
||||
var tokenPair = {};
|
||||
if (xhr.status == constants.HTTP_ACCEPTED) {
|
||||
var data = parse(xhr.responseText);
|
||||
tokenPair.refreshToken = data.refresh_token;
|
||||
tokenPair.accessToken = data.access_token;
|
||||
} else if (xhr.status == constants.HTTP_USER_NOT_AUTHENTICATED) {
|
||||
log.error("Error in obtaining token with client secret grant type, You are not authenticated yet");
|
||||
return null;
|
||||
} else {
|
||||
log.error("Error in obtaining token with client secret grant type, This might be a problem with client meta " +
|
||||
"data which required for client secret grant type");
|
||||
return null;
|
||||
}
|
||||
return tokenPair;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* This will create client id and client secret for a given application
|
||||
* @param properties "callbackUrl": "",
|
||||
* "clientName": "",
|
||||
* "owner": "",
|
||||
* "applicationType": "",
|
||||
* "grantType": "",
|
||||
* "saasApp" :"",
|
||||
* "dynamicClientRegistrationEndPoint" : ""
|
||||
*
|
||||
* @returns {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
publicMethods["getDynamicClientAppCredentials"] = function (username) {
|
||||
// setting up dynamic client application properties
|
||||
var dcAppProperties = {
|
||||
"applicationType": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["appType"],
|
||||
"clientName": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["clientName"],
|
||||
"owner": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["owner"],
|
||||
"tokenScope": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["tokenScope"],
|
||||
"grantType": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["grantType"],
|
||||
"callbackUrl": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["callbackUrl"],
|
||||
"saasApp" : configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["saasApp"]
|
||||
};
|
||||
|
||||
var tenantDomain = carbon.server.tenantDomain({username: username});
|
||||
if (!tenantDomain) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client application credentials. Unable to obtain a valid tenant domain for provided username "+
|
||||
username +"- getDynamicClientAppCredentials(x)");
|
||||
return null;
|
||||
} else {
|
||||
var cachedTenantBasedClientAppCredentials = privateMethods.
|
||||
getCachedTenantBasedClientAppCredentials(tenantDomain);
|
||||
if (cachedTenantBasedClientAppCredentials) {
|
||||
return cachedTenantBasedClientAppCredentials;
|
||||
} else {
|
||||
// calling dynamic client app registration service endpoint
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]
|
||||
["dynamicClientAppRegistrationServiceURL"];
|
||||
var requestPayload = dcAppProperties;
|
||||
var token = publicMethods.encode(configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["appRegistration"]["owner"] + ":" + configs["authorization"]["methods"]["oauth"]["attributes"]
|
||||
["oauthProvider"]["appRegistration"]["password"]);
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.setRequestHeader("Authorization", "Basic "+ token);
|
||||
xhr.send(stringify(requestPayload));
|
||||
var dynamicClientAppCredentials = {};
|
||||
if (xhr["status"] == 201 || xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var clientId = responsePayload["client_id"];
|
||||
var clientSecret = responsePayload["client_secret"];
|
||||
if(typeof clientId == "undefined"){
|
||||
clientId = responsePayload["clientId"];
|
||||
}
|
||||
if(typeof clientSecret == "undefined"){
|
||||
clientSecret = responsePayload["clientSecret"];
|
||||
}
|
||||
dynamicClientAppCredentials["clientId"] = clientId;
|
||||
dynamicClientAppCredentials["clientSecret"] = clientSecret;
|
||||
privateMethods.
|
||||
setCachedTenantBasedClientAppCredentials(tenantDomain, dynamicClientAppCredentials);
|
||||
} else if (xhr["status"] == 400) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js - getDynamicClientAppCredentials()} " +
|
||||
"Bad request. Invalid data provided as dynamic client application properties.");
|
||||
dynamicClientAppCredentials = null;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js - getDynamicClientAppCredentials()} " +
|
||||
"Error in retrieving dynamic client credentials.");
|
||||
dynamicClientAppCredentials = null;
|
||||
}
|
||||
// returning dynamic client credentials
|
||||
return dynamicClientAppCredentials;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* If gateway is enable, apiManagerClientAppRegistrationServiceURL is used to create oauth application
|
||||
* @param username username of current logged user
|
||||
* @returns {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
publicMethods["getTenantBasedClientAppCredentials"] = function (username) {
|
||||
if (!username) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client app credentials. No username " +
|
||||
"as input - getTenantBasedClientAppCredentials(x)");
|
||||
return null;
|
||||
} else {
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var tenantDomain = carbon.server.tenantDomain({username: username});
|
||||
|
||||
if (!tenantDomain) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client application credentials. Unable to obtain a valid tenant domain for provided " +
|
||||
"username - getTenantBasedClientAppCredentials(x, y)");
|
||||
return null;
|
||||
} else {
|
||||
var cachedTenantBasedClientAppCredentials = privateMethods.
|
||||
getCachedTenantBasedClientAppCredentials(tenantDomain);
|
||||
if (cachedTenantBasedClientAppCredentials) {
|
||||
return cachedTenantBasedClientAppCredentials;
|
||||
} else {
|
||||
var adminUsername = configs["authorization"]["methods"]["oauth"]["attributes"]["adminUser"];
|
||||
var adminUserTenantId = configs["authorization"]["methods"]["oauth"]["attributes"]
|
||||
["adminUserTenantId"];
|
||||
//claims required for jwtAuthenticator.
|
||||
var claims = {"http://wso2.org/claims/enduserTenantId": adminUserTenantId,
|
||||
"http://wso2.org/claims/enduser": adminUsername};
|
||||
var jwtToken = publicMethods.getJwtToken(adminUsername, claims);
|
||||
// register a tenant based client app at API Manager
|
||||
var applicationName = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["appRegistration"]["clientName"] + "_" + tenantDomain;
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["appRegistration"]["apiManagerClientAppRegistrationServiceURL"] +
|
||||
"?tenantDomain=" + tenantDomain + "&applicationName=" + applicationName;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.setRequestHeader("X-JWT-Assertion", "" + jwtToken);
|
||||
xhr.send();
|
||||
if ((xhr["status"] == 201 || xhr["status"] == 200) && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tenantBasedClientAppCredentials = {};
|
||||
var clientId = responsePayload["client_id"];
|
||||
var clientSecret = responsePayload["client_secret"];
|
||||
if(typeof clientId == "undefined"){
|
||||
clientId = responsePayload["clientId"];
|
||||
}
|
||||
if(typeof clientSecret == "undefined"){
|
||||
clientSecret = responsePayload["clientSecret"];
|
||||
}
|
||||
tenantBasedClientAppCredentials["clientId"] = clientId;
|
||||
tenantBasedClientAppCredentials["clientSecret"] = clientSecret;
|
||||
privateMethods.
|
||||
setCachedTenantBasedClientAppCredentials(tenantDomain, tenantBasedClientAppCredentials);
|
||||
return tenantBasedClientAppCredentials;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client application credentials from API " +
|
||||
"Manager - getTenantBasedClientAppCredentials(x, y)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Caching oauth application credentials
|
||||
* @param tenantDomain tenant domain where application is been created
|
||||
* @param clientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
privateMethods["setCachedTenantBasedClientAppCredentials"] = function (tenantDomain, clientAppCredentials) {
|
||||
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!cachedTenantBasedClientAppCredentialsMap) {
|
||||
cachedTenantBasedClientAppCredentialsMap = {};
|
||||
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
||||
application.put(constants["CACHED_CREDENTIALS_PORTAL_APP"], cachedTenantBasedClientAppCredentialsMap);
|
||||
} else if (!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
||||
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get oauth application credentials from cache
|
||||
* @param tenantDomain tenant domain where application is been created
|
||||
* @returns {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
privateMethods["getCachedTenantBasedClientAppCredentials"] = function (tenantDomain) {
|
||||
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!cachedTenantBasedClientAppCredentialsMap ||
|
||||
!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
||||
return null;
|
||||
} else {
|
||||
return cachedTenantBasedClientAppCredentialsMap[tenantDomain];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using password grant type
|
||||
* @param username username of the logged user
|
||||
* @param password password of the logged user
|
||||
* @param encodedClientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
* @param scopes scopes list
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenPairAndScopesByPasswordGrantType"] = function (username, password
|
||||
, encodedClientAppCredentials, scopes) {
|
||||
if (!username || !password || !encodedClientAppCredentials || !scopes) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token by password " +
|
||||
"grant type. No username, password, encoded client app credentials or scopes are " +
|
||||
"found - getTokenPairAndScopesByPasswordGrantType(a, b, c, d)");
|
||||
return null;
|
||||
} else {
|
||||
// calling oauth provider token service endpoint
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["tokenServiceURL"];
|
||||
var requestPayload = "grant_type=password&username=" +
|
||||
username + "&password=" + password + "&scope=" + scopes;
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.setRequestHeader("Authorization", "Basic " + encodedClientAppCredentials);
|
||||
xhr.send(requestPayload);
|
||||
|
||||
if (xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tokenData = {};
|
||||
tokenData["accessToken"] = responsePayload["access_token"];
|
||||
tokenData["refreshToken"] = responsePayload["refresh_token"];
|
||||
tokenData["scopes"] = responsePayload["scope"];
|
||||
return tokenData;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token " +
|
||||
"by password grant type - getTokenPairAndScopesByPasswordGrantType(a, b, c, d)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using SAML grant type
|
||||
* @param assertion
|
||||
* @param encodedClientAppCredentials
|
||||
* @param scopes
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenPairAndScopesByJWTGrantType"] = function (username, encodedClientAppCredentials, scopes) {
|
||||
if (!username || !encodedClientAppCredentials || !scopes) {
|
||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving access token by jwt " +
|
||||
"grant type. No assertion, encoded client app credentials or scopes are " +
|
||||
"found - getTokenPairAndScopesByJWTGrantType(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
var JWTClientManagerServicePackagePath =
|
||||
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
||||
//noinspection JSUnresolvedFunction
|
||||
var jwtClient = JWTClientManagerService.getJWTClient();
|
||||
// returning access token by JWT grant type
|
||||
var tokenInfo = jwtClient.getAccessToken(encodedClientAppCredentials,
|
||||
username, scopes);
|
||||
var tokenData = {};
|
||||
tokenData["accessToken"] = tokenInfo.getAccessToken();
|
||||
tokenData["refreshToken"] = tokenInfo.getRefreshToken();
|
||||
tokenData["scopes"] = tokenInfo.getScopes();
|
||||
return tokenData;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using SAML grant type
|
||||
* @param assertion
|
||||
* @param encodedClientAppCredentials
|
||||
* @param scopes
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenPairAndScopesBySAMLGrantType"] = function (assertion, encodedClientAppCredentials, scopes) {
|
||||
if (!assertion || !encodedClientAppCredentials || !scopes) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token by saml " +
|
||||
"grant type. No assertion, encoded client app credentials or scopes are " +
|
||||
"found - getTokenPairAndScopesBySAMLGrantType(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
|
||||
var assertionXML = publicMethods.decode(assertion);
|
||||
/*
|
||||
TODO: make assertion extraction with proper parsing.
|
||||
Since Jaggery XML parser seem to add formatting which causes signature verification to fail.
|
||||
*/
|
||||
var assertionStartMarker = "<saml2:Assertion";
|
||||
var assertionEndMarker = "<\/saml2:Assertion>";
|
||||
var assertionStartIndex = assertionXML.indexOf(assertionStartMarker);
|
||||
var assertionEndIndex = assertionXML.indexOf(assertionEndMarker);
|
||||
|
||||
var extractedAssertion;
|
||||
if (assertionStartIndex == -1 || assertionEndIndex == -1) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token by saml grant " +
|
||||
"type. Issue in assertion format - getTokenPairAndScopesBySAMLGrantType(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
extractedAssertion = assertionXML.
|
||||
substring(assertionStartIndex, assertionEndIndex) + assertionEndMarker;
|
||||
var encodedAssertion = publicMethods.encode(extractedAssertion);
|
||||
// calling oauth provider token service endpoint
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["tokenServiceURL"];
|
||||
var requestPayload = "grant_type=urn:ietf:params:oauth:grant-type:saml2-bearer&" +
|
||||
"assertion=" + encodeURIComponent(encodedAssertion) + "&scope=" + scopes;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.setRequestHeader("Authorization", "Basic " + encodedClientAppCredentials);
|
||||
xhr.send(requestPayload);
|
||||
|
||||
if (xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tokenData = {};
|
||||
tokenData["accessToken"] = responsePayload["access_token"];
|
||||
tokenData["refreshToken"] = responsePayload["refresh_token"];
|
||||
tokenData["scopes"] = responsePayload["scope"];
|
||||
return tokenData;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token " +
|
||||
"by password grant type - getTokenPairAndScopesBySAMLGrantType(x, y, z)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* If access token is expired, try to refresh it using existing refresh token
|
||||
* @param callback
|
||||
*/
|
||||
publicMethods["refreshAccessToken"] = function (callback) {
|
||||
try {
|
||||
if (publicMethods.checkOAuthEnabled()) {
|
||||
var currentTokenPair = parse(session.get(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"]));
|
||||
// currentTokenPair includes current access token as well as current refresh token
|
||||
var encodedClientAppCredentials
|
||||
= session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!currentTokenPair || !encodedClientAppCredentials) {
|
||||
callback(false);
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Error in refreshing tokens. Either the " +
|
||||
"token pair, encoded client app credentials or both input are not found under " +
|
||||
"session context - refreshTokenPair()");
|
||||
} else {
|
||||
var newTokenPair = publicMethods.
|
||||
getNewTokenPairByRefreshToken(currentTokenPair["refreshToken"], encodedClientAppCredentials);
|
||||
if (!newTokenPair) {
|
||||
log.error("{/app/modules/oauth/token-handlers.js} Error in refreshing token pair. " +
|
||||
"Unable to update session context with new access token pair - refreshTokenPair()");
|
||||
callback(false);
|
||||
} else {
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(newTokenPair));
|
||||
callback(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error("You have not enable dynamic client yet");
|
||||
callback(false);
|
||||
}
|
||||
} catch (exception) {
|
||||
callback(false);
|
||||
throw "Error while refreshing existing access token, " + exception;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using refresh token grant type
|
||||
* @param refreshToken refresh token
|
||||
* @param encodedClientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
* @param scopes
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getNewTokenPairByRefreshToken"] = function (refreshToken, encodedClientAppCredentials, scopes) {
|
||||
if (!refreshToken || !encodedClientAppCredentials) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
||||
"by current refresh token. No refresh token or encoded client app credentials are " +
|
||||
"found - getNewTokenPairByRefreshToken(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["tokenServiceURL"];
|
||||
var requestPayload = "grant_type=refresh_token&refresh_token=" + refreshToken;
|
||||
if (scopes) {
|
||||
requestPayload = requestPayload + "&scope=" + scopes;
|
||||
}
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.setRequestHeader("Authorization", "Basic " + encodedClientAppCredentials);
|
||||
xhr.send(requestPayload);
|
||||
|
||||
if (xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tokenPair = {};
|
||||
tokenPair["accessToken"] = responsePayload["access_token"];
|
||||
tokenPair["refreshToken"] = responsePayload["refresh_token"];
|
||||
return tokenPair;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new access token by " +
|
||||
"current refresh token - getNewTokenPairByRefreshToken(x, y, z)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token using JWT grant type
|
||||
* @param clientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getAccessTokenByJWTGrantType"] = function (clientAppCredentials) {
|
||||
if (!clientAppCredentials) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
||||
"by current refresh token. No client app credentials are found " +
|
||||
"as input - getAccessTokenByJWTGrantType(x)");
|
||||
return null;
|
||||
} else {
|
||||
var JWTClientManagerServicePackagePath =
|
||||
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
||||
//noinspection JSUnresolvedFunction
|
||||
var jwtClient = JWTClientManagerService.getJWTClient();
|
||||
// returning access token by JWT grant type
|
||||
return jwtClient.getAccessToken(clientAppCredentials["clientId"], clientAppCredentials["clientSecret"],
|
||||
configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["owner"],
|
||||
null)["accessToken"];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get jwt token
|
||||
* @param username username of logged user
|
||||
* @param claims claims which are required
|
||||
* @returns {"jwtToken"}
|
||||
*/
|
||||
publicMethods["getJwtToken"] = function (username, claims) {
|
||||
if (!username) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new jwt token");
|
||||
return null;
|
||||
} else {
|
||||
var JWTClientManagerServicePackagePath =
|
||||
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
||||
//noinspection JSUnresolvedFunction
|
||||
var jwtClient = JWTClientManagerService.getJWTClient();
|
||||
// returning access token by JWT grant type
|
||||
if (claims) {
|
||||
return jwtClient.getJwtToken(username, claims);
|
||||
} else {
|
||||
return jwtClient.getJwtToken(username);
|
||||
}
|
||||
}
|
||||
};
|
||||
return publicMethods;
|
||||
}();
|
||||
@ -1,192 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* -----------------------------------------------------
|
||||
* Following module includes handlers
|
||||
* at Jaggery Layer for handling OAuth tokens.
|
||||
* -----------------------------------------------------
|
||||
*/
|
||||
var handlers = function () {
|
||||
var log = new Log("/modules/oauth/token-handlers.js");
|
||||
|
||||
var tokenUtil = require("/modules/oauth/token-handler-utils.js")["utils"];
|
||||
var constants = require("/modules/constants.js");
|
||||
var configs = require('/configs/portal.js').config();
|
||||
|
||||
var publicMethods = {};
|
||||
var privateMethods = {};
|
||||
|
||||
/**
|
||||
* Get an AccessToken pair based on username and password
|
||||
* @param username username of the logged user
|
||||
* @param password password of the logged user
|
||||
*/
|
||||
publicMethods["setupTokenPairByPasswordGrantType"] = function (username, password) {
|
||||
if (!username || !password) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||
"password grant type. Either username of logged in user, password or both are missing " +
|
||||
"as input - setupTokenPairByPasswordGrantType(x, y)");
|
||||
} else {
|
||||
privateMethods.setUpEncodedTenantBasedClientAppCredentials(username);
|
||||
var encodedClientAppCredentials =
|
||||
session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!encodedClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||
"password grant type. Encoded client credentials are " +
|
||||
"missing - setupTokenPairByPasswordGrantType(x, y)");
|
||||
} else {
|
||||
var tokenData;
|
||||
// tokenPair will include current access token as well as current refresh token
|
||||
var arrayOfScopes = configs["authorization"]["methods"]["oauth"]["attributes"]["scopes"];
|
||||
var stringOfScopes = "";
|
||||
arrayOfScopes.forEach(function (entry) {
|
||||
stringOfScopes += entry + " ";
|
||||
});
|
||||
tokenData = tokenUtil.
|
||||
getTokenPairAndScopesByPasswordGrantType(username,
|
||||
encodeURIComponent(password), encodedClientAppCredentials, stringOfScopes);
|
||||
if (!tokenData) {
|
||||
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up " +
|
||||
"token pair by password grant type. Error in token " +
|
||||
"retrieval - setupTokenPairByPasswordGrantType(x, y)");
|
||||
} else {
|
||||
var tokenPair = {};
|
||||
tokenPair["accessToken"] = tokenData["accessToken"];
|
||||
tokenPair["refreshToken"] = tokenData["refreshToken"];
|
||||
// setting up token pair into session context as a string
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(tokenPair));
|
||||
var scopes = tokenData.scopes.split(" ");
|
||||
// adding allowed scopes to the session
|
||||
session.put(constants["ALLOWED_SCOPES"], scopes);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get an AccessToken pair based on SAML assertion
|
||||
* @param samlToken SAML assertion
|
||||
* @param username {{clientId:"", clientSecret:""}}
|
||||
*/
|
||||
publicMethods["setupTokenPairBySamlGrantType"] = function (username, samlToken) {
|
||||
if (!username || !samlToken) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||
"saml grant type. Either username of logged in user, samlToken or both are missing " +
|
||||
"as input - setupTokenPairBySamlGrantType(x, y)");
|
||||
} else {
|
||||
privateMethods.setUpEncodedTenantBasedClientAppCredentials(username);
|
||||
var encodedClientAppCredentials =
|
||||
session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!encodedClientAppCredentials) {
|
||||
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up access token pair " +
|
||||
"by saml grant type. Encoded client credentials are " +
|
||||
"missing - setupTokenPairBySamlGrantType(x, y)");
|
||||
} else {
|
||||
var tokenData;
|
||||
// accessTokenPair will include current access token as well as current refresh token
|
||||
tokenData = tokenUtil.
|
||||
getTokenPairAndScopesByJWTGrantType(username, encodedClientAppCredentials, "PRODUCTION");
|
||||
if (!tokenData) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up token " +
|
||||
"pair by saml grant type. Error in token " +
|
||||
"retrieval - setupTokenPairBySamlGrantType(x, y)");
|
||||
} else {
|
||||
var tokenPair = {};
|
||||
tokenPair["accessToken"] = tokenData["accessToken"];
|
||||
tokenPair["refreshToken"] = tokenData["refreshToken"];
|
||||
// setting up access token pair into session context as a string
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(tokenPair));
|
||||
|
||||
var scopes = tokenData.scopes.split(" ");
|
||||
// adding allowed scopes to the session
|
||||
session.put(constants["ALLOWED_SCOPES"], scopes);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Set access token and refresh token using refresh token grant type
|
||||
*/
|
||||
publicMethods["refreshTokenPair"] = function () {
|
||||
var currentTokenPair = parse(session.get(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"]));
|
||||
// currentTokenPair includes current access token as well as current refresh token
|
||||
var encodedClientAppCredentials
|
||||
= session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!currentTokenPair || !encodedClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Error in refreshing tokens. Either the " +
|
||||
"token pair, encoded client app credentials or both input are not found under " +
|
||||
"session context - refreshTokenPair()");
|
||||
} else {
|
||||
var newTokenPair = tokenUtil.
|
||||
getNewTokenPairByRefreshToken(currentTokenPair["refreshToken"], encodedClientAppCredentials);
|
||||
if (!newTokenPair) {
|
||||
log.error("{/app/modules/oauth/token-handlers.js} Error in refreshing token pair. " +
|
||||
"Unable to update session context with new access token pair - refreshTokenPair()");
|
||||
} else {
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(newTokenPair));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* If gateway is enable, apiManagerClientAppRegistrationServiceURL is used to create an oauth application or
|
||||
* else DCR endpoint is used to create an oauth application
|
||||
* @param username username of current logged user
|
||||
*/
|
||||
privateMethods["setUpEncodedTenantBasedClientAppCredentials"] = function (username) {
|
||||
if (!username) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up encoded tenant based " +
|
||||
"client credentials to session context. No username of logged in user is found as " +
|
||||
"input - setUpEncodedTenantBasedClientAppCredentials(x)");
|
||||
} else {
|
||||
if (configs["authorization"]["methods"]["oauth"]["attributes"]["apimgt-gateway"]) {
|
||||
var tenantBasedClientAppCredentials = tokenUtil.getTenantBasedClientAppCredentials(username);
|
||||
if (!tenantBasedClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up encoded tenant " +
|
||||
"based client credentials to session context as the server is unable " +
|
||||
"to obtain such credentials - setUpEncodedTenantBasedClientAppCredentials(x)");
|
||||
} else {
|
||||
var encodedTenantBasedClientAppCredentials =
|
||||
tokenUtil.encode(tenantBasedClientAppCredentials["clientId"] + ":" +
|
||||
tenantBasedClientAppCredentials["clientSecret"]);
|
||||
// setting up encoded tenant based client credentials to session context.
|
||||
session.put(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"],
|
||||
encodedTenantBasedClientAppCredentials);
|
||||
}
|
||||
} else {
|
||||
var dynamicClientAppCredentials = tokenUtil.getDynamicClientAppCredentials(username);
|
||||
if (!dynamicClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up encoded tenant based " +
|
||||
"client credentials to session context as the server is unable to obtain " +
|
||||
"dynamic client credentials - setUpEncodedTenantBasedClientAppCredentials(x)");
|
||||
}
|
||||
var encodedTenantBasedClientAppCredentials =
|
||||
tokenUtil.encode(dynamicClientAppCredentials["clientId"] + ":" +
|
||||
dynamicClientAppCredentials["clientSecret"]);
|
||||
// setting up encoded tenant based client credentials to session context.
|
||||
session.put(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"],
|
||||
encodedTenantBasedClientAppCredentials);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
return publicMethods;
|
||||
}();
|
||||
@ -1,165 +0,0 @@
|
||||
<!--
|
||||
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<parent>
|
||||
<groupId>org.wso2</groupId>
|
||||
<artifactId>wso2</artifactId>
|
||||
<version>1</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.iot.devicemgt-plugins</groupId>
|
||||
<artifactId>iot-devicetype-analytics-samples</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Install Connected Cup Device Types - Analytics</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.wso2.maven</groupId>
|
||||
<artifactId>carbon-p2-plugin</artifactId>
|
||||
<version>1.5.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>2-p2-repo-generation</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-repo-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<metadataRepository>file:\${project.basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${project.basedir}/target/p2-repo</artifactRepository>
|
||||
<publishArtifacts>true</publishArtifacts>
|
||||
<publishArtifactRepository>true</publishArtifactRepository>
|
||||
<featureArtifacts>
|
||||
<featureArtifactDef>
|
||||
org.coffeeking:org.coffeeking.connectedcup.analytics.feature:\${org.coffeeking.version}
|
||||
</featureArtifactDef>
|
||||
</featureArtifacts>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>default-feature-install</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-profile-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<profile>analytics-default</profile>
|
||||
<metadataRepository>file:\${project.basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${project.basedir}/target/p2-repo</artifactRepository>
|
||||
<destination>\${project.basedir}/../../../components</destination>
|
||||
<deleteOldProfileFiles>false</deleteOldProfileFiles>
|
||||
<features>
|
||||
<!-- Connected Cup Features -->
|
||||
<feature>
|
||||
<id>org.coffeeking.connectedcup.analytics.feature.group</id>
|
||||
<version>\${org.coffeeking.version}</version>
|
||||
</feature>
|
||||
</features>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>Apache Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
|
||||
<repositories>
|
||||
<!-- Before adding ANYTHING in here, please start a discussion on the dev list.
|
||||
Ideally the Axis2 build should only use Maven central (which is available
|
||||
by default) and nothing else. We had troubles with other repositories in
|
||||
the past. Therefore configuring additional repositories here should be
|
||||
considered very carefully. -->
|
||||
<repository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>WSO2 Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
</repositories>
|
||||
<properties>
|
||||
<carbon.device.mgt.plugin.version>@carbon-device-mgt-plugin-version@</carbon.device.mgt.plugin.version>
|
||||
<org.coffeeking.version>1.0.0</org.coffeeking.version>
|
||||
</properties>
|
||||
</project>
|
||||
@ -1,248 +0,0 @@
|
||||
<!--
|
||||
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<parent>
|
||||
<groupId>org.wso2</groupId>
|
||||
<artifactId>wso2</artifactId>
|
||||
<version>1</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.iot.analytics.devicemgt-plugins</groupId>
|
||||
<artifactId>analytics-devicetype-feature-installation</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Install Virtual Fire Alarm, Raspberry Pi, Arduino, Android Sense Device Types - Analytics</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.wso2.maven</groupId>
|
||||
<artifactId>carbon-p2-plugin</artifactId>
|
||||
<version>1.5.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>2-p2-repo-generation</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-repo-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<metadataRepository>file:\${project.basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${project.basedir}/target/p2-repo</artifactRepository>
|
||||
<publishArtifacts>true</publishArtifacts>
|
||||
<publishArtifactRepository>true</publishArtifactRepository>
|
||||
<featureArtifacts>
|
||||
<!-- Ardino Device Type Features -->
|
||||
<featureArtifactDef>
|
||||
org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.arduino.analytics.feature:${carbon.device.mgt.plugin.version}
|
||||
</featureArtifactDef>
|
||||
|
||||
<!-- Raspberry Device Type Features -->
|
||||
<featureArtifactDef>
|
||||
org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.raspberrypi.analytics.feature:${carbon.device.mgt.plugin.version}
|
||||
</featureArtifactDef>
|
||||
|
||||
<!-- Virtual Fire Alarm Device Type Features -->
|
||||
<featureArtifactDef>
|
||||
org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics.feature:${carbon.device.mgt.plugin.version}
|
||||
</featureArtifactDef>
|
||||
|
||||
<!-- Android Sense Device Type Features -->
|
||||
<featureArtifactDef>
|
||||
org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature:${carbon.device.mgt.plugin.version}
|
||||
</featureArtifactDef>
|
||||
</featureArtifacts>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>analytics-feature-install</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-profile-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<profile>analytics-default</profile>
|
||||
<metadataRepository>file:\${project.basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${project.basedir}/target/p2-repo</artifactRepository>
|
||||
<destination>\${project.basedir}/../../../components</destination>
|
||||
<deleteOldProfileFiles>false</deleteOldProfileFiles>
|
||||
<features>
|
||||
<feature>
|
||||
<id>org.wso2.carbon.device.mgt.iot.arduino.analytics.feature.group</id>
|
||||
<version>${carbon.device.mgt.plugin.version}</version>
|
||||
</feature>
|
||||
<feature>
|
||||
<id>org.wso2.carbon.device.mgt.iot.raspberrypi.analytics.feature.group</id>
|
||||
<version>${carbon.device.mgt.plugin.version}</version>
|
||||
</feature>
|
||||
<feature>
|
||||
<id>org.wso2.carbon.device.mgt.iot.virtualfirealarm.analytics.feature.group</id>
|
||||
<version>${carbon.device.mgt.plugin.version}</version>
|
||||
</feature>
|
||||
<feature>
|
||||
<id>org.wso2.carbon.device.mgt.iot.androidsense.analytics.feature.group</id>
|
||||
<version>${carbon.device.mgt.plugin.version}</version>
|
||||
</feature>
|
||||
</features>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-feature-install</id>
|
||||
<phase>package</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<copy todir="../repository/deployment/server/">
|
||||
<fileset dir="resources/">
|
||||
<include name="**/*"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>Apache Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
|
||||
<repositories>
|
||||
<!-- Before adding ANYTHING in here, please start a discussion on the dev list.
|
||||
Ideally the Axis2 build should only use Maven central (which is available
|
||||
by default) and nothing else. We had troubles with other repositories in
|
||||
the past. Therefore configuring additional repositories here should be
|
||||
considered very carefully. -->
|
||||
<repository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>WSO2 Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>entgra-nexus</id>
|
||||
<name>Entgra internal Repository</name>
|
||||
<url>http://nexus.entgra.io/repository/maven-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>entgra.releases</id>
|
||||
<name>Entgra internal Repository</name>
|
||||
<url>http://nexus.entgra.io/repository/maven-releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>entgra.snapshots</id>
|
||||
<name>Entgra Snapshot Repository</name>
|
||||
<url>http://nexus.entgra.io/repository/maven-snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<properties>
|
||||
<carbon.device.mgt.plugin.version>${carbon.device.mgt.plugin.version}</carbon.device.mgt.plugin.version>
|
||||
</properties>
|
||||
</project>
|
||||
|
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>activity_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.activity:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>audio_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.audio:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1000</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>battery_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.battery:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1000</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>call_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.call:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1000</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>location_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.location:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1000</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>network_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.data:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>screen_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.screen:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1000</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<streamConfiguration type="csv">
|
||||
<file>sms_data.csv</file>
|
||||
<streamID>org.wso2.iot.android.sms:1.0.0</streamID>
|
||||
<separateChar>,</separateChar>
|
||||
<delayBetweenEventsInMilies>1000</delayBetweenEventsInMilies>
|
||||
</streamConfiguration>
|
||||
@ -103,11 +103,6 @@
|
||||
<exclude>**/conf/tomcat/carbon/WEB-INF/web.xml</exclude>
|
||||
<exclude>**/bin/wso2server.sh</exclude>
|
||||
<exclude>**/bin/wso2server.bat</exclude>
|
||||
<exclude>
|
||||
**/repository/deployment/server/jaggeryapps/portal/modules/oauth/plugins/token-handler-utils.js
|
||||
</exclude>
|
||||
<exclude>**/repository/deployment/server/jaggeryapps/portal/modules/oauth/plugins/token-handlers.js
|
||||
</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
@ -387,22 +382,6 @@
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
<!-- Copying APP Manager Publisher and Store Jaggery apps -->
|
||||
<!--<fileSet>-->
|
||||
<!--<directory>-->
|
||||
<!--../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/jaggeryapps/publisher/-->
|
||||
<!--</directory>-->
|
||||
<!--<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/publisher-->
|
||||
<!--</outputDirectory>-->
|
||||
<!--<excludes>-->
|
||||
<!--<exclude>publisherLogo/**</exclude>-->
|
||||
<!--<exclude>publisherTheme/**</exclude>-->
|
||||
<!--<exclude>publisherSite/**</exclude>-->
|
||||
<!--<exclude>footer/**</exclude>-->
|
||||
<!--<exclude>localstyles.css</exclude>-->
|
||||
<!--<exclude>**/jaggery.conf</exclude>-->
|
||||
<!--</excludes>-->
|
||||
<!--</fileSet>-->
|
||||
<!--<fileSet>-->
|
||||
<!--<directory>-->
|
||||
<!--../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/jaggeryapps/store/-->
|
||||
@ -419,24 +398,6 @@
|
||||
<!--</excludes>-->
|
||||
<!--</fileSet>-->
|
||||
|
||||
<!-- Copying API Manager Store Jaggery app -->
|
||||
<fileSet>
|
||||
<directory>
|
||||
../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/jaggeryapps/api-store/
|
||||
</directory>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/api-store
|
||||
</outputDirectory>
|
||||
<excludes>
|
||||
<exclude>storeLogo/**</exclude>
|
||||
<exclude>storeSite/**</exclude>
|
||||
<exclude>base-page/**</exclude>
|
||||
<exclude>login/**</exclude>
|
||||
<exclude>styles-layout.css</exclude>
|
||||
<exclude>**/site/conf/site.json</exclude>
|
||||
<exclude>**/jaggery.conf</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
<!-- <fileSet>-->
|
||||
<!-- <directory>-->
|
||||
<!-- ../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/jaggeryapps/social/-->
|
||||
@ -518,49 +479,6 @@
|
||||
<include>*/**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<!-- Dashboard portal Jaggery app. Should be copied to <DAS_HOME>/repository/deployment/server/jaggeryapps -->
|
||||
<fileSet>
|
||||
<directory>
|
||||
../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/jaggeryapps/portal
|
||||
</directory>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal
|
||||
</outputDirectory>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/configs/designer.json</exclude>
|
||||
<exclude>**/jaggery.conf</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
<!-- Adding analytics theme to extensions -->
|
||||
<fileSet>
|
||||
<directory>
|
||||
src/core/jaggeryapps/portal/themes/analytics
|
||||
</directory>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/extensions/themes/analytics
|
||||
</outputDirectory>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<!-- Files required to mobile-qsg -->
|
||||
<fileSet>
|
||||
<directory>../scripts/mobile-qsg/resources</directory>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/samples/mobile-qsg
|
||||
</outputDirectory>
|
||||
<includes>
|
||||
<include>**/**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*.sh*</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
<!-- Files required to mobile-qsg -->
|
||||
|
||||
@ -639,22 +557,6 @@
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<directory>src/core/samples</directory>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/samples</outputDirectory>
|
||||
<includes>
|
||||
<include>*/**</include>
|
||||
</includes>
|
||||
<fileMode>644</fileMode>
|
||||
<excludes>
|
||||
<exclude>**/*connectedcup-samples-deployer.xml</exclude>
|
||||
<exclude>**/*connectedcup/pom.xml</exclude>
|
||||
<exclude>**/*sampledevice/pom.xml</exclude>
|
||||
<exclude>**/*sampledevice-deployer.xml</exclude>
|
||||
<exclude>**/*device-plugins-deployer.xml</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
<!-- Copying forget me tool -->
|
||||
<fileSet>
|
||||
<directory>target/forget-me/identity-anonymization-tool-${forgetme.tool.version}/</directory>
|
||||
@ -859,30 +761,6 @@
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<directory>
|
||||
../p2-profile/analytics-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/jaggeryapps/portal
|
||||
</directory>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/wso2/analytics/repository/deployment/server/jaggeryapps/portal
|
||||
</outputDirectory>
|
||||
<excludes>
|
||||
<exclude>**/configs/designer.json</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<directory>
|
||||
src/analytics/jaggeryapps/portal/libs/
|
||||
</directory>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/wso2/analytics/repository/deployment/server/jaggeryapps/portal/analytics-wso2-2.0.0
|
||||
</outputDirectory>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<directory>
|
||||
../p2-profile/analytics-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/carbonapps/
|
||||
@ -950,12 +828,6 @@
|
||||
<fileMode>755</fileMode>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<directory>src/analytics/samples</directory>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/wso2/analytics/samples</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
</fileSet>
|
||||
|
||||
<fileSet>
|
||||
<directory>../p2-profile/analytics-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/components
|
||||
</directory>
|
||||
@ -1177,7 +1049,7 @@
|
||||
</includes>
|
||||
</dependencySet>
|
||||
<dependencySet>
|
||||
<outputDirectory>wso2iot-broker-${pom.version}/repository/lib</outputDirectory>
|
||||
<outputDirectory>entgra-iot-broker-${pom.version}/repository/lib</outputDirectory>
|
||||
<includes>
|
||||
<include>jline:jline:jar</include>
|
||||
</includes>
|
||||
@ -1195,37 +1067,6 @@
|
||||
<source>src/core/conf/tomcat/webapp-classloading-environments.xml</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/conf/tomcat</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/jaggeryapps/portal/configs/designer.json</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/configs
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/jaggeryapps/portal/modules/oauth/token-handler-utils.js</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/modules/oauth
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/jaggeryapps/portal/modules/oauth/token-handlers.js</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/modules/oauth
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
<!-- End of "portal" app specific modifications -->
|
||||
|
||||
<!-- Copying config file for enabling sso in api-store-->
|
||||
<file>
|
||||
<source>src/core/jaggeryapps/api-store/site/conf/site.json</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/api-store/site/conf
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
|
||||
<!-- Copying synapse.properties file -->
|
||||
<file>
|
||||
@ -1566,27 +1407,6 @@
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/jaggeryapps/api-store/jaggery.conf</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/api-store/
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/jaggeryapps/portal/jaggery.conf</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
<!--<file>-->
|
||||
<!--<source>src/core/jaggeryapps/publisher/jaggery.conf</source>-->
|
||||
<!--<outputDirectory>-->
|
||||
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/publisher/-->
|
||||
<!--</outputDirectory>-->
|
||||
<!--<fileMode>755</fileMode>-->
|
||||
<!--</file>-->
|
||||
|
||||
<file>
|
||||
<source>src/core/jaggeryapps/privacy-policies/jaggery.conf</source>
|
||||
@ -1596,60 +1416,6 @@
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
|
||||
<!-- <file>-->
|
||||
<!-- <source>src/core/jaggeryapps/social/jaggery.conf</source>-->
|
||||
<!-- <outputDirectory>-->
|
||||
<!-- ${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/social/-->
|
||||
<!-- </outputDirectory>-->
|
||||
<!-- <fileMode>755</fileMode>-->
|
||||
<!-- </file>-->
|
||||
<!--<file>-->
|
||||
<!--<source>src/core/jaggeryapps/store/jaggery.conf</source>-->
|
||||
<!--<outputDirectory>-->
|
||||
<!--${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/store/-->
|
||||
<!--</outputDirectory>-->
|
||||
<!--<fileMode>755</fileMode>-->
|
||||
<!--</file>-->
|
||||
<file>
|
||||
<source>
|
||||
src/core/cloud/portal/common.css
|
||||
</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/css
|
||||
</outputDirectory>
|
||||
|
||||
</file>
|
||||
<file>
|
||||
<source>
|
||||
src/core/cloud/portal/portal.js
|
||||
</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/js
|
||||
</outputDirectory>
|
||||
|
||||
</file>
|
||||
<file>
|
||||
<source>
|
||||
src/core/cloud/portal/global-navigation.jag
|
||||
</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/repository/deployment/server/jaggeryapps/portal/theme/templates
|
||||
</outputDirectory>
|
||||
</file>
|
||||
|
||||
<!-- Copying mobile-qsg jar -->
|
||||
<file>
|
||||
<source>../scripts/mobile-qsg/target/mobile-qsg.jar</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/samples/mobile-qsg
|
||||
</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>../scripts/mobile-qsg/resources/mobile-qsg.sh</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/samples/mobile-qsg
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
|
||||
<!-- copying server scripts -->
|
||||
<file>
|
||||
<source>../scripts/change-ip.sh</source>
|
||||
@ -1690,44 +1456,6 @@
|
||||
${pom.artifactId}-${pom.version}/conf/identity
|
||||
</outputDirectory>
|
||||
</file>
|
||||
<!--<file>-->
|
||||
<!--<source>-->
|
||||
<!--../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/resources/lifecycles/MobileAppLifeCycle.xml-->
|
||||
<!--</source>-->
|
||||
<!--<outputDirectory>-->
|
||||
<!--${pom.artifactId}-${pom.version}/repository/resources/lifecycles-->
|
||||
<!--</outputDirectory>-->
|
||||
<!--</file>-->
|
||||
<file>
|
||||
<source>src/core/samples/connectedcup-samples-deployer.xml</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/samples/</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/samples/device-plugins-deployer.xml</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/samples/</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/samples/sampledevice-deployer.xml</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/samples/</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/samples/connectedcup/pom.xml</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/samples/connectedcup/</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/samples/sampledevice/pom.xml</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/samples/sampledevice/</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
<!-- ********************************* End of IoT Core Profile ********************************* -->
|
||||
|
||||
<!-- ********************************* Start of Analytics Profile ********************************* -->
|
||||
@ -1829,33 +1557,6 @@
|
||||
</outputDirectory>
|
||||
</file>
|
||||
|
||||
<!-- portal-->
|
||||
<file>
|
||||
<source>
|
||||
src/analytics/jaggeryapps/portal/designer.json
|
||||
</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/wso2/analytics/repository/deployment/server/jaggeryapps/portal/configs/
|
||||
</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/analytics/jaggeryapps/portal/modules/oauth/token-handler-utils.js</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/wso2/analytics/repository/deployment/server/jaggeryapps/portal/modules/oauth
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/analytics/jaggeryapps/portal/modules/oauth/token-handlers.js</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/wso2/analytics/repository/deployment/server/jaggeryapps/portal/modules/oauth
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
|
||||
|
||||
<file>
|
||||
<source>src/analytics/resources/geodashboard/events.csv</source>
|
||||
<outputDirectory>
|
||||
@ -1872,14 +1573,6 @@
|
||||
<filtered>true</filtered>
|
||||
<fileMode>644</fileMode>
|
||||
</file>
|
||||
|
||||
<file>
|
||||
<source>src/analytics/jaggeryapps/portal/jaggery.conf</source>
|
||||
<outputDirectory>
|
||||
${pom.artifactId}-${pom.version}/wso2/analytics/repository/deployment/server/jaggeryapps/portal/
|
||||
</outputDirectory>
|
||||
<fileMode>755</fileMode>
|
||||
</file>
|
||||
<!-- ********************************* End of Analytics Profile ********************************* -->
|
||||
|
||||
<!-- ********************************* Start of Broker Profile ********************************* -->
|
||||
@ -2058,6 +1751,42 @@
|
||||
<source>src/core/resources/dbscripts/postgresql.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/db2.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/h2.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/mssql.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/mysql.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/mysql5.7.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/mysql_cluster.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/oracle.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/oracle_rac.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>src/core/resources/dbscripts/apimgt/postgresql.sql</source>
|
||||
<outputDirectory>${pom.artifactId}-${pom.version}/dbscripts/apimgt</outputDirectory>
|
||||
</file>
|
||||
<!-- ********************************* End of Carbon DB Copying ********************************* -->
|
||||
</files>
|
||||
</assembly>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
product.name=Entgra IoT Server
|
||||
product.key=IoT
|
||||
product.version=4.0.0-SNAPSHOT
|
||||
product.version=4.1.0-SNAPSHOT
|
||||
product.doc.version=360
|
||||
|
||||
carbon.version=4.4.26
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
WSO2 IoT Server @product.version@
|
||||
Entgra IoT Server @product.version@
|
||||
==============================================================
|
||||
Welcome to the WSO2 IoT Server (IoTS) @product.version@ release.
|
||||
Welcome to the Entgra IoT Server (IoTS) @product.version@ release.
|
||||
|
||||
WSO2 IoT Server (IoTS) provides the essential capabilities required to implement a scalable server-side IoT Platform. These capabilities
|
||||
Entgra IoT Server (IoTS) provides the essential capabilities required to implement a scalable server-side IoT Platform. These capabilities
|
||||
involve device management, API/App management for devices, analytics, customizable web portals, transport extensions for MQTT, XMPP
|
||||
and much more. WSO2 IoTS contains sample device agent implementations for well-known development boards, such as Arduino UNO, Raspberry Pi,
|
||||
Android, iOS, Windows and Virtual agents that demonstrate various capabilities. Furthermore, WSO2 IoTS is released under
|
||||
and much more. Entgra IoTS contains sample device agent implementations for well-known development boards, such as Arduino UNO, Raspberry Pi,
|
||||
Android and Virtual agents that demonstrate various capabilities. Furthermore, Entgra IoTS Community Edition is released under
|
||||
the Apache Software License Version 2.0, one of the most business-friendly licenses available today.
|
||||
|
||||
|
||||
Key Features
|
||||
==================================
|
||||
See the online WSO2 IoT documentation for more information on product features:
|
||||
https://docs.wso2.com/display/IoTS@product.doc.version@/About+this+Release
|
||||
See the online Entgra IoT documentation for more information on product features:
|
||||
https://entgra-documentation.gitlab.io/v@product.doc.version@
|
||||
|
||||
|
||||
Installation & Running
|
||||
@ -45,7 +45,7 @@ System Requirements
|
||||
2. The portal app requires full Javascript enablement on the Web browser
|
||||
|
||||
|
||||
WSO2 IoT distribution directory
|
||||
Entgra IoT distribution directory
|
||||
=============================================
|
||||
|
||||
- bin
|
||||
@ -62,7 +62,7 @@ WSO2 IoT distribution directory
|
||||
in standalone mode
|
||||
|
||||
- repository
|
||||
The repository where services and modules deployed in WSO2 IoT.
|
||||
The repository where services and modules deployed in Entgra IoT.
|
||||
are stored.
|
||||
|
||||
- conf
|
||||
@ -77,7 +77,7 @@ WSO2 IoT distribution directory
|
||||
|
||||
- samples
|
||||
Contains some sample services and client applications that demonstrate
|
||||
the functionality and capabilities of WSO2 IoT.
|
||||
the functionality and capabilities of Entgra IoT.
|
||||
|
||||
- tmp
|
||||
Used for storing temporary files, and is pointed to by the
|
||||
@ -85,13 +85,13 @@ WSO2 IoT distribution directory
|
||||
|
||||
- LICENSE.txt
|
||||
Apache License 2.0 and the relevant other licenses under which
|
||||
WSO2 IoT is distributed.
|
||||
Entgra IoT is distributed.
|
||||
|
||||
- README.txt
|
||||
This document.
|
||||
|
||||
- release-notes.html
|
||||
Release information for WSO2 IoT @product.version@
|
||||
Release information for Entgra IoT @product.version@
|
||||
|
||||
- patches
|
||||
Used to add patches related for all runtimes.
|
||||
@ -107,28 +107,28 @@ WSO2 IoT distribution directory
|
||||
|
||||
-webapp-mode
|
||||
|
||||
-wso2/components
|
||||
-Entgra/components
|
||||
Contains profiles for all runtimes and the plugins folder
|
||||
|
||||
-wso2/lib
|
||||
-Entgra/lib
|
||||
Contains jars that are required/shared by all runtimes.
|
||||
|
||||
-wso2/analytics
|
||||
-Entgra/analytics
|
||||
Contains analytics runtime related files/folders.
|
||||
|
||||
-wso2/analytics/conf
|
||||
-Entgra/analytics/conf
|
||||
Analytics runtime specific configuration files.
|
||||
|
||||
-wso2/analytics/repository
|
||||
-Entgra/analytics/repository
|
||||
Where deployments of Analytics runtime is stored.
|
||||
|
||||
-wso2/broker
|
||||
-Entgra/broker
|
||||
Contains broker runtime related files/folders.
|
||||
|
||||
-wso2/broker/conf
|
||||
-Entgra/broker/conf
|
||||
Broker runtime specific configuration files.
|
||||
|
||||
-wso2/broker/repository
|
||||
-Entgra/broker/repository
|
||||
Where deployments of broker runtime is stored.
|
||||
|
||||
|
||||
@ -154,9 +154,9 @@ This script automates the following configurations that you would normally need
|
||||
cipher-tool.properties, cipher-text.properties and secret-conf.properties files
|
||||
can be found in the <IoT_HOME>/conf/security directory.
|
||||
|
||||
2. Start the server by running the wso2server script, which is in the <IoT_HOME>/bin directory.
|
||||
2. Start the server by running the iotserver script, which is in the <IoT_HOME>/bin directory.
|
||||
|
||||
> wso2server.sh (in UNIX)
|
||||
> iotserver.sh (in UNIX)
|
||||
|
||||
When running the default mode, it asks you to enter the master password
|
||||
(By default, the master password is the password of the Carbon keystore and private key)
|
||||
@ -171,8 +171,8 @@ https://docs.wso2.com/display/ADMIN44x/Carbon+Secure+Vault+Implementation
|
||||
Training
|
||||
--------
|
||||
|
||||
WSO2 Inc. offers a variety of professional Training Programs for WSO2 products.
|
||||
For additional support on training information please goto http://wso2.com/training/
|
||||
Entgra (Pvt) Ltd. offers a variety of professional Training Programs for Entgra products.
|
||||
For additional support on training information please goto https://entgra.io/contact
|
||||
|
||||
|
||||
Support
|
||||
@ -180,7 +180,7 @@ Support
|
||||
|
||||
We are committed to ensuring that your enterprise middleware deployment is completely supported from evaluation to production. Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology.
|
||||
|
||||
For additional support information please refer to http://wso2.com/support/
|
||||
For additional support information please refer to https://entgra.io/contact
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
(c) Copyright 2017 WSO2 Inc.
|
||||
(c) Copyright 2020 Entgra (Pvt) Ltd.
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2020, Entgra (pvt) Ltd. (http://entgra.io)
|
||||
~
|
||||
~ All Rights Reserved.
|
||||
~
|
||||
~ Unauthorized copying of this file, via any medium is strictly prohibited.
|
||||
~ Proprietary and confidential.
|
||||
-->
|
||||
|
||||
<api context="/sync" name="sync-api" xmlns="http://ws.apache.org/ns/synapse">
|
||||
<resource faultSequence="fault" methods="GET" url-mapping="/time">
|
||||
<inSequence>
|
||||
<payloadFactory>
|
||||
<format>
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soapenv:Body>
|
||||
<text xmlns="http://ws.apache.org/commons/ns/payload">$1</text>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
</format>
|
||||
<args>
|
||||
<arg expression="get-property('SYSTEM_TIME')"/>
|
||||
</args>
|
||||
</payloadFactory>
|
||||
<property name="messageType" value="text/plain" scope="axis2"/>
|
||||
<respond/>
|
||||
</inSequence>
|
||||
<outSequence>
|
||||
</outSequence>
|
||||
</resource>
|
||||
</api>
|
||||
@ -337,6 +337,11 @@ do
|
||||
-Diot.apimstore.https.port="9443" \
|
||||
-Dmqtt.broker.https.port="9446" \
|
||||
-Denable-api-scopes-sharing="true" \
|
||||
-Dagent-bundle="org.wso2.carbon.emm.mdmagent" \
|
||||
-Diot.reporting.event.host="" \
|
||||
-Diot.reporting.webapp.host="" \
|
||||
-Diot.remotesession.server.host="localhost" \
|
||||
-Diot.remotesession.server.https.port="9443" \
|
||||
org.wso2.carbon.bootstrap.Bootstrap $*
|
||||
status=$?
|
||||
done
|
||||
|
||||
@ -23,7 +23,7 @@ set DISTRIBUTION=entgra-iot-@product.version@
|
||||
REM get the desired profile
|
||||
echo This tool will erase all the files which are not required for the selected profile
|
||||
echo and provide you a light weight package for the target profile.
|
||||
echo WSO2 IoT Server Supports following profiles.
|
||||
echo Entgra IoT Server Supports following profiles.
|
||||
echo 1.IoT Device Backend Profile
|
||||
echo 2.IoT Device Manager Profile
|
||||
echo 3.IoT Key Manager Profile
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#-------------------------------------------------------------------------
|
||||
# Profile creator tool for EI
|
||||
# Profile creator tool for IoTS
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ BINDIR=$(pwd)
|
||||
#get the desired profile
|
||||
echo "This tool will erase all the files which are not required for the selected profile "
|
||||
echo "and also creates a distribution of this profile in the same folder <IOT_HOME> resides."
|
||||
echo "WSO2 IoT Server Supports following profiles."
|
||||
echo "Entgra IoT Server Supports following profiles."
|
||||
echo " 1.IoT Device Backend Profile"
|
||||
echo " 2.IoT Device Manager Profile"
|
||||
echo " 3.IoT Key Manager Profile"
|
||||
|
||||
@ -75,16 +75,17 @@ placeHolderSoGenPropsComeHere=
|
||||
wrapper.java.command = ${java_home}\\bin\\java
|
||||
wrapper.java.classpath.1 = ${java_home}\\lib\\tools.jar
|
||||
wrapper.java.classpath.2 = ${carbon_home}\\bin\\*.jar
|
||||
wrapper.java.classpath.3 = ${carbon_home}\\wso2\\components\\plugins\\commons-lang_2.6.0.wso2v1.jar
|
||||
wrapper.app.parameter.1 = org.wso2.carbon.bootstrap.Bootstrap
|
||||
wrapper.app.parameter.2 = RUN
|
||||
wrapper.java.additional.1 = -Xbootclasspath\/a:${carbon_home}\\lib\\xboot\\*.jar
|
||||
wrapper.java.additional.1 = -Xbootclasspath\/a:${carbon_home}\\wso2\\lib\\xboot\\*.jar
|
||||
wrapper.java.additional.2 = -Xms256m
|
||||
wrapper.java.additional.3 = -Xmx1024m
|
||||
wrapper.java.additional.4 = -XX:MaxPermSize=512m
|
||||
wrapper.java.additional.5 = -XX:+HeapDumpOnOutOfMemoryError
|
||||
wrapper.java.additional.6 = -XX:HeapDumpPath=${carbon_home}\\repository\\logs\\heap-dump.hprof
|
||||
wrapper.java.additional.7 = -Dcom.sun.management.jmxremote
|
||||
wrapper.java.additional.8 = -Djava.endorsed.dirs=${carbon_home}\\wso2\\lib\\endorsed;${java_home}\\jre\\lib\\endorsed;${java_home}\\wso2\\lib\\endorsed
|
||||
wrapper.java.additional.8 = -Djava.endorsed.dirs=${carbon_home}\\wso2\\lib\\endorsed;${java_home}\\jre\\lib\\endorsed
|
||||
wrapper.java.additional.9 = -Dcarbon.registry.root=\/
|
||||
wrapper.java.additional.10 = -Dcarbon.home=${carbon_home}
|
||||
wrapper.java.additional.11 = -Dwso2.server.standalone=true
|
||||
|
||||
@ -1,245 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
.truncate {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validation messages
|
||||
*/
|
||||
.required {
|
||||
color: #e74c3c;
|
||||
}
|
||||
|
||||
.required-error {
|
||||
background: #a94442;
|
||||
border: 1px solid #a94442;
|
||||
padding: 6px 12px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/**
|
||||
* Theme overrides
|
||||
*/
|
||||
.breadcrumb li .fw-home {
|
||||
float: left;
|
||||
padding-top: 2px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Auth menu
|
||||
*/
|
||||
.auth .hidden-xs {
|
||||
line-height: 38px;
|
||||
}
|
||||
|
||||
.auth-xs {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.auth-xs ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
line-height: 28px;
|
||||
background-color: #2a80b9;
|
||||
}
|
||||
|
||||
.auth-xs li {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.auth-xs li a {
|
||||
display: block;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.auth-xs li a:hover {
|
||||
background-color: #499dd5;
|
||||
}
|
||||
|
||||
ul.dropdown-menu.more-actions-button {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
width: 40px;
|
||||
background: #F9F9F9;
|
||||
border-bottom: 1px solid #EFEFEF;
|
||||
min-width: 45px;
|
||||
|
||||
}
|
||||
|
||||
ul.dropdown-menu.more-actions-button > li {
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
border: 1px;
|
||||
}
|
||||
|
||||
ul.dropdown-menu.more-actions-button > li > button {
|
||||
border-bottom: 1px solid #e4e4e4;
|
||||
border-top: 1px solid darkred;
|
||||
}
|
||||
|
||||
.btn-group.open .dropdown-toggle {
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.btn-custom {
|
||||
border-width: 1px;
|
||||
}
|
||||
|
||||
|
||||
.cloud-menu .popover {
|
||||
border-radius: 0px;
|
||||
width: 24em;
|
||||
left: -21.1em !important;
|
||||
max-width: 32em;
|
||||
background-color: #006690
|
||||
}
|
||||
.cloud-menu .popover-title,.navbar-header .popover-title {
|
||||
background-color: #006690;
|
||||
font-size: 16px;
|
||||
border-bottom: none;
|
||||
font-weight: 400;
|
||||
}
|
||||
.cloud-menu .popover.bottom>.arrow{
|
||||
margin-left:-2px;
|
||||
}
|
||||
.cloud-menu .popover.bottom>.arrow:after,.navbar-header .popover.bottom>.arrow:after{
|
||||
border-bottom-color: #006690;
|
||||
}
|
||||
.cloud-block {
|
||||
float: left;
|
||||
width: 8.2em;
|
||||
height: 8.2em;
|
||||
background-color: #fff;
|
||||
margin: 0.5em 0em 0.5em 0.5em;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.cloud-name {
|
||||
font-size:14px;
|
||||
margin-top: .5em;
|
||||
font-weight: 400;
|
||||
}
|
||||
.cloud-menu-popover {
|
||||
position: relative;
|
||||
float: right;
|
||||
padding: 0px 8px;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
#cloud-menu-popover-xs {
|
||||
color: #fff;
|
||||
line-height:24px;
|
||||
border: none;
|
||||
margin-right: 15px!important;
|
||||
}
|
||||
.navbar-toggle{
|
||||
border:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.navbar-header .popover {
|
||||
border-radius: 0px;
|
||||
width: 21em;
|
||||
max-width:32em;
|
||||
background-color: #006690;
|
||||
}
|
||||
.navbar-header .popover .popover-content{
|
||||
padding:0px;
|
||||
}
|
||||
.cloud-menu .popover-content {
|
||||
padding: 0px;
|
||||
}
|
||||
.cloud-actions {
|
||||
background-color: #005578;
|
||||
float: left;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0px;
|
||||
overflow:hidden;
|
||||
}
|
||||
.cloud-actions h3 {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
padding-left: 14px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.cloud-block-invert {
|
||||
color: #fff;
|
||||
float: left;
|
||||
width: 8.2em;
|
||||
height: 8.2em;
|
||||
background-color: #1f1f1f;
|
||||
margin: 0.5em 0em 0.5em 0.5em;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.cloud-block-default {
|
||||
color: #006690;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.cloud-actions a:hover {
|
||||
color: #d7d5d5;
|
||||
background-color: #3d3d3d;
|
||||
text-decoration: none
|
||||
}
|
||||
.cloud-apps a {
|
||||
text-decoration: none;
|
||||
color: #006690 !important;
|
||||
cursor: pointer
|
||||
}
|
||||
.cloud-apps a:hover {
|
||||
text-decoration: none;
|
||||
color: #006690;
|
||||
background-color: #c5c5c5;
|
||||
}
|
||||
.cloud-apps .cloud-actions a {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.add-padding-top-3x {
|
||||
padding-top: 15px !important;
|
||||
}
|
||||
|
||||
.nav li a{
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.cloud-menu-content li a{
|
||||
color:inherit;
|
||||
}
|
||||
|
||||
html{
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body{
|
||||
height: calc(100% - 50px);
|
||||
}
|
||||
@ -1,329 +0,0 @@
|
||||
<%
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
%>
|
||||
<%
|
||||
var query = request.getQueryString();
|
||||
var dest = encodeURIComponent(originalURI + (query ? '?' + query : ''));
|
||||
var configs = require('/configs/portal.js').config();
|
||||
var isCloud = configs.isCloud;
|
||||
%>
|
||||
<header class="header header-default">
|
||||
<div class="container-fluid">
|
||||
<div class="pull-left brand float-remove-xs text-center-xs">
|
||||
<a href="<%=tenantedUrlPrefix%>./dashboards">
|
||||
<img src="<%=urlPrefix%>libs/theme-wso2_1.0/images/logo-inverse.svg" alt="WSO2" title="WSO2" class="logo">
|
||||
<% if (isCloud) { %>
|
||||
<h1>Cloud</h1>
|
||||
<% } else { %>
|
||||
<h1><%=i18n.localize("dashboard.server.label")%></h1>
|
||||
<% } %>
|
||||
</a>
|
||||
</div>
|
||||
<% if (isCloud) { %>
|
||||
<div class="pull-right auth float-remove-xs text-center-xs">
|
||||
<% if (user) { %>
|
||||
|
||||
<ul class="nav navbar-right float-remove-xs text-center-xs">
|
||||
|
||||
<li class="visible-inline-block">
|
||||
<a href="#" target="_self" title="
|
||||
<%=user.domain%>
|
||||
">
|
||||
<span class="icon fw-stack fw-lg">
|
||||
<i class="fw fw-organization fw-stack-1x" title=" {{@user.domain}}"></i>
|
||||
</span>
|
||||
<span class="hidden-xs">
|
||||
<%=user.domain%>
|
||||
</span>
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="visible-inline-block">
|
||||
|
||||
<a href="#" target="_blank" class="dropdown" data-toggle="dropdown" title="Account">
|
||||
|
||||
<span class="icon fw-stack fw-lg" style="color: red">
|
||||
<i class="fw fw-resource fw-stack-1x" title="Account"></i>
|
||||
</span>
|
||||
<span class="hidden-xs" style="color: red">
|
||||
Trial – 14 days to upgrade
|
||||
</span>
|
||||
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-right float-remove-xs position-static-xs text-center-xs remove-margin-xs slideInDown"
|
||||
role="menu">
|
||||
|
||||
<li>
|
||||
<a title="Upgrade Now"
|
||||
href="https://cloudmgt.clouddev.wso2.com/cloudmgt/site/pages/payment-plans.jag?cloud-type=device_cloud"
|
||||
target="_self">
|
||||
<i class="fw fw-export" title="Upgrade Now"></i> Upgrade Now
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a title="Monetization"
|
||||
href="https://cloudmgt.clouddev.wso2.com/cloudmgt/site/pages/monetization-dashboard.jag"
|
||||
target="_self">
|
||||
<i class="fa fa-money fa-lg" title="Monetization"></i> Monetization
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a title="Request Extension"
|
||||
href="https://cloudmgt.clouddev.wso2.com/cloudmgt/site/pages/contact-us.jag?cloud-type=device_cloud&request-extension=true"
|
||||
target="_blank">
|
||||
<i class="fw fw-mail" title="Request Extension"></i> Request Extension
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="visible-inline-block">
|
||||
|
||||
<a href="#" target="null" class="dropdown" data-toggle="dropdown" title="App Management">
|
||||
<span class="icon fw-stack fw-lg">
|
||||
<i class="fw fw-settings fw-stack-1x" title="App Management"></i>
|
||||
</span>
|
||||
<span class="hidden-xs">
|
||||
App Management
|
||||
</span>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-right float-remove-xs position-static-xs text-center-xs remove-margin-xs slideInDown"
|
||||
role="menu">
|
||||
<li class="visible-inline-block">
|
||||
<a title="Mobile App Publisher" href="https://devicemgt.clouddev.wso2.com/publisher"
|
||||
target="_self">
|
||||
<i class="fw fw-user" title="Mobilr App Publisher"></i> App Publisher
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="visible-inline-block">
|
||||
<a title="App Store " href="https://devicemgt.clouddev.wso2.com/store"
|
||||
target="_self">
|
||||
<i class="fw fw-store" title="App Store"></i> App Store
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="visible-inline-block">
|
||||
<a href="https://cloudmgt.clouddev.wso2.com/cloudmgt/site/pages/contact-us.jag" target="_self"
|
||||
title="Support">
|
||||
|
||||
|
||||
<span class="icon fw-stack fw-lg" style="color: #ff8c27;">
|
||||
<i class="fw fw-mail fw-stack-1x" title="Support"></i>
|
||||
</span>
|
||||
<span class="hidden-xs" style="color: #ff8c27;">
|
||||
Support
|
||||
</span>
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="visible-inline-block">
|
||||
|
||||
<a href="#" target="null" class="dropdown" data-toggle="dropdown" title="Documentation">
|
||||
<span class="icon fw-stack fw-lg">
|
||||
<i class="fw fw-document fw-stack-1x" title="Documentation"></i>
|
||||
</span>
|
||||
<span class="hidden-xs">
|
||||
Documentation
|
||||
</span>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-right float-remove-xs position-static-xs text-center-xs remove-margin-xs slideInDown"
|
||||
role="menu">
|
||||
|
||||
<li>
|
||||
<a title="API Cloud"
|
||||
href="https://docs.wso2.com/display/APICloud/WSO2+API+Cloud+Documentation"
|
||||
target="_blank">
|
||||
<i class="fw fw-api" title="API Cloud"></i> API Cloud
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a title="App Cloud"
|
||||
href="https://docs.wso2.com/display/AppCloud/WSO2+App+Cloud+Documentation"
|
||||
target="_blank">
|
||||
<i class="fw fw-application" title="App Cloud"></i> App Cloud
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a title="App Cloud"
|
||||
href="https://docs.wso2.com/display/AppCloud/WSO2+Device+Cloud+Documentation"
|
||||
target="_blank">
|
||||
<i class="fw fw-application" title="App Cloud"></i> Device Cloud
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a title="API Cloud Walkthrough"
|
||||
href="https://api.clouddev.wso2.com/publisher?interactiveTutorial=true"
|
||||
target="_self">
|
||||
<i class="fw fw-document" title="API Cloud Walkthrough"></i> API Cloud Walkthrough
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="visible-inline-block">
|
||||
<a href="#" class="dropdown" data-toggle="dropdown" title="user">
|
||||
<span class="icon fw-stack fw-lg">
|
||||
<i class="fw fw-circle-outline fw-stack-2x" title="User"></i>
|
||||
<i class="fw fw-user fw-stack-1x" title="User"></i>
|
||||
</span>
|
||||
<span class="hidden-xs">
|
||||
<%=user.username%></span><span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-right float-remove-xs position-static-xs text-center-xs remove-margin-xs slideInDown"
|
||||
role="menu">
|
||||
|
||||
<li>
|
||||
<a title="Profile"
|
||||
href="https://cloudmgt.clouddev.wso2.com/cloudmgt/site/pages/user-profile.jag"
|
||||
target="_self">
|
||||
<i class="fw fw-user" title="Profile"></i> Profile
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a title="Change Password"
|
||||
href="https://cloudmgt.clouddev.wso2.com/cloudmgt/site/pages/change-password.jag"
|
||||
target="_self">
|
||||
<i class="fw fw-lock" title="Change Password"></i> Change Password
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a title="Logout" href="https://api.clouddev.wso2.com/publisher/site/pages/logout.jag"
|
||||
target="_self">
|
||||
<i class="fw fw-sign-out" title="Logout"></i> Logout
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<li class="visible-inline-block cloud-menu">
|
||||
<a href="#" id="cloud-menu-popover">
|
||||
<span class="icon fw-stack fw-lg">
|
||||
<i class="fw fw-tiles fw-stack-1x" data-toggle="popover" data-placement="bottom"
|
||||
data-original-title="" title=""></i>
|
||||
</span>
|
||||
<span class="hidden-xs">
|
||||
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<% } else { %>
|
||||
<a href="<%=urlPrefix%>login?destination=<%=dest%>" class="dropdown" data-toggle="dropdown">
|
||||
<%= i18n.localize("login.label")%>
|
||||
</a>
|
||||
<% } %>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="cloud-menu-content hide">
|
||||
<div id="popover-head" class="hide">Navigate to Cloud</div>
|
||||
<div id="popover-content" class="hide">
|
||||
<div class="cloud-apps">
|
||||
|
||||
<a href="https://api.cloud.wso2.com/publisher" target="_self" class="cloud-block add-padding-top-3x">
|
||||
<i class="fw fw-api fw-3x"></i>
|
||||
<div class="cloud-name">API Cloud</div>
|
||||
</a>
|
||||
|
||||
<a href="https://apps.cloud.wso2.com/appmgt" target="_self" class="cloud-block add-padding-top-3x">
|
||||
<i class="fw fw-application fw-3x"></i>
|
||||
<div class="cloud-name">App Cloud</div>
|
||||
</a>
|
||||
|
||||
<a href="https://devicemgt.cloud.wso2.com/devicemgt" target="_self" class="cloud-block add-padding-top-3x">
|
||||
<i class="fw fw-mobile fw-3x"></i>
|
||||
<div class="cloud-name">Device Cloud</div>
|
||||
</a>
|
||||
|
||||
<div class="clearfix"></div><!-- to make seperate -->
|
||||
</div>
|
||||
<div class="cloud-actions">
|
||||
<h3>Manage your cloud</h3>
|
||||
|
||||
<a href="https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/organization.jag" target="_self" class="cloud-block-invert add-padding-top-3x">
|
||||
<i class="fw fw-organization fw-3x"></i>
|
||||
<div class="cloud-name">Organization</div>
|
||||
</a>
|
||||
|
||||
<a href="https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/user.jag" target="_self" class="cloud-block-invert add-padding-top-3x">
|
||||
<i class="fa fa-users fa-3x"></i>
|
||||
<div class="cloud-name">Members</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% } else { %>
|
||||
<div class="pull-right auth float-remove-xs text-center-xs">
|
||||
<% if (user) { %>
|
||||
<span class="hidden-xs">
|
||||
<a href="#" class="dropdown" data-toggle="dropdown">
|
||||
<span class="add-margin-left-2x add-margin-right-1x"><%=user.username%></span>
|
||||
<span class="fw fw-user add-margin-right-1x"></span>
|
||||
<span class="caret add-margin-right-2x"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
<li class="dropdown-header visible-xs"><%=user.username%> <span class="caret"></span></li>
|
||||
<li><a href="<%=urlPrefix%>logout?destination=<%=dest%>"><%= i18n.localize("logout.label")%></a></li>
|
||||
</ul>
|
||||
</span>
|
||||
<div class="visible-xs auth-xs">
|
||||
<a href="#" class="collapsed" data-toggle="collapse" data-target="#auth-menu-items" aria-expanded="false">
|
||||
<span class="icon fw-stack fw">
|
||||
<i class="fw fw-user fw-stack-1x"></i>
|
||||
</span>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<div id="auth-menu-items" class="collapse">
|
||||
<ul >
|
||||
<li><%=user.username%></li>
|
||||
<li><a href="<%=urlPrefix%>logout?destination=<%=dest%>"><%= i18n.localize("logout.label")%></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% } else { %>
|
||||
<a href="<%=urlPrefix%>login?destination=<%=dest%>" class="dropdown" data-toggle="dropdown">
|
||||
<%= i18n.localize("login.label")%>
|
||||
</a>
|
||||
<% } %>
|
||||
</div>
|
||||
<% } %>
|
||||
</div>
|
||||
</header>
|
||||
@ -1,204 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
$(function () {
|
||||
|
||||
var dashboardsApi = ues.utils.tenantPrefix() + 'apis/dashboards';
|
||||
var dashboards = [];
|
||||
var isStillLoading = false;
|
||||
var nextStart = 0;
|
||||
var hasMore = true;
|
||||
|
||||
/**
|
||||
* Page count.
|
||||
* @const
|
||||
*/
|
||||
var PAGE_COUNT = 10;
|
||||
|
||||
// Pre-compiling handlebar templates
|
||||
var dashboardsListHbs = Handlebars.compile($("#ues-dashboards-list-hbs").html());
|
||||
var dashboardThumbnailHbs = Handlebars.compile($("#ues-dashboard-thumbnail-hbs").html());
|
||||
var dashboardConfirmHbs = Handlebars.compile($("#ues-dashboard-confirm-hbs").html());
|
||||
var dashboardsEmptyHbs = Handlebars.compile($("#ues-dashboards-empty-hbs").html());
|
||||
Handlebars.registerPartial('ues-dashboard-thumbnail-hbs', dashboardThumbnailHbs);
|
||||
|
||||
/**
|
||||
* Find the dashboard using dashboard id.
|
||||
* @param id
|
||||
* @return {object}
|
||||
* @private
|
||||
* */
|
||||
var findDashboard = function (id) {
|
||||
var i;
|
||||
var dashboard;
|
||||
var length = dashboards.length;
|
||||
for (i = 0; i < length; i++) {
|
||||
dashboard = dashboards[i];
|
||||
if (dashboard.id === id) {
|
||||
return dashboard;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Delete the selected dashboard
|
||||
* @param el:-selected dashboard element
|
||||
* @private
|
||||
* */
|
||||
var deleteDashboard = function (el) {
|
||||
var button = Ladda.create(el[0]);
|
||||
button.start();
|
||||
var id = el.closest('.ues-dashboard').data('id');
|
||||
$.ajax({
|
||||
url: dashboardsApi + '/' + id,
|
||||
method: 'DELETE',
|
||||
async : false,
|
||||
success: function () {
|
||||
button.stop();
|
||||
location.reload();
|
||||
},
|
||||
error: function () {
|
||||
button.stop();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Load the list of dashboards available.
|
||||
* @private
|
||||
* */
|
||||
var loadDashboards = function () {
|
||||
isStillLoading = true;
|
||||
|
||||
if (!hasMore) {
|
||||
isStillLoading = false;
|
||||
$('.ues-dashboard').each(function (i, obj) {
|
||||
if ($(this).find('.ues-dashboard-share').length) {
|
||||
$(this).addClass("shared");
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
ues.store.assets('dashboard', {
|
||||
start: nextStart,
|
||||
count: PAGE_COUNT
|
||||
}, function (err, data) {
|
||||
var dashboardsEl = $('#ues-portal').find('.ues-dashboards');
|
||||
hasMore = data.length;
|
||||
if (!hasMore && nextStart === 0) {
|
||||
dashboardsEl.append(dashboardsEmptyHbs());
|
||||
return;
|
||||
}
|
||||
|
||||
nextStart += PAGE_COUNT;
|
||||
dashboards = dashboards.concat(data);
|
||||
dashboardsEl.append(dashboardsListHbs(data));
|
||||
|
||||
var win = $(window);
|
||||
var doc = $(document);
|
||||
isStillLoading = false;
|
||||
if (doc.height() > win.height()) {
|
||||
return;
|
||||
}
|
||||
|
||||
loadDashboards();
|
||||
|
||||
$(".disable").on('click', function (event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Initialize the UI functionality such as binding events.
|
||||
* @private
|
||||
* */
|
||||
var initUI = function () {
|
||||
var portal = $('#ues-portal');
|
||||
portal.on('click', '.ues-dashboards .ues-dashboard-trash-handle', function (e) {
|
||||
e.preventDefault();
|
||||
var thiz = $(this);
|
||||
var dashboardEl = thiz.closest('.ues-dashboard');
|
||||
var id = dashboardEl.data('id');
|
||||
var dashboard = findDashboard(id);
|
||||
dashboardEl.html(dashboardConfirmHbs(dashboard));
|
||||
});
|
||||
|
||||
portal.on('click', '.ues-dashboards .ues-dashboard-trash-confirm', function (e) {
|
||||
e.preventDefault();
|
||||
deleteDashboard($(this));
|
||||
});
|
||||
|
||||
portal.on('click', '.ues-dashboards .ues-dashboard-trash-cancel', function (e) {
|
||||
e.preventDefault();
|
||||
var thiz = $(this);
|
||||
var dashboardEl = thiz.closest('.ues-dashboard');
|
||||
var id = dashboardEl.data('id');
|
||||
var dashboard = findDashboard(id);
|
||||
dashboardEl.html(dashboardThumbnailHbs(dashboard));
|
||||
});
|
||||
|
||||
portal.on('click', '.ues-view:not(.disable)', function(e) {
|
||||
e.preventDefault();
|
||||
window.open($(this).attr('href'), '_blank');
|
||||
});
|
||||
|
||||
$('#filter-dashboards a').on('click', function () {
|
||||
$('#filter').html($(this).text());
|
||||
var filter = $(this).data('filter');
|
||||
|
||||
$('.ues-dashboard-container').each(function (i, obj) {
|
||||
if (filter === "All") {
|
||||
$(this).show();
|
||||
} else {
|
||||
if ($(this).find('.ues-dashboard-share').length) {
|
||||
filter === "Shared" ? $(this).show() : $(this).hide();
|
||||
} else {
|
||||
filter === "Shared" ? $(this).hide() : $(this).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(window).scroll(function () {
|
||||
var win = $(window);
|
||||
var doc = $(document);
|
||||
if (win.scrollTop() + win.height() < doc.height() - 100) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isStillLoading) {
|
||||
loadDashboards();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$(document).ready(function () {
|
||||
if($('#cloud-menu-popover').length) {
|
||||
$('#cloud-menu-popover i.fw-tiles').popover({
|
||||
html: true,
|
||||
trigger:'click',
|
||||
title: function() {
|
||||
return $("#popover-head").html();
|
||||
},
|
||||
content: function() {
|
||||
return $("#popover-content").html();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
initUI();
|
||||
loadDashboards();
|
||||
});
|
||||
@ -58,8 +58,8 @@
|
||||
<parameter name="ModulesDirectory">axis2modules</parameter>
|
||||
|
||||
<!-- User agent and the server details to be used in the http communication -->
|
||||
<parameter name="userAgent" locked="true">WSO2 IoT 1.0.0</parameter>
|
||||
<parameter name="server" locked="true">WSO2 IoT 1.O.0</parameter>
|
||||
<parameter name="userAgent" locked="true">Entgra IoT 1.0.0</parameter>
|
||||
<parameter name="server" locked="true">Entgra IoT 1.O.0</parameter>
|
||||
|
||||
<!-- During a fault, stacktrace can be sent with the fault message. The following flag -->
|
||||
<!-- will control that behaviour -->
|
||||
|
||||
@ -134,9 +134,9 @@
|
||||
<OAuth2UserInfoEPUrl>${carbon.protocol}://${carbon.host}:${carbon.management.port}/oauth2/userinfo</OAuth2UserInfoEPUrl>
|
||||
<OIDCCheckSessionEPUrl>${carbon.protocol}://${carbon.host}:${carbon.management.port}/oidc/checksession</OIDCCheckSessionEPUrl>
|
||||
<OIDCLogoutEPUrl>${carbon.protocol}://${carbon.host}:${carbon.management.port}/oidc/logout</OIDCLogoutEPUrl>
|
||||
<OAuth2ConsentPage>${carbon.protocol}://${carbon.host}:${carbon.management.port}/authenticationendpoint/oauth2_authz.do</OAuth2ConsentPage>
|
||||
<OAuth2ConsentPage>${carbon.protocol}://${carbon.host}:${carbon.management.port}/devicemgt/consent.do</OAuth2ConsentPage>
|
||||
<OAuth2ErrorPage>${carbon.protocol}://${carbon.host}:${carbon.management.port}/authenticationendpoint/oauth2_error.do</OAuth2ErrorPage>
|
||||
<OIDCConsentPage>${carbon.protocol}://${carbon.host}:${carbon.management.port}/authenticationendpoint/oauth2_consent.do</OIDCConsentPage>
|
||||
<OIDCConsentPage>${carbon.protocol}://${carbon.host}:${carbon.management.port}/devicemgt/consent.do</OIDCConsentPage>
|
||||
<OIDCLogoutConsentPage>${carbon.protocol}://${carbon.host}:${carbon.management.port}/authenticationendpoint/oauth2_logout_consent.do</OIDCLogoutConsentPage>
|
||||
<OIDCLogoutPage>${carbon.protocol}://${carbon.host}:${carbon.management.port}/authenticationendpoint/oauth2_logout.do</OIDCLogoutPage>
|
||||
<OIDCWebFingerEPUrl>${carbon.protocol}://${carbon.host}:${carbon.management.port}/.well-known/webfinger</OIDCWebFingerEPUrl>
|
||||
@ -151,7 +151,7 @@
|
||||
<!-- Default validity period for user access tokens in seconds -->
|
||||
<UserAccessTokenDefaultValidityPeriod>3600</UserAccessTokenDefaultValidityPeriod>
|
||||
<!-- Validity period for refresh token -->
|
||||
<RefreshTokenValidityPeriod>15552000</RefreshTokenValidityPeriod>
|
||||
<RefreshTokenValidityPeriod>1555200000</RefreshTokenValidityPeriod>
|
||||
<!-- Timestamp skew in seconds -->
|
||||
<TimestampSkew>300</TimestampSkew>
|
||||
<!-- Enable OAuth caching -->
|
||||
|
||||
@ -1,60 +0,0 @@
|
||||
<!--
|
||||
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<ServiceProvider>
|
||||
<ApplicationID>9</ApplicationID>
|
||||
<ApplicationName>portal</ApplicationName>
|
||||
<Description>Carbon Dashboards Portal</Description>
|
||||
<InboundAuthenticationConfig>
|
||||
<InboundAuthenticationRequestConfigs>
|
||||
<InboundAuthenticationRequestConfig>
|
||||
<InboundAuthKey>portal</InboundAuthKey>
|
||||
<InboundAuthType>samlsso</InboundAuthType>
|
||||
<Properties>
|
||||
</Properties>
|
||||
</InboundAuthenticationRequestConfig>
|
||||
</InboundAuthenticationRequestConfigs>
|
||||
</InboundAuthenticationConfig>
|
||||
<LocalAndOutBoundAuthenticationConfig>
|
||||
<AuthenticationSteps>
|
||||
<AuthenticationStep>
|
||||
<StepOrder>1</StepOrder>
|
||||
<LocalAuthenticatorConfigs>
|
||||
<LocalAuthenticatorConfig>
|
||||
<Name>BasicAuthenticator</Name>
|
||||
<DisplayName>basicauth</DisplayName>
|
||||
<IsEnabled>true</IsEnabled>
|
||||
</LocalAuthenticatorConfig>
|
||||
</LocalAuthenticatorConfigs>
|
||||
<SubjectStep>true</SubjectStep>
|
||||
<AttributeStep>true</AttributeStep>
|
||||
</AuthenticationStep>
|
||||
</AuthenticationSteps>
|
||||
<UseUserstoreDomainInUsername>true</UseUserstoreDomainInUsername>
|
||||
<UseTenantDomainInUsername>true</UseTenantDomainInUsername>
|
||||
</LocalAndOutBoundAuthenticationConfig>
|
||||
<RequestPathAuthenticatorConfigs>
|
||||
</RequestPathAuthenticatorConfigs>
|
||||
<InboundProvisioningConfig>
|
||||
</InboundProvisioningConfig>
|
||||
<OutboundProvisioningConfig>
|
||||
</OutboundProvisioningConfig>
|
||||
<ClaimConfig>
|
||||
<AlwaysSendMappedLocalSubjectId>true</AlwaysSendMappedLocalSubjectId>
|
||||
</ClaimConfig>
|
||||
<PermissionAndRoleConfig>
|
||||
</PermissionAndRoleConfig>
|
||||
</ServiceProvider>
|
||||
@ -84,37 +84,5 @@
|
||||
<Audience>carbonServer</Audience>
|
||||
</AudiencesList>
|
||||
</ServiceProvider>
|
||||
<ServiceProvider>
|
||||
<Issuer>portal</Issuer>
|
||||
<AssertionConsumerServiceURLs>
|
||||
<AssertionConsumerServiceURL>https://localhost:9443/portal/acs</AssertionConsumerServiceURL>
|
||||
</AssertionConsumerServiceURLs>
|
||||
<DefaultAssertionConsumerServiceURL>https://localhost:9443/portal/acs</DefaultAssertionConsumerServiceURL>
|
||||
<SignResponse>true</SignResponse>
|
||||
<EnableAudienceRestriction>true</EnableAudienceRestriction>
|
||||
<EnableRecipients>true</EnableRecipients>
|
||||
<AudiencesList>
|
||||
<Audience>https://localhost:9443/oauth2/token</Audience>
|
||||
</AudiencesList>
|
||||
<RecipientList>
|
||||
<Recipient>https://localhost:9443/oauth2/token</Recipient>
|
||||
</RecipientList>
|
||||
</ServiceProvider>
|
||||
<ServiceProvider>
|
||||
<Issuer>analyticsportal</Issuer>
|
||||
<AssertionConsumerServiceURLs>
|
||||
<AssertionConsumerServiceURL>https://localhost:9445/portal/acs</AssertionConsumerServiceURL>
|
||||
</AssertionConsumerServiceURLs>
|
||||
<DefaultAssertionConsumerServiceURL>https://localhost:9445/portal/acs</DefaultAssertionConsumerServiceURL>
|
||||
<SignResponse>true</SignResponse>
|
||||
<EnableAudienceRestriction>true</EnableAudienceRestriction>
|
||||
<EnableRecipients>true</EnableRecipients>
|
||||
<AudiencesList>
|
||||
<Audience>https://localhost:9443/oauth2/token</Audience>
|
||||
</AudiencesList>
|
||||
<RecipientList>
|
||||
<Recipient>https://localhost:9443/oauth2/token</Recipient>
|
||||
</RecipientList>
|
||||
</ServiceProvider>
|
||||
</ServiceProviders>
|
||||
</SSOIdentityProviderConfig>
|
||||
@ -29,7 +29,7 @@
|
||||
port="9763"
|
||||
redirectPort="9443"
|
||||
bindOnInit="false"
|
||||
maxHttpHeaderSize="8192"
|
||||
maxHttpHeaderSize="16384"
|
||||
acceptorThreadCount="2"
|
||||
maxThreads="250"
|
||||
minSpareThreads="50"
|
||||
@ -54,7 +54,7 @@
|
||||
port="9443"
|
||||
bindOnInit="false"
|
||||
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
|
||||
maxHttpHeaderSize="8192"
|
||||
maxHttpHeaderSize="16384"
|
||||
acceptorThreadCount="2"
|
||||
maxThreads="250"
|
||||
minSpareThreads="50"
|
||||
|
||||
@ -1,86 +0,0 @@
|
||||
{
|
||||
"welcomeFiles":["site/pages/list-apis.jag", "index.html"],
|
||||
|
||||
"logLevel" : "info",
|
||||
|
||||
"errorPages":
|
||||
{
|
||||
"401":"/site/pages/error-pages/401.html",
|
||||
"403":"/site/pages/error-pages/403.html",
|
||||
"404":"/site/pages/error-pages/404.html",
|
||||
"500":"/site/pages/error-pages/500.html"
|
||||
}
|
||||
,
|
||||
|
||||
"securityConstraints":[
|
||||
{
|
||||
"securityConstraint":{
|
||||
"webResourceCollection":{
|
||||
"name":"site",
|
||||
"urlPatterns":["/site/conf/site.json"],
|
||||
"methods":["GET", "POST", "PUT", "DELETE", "PATCH"]
|
||||
},
|
||||
"authRoles":["admin"]
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"urlMappings":[
|
||||
{
|
||||
"url":"/apis/info",
|
||||
"path":"/site/pages/item-info.jag"
|
||||
},
|
||||
{
|
||||
"url":"/apis/widget",
|
||||
"path":"/site/pages/widget.jag"
|
||||
},
|
||||
{
|
||||
"url":"/apis/list",
|
||||
"path":"/site/pages/list-apis.jag"
|
||||
},
|
||||
{
|
||||
"url":"/forum/api/topic/*",
|
||||
"path":"/site/blocks/forum/controller/topics.jag"
|
||||
},
|
||||
{
|
||||
"url":"/forum/api/reply/*",
|
||||
"path":"/site/blocks/forum/controller/reply.jag"
|
||||
},
|
||||
{
|
||||
"url":"/forum/*",
|
||||
"path":"/site/pages/forum.jag"
|
||||
},
|
||||
{
|
||||
"url":"/api-docs/*",
|
||||
"path":"/site/blocks/api-doc/ajax/get.jag"
|
||||
}
|
||||
],
|
||||
|
||||
"filters":[
|
||||
{
|
||||
"name":"HttpHeaderSecurityFilter",
|
||||
"class":"org.apache.catalina.filters.HttpHeaderSecurityFilter",
|
||||
"params" : [{"name" : "hstsEnabled", "value" : "false"}]
|
||||
},
|
||||
{
|
||||
"name": "ContentTypeBasedCachePreventionFilter",
|
||||
"class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter",
|
||||
"params" : [
|
||||
{"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"},
|
||||
{"name" : "filterAction", "value" : "enforce"},
|
||||
{"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
"filterMappings":[
|
||||
{
|
||||
"name":"HttpHeaderSecurityFilter",
|
||||
"url":"*"
|
||||
},
|
||||
{
|
||||
"name":"ContentTypeBasedCachePreventionFilter",
|
||||
"url":"*"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,56 +0,0 @@
|
||||
{
|
||||
"theme" : {
|
||||
"base" : "wso2"
|
||||
},
|
||||
"context" : "/api-store",
|
||||
"showPublicStoreURL":true,
|
||||
"showThemesMenu":false,
|
||||
"tagWiseMode" :"false",
|
||||
"tagGroupKey" :"-group",
|
||||
"ssoConfiguration" : {
|
||||
"enabled" : "true",
|
||||
"issuer" : "API_STORE",
|
||||
"identityProviderURL" : "https://localhost:9443/samlsso",
|
||||
"keyStorePassword" : "",
|
||||
"identityAlias" : "",
|
||||
"responseSigningEnabled":"true",
|
||||
"assertionSigningEnabled":"true",
|
||||
"keyStoreName" :"",
|
||||
"passive" : "true",
|
||||
"signRequests" : "true",
|
||||
"assertionEncryptionEnabled" : "false"
|
||||
},
|
||||
"oidcConfiguration" : {
|
||||
"enabled" : "false",
|
||||
"issuer" : "API_STORE",
|
||||
"identityProviderURI" : "http://localhost:8080/openid-connect-server-webapp/",
|
||||
"authorizationEndpointURI" : "http://localhost:8080/openid-connect-server-webapp/authorize",
|
||||
"tokenEndpointURI" : "http://localhost:8080/openid-connect-server-webapp/token",
|
||||
"userInfoURI" : "http://localhost:8080/openid-connect-server-webapp/userinfo",
|
||||
"jwksURI" : "http://localhost:8080/openid-connect-server-webapp/jwk",
|
||||
"clientConfiguration" : {
|
||||
"clientId" : "client_am_store",
|
||||
"clientSecret" : "secret",
|
||||
"responseType" : "code",
|
||||
"authorizationType" : "authorization_code",
|
||||
"scope" : "phone email address openid profile",
|
||||
"redirectURI" : "https://localhost:9443/api-store/jagg/jaggery_oidc_acs.jag",
|
||||
"clientAlgorithm" : "RS256"
|
||||
}
|
||||
},
|
||||
"mutualAuthConfiguration" : {
|
||||
"enabled" : "false"
|
||||
},
|
||||
"forum" : {
|
||||
"topicsPerPage" : "5",
|
||||
"repliesPerPage" : "5",
|
||||
"resourceIdentifier" : "common"
|
||||
},
|
||||
"reverseProxy" : {
|
||||
"enabled" : false,
|
||||
"host" : "sample.proxydomain.com",
|
||||
"context":""
|
||||
},
|
||||
"mapExistingAuthApps" : false
|
||||
|
||||
}
|
||||
@ -1,96 +0,0 @@
|
||||
{
|
||||
"isCloud" : false,
|
||||
"store": {
|
||||
"types": ["fs"]
|
||||
},
|
||||
"gadgetGeneration" :{
|
||||
"isCreateGadgetEnable": false,
|
||||
"ignoreProviders": ["rt"]
|
||||
},
|
||||
"authentication": {
|
||||
"activeMethod": "sso",
|
||||
"methods": {
|
||||
"sso": {
|
||||
"attributes": {
|
||||
"issuer": "portal",
|
||||
"identityProviderURL": "%https.host%/samlsso",
|
||||
"responseSigningEnabled": true,
|
||||
"validateAssertionValidityPeriod": true,
|
||||
"validateAudienceRestriction": true,
|
||||
"assertionSigningEnabled": true,
|
||||
"acs": "%https.host%/portal/acs",
|
||||
"identityAlias": "wso2carbon",
|
||||
"defaultNameIDPolicy": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
|
||||
"useTenantKey": false,
|
||||
"isPassive": false
|
||||
}
|
||||
},
|
||||
"basic": {
|
||||
"attributes": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"authorization": {
|
||||
"activeMethod": "oauth",
|
||||
"methods": {
|
||||
"oauth": {
|
||||
"attributes": {
|
||||
"apimgt-gateway": true,
|
||||
"oauthProvider": {
|
||||
"appRegistration": {
|
||||
"appType": "webapp",
|
||||
"clientName": "portal",
|
||||
"owner": "admin",
|
||||
"password":"admin",
|
||||
"dynamicClientAppRegistrationServiceURL": "https://localhost:9443/dynamic-client-web/register",
|
||||
"apiManagerClientAppRegistrationServiceURL": "%https.host%/api-application-registration/register/tenants",
|
||||
"grantType": "password refresh_token urn:ietf:params:oauth:grant-type:saml2-bearer urn:ietf:params:oauth:grant-type:jwt-bearer",
|
||||
"tokenScope": "admin",
|
||||
"callbackUrl": "%https.host%/portal",
|
||||
"saasApp":true,
|
||||
"samlGrantTypeName":"urn:ietf:params:oauth:grant-type:saml2-bearer"
|
||||
},
|
||||
"tokenServiceURL": "https://localhost:9443/oauth2/token"
|
||||
},
|
||||
"adminUser":"admin@carbon.super",
|
||||
"adminUserTenantId":"-1234",
|
||||
"adminRole":"admin",
|
||||
"scopes" : [
|
||||
"device:view"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"designers": [
|
||||
"Internal/everyone"
|
||||
],
|
||||
"tenantPrefix": "/t",
|
||||
"shareStore": false,
|
||||
"theme": "basic",
|
||||
"cacheTimeoutSeconds": "5",
|
||||
"cacheSizeBytes": "1073741824",
|
||||
"defaultDashboardRedirect": false,
|
||||
"isCreateGadgetEnable": true,
|
||||
"isSecureVaultEnabled" : false,
|
||||
"assets": {
|
||||
"gadget": {
|
||||
"fileSizeLimit": 5
|
||||
},
|
||||
"layout": {
|
||||
"fileSizeLimit": 1
|
||||
}
|
||||
},
|
||||
"oauth": {
|
||||
"username": "admin",
|
||||
"password": "admin"
|
||||
},
|
||||
"host": {
|
||||
"hostname": "localhost",
|
||||
"port": "",
|
||||
"protocol": ""
|
||||
},
|
||||
"queryParameters" : {
|
||||
"passBetweenPages" : ["shared"]
|
||||
}
|
||||
}
|
||||
@ -1,195 +0,0 @@
|
||||
{
|
||||
"initScripts": [
|
||||
"js/dashboard-deployer.js"
|
||||
],
|
||||
"welcomeFiles": [
|
||||
"routers/tenant.jag"
|
||||
],
|
||||
"errorPages": {
|
||||
"500": "/controllers/error-pages/error500.html",
|
||||
"404": "/controllers/error-pages/error404.html",
|
||||
"401": "/controllers/error-pages/error401.html",
|
||||
"405": "/controllers/error-pages/error405.html",
|
||||
"403": "/controllers/error-pages/error403.html",
|
||||
"400": "/controllers/error-pages/error400.html"
|
||||
},
|
||||
"urlMappings": [
|
||||
{
|
||||
"url": "/login-controller",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/login",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/logout",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/t/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/apis/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/dashboards/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/gadget/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/layout/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/assets/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/create-dashboard",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/dashboard-settings/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/select-layout",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/create-gadget",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/upload-gadget",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/upload-layout",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/world/*",
|
||||
"path": "/templates/geojson/world.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/europe/*",
|
||||
"path": "/templates/geojson/europe.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/usa/*",
|
||||
"path": "/templates/geojson/usa.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/countryInfo/*",
|
||||
"path": "/templates/geojson/countryInfo.json"
|
||||
},
|
||||
{
|
||||
"url": "/geojson/usaInfo/*",
|
||||
"path": "/templates/geojson/usaInfo.json"
|
||||
},
|
||||
{
|
||||
"url": "/acs",
|
||||
"path": "/controllers/acs.jag"
|
||||
},
|
||||
{
|
||||
"url": "/banners/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/gadgets/*",
|
||||
"path": "/routers/tenant.jag"
|
||||
},
|
||||
{
|
||||
"url": "/configs/designer.json",
|
||||
"path": "/controllers/error-pages/error404.html"
|
||||
}
|
||||
],
|
||||
"listeners": [
|
||||
{
|
||||
"class": "org.owasp.csrfguard.CsrfGuardServletContextListener"
|
||||
},
|
||||
{
|
||||
"class": "org.owasp.csrfguard.CsrfGuardHttpSessionListener"
|
||||
}
|
||||
],
|
||||
"servlets": [
|
||||
{
|
||||
"name": "JavaScriptServlet",
|
||||
"class": "org.owasp.csrfguard.servlet.JavaScriptServlet"
|
||||
}
|
||||
],
|
||||
"servletMappings": [
|
||||
{
|
||||
"name": "JavaScriptServlet",
|
||||
"url": "/csrf.js"
|
||||
}
|
||||
],
|
||||
"contextParams": [
|
||||
{
|
||||
"name": "Owasp.CsrfGuard.Config",
|
||||
"value": "repository/conf/security/Owasp.CsrfGuard.dashboard.properties"
|
||||
}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
"name": "ContentTypeBasedCachePreventionFilter",
|
||||
"class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter",
|
||||
"params" : [
|
||||
{"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"},
|
||||
{"name" : "filterAction", "value" : "enforce"},
|
||||
{"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "HttpHeaderSecurityFilter",
|
||||
"class": "org.apache.catalina.filters.HttpHeaderSecurityFilter",
|
||||
"params": [
|
||||
{
|
||||
"name": "hstsEnabled",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "antiClickJackingOption",
|
||||
"value": "SAMEORIGIN"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "TenantStoresFilter",
|
||||
"class": "org.wso2.carbon.dashboard.store.filter.TenantStoreFilter"
|
||||
},
|
||||
{
|
||||
"name" : "CSRFGuard",
|
||||
"class" : "org.owasp.csrfguard.CsrfGuardFilter"
|
||||
}
|
||||
],
|
||||
"filterMappings": [
|
||||
{
|
||||
"name": "HttpHeaderSecurityFilter",
|
||||
"url": "*"
|
||||
},
|
||||
{
|
||||
"name": "TenantStoresFilter",
|
||||
"url": "/store/*"
|
||||
},
|
||||
{
|
||||
"name": "TenantStoresFilter",
|
||||
"url": "/temp/*"
|
||||
},
|
||||
{
|
||||
"name" : "CSRFGuard",
|
||||
"url" : "/*"
|
||||
},
|
||||
{
|
||||
"name":"ContentTypeBasedCachePreventionFilter",
|
||||
"url":"*"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,598 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var utils = function () {
|
||||
var log = new Log("/modules/oauth/token-handler-utils.js");
|
||||
|
||||
var configs = require('/configs/portal.js').config();
|
||||
var constants = require("/modules/constants.js");
|
||||
var carbon = require("carbon");
|
||||
|
||||
//noinspection JSUnresolvedVariable
|
||||
var Base64 = Packages.org.apache.commons.codec.binary.Base64;
|
||||
//noinspection JSUnresolvedVariable
|
||||
var String = Packages.java.lang.String;
|
||||
|
||||
var publicMethods = {};
|
||||
var privateMethods = {};
|
||||
|
||||
publicMethods["encode"] = function (payload) {
|
||||
return String(Base64.encodeBase64(String(payload).getBytes()));
|
||||
};
|
||||
|
||||
publicMethods["decode"] = function (payload) {
|
||||
return String(Base64.decodeBase64(String(payload).getBytes()));
|
||||
};
|
||||
|
||||
/**
|
||||
* Check whether this application is oauth enable or not
|
||||
* @returns boolean if oauth enable
|
||||
*/
|
||||
publicMethods["checkOAuthEnabled"] = function () {
|
||||
if (constants.AUTHORIZATION_TYPE_OAUTH === configs["authorization"]["activeMethod"]) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
/**
|
||||
* Set access token into xml http request header
|
||||
* @param xhr xml http request
|
||||
* @returns {*} xhr which has access token it's header
|
||||
*/
|
||||
publicMethods["setAccessToken"] = function (xhr, callback) {
|
||||
var accessToken;
|
||||
if (publicMethods.checkOAuthEnabled()) {
|
||||
try {
|
||||
accessToken = parse(session.get(constants.ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL))["accessToken"];
|
||||
xhr.setRequestHeader(constants.AUTHORIZATION_HEADER, constants.BEARER_PREFIX + accessToken);
|
||||
} catch (exception) {
|
||||
log.error("Access token hasn't been set yet, " + exception);
|
||||
} finally {
|
||||
callback(xhr);
|
||||
}
|
||||
}
|
||||
callback(xhr);
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token of current logged user
|
||||
* @param callBack response with access token
|
||||
*/
|
||||
publicMethods["getAccessToken"] = function (callBack) {
|
||||
var accessToken = null;
|
||||
if (publicMethods.checkOAuthEnabled()) {
|
||||
try {
|
||||
accessToken = parse(session.get(constants.ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL))["accessToken"];
|
||||
} catch (exception) {
|
||||
log.error("Access token hasn't been set yet, " + exception);
|
||||
} finally {
|
||||
callBack(accessToken);
|
||||
}
|
||||
}
|
||||
callBack(accessToken);
|
||||
};
|
||||
|
||||
/**
|
||||
* Create error message which adhere to xml http response object
|
||||
* @param statusCode response status code
|
||||
* @param status response status
|
||||
* @param responseText response message
|
||||
* @returns {{statusCode: *, status: *, responseText: *}}
|
||||
*/
|
||||
publicMethods["createXHRObject"] = function (statusCode, status, responseText) {
|
||||
return {"statusCode": statusCode, "status": status, "responseText": responseText};
|
||||
};
|
||||
|
||||
/**
|
||||
* check whether user already logged to system before invoking any apis
|
||||
* @param callBack
|
||||
*/
|
||||
publicMethods["isUserAuthorized"] = function (callBack) {
|
||||
if (session.get("Loged") !== constants.LOGIN_MESSAGE) {
|
||||
callBack(false);
|
||||
} else {
|
||||
callBack(true);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get identity provider uir
|
||||
* @returns {*}
|
||||
*/
|
||||
publicMethods["getIdPServerURL"] = function () {
|
||||
return configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["tokenServiceURL"];
|
||||
};
|
||||
|
||||
/**
|
||||
* Get an Access token pair based on client secret
|
||||
* @param encodedClientKeys {{clientId:"", clientSecret:""}}
|
||||
* @param scope eg: PRODUCTION
|
||||
* @param idPServer identity provider url
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenWithClientSecretType"] = function (encodedClientKeys, scope, idPServer) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
var tokenEndpoint = idPServer;
|
||||
xhr.open(constants.HTTP_POST, tokenEndpoint, false);
|
||||
xhr.setRequestHeader(constants.CONTENT_TYPE_IDENTIFIER, constants.APPLICATION_X_WWW_FOR_URLENCODED);
|
||||
xhr.setRequestHeader(constants.AUTHORIZATION_HEADER, constants.BASIC_PREFIX + encodedClientKeys);
|
||||
xhr.send("grant_type=client_credentials&scope=" + scope);
|
||||
var tokenPair = {};
|
||||
if (xhr.status == constants.HTTP_ACCEPTED) {
|
||||
var data = parse(xhr.responseText);
|
||||
tokenPair.refreshToken = data.refresh_token;
|
||||
tokenPair.accessToken = data.access_token;
|
||||
} else if (xhr.status == constants.HTTP_USER_NOT_AUTHENTICATED) {
|
||||
log.error("Error in obtaining token with client secret grant type, You are not authenticated yet");
|
||||
return null;
|
||||
} else {
|
||||
log.error("Error in obtaining token with client secret grant type, This might be a problem with client meta " +
|
||||
"data which required for client secret grant type");
|
||||
return null;
|
||||
}
|
||||
return tokenPair;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* This will create client id and client secret for a given application
|
||||
* @param properties "callbackUrl": "",
|
||||
* "clientName": "",
|
||||
* "owner": "",
|
||||
* "applicationType": "",
|
||||
* "grantType": "",
|
||||
* "saasApp" :"",
|
||||
* "dynamicClientRegistrationEndPoint" : ""
|
||||
*
|
||||
* @returns {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
publicMethods["getDynamicClientAppCredentials"] = function (username) {
|
||||
// setting up dynamic client application properties
|
||||
var dcAppProperties = {
|
||||
"applicationType": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["appType"],
|
||||
"clientName": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["clientName"],
|
||||
"owner": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["owner"],
|
||||
"tokenScope": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["tokenScope"],
|
||||
"grantType": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["grantType"],
|
||||
"callbackUrl": configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["callbackUrl"],
|
||||
"saasApp" : configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["saasApp"]
|
||||
};
|
||||
|
||||
var tenantDomain = carbon.server.tenantDomain({username: username});
|
||||
if (!tenantDomain) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client application credentials. Unable to obtain a valid tenant domain for provided username "+
|
||||
username +"- getDynamicClientAppCredentials(x)");
|
||||
return null;
|
||||
} else {
|
||||
var cachedTenantBasedClientAppCredentials = privateMethods.
|
||||
getCachedTenantBasedClientAppCredentials(tenantDomain);
|
||||
if (cachedTenantBasedClientAppCredentials) {
|
||||
return cachedTenantBasedClientAppCredentials;
|
||||
} else {
|
||||
// calling dynamic client app registration service endpoint
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]
|
||||
["dynamicClientAppRegistrationServiceURL"];
|
||||
var requestPayload = dcAppProperties;
|
||||
var token = publicMethods.encode(configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["appRegistration"]["owner"] + ":" + configs["authorization"]["methods"]["oauth"]["attributes"]
|
||||
["oauthProvider"]["appRegistration"]["password"]);
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.setRequestHeader("Authorization", "Basic "+ token);
|
||||
xhr.send(stringify(requestPayload));
|
||||
var dynamicClientAppCredentials = {};
|
||||
if (xhr["status"] == 201 || xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var clientId = responsePayload["client_id"];
|
||||
var clientSecret = responsePayload["client_secret"];
|
||||
if(typeof clientId == "undefined"){
|
||||
clientId = responsePayload["clientId"];
|
||||
}
|
||||
if(typeof clientSecret == "undefined"){
|
||||
clientSecret = responsePayload["clientSecret"];
|
||||
}
|
||||
dynamicClientAppCredentials["clientId"] = clientId;
|
||||
dynamicClientAppCredentials["clientSecret"] = clientSecret;
|
||||
privateMethods.
|
||||
setCachedTenantBasedClientAppCredentials(tenantDomain, dynamicClientAppCredentials);
|
||||
} else if (xhr["status"] == 400) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js - getDynamicClientAppCredentials()} " +
|
||||
"Bad request. Invalid data provided as dynamic client application properties.");
|
||||
dynamicClientAppCredentials = null;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js - getDynamicClientAppCredentials()} " +
|
||||
"Error in retrieving dynamic client credentials.");
|
||||
dynamicClientAppCredentials = null;
|
||||
}
|
||||
// returning dynamic client credentials
|
||||
return dynamicClientAppCredentials;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* If gateway is enable, apiManagerClientAppRegistrationServiceURL is used to create oauth application
|
||||
* @param username username of current logged user
|
||||
* @returns {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
publicMethods["getTenantBasedClientAppCredentials"] = function (username) {
|
||||
if (!username) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client app credentials. No username " +
|
||||
"as input - getTenantBasedClientAppCredentials(x)");
|
||||
return null;
|
||||
} else {
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var tenantDomain = carbon.server.tenantDomain({username: username});
|
||||
|
||||
if (!tenantDomain) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client application credentials. Unable to obtain a valid tenant domain for provided " +
|
||||
"username - getTenantBasedClientAppCredentials(x, y)");
|
||||
return null;
|
||||
} else {
|
||||
var cachedTenantBasedClientAppCredentials = privateMethods.
|
||||
getCachedTenantBasedClientAppCredentials(tenantDomain);
|
||||
if (cachedTenantBasedClientAppCredentials) {
|
||||
return cachedTenantBasedClientAppCredentials;
|
||||
} else {
|
||||
var adminUsername = configs["authorization"]["methods"]["oauth"]["attributes"]["adminUser"];
|
||||
var adminUserTenantId = configs["authorization"]["methods"]["oauth"]["attributes"]
|
||||
["adminUserTenantId"];
|
||||
//claims required for jwtAuthenticator.
|
||||
var claims = {"http://wso2.org/claims/enduserTenantId": adminUserTenantId,
|
||||
"http://wso2.org/claims/enduser": adminUsername};
|
||||
var jwtToken = publicMethods.getJwtToken(adminUsername, claims);
|
||||
// register a tenant based client app at API Manager
|
||||
var applicationName = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["appRegistration"]["clientName"] + "_" + tenantDomain;
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["appRegistration"]["apiManagerClientAppRegistrationServiceURL"] +
|
||||
"?tenantDomain=" + tenantDomain + "&applicationName=" + applicationName;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.setRequestHeader("X-JWT-Assertion", "" + jwtToken);
|
||||
xhr.send();
|
||||
if ((xhr["status"] == 201 || xhr["status"] == 200) && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tenantBasedClientAppCredentials = {};
|
||||
var clientId = responsePayload["client_id"];
|
||||
var clientSecret = responsePayload["client_secret"];
|
||||
if(typeof clientId == "undefined"){
|
||||
clientId = responsePayload["clientId"];
|
||||
}
|
||||
if(typeof clientSecret == "undefined"){
|
||||
clientSecret = responsePayload["clientSecret"];
|
||||
}
|
||||
tenantBasedClientAppCredentials["clientId"] = clientId;
|
||||
tenantBasedClientAppCredentials["clientSecret"] = clientSecret;
|
||||
privateMethods.
|
||||
setCachedTenantBasedClientAppCredentials(tenantDomain, tenantBasedClientAppCredentials);
|
||||
return tenantBasedClientAppCredentials;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving tenant " +
|
||||
"based client application credentials from API " +
|
||||
"Manager - getTenantBasedClientAppCredentials(x, y)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Caching oauth application credentials
|
||||
* @param tenantDomain tenant domain where application is been created
|
||||
* @param clientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
privateMethods["setCachedTenantBasedClientAppCredentials"] = function (tenantDomain, clientAppCredentials) {
|
||||
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!cachedTenantBasedClientAppCredentialsMap) {
|
||||
cachedTenantBasedClientAppCredentialsMap = {};
|
||||
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
||||
application.put(constants["CACHED_CREDENTIALS_PORTAL_APP"], cachedTenantBasedClientAppCredentialsMap);
|
||||
} else if (!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
||||
cachedTenantBasedClientAppCredentialsMap[tenantDomain] = clientAppCredentials;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get oauth application credentials from cache
|
||||
* @param tenantDomain tenant domain where application is been created
|
||||
* @returns {{clientId:*, clientSecret:*}}
|
||||
*/
|
||||
privateMethods["getCachedTenantBasedClientAppCredentials"] = function (tenantDomain) {
|
||||
var cachedTenantBasedClientAppCredentialsMap = application.get(constants["CACHED_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!cachedTenantBasedClientAppCredentialsMap ||
|
||||
!cachedTenantBasedClientAppCredentialsMap[tenantDomain]) {
|
||||
return null;
|
||||
} else {
|
||||
return cachedTenantBasedClientAppCredentialsMap[tenantDomain];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using password grant type
|
||||
* @param username username of the logged user
|
||||
* @param password password of the logged user
|
||||
* @param encodedClientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
* @param scopes scopes list
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenPairAndScopesByPasswordGrantType"] = function (username, password
|
||||
, encodedClientAppCredentials, scopes) {
|
||||
if (!username || !password || !encodedClientAppCredentials || !scopes) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token by password " +
|
||||
"grant type. No username, password, encoded client app credentials or scopes are " +
|
||||
"found - getTokenPairAndScopesByPasswordGrantType(a, b, c, d)");
|
||||
return null;
|
||||
} else {
|
||||
// calling oauth provider token service endpoint
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["tokenServiceURL"];
|
||||
var requestPayload = "grant_type=password&username=" +
|
||||
username + "&password=" + password + "&scope=" + scopes;
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.setRequestHeader("Authorization", "Basic " + encodedClientAppCredentials);
|
||||
xhr.send(requestPayload);
|
||||
|
||||
if (xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tokenData = {};
|
||||
tokenData["accessToken"] = responsePayload["access_token"];
|
||||
tokenData["refreshToken"] = responsePayload["refresh_token"];
|
||||
tokenData["scopes"] = responsePayload["scope"];
|
||||
return tokenData;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token " +
|
||||
"by password grant type - getTokenPairAndScopesByPasswordGrantType(a, b, c, d)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using SAML grant type
|
||||
* @param assertion
|
||||
* @param encodedClientAppCredentials
|
||||
* @param scopes
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenPairAndScopesByJWTGrantType"] = function (username, encodedClientAppCredentials, scopes) {
|
||||
if (!username || !encodedClientAppCredentials || !scopes) {
|
||||
log.error("{/app/modules/oauth/token-handler-utils.js} Error in retrieving access token by jwt " +
|
||||
"grant type. No assertion, encoded client app credentials or scopes are " +
|
||||
"found - getTokenPairAndScopesByJWTGrantType(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
var JWTClientManagerServicePackagePath =
|
||||
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
||||
//noinspection JSUnresolvedFunction
|
||||
var jwtClient = JWTClientManagerService.getJWTClient();
|
||||
// returning access token by JWT grant type
|
||||
var tokenInfo = jwtClient.getAccessToken(encodedClientAppCredentials,
|
||||
username, scopes);
|
||||
var tokenData = {};
|
||||
tokenData["accessToken"] = tokenInfo.getAccessToken();
|
||||
tokenData["refreshToken"] = tokenInfo.getRefreshToken();
|
||||
tokenData["scopes"] = tokenInfo.getScopes();
|
||||
return tokenData;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using SAML grant type
|
||||
* @param assertion
|
||||
* @param encodedClientAppCredentials
|
||||
* @param scopes
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getTokenPairAndScopesBySAMLGrantType"] = function (assertion, encodedClientAppCredentials, scopes) {
|
||||
if (!assertion || !encodedClientAppCredentials || !scopes) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token by saml " +
|
||||
"grant type. No assertion, encoded client app credentials or scopes are " +
|
||||
"found - getTokenPairAndScopesBySAMLGrantType(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
|
||||
var assertionXML = publicMethods.decode(assertion);
|
||||
/*
|
||||
TODO: make assertion extraction with proper parsing.
|
||||
Since Jaggery XML parser seem to add formatting which causes signature verification to fail.
|
||||
*/
|
||||
var assertionStartMarker = "<saml2:Assertion";
|
||||
var assertionEndMarker = "<\/saml2:Assertion>";
|
||||
var assertionStartIndex = assertionXML.indexOf(assertionStartMarker);
|
||||
var assertionEndIndex = assertionXML.indexOf(assertionEndMarker);
|
||||
|
||||
var extractedAssertion;
|
||||
if (assertionStartIndex == -1 || assertionEndIndex == -1) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token by saml grant " +
|
||||
"type. Issue in assertion format - getTokenPairAndScopesBySAMLGrantType(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
extractedAssertion = assertionXML.
|
||||
substring(assertionStartIndex, assertionEndIndex) + assertionEndMarker;
|
||||
var encodedAssertion = publicMethods.encode(extractedAssertion);
|
||||
// calling oauth provider token service endpoint
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["tokenServiceURL"];
|
||||
var requestPayload = "grant_type=urn:ietf:params:oauth:grant-type:saml2-bearer&" +
|
||||
"assertion=" + encodeURIComponent(encodedAssertion) + "&scope=" + scopes;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.setRequestHeader("Authorization", "Basic " + encodedClientAppCredentials);
|
||||
xhr.send(requestPayload);
|
||||
|
||||
if (xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tokenData = {};
|
||||
tokenData["accessToken"] = responsePayload["access_token"];
|
||||
tokenData["refreshToken"] = responsePayload["refresh_token"];
|
||||
tokenData["scopes"] = responsePayload["scope"];
|
||||
return tokenData;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving access token " +
|
||||
"by password grant type - getTokenPairAndScopesBySAMLGrantType(x, y, z)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* If access token is expired, try to refresh it using existing refresh token
|
||||
* @param callback
|
||||
*/
|
||||
publicMethods["refreshAccessToken"] = function (callback) {
|
||||
try {
|
||||
if (publicMethods.checkOAuthEnabled()) {
|
||||
var currentTokenPair = parse(session.get(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"]));
|
||||
// currentTokenPair includes current access token as well as current refresh token
|
||||
var encodedClientAppCredentials
|
||||
= session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!currentTokenPair || !encodedClientAppCredentials) {
|
||||
callback(false);
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Error in refreshing tokens. Either the " +
|
||||
"token pair, encoded client app credentials or both input are not found under " +
|
||||
"session context - refreshTokenPair()");
|
||||
} else {
|
||||
var newTokenPair = publicMethods.
|
||||
getNewTokenPairByRefreshToken(currentTokenPair["refreshToken"], encodedClientAppCredentials);
|
||||
if (!newTokenPair) {
|
||||
log.error("{/app/modules/oauth/token-handlers.js} Error in refreshing token pair. " +
|
||||
"Unable to update session context with new access token pair - refreshTokenPair()");
|
||||
callback(false);
|
||||
} else {
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(newTokenPair));
|
||||
callback(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error("You have not enable dynamic client yet");
|
||||
callback(false);
|
||||
}
|
||||
} catch (exception) {
|
||||
callback(false);
|
||||
throw "Error while refreshing existing access token, " + exception;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token and refresh token using refresh token grant type
|
||||
* @param refreshToken refresh token
|
||||
* @param encodedClientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
* @param scopes
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getNewTokenPairByRefreshToken"] = function (refreshToken, encodedClientAppCredentials, scopes) {
|
||||
if (!refreshToken || !encodedClientAppCredentials) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
||||
"by current refresh token. No refresh token or encoded client app credentials are " +
|
||||
"found - getNewTokenPairByRefreshToken(x, y, z)");
|
||||
return null;
|
||||
} else {
|
||||
var requestURL = configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]
|
||||
["tokenServiceURL"];
|
||||
var requestPayload = "grant_type=refresh_token&refresh_token=" + refreshToken;
|
||||
if (scopes) {
|
||||
requestPayload = requestPayload + "&scope=" + scopes;
|
||||
}
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", requestURL, false);
|
||||
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||
xhr.setRequestHeader("Authorization", "Basic " + encodedClientAppCredentials);
|
||||
xhr.send(requestPayload);
|
||||
|
||||
if (xhr["status"] == 200 && xhr["responseText"]) {
|
||||
var responsePayload = parse(xhr["responseText"]);
|
||||
var tokenPair = {};
|
||||
tokenPair["accessToken"] = responsePayload["access_token"];
|
||||
tokenPair["refreshToken"] = responsePayload["refresh_token"];
|
||||
return tokenPair;
|
||||
} else {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new access token by " +
|
||||
"current refresh token - getNewTokenPairByRefreshToken(x, y, z)");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get access token using JWT grant type
|
||||
* @param clientAppCredentials {{clientId:*, clientSecret:*}}
|
||||
* @returns {{accessToken: *, refreshToken: *}}
|
||||
*/
|
||||
publicMethods["getAccessTokenByJWTGrantType"] = function (clientAppCredentials) {
|
||||
if (!clientAppCredentials) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new access token " +
|
||||
"by current refresh token. No client app credentials are found " +
|
||||
"as input - getAccessTokenByJWTGrantType(x)");
|
||||
return null;
|
||||
} else {
|
||||
var JWTClientManagerServicePackagePath =
|
||||
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
||||
//noinspection JSUnresolvedFunction
|
||||
var jwtClient = JWTClientManagerService.getJWTClient();
|
||||
// returning access token by JWT grant type
|
||||
return jwtClient.getAccessToken(clientAppCredentials["clientId"], clientAppCredentials["clientSecret"],
|
||||
configs["authorization"]["methods"]["oauth"]["attributes"]["oauthProvider"]["appRegistration"]["owner"],
|
||||
null)["accessToken"];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get jwt token
|
||||
* @param username username of logged user
|
||||
* @param claims claims which are required
|
||||
* @returns {"jwtToken"}
|
||||
*/
|
||||
publicMethods["getJwtToken"] = function (username, claims) {
|
||||
if (!username) {
|
||||
log.error("{/modules/oauth/token-handler-utils.js} Error in retrieving new jwt token");
|
||||
return null;
|
||||
} else {
|
||||
var JWTClientManagerServicePackagePath =
|
||||
"org.wso2.carbon.identity.jwt.client.extension.service.JWTClientManagerService";
|
||||
//noinspection JSUnresolvedFunction, JSUnresolvedVariable
|
||||
var JWTClientManagerService = carbon.server.osgiService(JWTClientManagerServicePackagePath);
|
||||
//noinspection JSUnresolvedFunction
|
||||
var jwtClient = JWTClientManagerService.getJWTClient();
|
||||
// returning access token by JWT grant type
|
||||
if (claims) {
|
||||
return jwtClient.getJwtToken(username, claims);
|
||||
} else {
|
||||
return jwtClient.getJwtToken(username);
|
||||
}
|
||||
}
|
||||
};
|
||||
return publicMethods;
|
||||
}();
|
||||
@ -1,192 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* -----------------------------------------------------
|
||||
* Following module includes handlers
|
||||
* at Jaggery Layer for handling OAuth tokens.
|
||||
* -----------------------------------------------------
|
||||
*/
|
||||
var handlers = function () {
|
||||
var log = new Log("/modules/oauth/token-handlers.js");
|
||||
|
||||
var tokenUtil = require("/modules/oauth/token-handler-utils.js")["utils"];
|
||||
var constants = require("/modules/constants.js");
|
||||
var configs = require('/configs/portal.js').config();
|
||||
|
||||
var publicMethods = {};
|
||||
var privateMethods = {};
|
||||
|
||||
/**
|
||||
* Get an AccessToken pair based on username and password
|
||||
* @param username username of the logged user
|
||||
* @param password password of the logged user
|
||||
*/
|
||||
publicMethods["setupTokenPairByPasswordGrantType"] = function (username, password) {
|
||||
if (!username || !password) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||
"password grant type. Either username of logged in user, password or both are missing " +
|
||||
"as input - setupTokenPairByPasswordGrantType(x, y)");
|
||||
} else {
|
||||
privateMethods.setUpEncodedTenantBasedClientAppCredentials(username);
|
||||
var encodedClientAppCredentials =
|
||||
session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!encodedClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||
"password grant type. Encoded client credentials are " +
|
||||
"missing - setupTokenPairByPasswordGrantType(x, y)");
|
||||
} else {
|
||||
var tokenData;
|
||||
// tokenPair will include current access token as well as current refresh token
|
||||
var arrayOfScopes = configs["authorization"]["methods"]["oauth"]["attributes"]["scopes"];
|
||||
var stringOfScopes = "";
|
||||
arrayOfScopes.forEach(function (entry) {
|
||||
stringOfScopes += entry + " ";
|
||||
});
|
||||
tokenData = tokenUtil.
|
||||
getTokenPairAndScopesByPasswordGrantType(username,
|
||||
encodeURIComponent(password), encodedClientAppCredentials, stringOfScopes);
|
||||
if (!tokenData) {
|
||||
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up " +
|
||||
"token pair by password grant type. Error in token " +
|
||||
"retrieval - setupTokenPairByPasswordGrantType(x, y)");
|
||||
} else {
|
||||
var tokenPair = {};
|
||||
tokenPair["accessToken"] = tokenData["accessToken"];
|
||||
tokenPair["refreshToken"] = tokenData["refreshToken"];
|
||||
// setting up token pair into session context as a string
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(tokenPair));
|
||||
var scopes = tokenData.scopes.split(" ");
|
||||
// adding allowed scopes to the session
|
||||
session.put(constants["ALLOWED_SCOPES"], scopes);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get an AccessToken pair based on SAML assertion
|
||||
* @param samlToken SAML assertion
|
||||
* @param username {{clientId:"", clientSecret:""}}
|
||||
*/
|
||||
publicMethods["setupTokenPairBySamlGrantType"] = function (username, samlToken) {
|
||||
if (!username || !samlToken) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up access token pair by " +
|
||||
"saml grant type. Either username of logged in user, samlToken or both are missing " +
|
||||
"as input - setupTokenPairBySamlGrantType(x, y)");
|
||||
} else {
|
||||
privateMethods.setUpEncodedTenantBasedClientAppCredentials(username);
|
||||
var encodedClientAppCredentials =
|
||||
session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!encodedClientAppCredentials) {
|
||||
throw new Error("{/app/modules/oauth/token-handlers.js} Could not set up access token pair " +
|
||||
"by saml grant type. Encoded client credentials are " +
|
||||
"missing - setupTokenPairBySamlGrantType(x, y)");
|
||||
} else {
|
||||
var tokenData;
|
||||
// accessTokenPair will include current access token as well as current refresh token
|
||||
tokenData = tokenUtil.
|
||||
getTokenPairAndScopesByJWTGrantType(username, encodedClientAppCredentials, "PRODUCTION");
|
||||
if (!tokenData) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up token " +
|
||||
"pair by saml grant type. Error in token " +
|
||||
"retrieval - setupTokenPairBySamlGrantType(x, y)");
|
||||
} else {
|
||||
var tokenPair = {};
|
||||
tokenPair["accessToken"] = tokenData["accessToken"];
|
||||
tokenPair["refreshToken"] = tokenData["refreshToken"];
|
||||
// setting up access token pair into session context as a string
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(tokenPair));
|
||||
|
||||
var scopes = tokenData.scopes.split(" ");
|
||||
// adding allowed scopes to the session
|
||||
session.put(constants["ALLOWED_SCOPES"], scopes);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Set access token and refresh token using refresh token grant type
|
||||
*/
|
||||
publicMethods["refreshTokenPair"] = function () {
|
||||
var currentTokenPair = parse(session.get(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"]));
|
||||
// currentTokenPair includes current access token as well as current refresh token
|
||||
var encodedClientAppCredentials
|
||||
= session.get(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"]);
|
||||
if (!currentTokenPair || !encodedClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Error in refreshing tokens. Either the " +
|
||||
"token pair, encoded client app credentials or both input are not found under " +
|
||||
"session context - refreshTokenPair()");
|
||||
} else {
|
||||
var newTokenPair = tokenUtil.
|
||||
getNewTokenPairByRefreshToken(currentTokenPair["refreshToken"], encodedClientAppCredentials);
|
||||
if (!newTokenPair) {
|
||||
log.error("{/app/modules/oauth/token-handlers.js} Error in refreshing token pair. " +
|
||||
"Unable to update session context with new access token pair - refreshTokenPair()");
|
||||
} else {
|
||||
session.put(constants["ACCESS_TOKEN_PAIR_IDENTIFIER_FOR_PORTAL"], stringify(newTokenPair));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* If gateway is enable, apiManagerClientAppRegistrationServiceURL is used to create an oauth application or
|
||||
* else DCR endpoint is used to create an oauth application
|
||||
* @param username username of current logged user
|
||||
*/
|
||||
privateMethods["setUpEncodedTenantBasedClientAppCredentials"] = function (username) {
|
||||
if (!username) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up encoded tenant based " +
|
||||
"client credentials to session context. No username of logged in user is found as " +
|
||||
"input - setUpEncodedTenantBasedClientAppCredentials(x)");
|
||||
} else {
|
||||
if (configs["authorization"]["methods"]["oauth"]["attributes"]["apimgt-gateway"]) {
|
||||
var tenantBasedClientAppCredentials = tokenUtil.getTenantBasedClientAppCredentials(username);
|
||||
if (!tenantBasedClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up encoded tenant " +
|
||||
"based client credentials to session context as the server is unable " +
|
||||
"to obtain such credentials - setUpEncodedTenantBasedClientAppCredentials(x)");
|
||||
} else {
|
||||
var encodedTenantBasedClientAppCredentials =
|
||||
tokenUtil.encode(tenantBasedClientAppCredentials["clientId"] + ":" +
|
||||
tenantBasedClientAppCredentials["clientSecret"]);
|
||||
// setting up encoded tenant based client credentials to session context.
|
||||
session.put(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"],
|
||||
encodedTenantBasedClientAppCredentials);
|
||||
}
|
||||
} else {
|
||||
var dynamicClientAppCredentials = tokenUtil.getDynamicClientAppCredentials(username);
|
||||
if (!dynamicClientAppCredentials) {
|
||||
throw new Error("{/modules/oauth/token-handlers.js} Could not set up encoded tenant based " +
|
||||
"client credentials to session context as the server is unable to obtain " +
|
||||
"dynamic client credentials - setUpEncodedTenantBasedClientAppCredentials(x)");
|
||||
}
|
||||
var encodedTenantBasedClientAppCredentials =
|
||||
tokenUtil.encode(dynamicClientAppCredentials["clientId"] + ":" +
|
||||
dynamicClientAppCredentials["clientSecret"]);
|
||||
// setting up encoded tenant based client credentials to session context.
|
||||
session.put(constants["ENCODED_TENANT_BASED_CLIENT_APP_CREDENTIALS_PORTAL_APP"],
|
||||
encodedTenantBasedClientAppCredentials);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
return publicMethods;
|
||||
}();
|
||||
@ -1,239 +0,0 @@
|
||||
body.dashboard {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.dashboard .btn-default.active,
|
||||
.dashboard .btn-default.active:focus {
|
||||
background-color: #29313E;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.dashboard .btn-default.active:hover {
|
||||
background-color: #53627B;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.dashboard .page-header {
|
||||
background: #29313e;
|
||||
min-height: 50px;
|
||||
padding: 0;
|
||||
color: #ebeced;
|
||||
}
|
||||
|
||||
.dashboard .page-header .page-title > h1 {
|
||||
padding: 15px 15px 0 15px;
|
||||
font-weight: 100;
|
||||
text-transform: uppercase;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.dashboard .page-header .page-title > h1 > .icon {
|
||||
font-size: 24px;
|
||||
margin-top: -5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.dashboard .page-header .navbar-header {
|
||||
margin-right: 15px;
|
||||
margin-left: 15px;
|
||||
float: none;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.dashboard .page-header .navbar-collapse.collapse {
|
||||
display: none !important;
|
||||
}
|
||||
.page-header .container-fluid {
|
||||
padding: 0 15px;
|
||||
}
|
||||
.navbar-nav > li > a {
|
||||
padding: 10px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.nav > li > a > .icon {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.nav > li > a > .badge {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
background: #ff124a;
|
||||
}
|
||||
|
||||
.dashboard .page-header .auth {
|
||||
margin-bottom: 0;
|
||||
padding: 6px 0;
|
||||
}
|
||||
|
||||
.dashboard .page-content {
|
||||
overflow: inherit;
|
||||
}
|
||||
|
||||
.dashboard .footer {
|
||||
background: #0d1219;
|
||||
}
|
||||
|
||||
.dashboard .gadget-wrapper {
|
||||
border: 1px dashed #e4e4e4;
|
||||
}
|
||||
|
||||
.dashboard .gadget .gadget-heading {
|
||||
background: transparent;
|
||||
border-bottom: none;
|
||||
color: #29313e;
|
||||
}
|
||||
|
||||
.gadget .gadget-heading > .gadget-title {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.gadget .gadget-heading > .gadget-actions button {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.sidebar-wrapper hr {
|
||||
border-top-color: #ebeced;
|
||||
}
|
||||
|
||||
.sidebar-toggle-button {
|
||||
float: left;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
font-size: 18px;
|
||||
background: #438cad;
|
||||
color: #ffffff;
|
||||
margin-left: -15px;
|
||||
}
|
||||
|
||||
.sidebar-toggle-button > .icon {
|
||||
line-height: 48px;
|
||||
}
|
||||
|
||||
.sidebar-nav {
|
||||
background: #29313e;
|
||||
color: #e3e5e6;
|
||||
}
|
||||
|
||||
.nav.pages {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.nav.pages > li {
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.nav > li {
|
||||
text-indent: 0;
|
||||
line-height: 10px;
|
||||
}
|
||||
|
||||
.nav > li > a {
|
||||
border-radius: 0;
|
||||
color: #e3e5e6;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.collapse-nav-sub > li > a {
|
||||
padding: 4px 10px;
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
.collapse-nav-sub > li > a > .icon {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.page-header .fw-inverse {
|
||||
color: #29313e;
|
||||
}
|
||||
|
||||
.nav li:hover > a,
|
||||
.nav li.open > a,
|
||||
.nav li.open > a:focus,
|
||||
.nav li.open > a:hover {
|
||||
background: #1a2332;
|
||||
}
|
||||
|
||||
.nav > li > a:focus {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.nav.pages > li.active a {
|
||||
background: #121822;
|
||||
border-left: 5px solid #438cad;
|
||||
}
|
||||
|
||||
.navbar-collapse {
|
||||
padding: 15px;
|
||||
background: #1A2331;
|
||||
}
|
||||
|
||||
.navbar-collapse li:hover > a {
|
||||
background: #29313E;
|
||||
}
|
||||
|
||||
.sidebar-nav .user {
|
||||
text-align: center;
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
.sidebar-nav .user > .user-image {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.sidebar-nav .user > .user-image > .default .icon {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.sidebar-nav .user > .user-image > .default .icon .fw-inverse,
|
||||
.sidebar-nav .user > .user-image > .default .icon .fa-inverse {
|
||||
color: #29313e;
|
||||
}
|
||||
|
||||
.widget .gadget-wrapper {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.widget .ues-component-heading {
|
||||
display: none !important;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.widget .ues-component {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.widget.form-control-widget {
|
||||
height: 35px !important;
|
||||
}
|
||||
|
||||
.dropdown-menu.arrow.arrow-top-right:before {
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.dropdown-menu.arrow:before,
|
||||
.dropdown-menu.arrow.arrow-top-left:before {
|
||||
top: -10px;
|
||||
border-right: 10px solid transparent;
|
||||
border-bottom: 10px solid #e4e4e4;
|
||||
border-left: 10px solid transparent;
|
||||
}
|
||||
|
||||
.dropdown-menu.alerts {
|
||||
min-width: 400px;
|
||||
max-width: 100%;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
ul.sidebar-messages > li:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
ul.sidebar-messages > li:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
var vizgSettings = {
|
||||
colorScale: colorbrewer.RdYlBu[4].reverse(),
|
||||
colors: {
|
||||
green:"#5FCE9B",
|
||||
blue:"#438CAD",
|
||||
red:"#E87352",
|
||||
yellow:"#EECA5A",
|
||||
purple:"#B6688F",
|
||||
grey:"434343",
|
||||
brown:"#C59787"
|
||||
}
|
||||
}
|
||||
@ -1,303 +0,0 @@
|
||||
// This product includes color specifications and designs developed by Cynthia Brewer (http://colorbrewer.org/).
|
||||
// JavaScript specs as packaged in the D3 library (d3js.org). Please see license at http://colorbrewer.org/export/LICENSE.txt
|
||||
var colorbrewer = {YlGn: {
|
||||
3: ["#f7fcb9","#addd8e","#31a354"],
|
||||
4: ["#ffffcc","#c2e699","#78c679","#238443"],
|
||||
5: ["#ffffcc","#c2e699","#78c679","#31a354","#006837"],
|
||||
6: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],
|
||||
7: ["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
|
||||
8: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],
|
||||
9: ["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]
|
||||
},YlGnBu: {
|
||||
3: ["#edf8b1","#7fcdbb","#2c7fb8"],
|
||||
4: ["#ffffcc","#a1dab4","#41b6c4","#225ea8"],
|
||||
5: ["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],
|
||||
6: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],
|
||||
7: ["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
|
||||
8: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],
|
||||
9: ["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]
|
||||
},GnBu: {
|
||||
3: ["#e0f3db","#a8ddb5","#43a2ca"],
|
||||
4: ["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],
|
||||
5: ["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],
|
||||
6: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],
|
||||
7: ["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
|
||||
8: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],
|
||||
9: ["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]
|
||||
},BuGn: {
|
||||
3: ["#e5f5f9","#99d8c9","#2ca25f"],
|
||||
4: ["#edf8fb","#b2e2e2","#66c2a4","#238b45"],
|
||||
5: ["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],
|
||||
6: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],
|
||||
7: ["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
|
||||
8: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],
|
||||
9: ["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]
|
||||
},PuBuGn: {
|
||||
3: ["#ece2f0","#a6bddb","#1c9099"],
|
||||
4: ["#f6eff7","#bdc9e1","#67a9cf","#02818a"],
|
||||
5: ["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],
|
||||
6: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],
|
||||
7: ["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
|
||||
8: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],
|
||||
9: ["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]
|
||||
},PuBu: {
|
||||
3: ["#ece7f2","#a6bddb","#2b8cbe"],
|
||||
4: ["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],
|
||||
5: ["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],
|
||||
6: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],
|
||||
7: ["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
|
||||
8: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],
|
||||
9: ["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]
|
||||
},BuPu: {
|
||||
3: ["#e0ecf4","#9ebcda","#8856a7"],
|
||||
4: ["#edf8fb","#b3cde3","#8c96c6","#88419d"],
|
||||
5: ["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],
|
||||
6: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],
|
||||
7: ["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
|
||||
8: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],
|
||||
9: ["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]
|
||||
},RdPu: {
|
||||
3: ["#fde0dd","#fa9fb5","#c51b8a"],
|
||||
4: ["#feebe2","#fbb4b9","#f768a1","#ae017e"],
|
||||
5: ["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],
|
||||
6: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],
|
||||
7: ["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
|
||||
8: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],
|
||||
9: ["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]
|
||||
},PuRd: {
|
||||
3: ["#e7e1ef","#c994c7","#dd1c77"],
|
||||
4: ["#f1eef6","#d7b5d8","#df65b0","#ce1256"],
|
||||
5: ["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],
|
||||
6: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],
|
||||
7: ["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
|
||||
8: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],
|
||||
9: ["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]
|
||||
},OrRd: {
|
||||
3: ["#fee8c8","#fdbb84","#e34a33"],
|
||||
4: ["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],
|
||||
5: ["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],
|
||||
6: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],
|
||||
7: ["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
|
||||
8: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],
|
||||
9: ["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]
|
||||
},YlOrRd: {
|
||||
3: ["#ffeda0","#feb24c","#f03b20"],
|
||||
4: ["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],
|
||||
5: ["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],
|
||||
6: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],
|
||||
7: ["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
|
||||
8: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],
|
||||
9: ["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]
|
||||
},YlOrBr: {
|
||||
3: ["#fff7bc","#fec44f","#d95f0e"],
|
||||
4: ["#ffffd4","#fed98e","#fe9929","#cc4c02"],
|
||||
5: ["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],
|
||||
6: ["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],
|
||||
7: ["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
|
||||
8: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],
|
||||
9: ["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]
|
||||
},Purples: {
|
||||
3: ["#efedf5","#bcbddc","#756bb1"],
|
||||
4: ["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],
|
||||
5: ["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],
|
||||
6: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],
|
||||
7: ["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
|
||||
8: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],
|
||||
9: ["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]
|
||||
},Blues: {
|
||||
3: ["#deebf7","#9ecae1","#3182bd"],
|
||||
4: ["#eff3ff","#bdd7e7","#6baed6","#2171b5"],
|
||||
5: ["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],
|
||||
6: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],
|
||||
7: ["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
|
||||
8: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],
|
||||
9: ["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]
|
||||
},Greens: {
|
||||
3: ["#e5f5e0","#a1d99b","#31a354"],
|
||||
4: ["#edf8e9","#bae4b3","#74c476","#238b45"],
|
||||
5: ["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],
|
||||
6: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],
|
||||
7: ["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
|
||||
8: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],
|
||||
9: ["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]
|
||||
},Oranges: {
|
||||
3: ["#fee6ce","#fdae6b","#e6550d"],
|
||||
4: ["#feedde","#fdbe85","#fd8d3c","#d94701"],
|
||||
5: ["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],
|
||||
6: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],
|
||||
7: ["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
|
||||
8: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],
|
||||
9: ["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]
|
||||
},Reds: {
|
||||
3: ["#fee0d2","#fc9272","#de2d26"],
|
||||
4: ["#fee5d9","#fcae91","#fb6a4a","#cb181d"],
|
||||
5: ["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],
|
||||
6: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],
|
||||
7: ["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
|
||||
8: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],
|
||||
9: ["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]
|
||||
},Greys: {
|
||||
3: ["#f0f0f0","#bdbdbd","#636363"],
|
||||
4: ["#f7f7f7","#cccccc","#969696","#525252"],
|
||||
5: ["#f7f7f7","#cccccc","#969696","#636363","#252525"],
|
||||
6: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],
|
||||
7: ["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
|
||||
8: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],
|
||||
9: ["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]
|
||||
},PuOr: {
|
||||
3: ["#f1a340","#f7f7f7","#998ec3"],
|
||||
4: ["#e66101","#fdb863","#b2abd2","#5e3c99"],
|
||||
5: ["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],
|
||||
6: ["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],
|
||||
7: ["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],
|
||||
8: ["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],
|
||||
9: ["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],
|
||||
10: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],
|
||||
11: ["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]
|
||||
},BrBG: {
|
||||
3: ["#d8b365","#f5f5f5","#5ab4ac"],
|
||||
4: ["#a6611a","#dfc27d","#80cdc1","#018571"],
|
||||
5: ["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],
|
||||
6: ["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],
|
||||
7: ["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],
|
||||
8: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],
|
||||
9: ["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],
|
||||
10: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],
|
||||
11: ["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]
|
||||
},PRGn: {
|
||||
3: ["#af8dc3","#f7f7f7","#7fbf7b"],
|
||||
4: ["#7b3294","#c2a5cf","#a6dba0","#008837"],
|
||||
5: ["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],
|
||||
6: ["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],
|
||||
7: ["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],
|
||||
8: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
|
||||
9: ["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],
|
||||
10: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],
|
||||
11: ["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]
|
||||
},PiYG: {
|
||||
3: ["#e9a3c9","#f7f7f7","#a1d76a"],
|
||||
4: ["#d01c8b","#f1b6da","#b8e186","#4dac26"],
|
||||
5: ["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],
|
||||
6: ["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],
|
||||
7: ["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],
|
||||
8: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
|
||||
9: ["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],
|
||||
10: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],
|
||||
11: ["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]
|
||||
},RdBu: {
|
||||
3: ["#ef8a62","#f7f7f7","#67a9cf"],
|
||||
4: ["#ca0020","#f4a582","#92c5de","#0571b0"],
|
||||
5: ["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],
|
||||
6: ["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],
|
||||
7: ["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],
|
||||
8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
|
||||
9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],
|
||||
10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],
|
||||
11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]
|
||||
},RdGy: {
|
||||
3: ["#ef8a62","#ffffff","#999999"],
|
||||
4: ["#ca0020","#f4a582","#bababa","#404040"],
|
||||
5: ["#ca0020","#f4a582","#ffffff","#bababa","#404040"],
|
||||
6: ["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],
|
||||
7: ["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],
|
||||
8: ["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],
|
||||
9: ["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],
|
||||
10: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],
|
||||
11: ["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]
|
||||
},RdYlBu: {
|
||||
3: ["#fc8d59","#ffffbf","#91bfdb"],
|
||||
4: ["#d7191c","#fdae61","#abd9e9","#2c7bb6"],
|
||||
5: ["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],
|
||||
6: ["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],
|
||||
7: ["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],
|
||||
8: ["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],
|
||||
9: ["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],
|
||||
10: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],
|
||||
11: ["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]
|
||||
},Spectral: {
|
||||
3: ["#fc8d59","#ffffbf","#99d594"],
|
||||
4: ["#d7191c","#fdae61","#abdda4","#2b83ba"],
|
||||
5: ["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],
|
||||
6: ["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],
|
||||
7: ["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],
|
||||
8: ["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],
|
||||
9: ["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],
|
||||
10: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],
|
||||
11: ["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]
|
||||
},RdYlGn: {
|
||||
3: ["#fc8d59","#ffffbf","#91cf60"],
|
||||
4: ["#d7191c","#fdae61","#a6d96a","#1a9641"],
|
||||
5: ["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],
|
||||
6: ["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],
|
||||
7: ["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],
|
||||
8: ["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
|
||||
9: ["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],
|
||||
10: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],
|
||||
11: ["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]
|
||||
},Accent: {
|
||||
3: ["#7fc97f","#beaed4","#fdc086"],
|
||||
4: ["#7fc97f","#beaed4","#fdc086","#ffff99"],
|
||||
5: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],
|
||||
6: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],
|
||||
7: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],
|
||||
8: ["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]
|
||||
},Dark2: {
|
||||
3: ["#1b9e77","#d95f02","#7570b3"],
|
||||
4: ["#1b9e77","#d95f02","#7570b3","#e7298a"],
|
||||
5: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],
|
||||
6: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],
|
||||
7: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],
|
||||
8: ["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]
|
||||
},Paired: {
|
||||
3: ["#a6cee3","#1f78b4","#b2df8a"],
|
||||
4: ["#a6cee3","#1f78b4","#b2df8a","#33a02c"],
|
||||
5: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],
|
||||
6: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],
|
||||
7: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],
|
||||
8: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],
|
||||
9: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],
|
||||
10: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],
|
||||
11: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],
|
||||
12: ["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]
|
||||
},Pastel1: {
|
||||
3: ["#fbb4ae","#b3cde3","#ccebc5"],
|
||||
4: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],
|
||||
5: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],
|
||||
6: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],
|
||||
7: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],
|
||||
8: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],
|
||||
9: ["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]
|
||||
},Pastel2: {
|
||||
3: ["#b3e2cd","#fdcdac","#cbd5e8"],
|
||||
4: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],
|
||||
5: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],
|
||||
6: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],
|
||||
7: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],
|
||||
8: ["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]
|
||||
},Set1: {
|
||||
3: ["#e41a1c","#377eb8","#4daf4a"],
|
||||
4: ["#e41a1c","#377eb8","#4daf4a","#984ea3"],
|
||||
5: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],
|
||||
6: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],
|
||||
7: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],
|
||||
8: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],
|
||||
9: ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]
|
||||
},Set2: {
|
||||
3: ["#66c2a5","#fc8d62","#8da0cb"],
|
||||
4: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],
|
||||
5: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],
|
||||
6: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],
|
||||
7: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],
|
||||
8: ["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]
|
||||
},Set3: {
|
||||
3: ["#8dd3c7","#ffffb3","#bebada"],
|
||||
4: ["#8dd3c7","#ffffb3","#bebada","#fb8072"],
|
||||
5: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],
|
||||
6: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],
|
||||
7: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],
|
||||
8: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],
|
||||
9: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],
|
||||
10: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],
|
||||
11: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],
|
||||
12: ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]
|
||||
}};
|
||||
@ -1,447 +0,0 @@
|
||||
<!--
|
||||
~ Copyright (c) WSO2 Inc. (http://wso2.com) All Rights Reserved.
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<%
|
||||
// i18n
|
||||
var i18n = require("i18n");
|
||||
i18n.init(request, utils.getLocaleResourcePath());
|
||||
|
||||
// If the pageId is null, render the landing page
|
||||
pageId = pageId || dashboard.landing;
|
||||
|
||||
var usr = require('/modules/user.js'),
|
||||
user = usr.current(),
|
||||
isAnonView = request.getParameter('isAnonView');
|
||||
|
||||
// Get the anon view
|
||||
if (!user) {
|
||||
if (isAnonView) {
|
||||
response.sendRedirect(request.getRequestURL());
|
||||
}
|
||||
isAnonView = true;
|
||||
} else {
|
||||
isAnonView = JSON.parse(isAnonView);
|
||||
|
||||
if((user.domain != urlDomain && urlDomain) ||
|
||||
(dashboard.isanon && !utils.allowed(user.roles, dashboard.permissions.editors) && !utils.allowed(user.roles, dashboard.permissions.viewers))) {
|
||||
isAnonView = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Get the current page
|
||||
var pages = dashboard.pages,
|
||||
page;
|
||||
pages.forEach(function(p) {
|
||||
if (p.id == pageId) {
|
||||
page = p;
|
||||
}
|
||||
});
|
||||
%>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title><%= i18n.localize("dashboard.server.label")%></title>
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="shortcut icon" href="<%=urlPrefix%>libs/theme-wso2_1.0/images/favicon.png" />
|
||||
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="<%=urlPrefix%>libs/bootstrap_3.3.5/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- Font WSO2 CSS -->
|
||||
<link href="<%=urlPrefix%>libs/font-wso2_1.0.0/css/font-wso2.min.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- Jquery Nanoscroller CSS -->
|
||||
<link href="<%=urlPrefix%>libs/nanoscroller_0.8.7/nanoscroller.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- Theme WSO2 CSS -->
|
||||
<link href="<%=urlPrefix%>libs/theme-wso2_1.0/css/theme-wso2.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="<%=urlPrefix%>css/custom.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="<%=urlPrefix%>libs/html5shiv_3.7.2/html5shiv.min.js"></script>
|
||||
<script src="<%=urlPrefix%>libs/respond_1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- JQuery UI -->
|
||||
<link rel="stylesheet" type="text/css" href="<%=urlPrefix%>libs/jquery-ui-1.11.4/jquery-ui.min.css" />
|
||||
|
||||
<link rel="stylesheet" href="<%=urlPrefix%>css/dashboard.css" />
|
||||
|
||||
<!-- Common CSS -->
|
||||
<link rel="stylesheet" type="text/css" href="<%=urlPrefix%>css/common.css" />
|
||||
|
||||
<!-- Custom theme overrides -->
|
||||
<link rel="stylesheet" href="<%=urlPrefix%><%=utils.dashboardStyles(dashboard.theme)%>">
|
||||
</head>
|
||||
|
||||
<body class="dashboard lang_<%=request.getLocale()%>">
|
||||
|
||||
<!-- .left-sidebar -->
|
||||
<div class="sidebar-wrapper sidebar-nav toggled hidden-xs" id="left-sidebar" data-side="left" data-width="260" style="width:260px">
|
||||
<div class="nano">
|
||||
<div class="nano-content">
|
||||
|
||||
<div class="user">
|
||||
<div class="user-image">
|
||||
<span class="default">
|
||||
<span class="icon fw fw-stack">
|
||||
<i class="fw fw-circle fw-stack-2x"></i>
|
||||
<i class="fw fw-user fw-stack-1x fw-inverse"></i>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="user-name"><%= user ? user.username : "anon" %></div>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-pills nav-stacked pages">
|
||||
<% if (pages.length > 1) {
|
||||
// render links
|
||||
pages.forEach(function (p) {
|
||||
if (isAnonView || !user) {
|
||||
if (p.isanon) {
|
||||
// Anonymous viewing. So render only anonymous pages links.
|
||||
renderPageLink(p);
|
||||
}
|
||||
} else {
|
||||
renderPageLink(p);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function renderPageLink(p) {
|
||||
var queryString = isAnonView ? '?isAnonView=true' : '';
|
||||
%>
|
||||
<li class="<%= (p.id === pageId) ? 'active': '' %>"><a href="<%=dbRoot%><%=p.id%><%=queryString%>"><%=encodeHtml(p.title)%></a></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<% if (user) { %>
|
||||
<% if (!isAnonView && (urlDomain == user.domain || (user.domain == superDomain && (!urlDomain || urlDomain == superDomain)))) { %>
|
||||
<% if (user.isEditor) { %>
|
||||
<li><a href="<%=dbRoot%>?editor=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("edit.button")%>"></i>Dashboard Settings</a></li>
|
||||
<% } else { %>
|
||||
<li><a href="<%=dbRoot%>?custom=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("personalize")%>"></i>Customize Dashboard</a></li>
|
||||
<% } %>
|
||||
<% } %>
|
||||
<li><a href="<%=urlPrefix%>logout?destination=<%=dest%>"><i class="icon fw fw-sign-out"></i><%= i18n.localize("logout.label")%></a></li>
|
||||
<% } else { %>
|
||||
<li><a href="<%=urlPrefix%>login-controller?destination=<%=dest%>"><i class="icon fw fw-sign-in"></i><%= i18n.localize("login.label")%></a></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- #page-content-wrapper -->
|
||||
<div class="page-content-wrapper remove-padding-xs" style="padding-left:260px;">
|
||||
<div class="nano">
|
||||
<div class="nano-content">
|
||||
|
||||
<div class="page-header">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="navbar-header">
|
||||
<a class="sidebar-toggle-button hidden-xs" data-toggle="sidebar" data-target="#left-sidebar" data-container=".page-content-wrapper" data-container-divide="true" aria-expanded="true" rel="sub-nav">
|
||||
<span class="icon fw-stack">
|
||||
<i class="fw fw-menu fw-stack-1x toggle-icon-left"></i>
|
||||
</span>
|
||||
</a>
|
||||
<a class="sidebar-toggle-button visible-xs" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="icon fw-stack">
|
||||
<i class="fw fw-menu fw-stack-1x toggle-icon-up"></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="page-title pull-left text-center-xs">
|
||||
<h1 class="text-center-xs"><i class="icon fw fw-wso2-logo"></i><%=encodeHtml(dashboard.title)%></h1>
|
||||
</div>
|
||||
<div class="pull-right auth visible-xs">
|
||||
<span class="add-padding-left-3x"><%= user ? user.username : "anon" %></span>
|
||||
<span class="icon fw-stack fw-lg">
|
||||
<i class="fw fw-circle fw-stack-2x"></i>
|
||||
<i class="fw fw-user fw-stack-1x fw-inverse"></i>
|
||||
</span>
|
||||
</div>
|
||||
<ul class="nav collapse-nav-sub pull-right hidden">
|
||||
<li class="visible-inline-block">
|
||||
<a data-toggle="dropdown">
|
||||
<span class="icon fw-stack">
|
||||
<i class="fw fw-notification fw-stack-1x"></i>
|
||||
</span>
|
||||
<span class="badge">4</span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right arrow alerts arrow-top-right dark add-margin-top-2x" role="menu">
|
||||
<ul class="sidebar-messages">
|
||||
<li class="message message-success">
|
||||
<h4><i class="icon fw fw-success"></i>Minor Information Message</h4>
|
||||
<p>Alerts don't have default classes, only base and modifier classes.</p>
|
||||
</li>
|
||||
<li class="message message-info">
|
||||
<h4><i class="icon fw fw-info"></i>Minor Information Message</h4>
|
||||
<p>Alerts don't have default classes, only base and modifier classes.</p>
|
||||
</li>
|
||||
<li class="message message-warning">
|
||||
<h4><i class="icon fw fw-warning"></i>Major Information Message</h4>
|
||||
<p>Alerts don't have default classes, only base and modifier classes.</p>
|
||||
</li>
|
||||
<li class="message message-danger">
|
||||
<h4><i class="icon fw fw-error"></i>Critical Information Message</h4>
|
||||
<p>Alerts don't have default classes, only base and modifier classes.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="navbar-collapse collapse" aria-expanded="false">
|
||||
<ul class="nav navbar-nav pages">
|
||||
<% if (pages.length > 1) {
|
||||
// render links
|
||||
pages.forEach(function (p) {
|
||||
if (isAnonView || !user) {
|
||||
if (p.isanon) {
|
||||
// Anonymous viewing. So render only anonymous pages links.
|
||||
renderPageLink(p);
|
||||
}
|
||||
} else {
|
||||
renderPageLink(p);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function renderPageLink(p) {
|
||||
var queryString = isAnonView ? '?isAnonView=true' : '';
|
||||
%>
|
||||
<li class="<%= (p.id === pageId) ? 'active': '' %>"><a href="<%=dbRoot%><%=p.id%><%=queryString%>"><%=encodeHtml(p.title)%></a></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<% if (user) { %>
|
||||
<% if (!isAnonView && (urlDomain == user.domain || (user.domain == superDomain && (!urlDomain || urlDomain == superDomain)))) { %>
|
||||
<% if (user.isEditor) { %>
|
||||
<li><a href="<%=dbRoot%>?editor=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("edit.button")%>"></i>Dashboard Settings</a></li>
|
||||
<% } else { %>
|
||||
<li><a href="<%=dbRoot%>?custom=true"><i class="icon fw fw-settings ues-copy" title="<%= i18n.localize("personalize")%>"></i>Customize Dashboard</a></li>
|
||||
<% } %>
|
||||
<% } %>
|
||||
<li><a href="<%=urlPrefix%>logout?destination=<%=dest%>"><i class="icon fw fw-sign-out"></i><%= i18n.localize("logout.label")%></a></li>
|
||||
<% } else { %>
|
||||
<li><a href="<%=urlPrefix%>login-controller?destination=<%=dest%>"><i class="icon fw fw-sign-in"></i><%= i18n.localize("login.label")%></a></li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page content -->
|
||||
<div class="container-fluid body-wrapper">
|
||||
|
||||
<div class="page-content">
|
||||
<!-- Components grid -->
|
||||
<div class="ues-components-grid gadgets-grid">
|
||||
<%=renderEngine.getDashboardContent(pageId || dashboard.landing, isAnonView)%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /#page-content-wrapper -->
|
||||
|
||||
<!--Footer -->
|
||||
<footer class="footer">
|
||||
<div class="container-fluid">
|
||||
<p>WSO2 Dashboard Server 2.0.0 | © <script>document.write(new Date().getFullYear());</script> <a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>.</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Jquery/Jquery UI JS -->
|
||||
<script src="<%=urlPrefix%>libs/jquery_1.11.0/jquery-1.11.3.min.js"></script>
|
||||
<script src="<%=urlPrefix%>libs/jquery-ui-1.11.4/jquery-ui.min.js"></script>
|
||||
|
||||
<!-- Bootstrap JS -->
|
||||
<script src="<%=urlPrefix%>libs/bootstrap_3.3.5/js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- Jquery Nanoscroller JS -->
|
||||
<script src="<%=urlPrefix%>libs/nanoscroller_0.8.7/jquery.nanoscroller.min.js"></script>
|
||||
|
||||
<!-- Theme WSO2 JS -->
|
||||
<script src="<%=urlPrefix%>libs/theme-wso2_1.0/js/theme-wso2.js"></script>
|
||||
|
||||
<!-- Handlebars JS -->
|
||||
<script src="<%=urlPrefix%>libs/handlebars-v4.0.2/handlebars.min.js"></script>
|
||||
|
||||
<script src="/shindig/gadgets/js/container:open-views:opensearch:rpc:xmlutil:pubsub-2.js?c=1&debug=1&container=default"></script>
|
||||
<script src="<%=urlPrefix%>js/ues.js"></script>
|
||||
<script src="<%=urlPrefix%>js/ues-prefs.js"></script>
|
||||
<% include('/controllers/includes/common-scripts.jag'); %>
|
||||
<% include('/controllers/includes/dashboard-scripts.jag'); %>
|
||||
<script src="<%=urlPrefix%>js/ues-gadgets.js"></script>
|
||||
<script src="<%=urlPrefix%>js/ues-dashboards.js"></script>
|
||||
<script src="<%=urlPrefix%>extensions/components/gadget/index.js"></script>
|
||||
<script src="<%=urlPrefix%>extensions/components/widget/index.js"></script>
|
||||
<script src="<%=urlPrefix%>extensions/uris/local/index.js"></script>
|
||||
<script src="<%=urlPrefix%>extensions/uris/store/index.js"></script>
|
||||
<script src="<%=urlPrefix%>js/gadget-properties.js"></script>
|
||||
<script src="<%=urlPrefix%>js/ds-handlebar-helpers.js"></script>
|
||||
<script src="<%=urlPrefix%>js/ues-saml-at.js"></script>
|
||||
<script src="<%=urlPrefix%>js/dashboard.js"></script>
|
||||
<% include('/controllers/includes/theme-dashboard-scripts.jag'); %>
|
||||
|
||||
<!-- Handlebar templates -->
|
||||
<!-- Component container -->
|
||||
<script id="ues-component-box-content-hbs" type="text/x-handlebars-template">
|
||||
<div class="gadget-wrapper">
|
||||
<div class="ues-component gadget">
|
||||
<div class="ues-component-heading gadget-heading">
|
||||
<h4 class="ues-component-title gadget-title truncate"></h4>
|
||||
|
||||
<div class="ues-component-actions gadget-actions">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ues-component-body gadget-body"></div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- Component toolbar actions -->
|
||||
<script id="ues-component-actions-hbs" type="text/x-handlebars-template">
|
||||
<div class="btn-group">
|
||||
{{#if userPrefsExists}}
|
||||
<button type="button" class="btn btn-default ues-component-settings-handle" title="<%= i18n.localize("properties.label") %>">
|
||||
<i class="icon fw fw fw-configarations"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
<button type="button" class="btn btn-default ues-component-full-handle" title="<%= i18n.localize("maximize.label") %>"
|
||||
data-maximize-title="<%= i18n.localize("maximize.label") %>" data-minimize-title="<%= i18n.localize("minimize.label") %>">
|
||||
<i class="icon fw fw-expand"></i>
|
||||
</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- Gadget settings -->
|
||||
<script id="ues-gadget-setting-hbs" type="text/x-handlebars-template">
|
||||
<div class="ues-sandbox gadget-setting" data-component="{{id}}">
|
||||
<form>
|
||||
{{#has options}}
|
||||
<div class="ues-options">
|
||||
<h4><%= i18n.localize("options") %></h4>
|
||||
{{#each options}}
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
{{#equals type "STRING"}}
|
||||
<label>{{title}}
|
||||
<input type="text" class="form-control" name="{{@key}}" placeholder="{{title}}" value="{{value}}">
|
||||
</label>
|
||||
{{/equals}}
|
||||
{{#equals type "BOOL"}}
|
||||
<label>
|
||||
<input type="checkbox" name="{{title}}"{{#equals value true}} checked="checked"{{/equals}}> {{title}}
|
||||
</label>
|
||||
{{/equals}}
|
||||
{{#equals type "ENUM"}}
|
||||
<label>{{title}}
|
||||
<select id={{title}} name={{title}} class="form-control ues-title-position">
|
||||
{{#each options}}
|
||||
<option value={{value}}{{#equals value ../value}} selected="selected"{{/equals}}>{{displayValue}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
{{/equals}}
|
||||
{{#equals type "LIST"}}
|
||||
<label>{{title}}
|
||||
<textarea name="{{@key}}" class="form-control" rows="4" placeholder='<%= i18n.localize("placeholder.item.list")%>'>{{value}}</textarea>
|
||||
<label><%= i18n.localize("enter.your.list.entries.label")%></label>
|
||||
</label>
|
||||
{{/equals}}
|
||||
{{#equals type "text"}}
|
||||
<label>{{title}}
|
||||
<textarea name="{{@key}}" class="form-control" rows="4">{{value}}</textarea>
|
||||
</label>
|
||||
{{/equals}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="alert alert-info">No properties to configure.</div>
|
||||
{{/has}}
|
||||
</form>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script>
|
||||
|
||||
var nanoScrollerSelector = $(".nano");
|
||||
nanoScrollerSelector.nanoScroller();
|
||||
|
||||
function updateSidebarNav(target) {
|
||||
$(target).show();
|
||||
$(target).siblings().hide();
|
||||
nanoScrollerSelector[0].nanoscroller.reset();
|
||||
}
|
||||
|
||||
if (!ues.global.renderFromExtension) {
|
||||
ues.dashboards.render($('.ues-components-grid'), ues.global.dashboard, ues.global.page);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
// Show banner
|
||||
if (ues.global.dashboard.banner.globalBannerExists || ues.global.dashboard.banner.customBannerExists) {
|
||||
$('.ues-banner-placeholder').css("background-image", "url('<%=tenantedUrlPrefix%>banners/<%=dashboard.id%>')");
|
||||
} else {
|
||||
$('.ues-banner-placeholder').hide();
|
||||
}
|
||||
|
||||
// Toggle component box heading
|
||||
$('.ues-component').hover(function() {
|
||||
toggleHeading($(this), true);
|
||||
}, function() {
|
||||
toggleHeading($(this), false);
|
||||
});
|
||||
});
|
||||
|
||||
function toggleHeading(source, show) {
|
||||
if (source.hasClass('ues-no-heading')) {
|
||||
var heading = source.find('.ues-component-heading');
|
||||
if (show) {
|
||||
heading.slideDown();
|
||||
} else {
|
||||
heading.slideUp();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,52 +0,0 @@
|
||||
<%
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
var user = session.get('user');
|
||||
var streamName;
|
||||
var streamVersion;
|
||||
var log = new Log();
|
||||
var JaggeryWebSocketHelper = Packages.org.wso2.carbon.event.output.adapter.ui.JaggeryWebSocketHelper;
|
||||
|
||||
webSocket.onopen = function () {
|
||||
if (user == null) {
|
||||
this.close();
|
||||
}
|
||||
};
|
||||
|
||||
webSocket.ontext = function (data) {
|
||||
log.info(data);
|
||||
var dataObj = parse(data);
|
||||
streamName = dataObj.streamName;
|
||||
streamVersion = dataObj.streamVersion;
|
||||
JaggeryWebSocketHelper.subscribeWebSocket(streamName, streamVersion, stringify(dataObj.filterProps),
|
||||
user.username, session.getId(), user.tenantId, this);
|
||||
};
|
||||
|
||||
webSocket.onclose = function () {
|
||||
if (user != null && streamName != null && streamVersion != null) { //onclose may get invoked when an invalid user (user==null case) closes the connection. Hence this check is required.
|
||||
JaggeryWebSocketHelper.unsubscribeWebsocket(streamName, streamVersion, session.getId(), user.tenantId);
|
||||
}
|
||||
};
|
||||
|
||||
webSocket.onerror = function () {
|
||||
if (user != null) {
|
||||
JaggeryWebSocketHelper.unsubscribeWebsocket(streamId.split(":")[0], streamId.split(":")[1], session.getId(), user.tenantId);
|
||||
}
|
||||
};
|
||||
|
||||
%>
|
||||
@ -2,7 +2,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>WSO2 IoT Server</title>
|
||||
<title>Entgra IoT Server</title>
|
||||
|
||||
<link rel="icon" href="images/favicon.png" type="image/x-icon"/>
|
||||
<link href="libs/bootstrap_3.3.5/css/bootstrap.min.css" rel="stylesheet">
|
||||
@ -37,19 +37,19 @@
|
||||
<div class="container col-xs-12 col-sm-12 col-md-12 col-lg-12 col-centered wr-content wr-login col-centered padding-bottom-100">
|
||||
<div>
|
||||
<h2 class="wr-title uppercase blue-bg padding-double white boarder-bottom-blue margin-none">
|
||||
WSO2 IoT Server - Cookie Policy
|
||||
Entgra IoT Server - Cookie Policy
|
||||
</h2>
|
||||
</div>
|
||||
<div class="boarder-all ">
|
||||
<div class="clearfix"></div>
|
||||
<!-- Customizable content. Due to this nature, i18n is not implemented for this section -->
|
||||
<div id="cookiePolicy" class="padding-double">
|
||||
<h4><a href="https://wso2.com/iot/"><strong>About WSO2 IoT Server</strong></a></h4>
|
||||
<p>WSO2 IoT Server is a complete solution that enables device manufacturers and enterprises to connect and manage their devices, build apps, manage events, secure devices and data, and visualize sensor data in a scalable manner.
|
||||
<h4><a href="https://wso2.com/iot/"><strong>About Entgra IoT Server</strong></a></h4>
|
||||
<p>Entgra IoT Server is a complete solution that enables device manufacturers and enterprises to connect and manage their devices, build apps, manage events, secure devices and data, and visualize sensor data in a scalable manner.
|
||||
|
||||
<p>It also offers a complete and secure enterprise mobility management (EMM/MDM) solution that aims to address mobile computing challenges faced by enterprises today. Supporting iOS, Android, and Windows devices, it helps organizations deal with both corporate owned, personally enabled (COPE) and employee-owned devices with the bring your own device (BYOD) concept.</p>
|
||||
|
||||
<p>WSO2 IoT Server comes with advanced analytics, enabling users to analyze speed, proximity, and geo-fencing information of devices including details of those in motion and stationary state.</p>
|
||||
<p>Entgra IoT Server comes with advanced analytics, enabling users to analyze speed, proximity, and geo-fencing information of devices including details of those in motion and stationary state.</p>
|
||||
<div class="margin-bottom-double"></div>
|
||||
<h2 id="cookie-policy"><strong>Cookie Policy</strong></h2>
|
||||
<p>IoT Server uses cookies to provide you with the best user experience, and to securely identify you. You might not be able to access some of the services if you disable cookies.</p>
|
||||
@ -170,7 +170,7 @@
|
||||
<!-- footer -->
|
||||
<footer class="footer">
|
||||
<div class="container-fluid">
|
||||
<p>WSO2 IoT Server | ©
|
||||
<p>Entgra IoT Server | ©
|
||||
<script>document.write(new Date().getFullYear());</script>
|
||||
<a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>. All rights reserved
|
||||
</p>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>WSO2 IoT Server</title>
|
||||
<title>Entgra IoT Server</title>
|
||||
|
||||
<link rel="icon" href="images/favicon.png" type="image/x-icon"/>
|
||||
<link href="libs/bootstrap_3.3.5/css/bootstrap.min.css" rel="stylesheet">
|
||||
@ -57,7 +57,7 @@
|
||||
<!-- footer -->
|
||||
<footer class="footer">
|
||||
<div class="container-fluid">
|
||||
<p>WSO2 IoT Server | ©
|
||||
<p>Entgra IoT Server | ©
|
||||
<script>document.write(new Date().getFullYear());</script>
|
||||
<a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>. All rights reserved
|
||||
</p>
|
||||
|
||||
@ -1,125 +0,0 @@
|
||||
{
|
||||
"displayName": "EMM Web Agent",
|
||||
"logLevel": "error",
|
||||
"initScripts": ["/app/modules/init.js"],
|
||||
"urlMappings": [
|
||||
{
|
||||
"url": "/enrollment",
|
||||
"path": "/lib/pages.jag"
|
||||
},
|
||||
{
|
||||
"url": "/enrollment/windows/login",
|
||||
"path": "/app/modules/enrollments/windows/agent-controller.jag"
|
||||
},
|
||||
{
|
||||
"url": "/enrollment/windows/enroll",
|
||||
"path": "/app/modules/enrollments/windows/agent-enroll.jag"
|
||||
},
|
||||
{
|
||||
"url": "/enrollment/ios/download-certificate",
|
||||
"path": "/app/modules/enrollments/ios/certificate.jag"
|
||||
},
|
||||
{
|
||||
"url": "/enrollment/ios/download-agent",
|
||||
"path": "/app/modules/enrollments/ios/agent.jag"
|
||||
},
|
||||
{
|
||||
"url": "/enrollment/ios/login",
|
||||
"path": "/app/modules/enrollments/ios/agent-controller.jag"
|
||||
},
|
||||
{
|
||||
"url": "/enrollment/ios/enroll",
|
||||
"path": "/app/modules/enrollments/ios/agent-enroll.jag"
|
||||
},
|
||||
{
|
||||
"url": "/enrollment/ios/check",
|
||||
"path": "/app/modules/enrollments/ios/agent-check.jag"
|
||||
},
|
||||
{
|
||||
"url": "/api/invoker/*",
|
||||
"path": "/api/invoker-api.jag"
|
||||
},
|
||||
{
|
||||
"url": "/uuf/login",
|
||||
"path": "/lib/modules/auth/login.jag"
|
||||
},
|
||||
{
|
||||
"url": "/uuf/logout",
|
||||
"path": "/lib/modules/auth/logout.jag"
|
||||
},
|
||||
{
|
||||
"url": "/uuf/sso/acs",
|
||||
"path": "/lib/modules/auth/acs.jag"
|
||||
},
|
||||
{
|
||||
"url": "/public/*",
|
||||
"path": "/lib/static-files.jag"
|
||||
},
|
||||
{
|
||||
"url": "/unit/*",
|
||||
"path": "/lib/units.jag"
|
||||
},
|
||||
{
|
||||
"url": "/*",
|
||||
"path": "/lib/pages.jag"
|
||||
}
|
||||
],
|
||||
"securityConstraints": [
|
||||
{
|
||||
"securityConstraint": {
|
||||
"webResourceCollection": {
|
||||
"name": "WINDOWS-WEB-AGENT",
|
||||
"urlPatterns": [
|
||||
"/*"
|
||||
]
|
||||
},
|
||||
"userDataConstraint": {
|
||||
"transportGuarantee": "CONFIDENTIAL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"securityConstraint": {
|
||||
"webResourceCollection": {
|
||||
"name": "WINDOWS-WEB-AGENT-http",
|
||||
"urlPatterns": [
|
||||
"/public/*",
|
||||
"/enrollments/windows/*",
|
||||
"/enrollment/windows/*"
|
||||
]
|
||||
},
|
||||
"userDataConstraint": {
|
||||
"transportGuarantee": "NONE"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
"name": "ContentTypeBasedCachePreventionFilter",
|
||||
"class": "org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter",
|
||||
"params" : [
|
||||
{"name" : "patterns", "value" : "text/html\" ,application/json\" ,text/plain"},
|
||||
{"name" : "filterAction", "value" : "enforce"},
|
||||
{"name" : "httpHeaders", "value" : "Cache-Control: no-store, no-cache, must-revalidate, private"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"HttpHeaderSecurityFilter",
|
||||
"class":"org.apache.catalina.filters.HttpHeaderSecurityFilter",
|
||||
"params" : [{"name" : "hstsEnabled", "value" : "false"}]
|
||||
}
|
||||
|
||||
],
|
||||
"filterMappings": [
|
||||
{
|
||||
"name":"HttpHeaderSecurityFilter",
|
||||
"url":"*"
|
||||
},
|
||||
{
|
||||
"name":"ContentTypeBasedCachePreventionFilter",
|
||||
"url":"*"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
@ -8,37 +8,20 @@
|
||||
|
||||
<a href='https://opensource.org/licenses/Apache-2.0'><img src='https://img.shields.io/badge/License-Apache%202.0-blue.svg'></a><br/>
|
||||
|
||||
<h1>Release Note - Entgra IoT Server Version 3.8.0</h1>
|
||||
<h1>Release Note - Entgra IoT Server Version 4.1.0</h1>
|
||||
|
||||
<h2>We are pleased to announce Entgra IoT Server 3.8.0.</h2>
|
||||
<h2>We are pleased to announce Entgra IoT Server 4.1.0.</h2>
|
||||
|
||||
<p>Entgra IoT Server is the successor of WSO2 IoT server and includes capability to manage mobile devices(MDM), manage applications(MAM) and IoT devices in a single environment. It provides best of breed technologies for device manufacturers to develop connected smart products as well as anyone looking for a well established EMM solution to manage devices in their organisations. Entgra IoTs 3.8.0 pays special focus to Kiosk devices and many other EMM improvements.
|
||||
<p>Entgra IoT Server is the successor of Entgra IoT server and includes capability to manage mobile devices(MDM), manage applications(MAM) and IoT devices in a single environment. It provides best of breed technologies for device manufacturers to develop connected smart products as well as anyone looking for a well established EMM solution to manage devices in their organisations. Entgra IoTs 3.8.0 pays special focus to Kiosk devices and many other EMM improvements.
|
||||
</p>
|
||||
|
||||
<h4>What's new in Entgra IoTS 3.8.0</h4>
|
||||
|
||||
<ul>
|
||||
<li>Windows PC support added to the platform</li>
|
||||
<li>MacOS support added to the platform</li>
|
||||
<li>Windows PC Install Apps API level support</li>
|
||||
<li>MacOS App install API level support</li>
|
||||
<li>Fully rewritten App manager for performance</li>
|
||||
<li>Defining policy type(General/corrective)</li>
|
||||
<li>Corrective policy for policy violations</li>
|
||||
<li>Sim change status reporting</li>
|
||||
<li>Display extensive device information</li>
|
||||
<li>Schedule webclip/enterprise/public app uninstall</li>
|
||||
<li>Adding custom apps for IoT devices</li>
|
||||
<li>Enable/Disable lock task mode</li>
|
||||
</ul>
|
||||
|
||||
<h4>Documentation</h4>
|
||||
|
||||
Documentations: <a href='https://entgra-documentation.gitlab.io/v3.8.0/'> Entgra IoT Server Documentation</a>
|
||||
Documentations: <a href='https://entgra-documentation.gitlab.io/v4.1.0/'> Entgra IoT Server Documentation</a>
|
||||
|
||||
<h4>Known Issues</h4>
|
||||
|
||||
The known set of issues this version can be found <a href='https://gitlab.com/entgra/product-iots/issues?scope=all&utf8=✓&state=opened&milestone_title=IoT%203.8.0-GA'> here.</a>
|
||||
The known set of issues this version can be found <a href='https://gitlab.com/entgra/product-iots/issues?scope=all&utf8=✓&state=opened'> here.</a>
|
||||
|
||||
<h3>Engaging with Community</h3>
|
||||
|
||||
@ -46,7 +29,7 @@ The known set of issues this version can be found <a href='https://gitlab.com/en
|
||||
|
||||
<p>Join our mailing list and correspondence with the developers directly.</p>
|
||||
|
||||
<p>Developer list: <a href="mailto:dev@entgra.org">dev@entgra.org</a></p>
|
||||
<p>Developer list: <a href="mailto:dev@entgra.org">dev@entgra.io</a></p>
|
||||
|
||||
<h4>Reporting Issues</h4>
|
||||
|
||||
@ -55,9 +38,9 @@ The known set of issues this version can be found <a href='https://gitlab.com/en
|
||||
<h4>Discussion Forums</h4>
|
||||
|
||||
<p>We encourage you to use stackoverflow for
|
||||
<a href="http://stackoverflow.com/questions/tagged/wso2iots%20or%20wso2emm%20or%20entgraiot%20or%20wso2-emm">IoT
|
||||
<a href="http://stackoverflow.com/questions/tagged/entgra-iots%20or%20wso2emm%20or%20entgraiot%20or%20wso2-emm">IoT
|
||||
</a> and <a
|
||||
href="http://stackoverflow.com/questions/tagged/wso2iots%20or%20wso2emm%20or%20entgraemm%20or%20wso2-emm">EMM</a> to engage with developers as well as other users.</p>
|
||||
href="http://stackoverflow.com/questions/tagged/entgra-iots%20or%20wso2emm%20or%20entgraemm%20or%20wso2-emm">EMM</a> to engage with developers as well as other users.</p>
|
||||
|
||||
<p>For more information about Entgra IoT Server, please see <a href="https://www.entgra.io/">https://www.entgra.io</a></p>
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ INSERT INTO IDN_BASE_TABLE values ('WSO2 Identity Server')
|
||||
CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
|
||||
ID INTEGER NOT NULL,
|
||||
CONSUMER_KEY VARCHAR (255) NOT NULL,
|
||||
CONSUMER_SECRET VARCHAR (512),
|
||||
CONSUMER_SECRET VARCHAR (2048),
|
||||
USERNAME VARCHAR (255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -18,6 +18,10 @@ CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME BIGINT DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
@ -30,6 +34,13 @@ REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL
|
||||
= (NEXTVAL FOR IDN_OAUTH_CONSUMER_APPS_SEQUENCE);
|
||||
END
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID, SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH1A_REQUEST_TOKEN (
|
||||
REQUEST_TOKEN VARCHAR (512) NOT NULL,
|
||||
REQUEST_TOKEN_SECRET VARCHAR (512),
|
||||
@ -55,8 +66,8 @@ CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_ID VARCHAR (255) NOT NULL,
|
||||
ACCESS_TOKEN VARCHAR (255) NOT NULL,
|
||||
REFRESH_TOKEN VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR (2048) NOT NULL,
|
||||
REFRESH_TOKEN VARCHAR (2048),
|
||||
CONSUMER_KEY_ID INTEGER NOT NULL,
|
||||
AUTHZ_USER VARCHAR (100) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
@ -71,6 +82,8 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR (25) DEFAULT 'ACTIVE' NOT NULL,
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE' NOT NULL,
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR (512),
|
||||
REFRESH_TOKEN_HASH VARCHAR (512),
|
||||
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,
|
||||
@ -83,12 +96,15 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED)
|
||||
/
|
||||
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH)
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
CODE_ID VARCHAR (255) NOT NULL,
|
||||
AUTHORIZATION_CODE VARCHAR (512) NOT NULL,
|
||||
AUTHORIZATION_CODE VARCHAR (2048) NOT NULL,
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR (1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
SCOPE VARCHAR(4096),
|
||||
AUTHZ_USER VARCHAR (100) NOT NULL,
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR (50) NOT NULL,
|
||||
@ -99,10 +115,14 @@ CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR (512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
|
||||
/
|
||||
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH, CONSUMER_KEY_ID)
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR (255) NOT NULL,
|
||||
TOKEN_SCOPE VARCHAR (60) NOT NULL,
|
||||
@ -112,11 +132,10 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_KEY VARCHAR (100) NOT NULL,
|
||||
NAME VARCHAR (255) NULL,
|
||||
DESCRIPTION VARCHAR (512) NULL,
|
||||
TENANT_ID INTEGER DEFAULT 0 NOT NULL,
|
||||
ROLES VARCHAR (500) NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(512),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (SCOPE_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_OAUTH2_SCOPE_SEQUENCE START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
@ -131,14 +150,18 @@ BEGIN ATOMIC
|
||||
|
||||
END
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE)
|
||||
/
|
||||
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) ON DELETE CASCADE
|
||||
)/
|
||||
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE TABLE IDN_SCIM_GROUP (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
@ -210,7 +233,7 @@ CREATE TABLE IDN_IDENTITY_USER_DATA (
|
||||
TENANT_ID INTEGER DEFAULT -1234 NOT NULL,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
DATA_KEY VARCHAR(255) NOT NULL,
|
||||
DATA_VALUE VARCHAR(255),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY))
|
||||
/
|
||||
CREATE TABLE IDN_IDENTITY_META_DATA (
|
||||
@ -256,6 +279,7 @@ CREATE TABLE SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -304,6 +328,7 @@ CREATE TABLE SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -359,6 +384,7 @@ CREATE TABLE SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
@ -424,6 +450,7 @@ CREATE TABLE SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
BLOCKING CHAR(1) NOT NULL DEFAULT '0',
|
||||
RULE_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE SP_PROV_CONNECTOR_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
@ -439,6 +466,26 @@ CREATE TRIGGER SP_PROV_CONNECTOR_TRIG NO CASCADE
|
||||
/
|
||||
ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
|
||||
/
|
||||
CREATE TABLE SP_AUTH_SCRIPT (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BLOB DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE SP_AUTH_SCRIPT_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER SP_AUTH_SCRIPT_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON SP_AUTH_SCRIPT
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR SP_AUTH_SCRIPT_SEQ);
|
||||
END
|
||||
/
|
||||
CREATE TABLE IDP (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
@ -474,9 +521,6 @@ CREATE TRIGGER IDP_TRIG NO CASCADE
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDP_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost')/
|
||||
|
||||
CREATE TABLE IDP_ROLE (
|
||||
ID INTEGER NOT NULL,
|
||||
IDP_ID INTEGER NOT NULL,
|
||||
@ -583,10 +627,6 @@ CREATE TRIGGER IDP_AUTHENTICATOR_TRIG NO CASCADE
|
||||
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 NOT NULL,
|
||||
IDP_ID INTEGER NOT NULL,
|
||||
@ -610,10 +650,6 @@ CREATE TRIGGER IDP_METADATA_TRIG NO CASCADE
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDP_METADATA_SEQ);
|
||||
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 NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
@ -637,9 +673,6 @@ CREATE TRIGGER IDP_AUTHENTICATOR_PROP_TRIG NO CASCADE
|
||||
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 NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
@ -647,6 +680,7 @@ CREATE TABLE IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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)
|
||||
@ -790,7 +824,7 @@ CREATE TABLE WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR(255),
|
||||
HOST_URL_WORKER VARCHAR(255),
|
||||
USERNAME VARCHAR(45),
|
||||
PASSWORD VARCHAR(255),
|
||||
PASSWORD VARCHAR(1023),
|
||||
CALLBACK_HOST VARCHAR (45),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (PROFILE_NAME, TENANT_ID))
|
||||
@ -863,9 +897,484 @@ CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE)
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1 NOT NULL,
|
||||
CODE VARCHAR(255) NOT NULL,
|
||||
SCENARIO VARCHAR(255) NOT NULL,
|
||||
STEP VARCHAR(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
REMAINING_SETS VARCHAR(2500),
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE))
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER NOT NULL,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1 NOT NULL,
|
||||
SALT_VALUE VARCHAR(255) NOT NULL,
|
||||
HASH VARCHAR(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE SEQUENCE IDN_PASSWORD_HISTORY_DATA_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
|
||||
CREATE TRIGGER IDN_PASSWORD_HISTORY_DATA NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_PASSWORD_HISTORY_DATA
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_PASSWORD_HISTORY_DATA_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_DIALECT (
|
||||
ID INTEGER NOT NULL,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_DIALECT_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_CLAIM_DIALECT_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_DIALECT
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_CLAIM_DIALECT_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM (
|
||||
ID INTEGER NOT NULL,
|
||||
DIALECT_ID INTEGER NOT NULL,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_CLAIM_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_CLAIM_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER NOT NULL,
|
||||
LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_CLAIM_MAPPED_ATTR_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_MAPPED_ATTRIBUTE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER NOT NULL,
|
||||
LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_PROPERTY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_CLAIM_PROPERTY_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_PROPERTY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_CLAIM_PROPERTY_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_MAPPING (
|
||||
ID INTEGER NOT NULL,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPING_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_CLAIM_MAPPING_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_MAPPING
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_CLAIM_MAPPING_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER NOT NULL,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR(4096) ,
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_SAML2_ASSERTION_STORE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_SAML2_ASSERTION_STORE_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_SAML2_ASSERTION_STORE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_SAML2_ASSERTION_STORE_SEQ);
|
||||
END
|
||||
/
|
||||
CREATE TABLE IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) NOT NULL,
|
||||
EXP_TIME TIMESTAMP NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (JWT_ID))
|
||||
/
|
||||
|
||||
|
||||
CREATE TABLE IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_PROPERTY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_OIDC_PROPERTY_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_PROPERTY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_OIDC_PROPERTY_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER NOT NULL,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQUEST_OBJECT_REF_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_OIDC_REQUEST_OBJECT_REF_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJECT_REFERENCE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_OIDC_REQUEST_OBJECT_REF_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER NOT NULL,
|
||||
REQ_OBJECT_ID INTEGER ,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255),
|
||||
ESSENTIAL CHAR(1) NOT NULL DEFAULT '0',
|
||||
VALUE VARCHAR(255),
|
||||
IS_USERINFO CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJECT_CLAIMS_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_OIDC_REQ_OBJECT_CLAIMS_TRIG NO CASCADE
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJECT_CLAIMS
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_OIDC_REQ_OBJECT_CLAIMS_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER NOT NULL,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER,
|
||||
CLAIM_VALUES VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJECT_CLAIM_VALUES_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_OIDC_REQ_OBJECT_CLAIM_VALUES_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJ_CLAIM_VALUES
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID) = (NEXTVAL FOR IDN_OIDC_REQ_OBJECT_CLAIM_VALUES_SEQ);
|
||||
END
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CERTIFICATE (
|
||||
ID INTEGER NOT NULL,
|
||||
NAME VARCHAR(100) NOT NULL,
|
||||
CERTIFICATE_IN_PEM BLOB,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CERTIFICATE_SEQUENCE START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER IDN_CERTIFICATE_TRIGGER NO CASCADE BEFORE INSERT ON IDN_CERTIFICATE
|
||||
REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL
|
||||
BEGIN ATOMIC
|
||||
SET (NEW.ID)
|
||||
= (NEXTVAL FOR IDN_CERTIFICATE_SEQUENCE);
|
||||
END
|
||||
/
|
||||
|
||||
-- End of IDENTITY Tables--
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER NOT NULL ,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1234 NOT NULL,
|
||||
CONSTRAINT PII_CATEGORY_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PII_CATEGORY_SEQ
|
||||
START WITH 1
|
||||
INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER CM_PII_CATEGORY_TRIGGER NO CASCADE BEFORE INSERT ON CM_PII_CATEGORY
|
||||
REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL
|
||||
|
||||
BEGIN ATOMIC
|
||||
|
||||
SET (NEW.ID)
|
||||
= (NEXTVAL FOR CM_PII_CATEGORY_SEQ);
|
||||
|
||||
END
|
||||
/
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
VERSION VARCHAR(255) NOT NULL,
|
||||
JURISDICTION VARCHAR(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR(255) NOT NULL,
|
||||
LANGUAGE VARCHAR(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT -1234,
|
||||
POLICY_URL VARCHAR(255) NOT NULL,
|
||||
STATE VARCHAR(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT -1234 NOT NULL,
|
||||
CONSTRAINT PURPOSE_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PURPOSE_SEQ
|
||||
START WITH 1
|
||||
INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER CM_PURPOSE_TRIGGER NO CASCADE BEFORE INSERT ON CM_PURPOSE
|
||||
REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL
|
||||
|
||||
BEGIN ATOMIC
|
||||
|
||||
SET (NEW.ID)
|
||||
= (NEXTVAL FOR CM_PURPOSE_SEQ);
|
||||
|
||||
END
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT -1234 NOT NULL,
|
||||
CONSTRAINT PURPOSE_CATEGORY_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PURPOSE_CATEGORY_SEQ
|
||||
START WITH 1
|
||||
INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER CM_PURPOSE_CATEGORY_TRIGGER NO CASCADE BEFORE INSERT ON CM_PURPOSE_CATEGORY
|
||||
REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL
|
||||
|
||||
BEGIN ATOMIC
|
||||
|
||||
SET (NEW.ID)
|
||||
= (NEXTVAL FOR CM_PURPOSE_CATEGORY_SEQ);
|
||||
|
||||
END
|
||||
/
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER NOT NULL,
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
SP_NAME VARCHAR(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT -1234 NOT NULL,
|
||||
CONSTRAINT RECEIPT_SP_ASSOC_CONSTRAINT UNIQUE (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_RECEIPT_SP_ASSOC_SEQ
|
||||
START WITH 1
|
||||
INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER CM_RECEIPT_SP_ASSOC_TRIGGER NO CASCADE BEFORE INSERT ON CM_RECEIPT_SP_ASSOC
|
||||
REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL
|
||||
|
||||
BEGIN ATOMIC
|
||||
|
||||
SET (NEW.ID)
|
||||
= (NEXTVAL FOR CM_RECEIPT_SP_ASSOC_SEQ);
|
||||
|
||||
END
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER NOT NULL,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR(255),
|
||||
CONSTRAINT SP_PURPOSE_ASSOC UNIQUE (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_SP_PURPOSE_ASSOC_SEQ
|
||||
START WITH 1
|
||||
INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TRIGGER CM_SP_PURPOSE_ASSOC_TRIGGER NO CASCADE BEFORE INSERT ON CM_SP_PURPOSE_ASSOC
|
||||
REFERENCING NEW AS NEW FOR EACH ROW MODE DB2SQL
|
||||
|
||||
BEGIN ATOMIC
|
||||
|
||||
SET (NEW.ID)
|
||||
= (NEXTVAL FOR CM_SP_PURPOSE_ASSOC_SEQ);
|
||||
|
||||
END
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT SP_PUS_PS_CAT_ASSOC UNIQUE (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT PURPOSE_PII_CAT_ASSOC UNIQUE (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
CONSTRAINT SP_PURPOSE_PII_CATEGORY_ASSOC UNIQUE (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_SP_PURPOSE_PII_CAT_ASSOC_SEQ
|
||||
START WITH 1
|
||||
INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
VALUE VARCHAR(1023) NOT NULL,
|
||||
CONSTRAINT CONSENT_RECEIPT_PROPERTY UNIQUE (CONSENT_RECEIPT_ID, NAME)
|
||||
)
|
||||
/
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID)
|
||||
/
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID)
|
||||
/
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234')/
|
||||
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234')/
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- Start of API-MGT Tables --
|
||||
CREATE TABLE AM_SUBSCRIBER (
|
||||
@ -949,7 +1458,7 @@ CREATE TABLE AM_SUBSCRIPTION (
|
||||
|
||||
CREATE TABLE AM_SUBSCRIPTION_KEY_MAPPING (
|
||||
SUBSCRIPTION_ID INTEGER NOT NULL,
|
||||
ACCESS_TOKEN VARCHAR(255) NOT NULL,
|
||||
ACCESS_TOKEN VARCHAR(512) NOT NULL,
|
||||
KEY_TYPE VARCHAR(512) NOT NULL,
|
||||
FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON DELETE RESTRICT,
|
||||
PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
|
||||
@ -1045,7 +1554,7 @@ CREATE TABLE AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR(255) NOT NULL,
|
||||
APP_ID INT NOT NULL,
|
||||
TOKEN_TYPE VARCHAR(30) NOT NULL,
|
||||
TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR(1000),
|
||||
ALLOWED_DOMAINS VARCHAR(256),
|
||||
VALIDITY_PERIOD BIGINT,
|
||||
@ -1275,7 +1784,7 @@ CREATE TABLE AM_THROTTLE_TIER_PERMISSIONS (
|
||||
CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
CONDITION_ID INT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
|
||||
TYPE varchar(45) DEFAULT NULL,
|
||||
VALUE varchar(45) DEFAULT NULL,
|
||||
VALUE varchar(512) DEFAULT NULL,
|
||||
ENABLED varchar(45) DEFAULT NULL,
|
||||
DOMAIN varchar(45) DEFAULT NULL,
|
||||
UUID VARCHAR(256) NOT NULL,
|
||||
@ -1283,12 +1792,42 @@ CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
UNIQUE (UUID)
|
||||
) /
|
||||
|
||||
CREATE TABLE AM_CERTIFICATE_METADATA (
|
||||
TENANT_ID INT NOT NULL,
|
||||
ALIAS VARCHAR(45) NOT NULL,
|
||||
END_POINT VARCHAR(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (ALIAS),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (END_POINT)
|
||||
) /
|
||||
|
||||
CREATE TABLE AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INT NOT NULL,
|
||||
GROUP_ID VARCHAR(512) NOT NULL,
|
||||
TENANT VARCHAR(255) NOT NULL,
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE
|
||||
) /
|
||||
|
||||
CREATE TABLE AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN varchar(255) NOT NULL,
|
||||
FILE_NAME varchar(255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED SMALLINT NOT NULL DEFAULT 0,
|
||||
FILE_CONTENT BLOB DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP)
|
||||
) /
|
||||
|
||||
CREATE TABLE AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_DOMAIN VARCHAR(500) NOT NULL,
|
||||
API_ID VARCHAR(500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP(0) NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
) /
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
-- Performance indexes start--
|
||||
|
||||
create index IDX_ITS_LMT on IDN_THRIFT_SESSION (LAST_MODIFIED_TIME)/
|
||||
create index IDX_IOAT_AT on IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN)/
|
||||
create index IDX_IOAT_UT on IDN_OAUTH2_ACCESS_TOKEN (USER_TYPE)/
|
||||
create index IDX_AAI_CTX on AM_API (CONTEXT)/
|
||||
create index IDX_AAKM_CK on AM_APPLICATION_KEY_MAPPING (CONSUMER_KEY)/
|
||||
@ -1300,5 +1839,3 @@ create index IDX_APS_QT on AM_POLICY_SUBSCRIPTION (QUOTA_TYPE)/
|
||||
create index IDX_AS_AITIAI on AM_SUBSCRIPTION (API_ID,TIER_ID,APPLICATION_ID)/
|
||||
create index IDX_APA_QT on AM_POLICY_APPLICATION (QUOTA_TYPE)/
|
||||
create index IDX_AA_AT_CB on AM_APPLICATION (APPLICATION_TIER,CREATED_BY)/
|
||||
|
||||
-- Performance indexes end--
|
||||
|
||||
@ -9,7 +9,7 @@ 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),
|
||||
CONSUMER_SECRET VARCHAR (2048),
|
||||
USERNAME VARCHAR (255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -19,10 +19,21 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME BIGINT DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_REQUEST_TOKEN (
|
||||
REQUEST_TOKEN VARCHAR (512),
|
||||
REQUEST_TOKEN_SECRET VARCHAR (512),
|
||||
@ -50,8 +61,8 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR (255),
|
||||
REFRESH_TOKEN VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR (2048),
|
||||
REFRESH_TOKEN VARCHAR (2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
@ -66,6 +77,8 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR (512),
|
||||
REFRESH_TOKEN_HASH VARCHAR (512),
|
||||
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,
|
||||
@ -76,12 +89,14 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
|
||||
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR (512),
|
||||
AUTHORIZATION_CODE VARCHAR (2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR (1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
SCOPE VARCHAR(4096),
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -92,10 +107,13 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR (255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR (512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH, CONSUMER_KEY_ID);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
TOKEN_SCOPE VARCHAR (60),
|
||||
@ -106,17 +124,22 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
|
||||
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,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(512),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (SCOPE_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_RESOURCE_SCOPE (
|
||||
RESOURCE_PATH VARCHAR(255) NOT NULL,
|
||||
SCOPE_ID INTEGER (11) 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) ON DELETE CASCADE
|
||||
@ -174,7 +197,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
|
||||
);
|
||||
|
||||
@ -220,6 +243,7 @@ CREATE TABLE IF NOT EXISTS SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -243,6 +267,7 @@ CREATE TABLE IF NOT EXISTS SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -276,6 +301,7 @@ CREATE TABLE IF NOT EXISTS SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID));
|
||||
|
||||
@ -308,10 +334,20 @@ CREATE TABLE IF NOT EXISTS SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
BLOCKING CHAR(1) NOT NULL DEFAULT '0',
|
||||
RULE_ENABLED 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 SP_AUTH_SCRIPT (
|
||||
ID INTEGER AUTO_INCREMENT NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BLOB DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID));
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDP (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
@ -336,8 +372,6 @@ CREATE TABLE IF NOT EXISTS IDP (
|
||||
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,
|
||||
@ -388,10 +422,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR (
|
||||
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,
|
||||
@ -403,9 +433,6 @@ CREATE TABLE IF NOT EXISTS IDP_METADATA (
|
||||
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,
|
||||
@ -417,9 +444,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR_PROPERTY (
|
||||
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,
|
||||
@ -427,6 +451,7 @@ CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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);
|
||||
@ -514,7 +539,7 @@ CREATE TABLE IF NOT EXISTS WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR(255),
|
||||
HOST_URL_WORKER VARCHAR(255),
|
||||
USERNAME VARCHAR(45),
|
||||
PASSWORD VARCHAR(255),
|
||||
PASSWORD VARCHAR(1023),
|
||||
CALLBACK_HOST VARCHAR (45),
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
PRIMARY KEY (PROFILE_NAME, TENANT_ID)
|
||||
@ -573,6 +598,277 @@ CREATE TABLE IF NOT EXISTS WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR(255) NOT NULL,
|
||||
SCENARIO VARCHAR(255) NOT NULL,
|
||||
STEP VARCHAR(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
REMAINING_SETS VARCHAR(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR(255),
|
||||
HASH VARCHAR(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH),
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_DIALECT (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPING (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID),
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR(4096) ,
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255),
|
||||
EXP_TIME TIMESTAMP NOT NULL ,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
|
||||
PRIMARY KEY (JWT_ID)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_ID INTEGER,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) NOT NULL DEFAULT '0',
|
||||
VALUE VARCHAR(255) ,
|
||||
IS_USERINFO CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE (ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER ,
|
||||
CLAIM_VALUES VARCHAR(255) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CERTIFICATE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM BLOB,
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
PRIMARY KEY(ID),
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
VERSION VARCHAR(255) NOT NULL,
|
||||
JURISDICTION VARCHAR(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR(255) NOT NULL,
|
||||
LANGUAGE VARCHAR(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
POLICY_URL VARCHAR(255) NOT NULL,
|
||||
STATE VARCHAR(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
SP_NAME VARCHAR(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR(255),
|
||||
UNIQUE KEY (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
);
|
||||
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
VALUE VARCHAR(1023) NOT NULL,
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, NAME)
|
||||
);
|
||||
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234');
|
||||
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234');
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- Start of API-MGT Tables --
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIBER (
|
||||
@ -753,7 +1049,7 @@ CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR(255) NOT NULL,
|
||||
APP_ID INT,
|
||||
TOKEN_TYPE VARCHAR(30),
|
||||
TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR(1000),
|
||||
ALLOWED_DOMAINS VARCHAR(256),
|
||||
VALIDITY_PERIOD BIGINT,
|
||||
@ -978,7 +1274,7 @@ CREATE TABLE IF NOT EXISTS AM_THROTTLE_TIER_PERMISSIONS (
|
||||
CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
`CONDITION_ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`TYPE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(512) DEFAULT NULL,
|
||||
`ENABLED` varchar(45) DEFAULT NULL,
|
||||
`DOMAIN` varchar(45) DEFAULT NULL,
|
||||
`UUID` VARCHAR(256),
|
||||
@ -986,4 +1282,37 @@ CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
UNIQUE (UUID)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `AM_CERTIFICATE_METADATA` (
|
||||
`TENANT_ID` INT(11) NOT NULL,
|
||||
`ALIAS` VARCHAR(45) NOT NULL,
|
||||
`END_POINT` VARCHAR(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (`ALIAS`),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (`END_POINT`),
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR(512) NOT NULL,
|
||||
TENANT VARCHAR(255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN varchar(255) NOT NULL,
|
||||
FILE_NAME varchar(255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED tinyint(1) DEFAULT 0,
|
||||
FILE_CONTENT MEDIUMBLOB DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER(11) NOT NULL AUTO_INCREMENT,
|
||||
TENANT_DOMAIN VARCHAR(500) NOT NULL,
|
||||
API_ID VARCHAR(500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
@ -11,7 +11,7 @@ IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[I
|
||||
CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
|
||||
ID INTEGER IDENTITY,
|
||||
CONSUMER_KEY VARCHAR(255),
|
||||
CONSUMER_SECRET VARCHAR(512),
|
||||
CONSUMER_SECRET VARCHAR(2048),
|
||||
USERNAME VARCHAR(255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -21,10 +21,22 @@ CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR(1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME BIGINT DEFAULT 84600000,
|
||||
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_OAUTH2_SCOPE_VALIDATORS]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_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_REQUEST_TOKEN]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OAUTH1A_REQUEST_TOKEN (
|
||||
REQUEST_TOKEN VARCHAR(512),
|
||||
@ -55,8 +67,8 @@ CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
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),
|
||||
ACCESS_TOKEN VARCHAR(2048),
|
||||
REFRESH_TOKEN VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
@ -71,6 +83,8 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR(25) DEFAULT 'ACTIVE',
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR(512),
|
||||
REFRESH_TOKEN_HASH VARCHAR(512),
|
||||
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,
|
||||
@ -81,16 +95,18 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
|
||||
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH);
|
||||
|
||||
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 (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR(512),
|
||||
AUTHORIZATION_CODE VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR(1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
SCOPE VARCHAR(4096),
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -101,10 +117,13 @@ CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR (255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR(512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH,CONSUMER_KEY_ID);
|
||||
|
||||
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),
|
||||
@ -117,21 +136,27 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
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,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(512),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (SCOPE_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OAUTH2_SCOPE_BINDING]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
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) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_SCIM_GROUP]') AND TYPE IN (N'U'))
|
||||
@ -192,7 +217,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
|
||||
);
|
||||
|
||||
@ -243,11 +268,14 @@ CREATE TABLE SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT APPLICATION_NAME_CONSTRAINT UNIQUE(APP_NAME, TENANT_ID));
|
||||
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 (
|
||||
@ -259,7 +287,8 @@ CREATE TABLE SP_METADATA (
|
||||
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);
|
||||
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 (
|
||||
@ -267,11 +296,14 @@ CREATE TABLE SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT APPLICATION_ID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -282,7 +314,9 @@ CREATE TABLE SP_AUTH_STEP (
|
||||
IS_SUBJECT_STEP CHAR(1) DEFAULT '0',
|
||||
IS_ATTRIBUTE_STEP CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT APPLICATION_ID_CONSTRAINT_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -290,7 +324,9 @@ CREATE TABLE SP_FEDERATED_IDP (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
AUTHENTICATOR_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID, AUTHENTICATOR_ID),
|
||||
CONSTRAINT STEP_ID_CONSTRAINT FOREIGN KEY (ID) REFERENCES SP_AUTH_STEP (ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -300,9 +336,12 @@ CREATE TABLE SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT CLAIMID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -312,7 +351,9 @@ CREATE TABLE SP_ROLE_MAPPING (
|
||||
SP_ROLE VARCHAR (255) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT ROLEID_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -321,7 +362,9 @@ CREATE TABLE SP_REQ_PATH_AUTHENTICATOR (
|
||||
AUTHENTICATOR_NAME VARCHAR (255) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT REQ_AUTH_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -332,8 +375,21 @@ CREATE TABLE SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
BLOCKING CHAR(1) NOT NULL DEFAULT '0',
|
||||
RULE_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE);
|
||||
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].[SP_AUTH_SCRIPT]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE SP_AUTH_SCRIPT (
|
||||
ID INTEGER IDENTITY NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT VARBINARY(MAX) DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDP]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDP (
|
||||
@ -358,9 +414,8 @@ CREATE TABLE IDP (
|
||||
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');
|
||||
UNIQUE (TENANT_ID, NAME)
|
||||
);
|
||||
|
||||
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 (
|
||||
@ -370,7 +425,8 @@ CREATE TABLE IDP_ROLE (
|
||||
ROLE VARCHAR(254),
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (IDP_ID, ROLE),
|
||||
FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -381,7 +437,8 @@ CREATE TABLE IDP_ROLE_MAPPING (
|
||||
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);
|
||||
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 (
|
||||
@ -391,7 +448,8 @@ CREATE TABLE IDP_CLAIM (
|
||||
CLAIM VARCHAR(254),
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (IDP_ID, CLAIM),
|
||||
FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE);
|
||||
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 (
|
||||
@ -403,7 +461,8 @@ CREATE TABLE IDP_CLAIM_MAPPING (
|
||||
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);
|
||||
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 (
|
||||
@ -415,11 +474,8 @@ CREATE TABLE IDP_AUTHENTICATOR (
|
||||
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');
|
||||
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_METADATA]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDP_METADATA (
|
||||
@ -431,10 +487,8 @@ CREATE TABLE IDP_METADATA (
|
||||
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');
|
||||
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_AUTHENTICATOR_PROPERTY]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDP_AUTHENTICATOR_PROPERTY (
|
||||
@ -446,10 +500,8 @@ CREATE TABLE IDP_AUTHENTICATOR_PROPERTY (
|
||||
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');
|
||||
FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
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 (
|
||||
@ -459,9 +511,11 @@ CREATE TABLE IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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);
|
||||
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 (
|
||||
@ -475,7 +529,8 @@ CREATE TABLE IDP_PROV_CONFIG_PROPERTY (
|
||||
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);
|
||||
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 (
|
||||
@ -490,7 +545,8 @@ CREATE TABLE IDP_PROVISIONING_ENTITY (
|
||||
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);
|
||||
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 (
|
||||
@ -502,7 +558,8 @@ CREATE TABLE IDP_LOCAL_CLAIM (
|
||||
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);
|
||||
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 (
|
||||
@ -523,7 +580,8 @@ CREATE TABLE IDN_USER_ACCOUNT_ASSOCIATION (
|
||||
TENANT_ID INTEGER,
|
||||
DOMAIN_NAME VARCHAR(255) NOT NULL,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
PRIMARY KEY (TENANT_ID, DOMAIN_NAME, USER_NAME));
|
||||
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 (
|
||||
@ -533,7 +591,8 @@ CREATE TABLE FIDO_DEVICE_STORE (
|
||||
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));
|
||||
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 (
|
||||
@ -554,7 +613,7 @@ CREATE TABLE WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR(255),
|
||||
HOST_URL_WORKER VARCHAR(255),
|
||||
USERNAME VARCHAR(45),
|
||||
PASSWORD VARCHAR(255),
|
||||
PASSWORD VARCHAR(1023),
|
||||
CALLBACK_HOST VARCHAR (45),
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
PRIMARY KEY (PROFILE_NAME, TENANT_ID)
|
||||
@ -620,6 +679,282 @@ CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
|
||||
);
|
||||
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_RECOVERY_DATA]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR(255) NOT NULL,
|
||||
SCENARIO VARCHAR(255) NOT NULL,
|
||||
STEP VARCHAR(127) NOT NULL,
|
||||
TIME_CREATED DATETIME NOT NULL,
|
||||
REMAINING_SETS VARCHAR(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_PASSWORD_HISTORY_DATA]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER NOT NULL IDENTITY ,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR(255),
|
||||
HASH VARCHAR(255) NOT NULL,
|
||||
TIME_CREATED DATETIME NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH),
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_CLAIM_DIALECT]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_CLAIM_DIALECT (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_CLAIM]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_CLAIM (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_CLAIM_MAPPED_ATTRIBUTE]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_CLAIM_PROPERTY]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_CLAIM_MAPPING]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_CLAIM_MAPPING (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE ,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE NO ACTION ,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_SAML2_ASSERTION_STORE]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR(4096) ,
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OIDC_JTI]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) NOT NULL,
|
||||
EXP_TIME DATETIME NOT NULL,
|
||||
TIME_CREATED DATETIME NOT NULL,
|
||||
PRIMARY KEY (JWT_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OIDC_PROPERTY]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
TENANT_ID INTEGER ,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL ,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OIDC_REQ_OBJECT_REFERENCE]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE ,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID),
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OIDC_REQ_OBJECT_CLAIMS]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
REQ_OBJECT_ID INTEGER,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) NOT NULL DEFAULT '0' ,
|
||||
VALUE VARCHAR(255) ,
|
||||
IS_USERINFO CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE (ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_OIDC_REQ_OBJ_CLAIM_VALUES]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER ,
|
||||
CLAIM_VALUES VARCHAR(255) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[IDN_CERTIFICATE]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE IDN_CERTIFICATE (
|
||||
ID INTEGER IDENTITY,
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM VARBINARY(MAX),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
PRIMARY KEY(ID),
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_PII_CATEGORY]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_PII_CATEGORY_CNT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_RECEIPT]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
VERSION VARCHAR(255) NOT NULL,
|
||||
JURISDICTION VARCHAR(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP DATETIME NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR(255) NOT NULL,
|
||||
LANGUAGE VARCHAR(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
POLICY_URL VARCHAR(255) NOT NULL,
|
||||
STATE VARCHAR(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_PURPOSE]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_PURPOSE_CNT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_PURPOSE_CATEGORY]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_PURPOSE_CATEGORY_CNT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_RECEIPT_SP_ASSOC]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
SP_NAME VARCHAR(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_RECEIPT_SP_ASSOC_CNT UNIQUE (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_SP_PURPOSE_ASSOC]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR(255),
|
||||
CONSTRAINT CM_SP_PURPOSE_ASSOC_CNT UNIQUE (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID),
|
||||
FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_SP_PURPOSE_PURPOSE_CAT_ASSC]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT CM_SP_PURPOSE_PURPOSE_CAT_ASSC_CNT UNIQUE (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID),
|
||||
FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID),
|
||||
FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_PURPOSE_PII_CAT_ASSOC]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT CM_PURPOSE_PII_CAT_ASSOC_CNT UNIQUE (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_SP_PURPOSE_PII_CAT_ASSOC]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
CONSTRAINT CM_SP_PURPOSE_PII_CAT_ASSOC_CNT UNIQUE (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID),
|
||||
FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID),
|
||||
FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[CM_CONSENT_RECEIPT_PROPERTY]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
VALUE VARCHAR(1023) NOT NULL,
|
||||
CONSTRAINT CM_CONSENT_RECEIPT_PROPERTY_CNT UNIQUE (CONSENT_RECEIPT_ID, NAME),
|
||||
FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID)
|
||||
);
|
||||
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234');
|
||||
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234');
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- 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'))
|
||||
@ -716,7 +1051,7 @@ IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[A
|
||||
|
||||
CREATE TABLE AM_SUBSCRIPTION_KEY_MAPPING (
|
||||
SUBSCRIPTION_ID INTEGER,
|
||||
ACCESS_TOKEN VARCHAR(255),
|
||||
ACCESS_TOKEN VARCHAR(512),
|
||||
KEY_TYPE VARCHAR(512) NOT NULL,
|
||||
FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON UPDATE CASCADE,
|
||||
PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
|
||||
@ -742,7 +1077,7 @@ CREATE TABLE AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR(255) NOT NULL,
|
||||
APP_ID INTEGER,
|
||||
TOKEN_TYPE VARCHAR(30),
|
||||
TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR(1000),
|
||||
ALLOWED_DOMAINS VARCHAR(256),
|
||||
VALIDITY_PERIOD BIGINT,
|
||||
@ -1072,7 +1407,7 @@ IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[A
|
||||
CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
CONDITION_ID INTEGER IDENTITY(1,1),
|
||||
TYPE varchar(45) DEFAULT NULL,
|
||||
VALUE varchar(45) DEFAULT NULL,
|
||||
VALUE varchar(512) DEFAULT NULL,
|
||||
ENABLED varchar(45) DEFAULT NULL,
|
||||
DOMAIN varchar(45) DEFAULT NULL,
|
||||
UUID VARCHAR(256),
|
||||
@ -1080,13 +1415,49 @@ CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
UNIQUE (UUID)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_CERTIFICATE_METADATA]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE AM_CERTIFICATE_METADATA (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
ALIAS VARCHAR(45) NOT NULL,
|
||||
END_POINT VARCHAR(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (ALIAS),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (END_POINT)
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_APPLICATION_GROUP_MAPPING]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR(512),
|
||||
TENANT VARCHAR(255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_USAGE_UPLOADED_FILES]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN VARCHAR(255) NOT NULL,
|
||||
FILE_NAME VARCHAR(255) NOT NULL,
|
||||
FILE_TIMESTAMP DATETIME DEFAULT GETDATE(),
|
||||
FILE_PROCESSED INTEGER DEFAULT 0,
|
||||
FILE_CONTENT VARBINARY(MAX) DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP)
|
||||
);
|
||||
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[AM_API_LC_PUBLISH_EVENTS]') AND TYPE IN (N'U'))
|
||||
CREATE TABLE AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER NOT NULL IDENTITY,
|
||||
TENANT_DOMAIN VARCHAR(255) NOT NULL,
|
||||
API_ID VARCHAR(500) NOT NULL,
|
||||
EVENT_TIME DATETIME DEFAULT GETDATE(),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
|
||||
--Permance indexes start--
|
||||
|
||||
create index IDX_ITS_LMT on IDN_THRIFT_SESSION (LAST_MODIFIED_TIME);
|
||||
create index IDX_IOAT_AT on IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN);
|
||||
create index IDX_IOAT_UT on IDN_OAUTH2_ACCESS_TOKEN (USER_TYPE);
|
||||
create index IDX_AAI_CTX on AM_API (CONTEXT);
|
||||
create index IDX_AAKM_CK on AM_APPLICATION_KEY_MAPPING (CONSUMER_KEY);
|
||||
|
||||
@ -10,7 +10,7 @@ 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),
|
||||
CONSUMER_SECRET VARCHAR(2048),
|
||||
USERNAME VARCHAR(255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -20,10 +20,21 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME BIGINT DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_REQUEST_TOKEN (
|
||||
REQUEST_TOKEN VARCHAR(255),
|
||||
REQUEST_TOKEN_SECRET VARCHAR(512),
|
||||
@ -51,8 +62,8 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR(255),
|
||||
REFRESH_TOKEN VARCHAR(255),
|
||||
ACCESS_TOKEN VARCHAR(2048),
|
||||
REFRESH_TOKEN VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
@ -67,6 +78,8 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR(25) DEFAULT 'ACTIVE',
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR(512),
|
||||
REFRESH_TOKEN_HASH VARCHAR(512),
|
||||
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,
|
||||
@ -77,12 +90,14 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
|
||||
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR(512),
|
||||
AUTHORIZATION_CODE VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR(1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
SCOPE VARCHAR(4096),
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -93,10 +108,13 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR(512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH,CONSUMER_KEY_ID);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
TOKEN_SCOPE VARCHAR (60),
|
||||
@ -106,21 +124,26 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
)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,
|
||||
SCOPE_ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(512),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (SCOPE_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_RESOURCE_SCOPE (
|
||||
RESOURCE_PATH VARCHAR(255) NOT NULL,
|
||||
SCOPE_ID INTEGER (11) 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) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_SCIM_GROUP (
|
||||
@ -175,7 +198,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
|
||||
)ENGINE INNODB;
|
||||
|
||||
@ -222,6 +245,7 @@ CREATE TABLE IF NOT EXISTS SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -247,6 +271,7 @@ CREATE TABLE IF NOT EXISTS SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -283,6 +308,7 @@ CREATE TABLE IF NOT EXISTS SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
@ -318,11 +344,21 @@ CREATE TABLE IF NOT EXISTS SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
BLOCKING CHAR(1) NOT NULL DEFAULT '0',
|
||||
RULE_ENABLED 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 SP_AUTH_SCRIPT (
|
||||
ID INTEGER AUTO_INCREMENT NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BLOB DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID));
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDP (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
@ -348,8 +384,6 @@ CREATE TABLE IF NOT EXISTS IDP (
|
||||
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,
|
||||
@ -405,10 +439,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR (
|
||||
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,
|
||||
@ -421,9 +451,6 @@ CREATE TABLE IF NOT EXISTS IDP_METADATA (
|
||||
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,
|
||||
@ -436,9 +463,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR_PROPERTY (
|
||||
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,
|
||||
@ -446,6 +470,7 @@ CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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
|
||||
@ -539,7 +564,7 @@ CREATE TABLE IF NOT EXISTS WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR(255),
|
||||
HOST_URL_WORKER VARCHAR(255),
|
||||
USERNAME VARCHAR(45),
|
||||
PASSWORD VARCHAR(255),
|
||||
PASSWORD VARCHAR(1023),
|
||||
CALLBACK_HOST VARCHAR (45),
|
||||
CALLBACK_USERNAME VARCHAR (45),
|
||||
CALLBACK_PASSWORD VARCHAR (255),
|
||||
@ -601,8 +626,279 @@ CREATE TABLE IF NOT EXISTS WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR(255) NOT NULL,
|
||||
SCENARIO VARCHAR(255) NOT NULL,
|
||||
STEP VARCHAR(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
REMAINING_SETS VARCHAR(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR(255),
|
||||
HASH VARCHAR(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_DIALECT (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPING (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR(4096) ,
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) NOT NULL,
|
||||
EXP_TIME TIMESTAMP NOT NULL ,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
|
||||
PRIMARY KEY (JWT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_ID INTEGER,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) DEFAULT '0' ,
|
||||
VALUE VARCHAR(255) ,
|
||||
IS_USERINFO CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE (ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER ,
|
||||
CLAIM_VALUES VARCHAR(255) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CERTIFICATE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM BLOB,
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
PRIMARY KEY(ID),
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
|
||||
-- End of IDENTITY Tables--
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
VERSION VARCHAR(255) NOT NULL,
|
||||
JURISDICTION VARCHAR(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR(255) NOT NULL,
|
||||
LANGUAGE VARCHAR(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
POLICY_URL VARCHAR(255) NOT NULL,
|
||||
STATE VARCHAR(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
SP_NAME VARCHAR(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR(255),
|
||||
UNIQUE KEY (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
VALUE VARCHAR(1023) NOT NULL,
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, NAME)
|
||||
)ENGINE INNODB;
|
||||
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234');
|
||||
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234');
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- Start of API-MGT Tables --
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIBER (
|
||||
SUBSCRIBER_ID INTEGER AUTO_INCREMENT,
|
||||
@ -686,7 +982,7 @@ CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION_KEY_MAPPING (
|
||||
SUBSCRIPTION_ID INTEGER,
|
||||
ACCESS_TOKEN VARCHAR(255),
|
||||
ACCESS_TOKEN VARCHAR(512),
|
||||
KEY_TYPE VARCHAR(255) NOT NULL,
|
||||
FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
|
||||
@ -781,7 +1077,7 @@ CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR(255) NOT NULL,
|
||||
APP_ID INT,
|
||||
TOKEN_TYPE VARCHAR(30),
|
||||
TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR(1000),
|
||||
ALLOWED_DOMAINS VARCHAR(256),
|
||||
VALIDITY_PERIOD BIGINT,
|
||||
@ -1010,7 +1306,7 @@ ENGINE = InnoDB;
|
||||
CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
`CONDITION_ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`TYPE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(512) DEFAULT NULL,
|
||||
`ENABLED` varchar(45) DEFAULT NULL,
|
||||
`DOMAIN` varchar(45) DEFAULT NULL,
|
||||
`UUID` VARCHAR(254),
|
||||
@ -1018,17 +1314,47 @@ CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
UNIQUE (`UUID`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `AM_CERTIFICATE_METADATA` (
|
||||
`TENANT_ID` INT(11) NOT NULL,
|
||||
`ALIAS` VARCHAR(45) NOT NULL,
|
||||
`END_POINT` VARCHAR(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (`ALIAS`),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (`END_POINT`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR(512)NOT NULL,
|
||||
TENANT VARCHAR(255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN varchar(255) NOT NULL,
|
||||
FILE_NAME varchar(255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED tinyint(1) DEFAULT FALSE,
|
||||
FILE_CONTENT MEDIUMBLOB DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER(11) NOT NULL AUTO_INCREMENT,
|
||||
TENANT_DOMAIN VARCHAR(500) NOT NULL,
|
||||
API_ID VARCHAR(500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
-- Performance indexes start--
|
||||
|
||||
create index IDX_ITS_LMT on IDN_THRIFT_SESSION (LAST_MODIFIED_TIME);
|
||||
create index IDX_IOAT_AT on IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN);
|
||||
create index IDX_IOAT_UT on IDN_OAUTH2_ACCESS_TOKEN (USER_TYPE);
|
||||
create index IDX_AAI_CTX on AM_API (CONTEXT);
|
||||
create index IDX_AAKM_CK on AM_APPLICATION_KEY_MAPPING (CONSUMER_KEY);
|
||||
create index IDX_AAUM_AI on AM_API_URL_MAPPING (API_ID);
|
||||
create index IDX_AAUM_TT on AM_API_URL_MAPPING (THROTTLING_TIER);
|
||||
create index IDX_AATP_DQT on AM_API_THROTTLE_POLICY (DEFAULT_QUOTA_TYPE);
|
||||
create index IDX_ACG_QT on AM_CONDITION_GROUP (QUOTA_TYPE);
|
||||
create index IDX_APS_QT on AM_POLICY_SUBSCRIPTION (QUOTA_TYPE);
|
||||
|
||||
@ -10,7 +10,7 @@ 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),
|
||||
CONSUMER_SECRET VARCHAR(2048),
|
||||
USERNAME VARCHAR(255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -20,10 +20,21 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME BIGINT DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_REQUEST_TOKEN (
|
||||
REQUEST_TOKEN VARCHAR(255),
|
||||
REQUEST_TOKEN_SECRET VARCHAR(512),
|
||||
@ -51,22 +62,24 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR(255),
|
||||
REFRESH_TOKEN VARCHAR(255),
|
||||
ACCESS_TOKEN VARCHAR(2048),
|
||||
REFRESH_TOKEN VARCHAR(2048),
|
||||
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 DEFAULT CURRENT_TIMESTAMP,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
REFRESH_TOKEN_TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_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',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR(512),
|
||||
REFRESH_TOKEN_HASH VARCHAR(512),
|
||||
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,
|
||||
@ -77,12 +90,14 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
|
||||
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR(512),
|
||||
AUTHORIZATION_CODE VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR(1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
SCOPE VARCHAR(4096),
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -93,10 +108,13 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR(512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH,CONSUMER_KEY_ID);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
TOKEN_SCOPE VARCHAR (60),
|
||||
@ -106,21 +124,26 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
)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,
|
||||
SCOPE_ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(512),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (SCOPE_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_RESOURCE_SCOPE (
|
||||
RESOURCE_PATH VARCHAR(255) NOT NULL,
|
||||
SCOPE_ID INTEGER (11) 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) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_SCIM_GROUP (
|
||||
@ -175,7 +198,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
|
||||
)ENGINE INNODB;
|
||||
|
||||
@ -222,6 +245,7 @@ CREATE TABLE IF NOT EXISTS SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -247,6 +271,7 @@ CREATE TABLE IF NOT EXISTS SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -283,6 +308,7 @@ CREATE TABLE IF NOT EXISTS SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
@ -318,11 +344,21 @@ CREATE TABLE IF NOT EXISTS SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
BLOCKING CHAR(1) NOT NULL DEFAULT '0',
|
||||
RULE_ENABLED 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 SP_AUTH_SCRIPT (
|
||||
ID INTEGER AUTO_INCREMENT NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BLOB DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID));
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDP (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
@ -348,8 +384,6 @@ CREATE TABLE IF NOT EXISTS IDP (
|
||||
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,
|
||||
@ -405,10 +439,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR (
|
||||
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,
|
||||
@ -421,9 +451,6 @@ CREATE TABLE IF NOT EXISTS IDP_METADATA (
|
||||
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,
|
||||
@ -436,9 +463,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR_PROPERTY (
|
||||
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,
|
||||
@ -446,6 +470,7 @@ CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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
|
||||
@ -539,7 +564,7 @@ CREATE TABLE IF NOT EXISTS WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR(255),
|
||||
HOST_URL_WORKER VARCHAR(255),
|
||||
USERNAME VARCHAR(45),
|
||||
PASSWORD VARCHAR(255),
|
||||
PASSWORD VARCHAR(1023),
|
||||
CALLBACK_HOST VARCHAR (45),
|
||||
CALLBACK_USERNAME VARCHAR (45),
|
||||
CALLBACK_PASSWORD VARCHAR (255),
|
||||
@ -601,8 +626,279 @@ CREATE TABLE IF NOT EXISTS WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR(255) NOT NULL,
|
||||
SCENARIO VARCHAR(255) NOT NULL,
|
||||
STEP VARCHAR(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
REMAINING_SETS VARCHAR(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR(255),
|
||||
HASH VARCHAR(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_DIALECT (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPING (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR(4096) ,
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) NOT NULL,
|
||||
EXP_TIME TIMESTAMP NOT NULL ,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
|
||||
PRIMARY KEY (JWT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_ID INTEGER,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) NOT NULL DEFAULT '0' ,
|
||||
VALUE VARCHAR(255) ,
|
||||
IS_USERINFO CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE (ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER ,
|
||||
CLAIM_VALUES VARCHAR(255) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CERTIFICATE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM BLOB,
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
PRIMARY KEY(ID),
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
|
||||
-- End of IDENTITY Tables--
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
VERSION VARCHAR(255) NOT NULL,
|
||||
JURISDICTION VARCHAR(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR(255) NOT NULL,
|
||||
LANGUAGE VARCHAR(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
POLICY_URL VARCHAR(255) NOT NULL,
|
||||
STATE VARCHAR(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
SP_NAME VARCHAR(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR(255),
|
||||
UNIQUE KEY (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
)ENGINE INNODB;
|
||||
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
VALUE VARCHAR(1023) NOT NULL,
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, NAME)
|
||||
)ENGINE INNODB;
|
||||
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234');
|
||||
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234');
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- Start of API-MGT Tables --
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIBER (
|
||||
SUBSCRIBER_ID INTEGER AUTO_INCREMENT,
|
||||
@ -686,7 +982,7 @@ CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION_KEY_MAPPING (
|
||||
SUBSCRIPTION_ID INTEGER,
|
||||
ACCESS_TOKEN VARCHAR(255),
|
||||
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)
|
||||
@ -781,7 +1077,7 @@ CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR(255) NOT NULL,
|
||||
APP_ID INT,
|
||||
TOKEN_TYPE VARCHAR(30),
|
||||
TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR(1000),
|
||||
ALLOWED_DOMAINS VARCHAR(256),
|
||||
VALIDITY_PERIOD BIGINT,
|
||||
@ -1009,7 +1305,7 @@ ENGINE = InnoDB;
|
||||
CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
`CONDITION_ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`TYPE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(512) DEFAULT NULL,
|
||||
`ENABLED` varchar(45) DEFAULT NULL,
|
||||
`DOMAIN` varchar(45) DEFAULT NULL,
|
||||
`UUID` VARCHAR(256),
|
||||
@ -1017,12 +1313,43 @@ CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
UNIQUE (`UUID`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `AM_CERTIFICATE_METADATA` (
|
||||
`TENANT_ID` INT(11) NOT NULL,
|
||||
`ALIAS` VARCHAR(45) NOT NULL,
|
||||
`END_POINT` VARCHAR(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (`ALIAS`),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (`END_POINT`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR(512) NOT NULL,
|
||||
TENANT VARCHAR(255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN varchar(255) NOT NULL,
|
||||
FILE_NAME varchar(255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED tinyint(1) DEFAULT FALSE,
|
||||
FILE_CONTENT MEDIUMBLOB DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER(11) NOT NULL AUTO_INCREMENT,
|
||||
TENANT_DOMAIN VARCHAR(500) NOT NULL,
|
||||
API_ID VARCHAR(500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
) ENGINE=InnoDB;
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
-- Performance indexes start--
|
||||
|
||||
create index IDX_ITS_LMT on IDN_THRIFT_SESSION (LAST_MODIFIED_TIME);
|
||||
create index IDX_IOAT_AT on IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN);
|
||||
create index IDX_IOAT_UT on IDN_OAUTH2_ACCESS_TOKEN (USER_TYPE);
|
||||
create index IDX_AAI_CTX on AM_API (CONTEXT);
|
||||
create index IDX_AAKM_CK on AM_APPLICATION_KEY_MAPPING (CONSUMER_KEY);
|
||||
|
||||
@ -19,13 +19,24 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME BIGINT DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_REQUEST_TOKEN (
|
||||
REQUEST_TOKEN VARCHAR(255),
|
||||
REQUEST_TOKEN_SECRET VARCHAR(512),
|
||||
REQUEST_TOKEN_SECRET VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR(1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
@ -50,8 +61,8 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR(255),
|
||||
REFRESH_TOKEN VARCHAR(255),
|
||||
ACCESS_TOKEN VARCHAR(2048),
|
||||
REFRESH_TOKEN VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
@ -66,6 +77,8 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR(25) DEFAULT 'ACTIVE',
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR(512),
|
||||
REFRESH_TOKEN_HASH VARCHAR(512),
|
||||
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,
|
||||
@ -76,12 +89,14 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
|
||||
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR(512),
|
||||
AUTHORIZATION_CODE VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR(1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
SCOPE VARCHAR(4096),
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -92,10 +107,13 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR(512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH,CONSUMER_KEY_ID);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
TOKEN_SCOPE VARCHAR (60),
|
||||
@ -105,21 +123,26 @@ CREATE TABLE IF NOT EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
)ENGINE NDB;
|
||||
|
||||
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,
|
||||
SCOPE_ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(512),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (SCOPE_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_RESOURCE_SCOPE (
|
||||
RESOURCE_PATH VARCHAR(255) NOT NULL,
|
||||
SCOPE_ID INTEGER (11) 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) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_SCIM_GROUP (
|
||||
@ -174,7 +197,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
|
||||
)ENGINE NDB;
|
||||
|
||||
@ -221,6 +244,7 @@ CREATE TABLE IF NOT EXISTS SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -246,6 +270,7 @@ CREATE TABLE IF NOT EXISTS SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -282,6 +307,7 @@ CREATE TABLE IF NOT EXISTS SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
@ -317,11 +343,21 @@ CREATE TABLE IF NOT EXISTS SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
BLOCKING CHAR(1) NOT NULL DEFAULT '0',
|
||||
RULE_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE;
|
||||
|
||||
CREATE TABLE SP_AUTH_SCRIPT (
|
||||
ID INTEGER AUTO_INCREMENT NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BLOB DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID));
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDP (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
@ -347,8 +383,6 @@ CREATE TABLE IF NOT EXISTS IDP (
|
||||
UNIQUE (TENANT_ID, NAME)
|
||||
)ENGINE NDB;
|
||||
|
||||
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,
|
||||
@ -404,10 +438,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR (
|
||||
FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
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,
|
||||
@ -420,9 +450,6 @@ CREATE TABLE IF NOT EXISTS IDP_METADATA (
|
||||
FOREIGN KEY (IDP_ID) REFERENCES IDP(ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
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,
|
||||
@ -435,9 +462,6 @@ CREATE TABLE IF NOT EXISTS IDP_AUTHENTICATOR_PROPERTY (
|
||||
FOREIGN KEY (AUTHENTICATOR_ID) REFERENCES IDP_AUTHENTICATOR(ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
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,
|
||||
@ -445,6 +469,7 @@ CREATE TABLE IF NOT EXISTS IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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
|
||||
@ -538,7 +563,7 @@ CREATE TABLE IF NOT EXISTS WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR(255),
|
||||
HOST_URL_WORKER VARCHAR(255),
|
||||
USERNAME VARCHAR(45),
|
||||
PASSWORD VARCHAR(255),
|
||||
PASSWORD VARCHAR(1023),
|
||||
CALLBACK_HOST VARCHAR (45),
|
||||
CALLBACK_USERNAME VARCHAR (45),
|
||||
CALLBACK_PASSWORD VARCHAR (255),
|
||||
@ -600,7 +625,278 @@ CREATE TABLE IF NOT EXISTS WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
-- End of IDN Tables--
|
||||
CREATE TABLE IF NOT EXISTS IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR(255) NOT NULL,
|
||||
SCENARIO VARCHAR(255) NOT NULL,
|
||||
STEP VARCHAR(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
REMAINING_SETS VARCHAR(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR(255),
|
||||
HASH VARCHAR(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_DIALECT (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CLAIM_MAPPING (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR(4096) ,
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) NOT NULL,
|
||||
EXP_TIME TIMESTAMP NOT NULL ,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
|
||||
PRIMARY KEY (JWT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_ID INTEGER,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) DEFAULT '0' ,
|
||||
VALUE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) DEFAULT '0' ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE (ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER ,
|
||||
CLAIM_VALUES VARCHAR(255) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS IDN_CERTIFICATE (
|
||||
ID INTEGER NOT NULL AUTO_INCREMENT,
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM BLOB,
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
PRIMARY KEY(ID),
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
|
||||
-- End of IDENTITY Tables--
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
VERSION VARCHAR(255) NOT NULL,
|
||||
JURISDICTION VARCHAR(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR(255) NOT NULL,
|
||||
LANGUAGE VARCHAR(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
POLICY_URL VARCHAR(255) NOT NULL,
|
||||
STATE VARCHAR(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
SP_NAME VARCHAR(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER AUTO_INCREMENT,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR(255),
|
||||
UNIQUE KEY (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
UNIQUE KEY (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
UNIQUE KEY (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
)ENGINE NDB;
|
||||
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
VALUE VARCHAR(1023) NOT NULL,
|
||||
UNIQUE KEY (CONSENT_RECEIPT_ID, NAME)
|
||||
)ENGINE NDB;
|
||||
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234');
|
||||
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234');
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- Start of API-MGT Tables --
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIBER (
|
||||
@ -685,7 +981,7 @@ CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIPTION_KEY_MAPPING (
|
||||
SUBSCRIPTION_ID INTEGER,
|
||||
ACCESS_TOKEN VARCHAR(255),
|
||||
ACCESS_TOKEN VARCHAR(512),
|
||||
KEY_TYPE VARCHAR(255) NOT NULL,
|
||||
FOREIGN KEY(SUBSCRIPTION_ID) REFERENCES AM_SUBSCRIPTION(SUBSCRIPTION_ID) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
PRIMARY KEY(SUBSCRIPTION_ID,ACCESS_TOKEN)
|
||||
@ -780,7 +1076,7 @@ CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR(255) NOT NULL,
|
||||
APP_ID INT,
|
||||
TOKEN_TYPE VARCHAR(30),
|
||||
TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR(1000),
|
||||
ALLOWED_DOMAINS VARCHAR(256),
|
||||
VALIDITY_PERIOD BIGINT,
|
||||
@ -1010,7 +1306,7 @@ ENGINE = NDB;
|
||||
CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
`CONDITION_ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`TYPE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(45) DEFAULT NULL,
|
||||
`VALUE` varchar(512) DEFAULT NULL,
|
||||
`ENABLED` varchar(45) DEFAULT NULL,
|
||||
`DOMAIN` varchar(45) DEFAULT NULL,
|
||||
`UUID` VARCHAR(254),
|
||||
@ -1018,12 +1314,43 @@ CREATE TABLE `AM_BLOCK_CONDITIONS` (
|
||||
UNIQUE (`UUID`)
|
||||
) ENGINE = NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `AM_CERTIFICATE_METADATA` (
|
||||
`TENANT_ID` INT(11) NOT NULL,
|
||||
`ALIAS` VARCHAR(45) NOT NULL,
|
||||
`END_POINT` VARCHAR(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (`ALIAS`),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (`END_POINT`)
|
||||
) ENGINE = NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR(512) NOT NULL,
|
||||
TENANT VARCHAR(255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=NDB;
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN varchar(255) NOT NULL,
|
||||
FILE_NAME varchar(255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED tinyint(1) DEFAULT FALSE,
|
||||
FILE_CONTENT MEDIUMBLOB DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP)
|
||||
) ENGINE=NDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER(11) NOT NULL AUTO_INCREMENT,
|
||||
TENANT_DOMAIN VARCHAR(500) NOT NULL,
|
||||
API_ID VARCHAR(500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
) ENGINE=NDB;
|
||||
|
||||
-- Performance indexes start--
|
||||
|
||||
create index IDX_ITS_LMT on IDN_THRIFT_SESSION (LAST_MODIFIED_TIME);
|
||||
create index IDX_IOAT_AT on IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN);
|
||||
create index IDX_IOAT_UT on IDN_OAUTH2_ACCESS_TOKEN (USER_TYPE);
|
||||
create index IDX_AAI_CTX on AM_API (CONTEXT);
|
||||
create index IDX_AAKM_CK on AM_APPLICATION_KEY_MAPPING (CONSUMER_KEY);
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
--
|
||||
|
||||
-- Start of IDN Tables --
|
||||
|
||||
CREATE TABLE IDN_BASE_TABLE (
|
||||
PRODUCT_NAME VARCHAR2 (20),
|
||||
PRIMARY KEY (PRODUCT_NAME))
|
||||
@ -16,7 +15,7 @@ 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),
|
||||
CONSUMER_SECRET VARCHAR2 (2048),
|
||||
USERNAME VARCHAR2 (255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -26,9 +25,20 @@ CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME NUMBER(19) DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME NUMBER(19) DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME NUMBER(19) DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OAUTH_CONSUMER_APPS_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OAUTH_CONSUMER_APPS_TRIG
|
||||
@ -65,8 +75,8 @@ CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR2 (255),
|
||||
REFRESH_TOKEN VARCHAR2 (255),
|
||||
ACCESS_TOKEN VARCHAR2 (2048),
|
||||
REFRESH_TOKEN VARCHAR2 (2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
AUTHZ_USER VARCHAR2 (100),
|
||||
TENANT_ID INTEGER,
|
||||
@ -81,6 +91,8 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR2 (25) DEFAULT 'ACTIVE',
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR2 (512),
|
||||
REFRESH_TOKEN_HASH VARCHAR2 (512),
|
||||
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,
|
||||
@ -88,14 +100,16 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
/
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED)
|
||||
/
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH)
|
||||
/
|
||||
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 (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR2 (512),
|
||||
AUTHORIZATION_CODE VARCHAR2 (2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR2 (1024),
|
||||
SCOPE VARCHAR2(2048),
|
||||
SCOPE VARCHAR2(4096),
|
||||
AUTHZ_USER VARCHAR2 (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR2 (50),
|
||||
@ -106,9 +120,12 @@ CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR (255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR2 (512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH,CONSUMER_KEY_ID)
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR2 (255),
|
||||
TOKEN_SCOPE VARCHAR2 (60),
|
||||
@ -117,12 +134,11 @@ CREATE TABLE IDN_OAUTH2_ACCESS_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,
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(512),
|
||||
TENANT_ID INTEGER DEFAULT -1 NOT NULL,
|
||||
PRIMARY KEY (SCOPE_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_OAUTH2_SCOPE_SEQUENCE START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
@ -136,6 +152,11 @@ CREATE OR REPLACE TRIGGER IDN_OAUTH2_SCOPE_TRIGGER
|
||||
SELECT IDN_OAUTH2_SCOPE_SEQUENCE.nextval INTO :NEW.SCOPE_ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR2(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_RESOURCE_SCOPE (
|
||||
RESOURCE_PATH VARCHAR2 (255) NOT NULL,
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
@ -214,7 +235,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY))
|
||||
/
|
||||
CREATE TABLE IDN_IDENTITY_META_DATA (
|
||||
@ -259,6 +280,7 @@ CREATE TABLE SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -307,6 +329,7 @@ CREATE TABLE SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -345,7 +368,7 @@ CREATE OR REPLACE TRIGGER SP_AUTH_STEP_TRIG
|
||||
SELECT SP_AUTH_STEP_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
ALTER TABLE SP_AUTH_STEP ADD CONSTRAINT APPLICATION_ID_CONST_STEP FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
|
||||
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,
|
||||
@ -362,6 +385,7 @@ CREATE TABLE SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
@ -427,6 +451,7 @@ CREATE TABLE SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) DEFAULT '0',
|
||||
BLOCKING CHAR(1) DEFAULT '0',
|
||||
RULE_ENABLED CHAR(1) DEFAULT '0' NOT NULL,
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE SP_PROV_CONNECTOR_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
@ -440,7 +465,30 @@ CREATE OR REPLACE TRIGGER SP_PROV_CONNECTOR_TRIG
|
||||
SELECT SP_PROV_CONNECTOR_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONST FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
|
||||
ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
|
||||
/
|
||||
CREATE TABLE SP_AUTH_SCRIPT (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BLOB DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE SP_AUTH_SCRIPT_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER SP_AUTH_SCRIPT_TRIG
|
||||
BEFORE INSERT
|
||||
ON SP_AUTH_SCRIPT
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT SP_AUTH_SCRIPT_SEQ.nextval
|
||||
INTO :NEW.ID
|
||||
FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE IDP (
|
||||
ID INTEGER,
|
||||
@ -488,8 +536,6 @@ CREATE TABLE IDP_ROLE (
|
||||
/
|
||||
CREATE SEQUENCE IDP_ROLE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost')
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDP_ROLE_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDP_ROLE
|
||||
@ -584,12 +630,6 @@ CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_TRIG
|
||||
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,
|
||||
@ -612,11 +652,6 @@ CREATE OR REPLACE TRIGGER IDP_METADATA_TRIG
|
||||
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,
|
||||
@ -639,10 +674,6 @@ CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_PROP_TRIG
|
||||
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,
|
||||
@ -650,6 +681,7 @@ CREATE TABLE IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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)
|
||||
@ -795,7 +827,7 @@ CREATE TABLE WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR2(255),
|
||||
HOST_URL_WORKER VARCHAR2(255),
|
||||
USERNAME VARCHAR2(45),
|
||||
PASSWORD VARCHAR2(255),
|
||||
PASSWORD VARCHAR2(1023),
|
||||
CALLBACK_HOST VARCHAR2 (45),
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
PRIMARY KEY (PROFILE_NAME, TENANT_ID))
|
||||
@ -868,8 +900,472 @@ CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE)
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR2(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR2(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR2(255) NOT NULL,
|
||||
SCENARIO VARCHAR2(255) NOT NULL,
|
||||
STEP VARCHAR2(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
REMAINING_SETS VARCHAR2(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
)
|
||||
|
||||
/
|
||||
CREATE TABLE IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER,
|
||||
USER_NAME VARCHAR2(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR2(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR2(255),
|
||||
HASH VARCHAR2(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY(ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE SEQUENCE IDN_PASSWORD_HISTORY_DATA_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER IDN_PASSWORD_HISTORY_DATA_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_PASSWORD_HISTORY_DATA
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_PASSWORD_HISTORY_DATA_SEQ.nextval
|
||||
INTO :NEW.ID
|
||||
FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_DIALECT (
|
||||
ID INTEGER,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_DIALECT_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_DIALECT_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_DIALECT
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_DIALECT_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM (
|
||||
ID INTEGER,
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_MAPPED_ATTR_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_MAPPED_ATTRIBUTE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_PROPERTY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_PROPERTY_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_PROPERTY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_PROPERTY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_MAPPING (
|
||||
ID INTEGER,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPING_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_MAPPING_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_MAPPING
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR2(4000) ,
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_SAML2_ASSERTION_STORE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_SAML2_ASSERTION_STORE_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_SAML2_ASSERTION_STORE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_SAML2_ASSERTION_STORE_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) NOT NULL,
|
||||
EXP_TIME TIMESTAMP NOT NULL,
|
||||
TIME_CREATED TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (JWT_ID))
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_PROPERTY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_PROPERTY_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_PROPERTY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_PROPERTY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJECT_REF_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_REQ_OBJ_REF_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJECT_REFERENCE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_REQ_OBJECT_REF_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER,
|
||||
REQ_OBJECT_ID INTEGER ,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) DEFAULT '0',
|
||||
VALUE VARCHAR(255),
|
||||
IS_USERINFO CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJ_CLAIMS_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_REQ_OBJ_CLAIMS_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJECT_CLAIMS
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_REQ_OBJ_CLAIMS_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER,
|
||||
CLAIM_VALUES VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJ_CLM_VAL_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_REQ_OBJ_CLM_VAL_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJ_CLAIM_VALUES
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_REQ_OBJ_CLM_VAL_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CERTIFICATE (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM BLOB,
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
PRIMARY KEY(ID),
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CERTIFICATE_SEQUENCE START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CERTIFICATE_TRIGGER
|
||||
BEFORE INSERT
|
||||
ON IDN_CERTIFICATE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CERTIFICATE_SEQUENCE.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
-- End of IDENTITY Tables--
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT PII_CATEGORY_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PII_CATEGORY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_PII_CATEGORY_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_PII_CATEGORY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_PII_CATEGORY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR2(255) NOT NULL,
|
||||
VERSION VARCHAR2(255) NOT NULL,
|
||||
JURISDICTION VARCHAR2(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR2(255) NOT NULL,
|
||||
LANGUAGE VARCHAR2(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR2(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT -1234,
|
||||
POLICY_URL VARCHAR2(255) NOT NULL,
|
||||
STATE VARCHAR2(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR2(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(1023),
|
||||
TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT PURPOSE_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PURPOSE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_PURPOSE_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_PURPOSE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_PURPOSE_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(1023),
|
||||
TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT PURPOSE_CATEGORY_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PURPOSE_CATEGORY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_PURPOSE_CATEGORY_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_PURPOSE_CATEGORY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_PURPOSE_CATEGORY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER,
|
||||
CONSENT_RECEIPT_ID VARCHAR2(255) NOT NULL,
|
||||
SP_NAME VARCHAR2(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT RECEIPT_SP_ASSOC_CONSTRAINT UNIQUE (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_RECEIPT_SP_ASSOC_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_RECEIPT_SP_ASSOC_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_RECEIPT_SP_ASSOC
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_RECEIPT_SP_ASSOC_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR2(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR2(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR2(255),
|
||||
CONSTRAINT SP_PURPOSE_ASSOC UNIQUE (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_SP_PURPOSE_ASSOC_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_SP_PURPOSE_ASSOC_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_SP_PURPOSE_ASSOC
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_SP_PURPOSE_ASSOC_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT SP_PUS_PS_CAT_ASSOC UNIQUE (SP_PURPOSE_ASSOC_ID,PURPOSE_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT PURPOSE_PII_CAT_ASSOC UNIQUE (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
CONSTRAINT SP_PURPOSE_PII_CATEGORY_ASSOC UNIQUE (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR2(255) NOT NULL,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
VALUE VARCHAR2(1023) NOT NULL,
|
||||
CONSTRAINT CONSENT_RECEIPT_PROPERTY UNIQUE (CONSENT_RECEIPT_ID, NAME)
|
||||
)
|
||||
/
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID)
|
||||
/
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID)
|
||||
/
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234')
|
||||
/
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234')
|
||||
/
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- Start of API-MGT Tables--
|
||||
CREATE TABLE AM_SUBSCRIBER (
|
||||
SUBSCRIBER_ID INTEGER,
|
||||
@ -1048,7 +1544,7 @@ CREATE TABLE AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR2(255) NOT NULL,
|
||||
APP_ID INTEGER,
|
||||
TOKEN_TYPE VARCHAR2(30),
|
||||
TOKEN_SCOPE VARCHAR2(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR2(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR2(1024),
|
||||
ALLOWED_DOMAINS VARCHAR2(256),
|
||||
VALIDITY_PERIOD NUMBER(19),
|
||||
@ -1594,7 +2090,7 @@ END;
|
||||
CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
CONDITION_ID INTEGER NOT NULL,
|
||||
TYPE varchar2(45) DEFAULT NULL,
|
||||
VALUE varchar2(45) DEFAULT NULL,
|
||||
VALUE varchar2(512) DEFAULT NULL,
|
||||
ENABLED varchar2(45) DEFAULT NULL,
|
||||
DOMAIN varchar2(45) DEFAULT NULL,
|
||||
UUID VARCHAR2(256),
|
||||
@ -1613,6 +2109,54 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE AM_CERTIFICATE_METADATA (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
ALIAS VARCHAR2(45) NOT NULL,
|
||||
END_POINT VARCHAR2(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (ALIAS),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (END_POINT)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR2(512) NOT NULL,
|
||||
TENANT VARCHAR2 (255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN VARCHAR2 (255) NOT NULL,
|
||||
FILE_NAME VARCHAR2 (255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED INTEGER DEFAULT 0,
|
||||
FILE_CONTENT BLOB DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP))
|
||||
/
|
||||
|
||||
CREATE TABLE AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER,
|
||||
TENANT_DOMAIN VARCHAR2 (500) NOT NULL,
|
||||
API_ID VARCHAR2 (500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE SEQUENCE AM_API_LC_PUBLISH_EVENTS_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER AM_API_LC_PUBLISH_EVENTS_TRIG
|
||||
BEFORE INSERT
|
||||
ON AM_API_LC_PUBLISH_EVENTS
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT AM_API_LC_PUBLISH_EVENTS_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
--permance indexes start--
|
||||
@ -1644,4 +2188,3 @@ create index IDX_APA_QT on AM_POLICY_APPLICATION (QUOTA_TYPE)
|
||||
create index IDX_AA_AT_CB on AM_APPLICATION (APPLICATION_TIER,CREATED_BY)
|
||||
/
|
||||
-- Performance indexes end--
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ 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),
|
||||
CONSUMER_SECRET VARCHAR2 (2048),
|
||||
USERNAME VARCHAR2 (255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -25,9 +25,20 @@ CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME NUMBER(19) DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME NUMBER(19) DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME NUMBER(19) DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
)
|
||||
/
|
||||
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
|
||||
@ -64,8 +75,8 @@ CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
ACCESS_TOKEN VARCHAR2 (255),
|
||||
REFRESH_TOKEN VARCHAR2 (255),
|
||||
ACCESS_TOKEN VARCHAR2 (2048),
|
||||
REFRESH_TOKEN VARCHAR2 (2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
AUTHZ_USER VARCHAR2 (100),
|
||||
TENANT_ID INTEGER,
|
||||
@ -80,6 +91,8 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR2 (25) DEFAULT 'ACTIVE',
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR2 (512),
|
||||
REFRESH_TOKEN_HASH VARCHAR2 (512),
|
||||
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,
|
||||
@ -89,12 +102,14 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
/
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED)
|
||||
/
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH)
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR2 (512),
|
||||
AUTHORIZATION_CODE VARCHAR2 (2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR2 (1024),
|
||||
SCOPE VARCHAR2(2048),
|
||||
SCOPE VARCHAR2(4096),
|
||||
AUTHZ_USER VARCHAR2 (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR2(50),
|
||||
@ -105,9 +120,12 @@ CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR (255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR2 (512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH, CONSUMER_KEY_ID)
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR2 (255),
|
||||
TOKEN_SCOPE VARCHAR2 (60),
|
||||
@ -116,12 +134,11 @@ CREATE TABLE IDN_OAUTH2_ACCESS_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,
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(512),
|
||||
TENANT_ID INTEGER DEFAULT -1 NOT NULL,
|
||||
PRIMARY KEY (SCOPE_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_OAUTH2_SCOPE_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
@ -135,6 +152,11 @@ CREATE OR REPLACE TRIGGER IDN_OAUTH2_SCOPE_TRIGGER
|
||||
SELECT IDN_OAUTH2_SCOPE_SEQUENCE.nextval INTO :NEW.SCOPE_ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR2(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE TABLE IDN_OAUTH2_RESOURCE_SCOPE (
|
||||
RESOURCE_PATH VARCHAR2 (255) NOT NULL,
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
@ -213,7 +235,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY))
|
||||
/
|
||||
CREATE TABLE IDN_IDENTITY_META_DATA (
|
||||
@ -258,6 +280,7 @@ CREATE TABLE SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -305,6 +328,7 @@ CREATE TABLE SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -360,6 +384,7 @@ CREATE TABLE SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
@ -425,6 +450,7 @@ CREATE TABLE SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) DEFAULT '0',
|
||||
BLOCKING CHAR(1) DEFAULT '0',
|
||||
RULE_ENABLED CHAR(1) DEFAULT '0' NOT NULL,
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE SP_PROV_CONNECTOR_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
@ -440,6 +466,27 @@ CREATE OR REPLACE TRIGGER SP_PROV_CONNECTOR_TRIG
|
||||
/
|
||||
ALTER TABLE SP_PROVISIONING_CONNECTOR ADD CONSTRAINT PRO_CONNECTOR_APPID_CONSTRAINT FOREIGN KEY (APP_ID) REFERENCES SP_APP (ID) ON DELETE CASCADE
|
||||
/
|
||||
CREATE TABLE SP_AUTH_SCRIPT (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BLOB DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE SP_AUTH_SCRIPT_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER SP_AUTH_SCRIPT_TRIG
|
||||
BEFORE INSERT
|
||||
ON SP_AUTH_SCRIPT
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT SP_AUTH_SCRIPT_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDP (
|
||||
ID INTEGER,
|
||||
TENANT_ID INTEGER,
|
||||
@ -476,8 +523,6 @@ CREATE OR REPLACE TRIGGER IDP_TRIG
|
||||
END;
|
||||
/
|
||||
|
||||
INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost')
|
||||
/
|
||||
CREATE TABLE IDP_ROLE (
|
||||
ID INTEGER,
|
||||
IDP_ID INTEGER,
|
||||
@ -583,12 +628,6 @@ CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_TRIG
|
||||
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,
|
||||
@ -611,10 +650,6 @@ CREATE OR REPLACE TRIGGER IDP_METADATA_TRIG
|
||||
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,
|
||||
@ -638,10 +673,6 @@ CREATE OR REPLACE TRIGGER IDP_AUTHENTICATOR_PROP_TRIG
|
||||
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,
|
||||
@ -649,6 +680,7 @@ CREATE TABLE IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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)
|
||||
@ -792,7 +824,7 @@ CREATE TABLE WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR2(255),
|
||||
HOST_URL_WORKER VARCHAR2(255),
|
||||
USERNAME VARCHAR2(45),
|
||||
PASSWORD VARCHAR2(255),
|
||||
PASSWORD VARCHAR2(1023),
|
||||
CALLBACK_HOST VARCHAR2 (45),
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
PRIMARY KEY (PROFILE_NAME, TENANT_ID))
|
||||
@ -866,8 +898,473 @@ CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (WORKFLOW_ID) REFERENCES WF_WORKFLOW(ID)ON DELETE CASCADE,
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE)
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR2(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR2(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR2(255) NOT NULL,
|
||||
SCENARIO VARCHAR2(255) NOT NULL,
|
||||
STEP VARCHAR2(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
REMAINING_SETS VARCHAR2(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
)
|
||||
/
|
||||
CREATE TABLE IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER,
|
||||
USER_NAME VARCHAR2(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR2(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR2(255),
|
||||
HASH VARCHAR2(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE SEQUENCE IDN_PASSWORD_HISTORY_DATA_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER IDN_PASSWORD_HISTORY_DATA_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_PASSWORD_HISTORY_DATA
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_PASSWORD_HISTORY_DATA_SEQ.nextval
|
||||
INTO :NEW.ID
|
||||
FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_DIALECT (
|
||||
ID INTEGER,
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_DIALECT_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_DIALECT_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_DIALECT
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_DIALECT_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM (
|
||||
ID INTEGER,
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_MAPPED_ATTR_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_MAPPED_ATTRIBUTE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER,
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_PROPERTY_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_PROPERTY_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_PROPERTY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_PROPERTY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CLAIM_MAPPING (
|
||||
ID INTEGER,
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPING_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CLAIM_MAPPING_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_CLAIM_MAPPING
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CLAIM_MAPPING_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER,
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR2(4000) ,
|
||||
PRIMARY KEY (ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_SAML2_ASSERTION_STORE_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_SAML2_ASSERTION_STORE_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_SAML2_ASSERTION_STORE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_SAML2_ASSERTION_STORE_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) ,
|
||||
EXP_TIME TIMESTAMP NOT NULL,
|
||||
TIME_CREATED TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (JWT_ID))
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_PROPERTY (
|
||||
ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID) ,
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_PROPERTY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_PROPERTY_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_PROPERTY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_PROPERTY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER,
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJECT_REF_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_REQ_OBJ_REF_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJECT_REFERENCE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_REQ_OBJECT_REF_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER,
|
||||
REQ_OBJECT_ID INTEGER ,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) DEFAULT '0',
|
||||
VALUE VARCHAR(255),
|
||||
IS_USERINFO CHAR(1) DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJ_CLAIMS_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_REQ_OBJ_CLAIMS_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJECT_CLAIMS
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_REQ_OBJ_CLAIMS_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER,
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER,
|
||||
CLAIM_VALUES VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE)
|
||||
/
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJ_CLM_VAL_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_OIDC_REQ_OBJ_CLM_VAL_TRIG
|
||||
BEFORE INSERT
|
||||
ON IDN_OIDC_REQ_OBJ_CLAIM_VALUES
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_OIDC_REQ_OBJ_CLM_VAL_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE IDN_CERTIFICATE (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM BLOB,
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
PRIMARY KEY(ID),
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID))
|
||||
/
|
||||
CREATE SEQUENCE IDN_CERTIFICATE_SEQUENCE START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER IDN_CERTIFICATE_TRIGGER
|
||||
BEFORE INSERT
|
||||
ON IDN_CERTIFICATE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT IDN_CERTIFICATE_SEQUENCE.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
-- End of IDENTITY Tables--
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT PII_CATEGORY_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PII_CATEGORY_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_PII_CATEGORY_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_PII_CATEGORY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_PII_CATEGORY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR2(255) NOT NULL,
|
||||
VERSION VARCHAR2(255) NOT NULL,
|
||||
JURISDICTION VARCHAR2(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR2(255) NOT NULL,
|
||||
LANGUAGE VARCHAR2(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR2(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT -1234,
|
||||
POLICY_URL VARCHAR2(255) NOT NULL,
|
||||
STATE VARCHAR2(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR2(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(1023),
|
||||
TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT PURPOSE_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PURPOSE_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_PURPOSE_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_PURPOSE
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_PURPOSE_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR2(1023),
|
||||
TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT PURPOSE_CATEGORY_CONSTRAINT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_PURPOSE_CATEGORY_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_PURPOSE_CATEGORY_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_PURPOSE_CATEGORY
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_PURPOSE_CATEGORY_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER,
|
||||
CONSENT_RECEIPT_ID VARCHAR2(255) NOT NULL,
|
||||
SP_NAME VARCHAR2(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT -1234,
|
||||
CONSTRAINT RECEIPT_SP_ASSOC_CONSTRAINT UNIQUE (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_RECEIPT_SP_ASSOC_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_RECEIPT_SP_ASSOC_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_RECEIPT_SP_ASSOC
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_RECEIPT_SP_ASSOC_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER,
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR2(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR2(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR2(255),
|
||||
CONSTRAINT SP_PURPOSE_ASSOC UNIQUE (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
CREATE SEQUENCE CM_SP_PURPOSE_ASSOC_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
CREATE OR REPLACE TRIGGER CM_SP_PURPOSE_ASSOC_TRIG
|
||||
BEFORE INSERT
|
||||
ON CM_SP_PURPOSE_ASSOC
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT CM_SP_PURPOSE_ASSOC_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT SP_PUS_PS_CAT_ASSOC UNIQUE (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT PURPOSE_PII_CAT_ASSOC UNIQUE (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
CONSTRAINT SP_PURPOSE_PII_CATEGORY_ASSOC UNIQUE (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
)
|
||||
/
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR2(255) NOT NULL,
|
||||
NAME VARCHAR2(255) NOT NULL,
|
||||
VALUE VARCHAR2(1023) NOT NULL,
|
||||
CONSTRAINT CONSENT_RECEIPT_PROPERTY UNIQUE (CONSENT_RECEIPT_ID, NAME)
|
||||
)
|
||||
/
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID)
|
||||
/
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID)
|
||||
/
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID)
|
||||
/
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234')
|
||||
/
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234')
|
||||
/
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
-- Start of API-MGT Tables--
|
||||
CREATE TABLE AM_SUBSCRIBER (
|
||||
SUBSCRIBER_ID INTEGER,
|
||||
@ -1046,7 +1543,7 @@ CREATE TABLE AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR2(255) NOT NULL,
|
||||
APP_ID INTEGER,
|
||||
TOKEN_TYPE VARCHAR2(30),
|
||||
TOKEN_SCOPE VARCHAR2(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR2(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR2(1000),
|
||||
ALLOWED_DOMAINS VARCHAR2(256),
|
||||
VALIDITY_PERIOD NUMBER(19),
|
||||
@ -1594,7 +2091,7 @@ END;
|
||||
CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
CONDITION_ID INTEGER NOT NULL,
|
||||
TYPE varchar2(45) DEFAULT NULL,
|
||||
VALUE varchar2(45) DEFAULT NULL,
|
||||
VALUE varchar2(512) DEFAULT NULL,
|
||||
ENABLED varchar2(45) DEFAULT NULL,
|
||||
DOMAIN varchar2(45) DEFAULT NULL,
|
||||
UUID VARCHAR2(256),
|
||||
@ -1613,14 +2110,61 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE TABLE AM_CERTIFICATE_METADATA (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
ALIAS VARCHAR2(45) NOT NULL,
|
||||
END_POINT VARCHAR2(100) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (ALIAS),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (END_POINT)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR2(512) NOT NULL,
|
||||
TENANT VARCHAR2 (255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN VARCHAR2 (255) NOT NULL,
|
||||
FILE_NAME VARCHAR2 (255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED INTEGER DEFAULT 0,
|
||||
FILE_CONTENT BLOB DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP))
|
||||
/
|
||||
|
||||
CREATE TABLE AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER,
|
||||
TENANT_DOMAIN VARCHAR2 (500) NOT NULL,
|
||||
API_ID VARCHAR2 (500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP NOT NULL,
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE SEQUENCE AM_API_LC_PUBLISH_EVENTS_SEQ START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER AM_API_LC_PUBLISH_EVENTS_TRIG
|
||||
BEFORE INSERT
|
||||
ON AM_API_LC_PUBLISH_EVENTS
|
||||
REFERENCING NEW AS NEW
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT AM_API_LC_PUBLISH_EVENTS_SEQ.nextval INTO :NEW.ID FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
--permance indexes start--
|
||||
/
|
||||
create index IDX_ITS_LMT on IDN_THRIFT_SESSION (LAST_MODIFIED_TIME)
|
||||
/
|
||||
create index IDX_IOAT_AT on IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN)
|
||||
/
|
||||
create index IDX_IOAT_UT on IDN_OAUTH2_ACCESS_TOKEN (USER_TYPE)
|
||||
/
|
||||
create index IDX_AAI_CTX on AM_API (CONTEXT)
|
||||
|
||||
@ -15,7 +15,7 @@ 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),
|
||||
CONSUMER_SECRET VARCHAR(2048),
|
||||
USERNAME VARCHAR(255),
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -25,10 +25,22 @@ CREATE TABLE IDN_OAUTH_CONSUMER_APPS (
|
||||
GRANT_TYPES VARCHAR (1024),
|
||||
PKCE_MANDATORY CHAR(1) DEFAULT '0',
|
||||
PKCE_SUPPORT_PLAIN CHAR(1) DEFAULT '0',
|
||||
APP_STATE VARCHAR (25) DEFAULT 'ACTIVE',
|
||||
USER_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
APP_ACCESS_TOKEN_EXPIRE_TIME BIGINT DEFAULT 3600000,
|
||||
REFRESH_TOKEN_EXPIRE_TIME BIGINT DEFAULT 84600000,
|
||||
CONSTRAINT CONSUMER_KEY_CONSTRAINT UNIQUE (CONSUMER_KEY),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OAUTH2_SCOPE_VALIDATORS;
|
||||
CREATE TABLE IDN_OAUTH2_SCOPE_VALIDATORS (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
SCOPE_VALIDATOR VARCHAR (128) NOT NULL,
|
||||
PRIMARY KEY (APP_ID,SCOPE_VALIDATOR),
|
||||
FOREIGN KEY (APP_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OAUTH1A_REQUEST_TOKEN;
|
||||
CREATE TABLE IDN_OAUTH1A_REQUEST_TOKEN (
|
||||
REQUEST_TOKEN VARCHAR(512),
|
||||
@ -59,8 +71,8 @@ CREATE TABLE IDN_OAUTH1A_ACCESS_TOKEN (
|
||||
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),
|
||||
ACCESS_TOKEN VARCHAR(2048),
|
||||
REFRESH_TOKEN VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
@ -75,6 +87,8 @@ CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN (
|
||||
TOKEN_STATE VARCHAR(25) DEFAULT 'ACTIVE',
|
||||
TOKEN_STATE_ID VARCHAR (128) DEFAULT 'NONE',
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
ACCESS_TOKEN_HASH VARCHAR(512),
|
||||
REFRESH_TOKEN_HASH VARCHAR(512),
|
||||
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,
|
||||
@ -85,13 +99,15 @@ CREATE INDEX IDX_AT_CK_AU ON IDN_OAUTH2_ACCESS_TOKEN(CONSUMER_KEY_ID, AUTHZ_USER
|
||||
|
||||
CREATE INDEX IDX_TC ON IDN_OAUTH2_ACCESS_TOKEN(TIME_CREATED);
|
||||
|
||||
CREATE INDEX IDX_ATH ON IDN_OAUTH2_ACCESS_TOKEN(ACCESS_TOKEN_HASH);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OAUTH2_AUTHORIZATION_CODE;
|
||||
CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
CODE_ID VARCHAR (255),
|
||||
AUTHORIZATION_CODE VARCHAR(512),
|
||||
AUTHORIZATION_CODE VARCHAR(2048),
|
||||
CONSUMER_KEY_ID INTEGER,
|
||||
CALLBACK_URL VARCHAR(1024),
|
||||
SCOPE VARCHAR(2048),
|
||||
SCOPE VARCHAR(4096),
|
||||
AUTHZ_USER VARCHAR (100),
|
||||
TENANT_ID INTEGER,
|
||||
USER_DOMAIN VARCHAR(50),
|
||||
@ -102,10 +118,13 @@ CREATE TABLE IDN_OAUTH2_AUTHORIZATION_CODE (
|
||||
SUBJECT_IDENTIFIER VARCHAR(255),
|
||||
PKCE_CODE_CHALLENGE VARCHAR (255),
|
||||
PKCE_CODE_CHALLENGE_METHOD VARCHAR(128),
|
||||
AUTHORIZATION_CODE_HASH VARCHAR(512),
|
||||
PRIMARY KEY (CODE_ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX IDX_AUTHORIZATION_CODE_HASH ON IDN_OAUTH2_AUTHORIZATION_CODE (AUTHORIZATION_CODE_HASH,CONSUMER_KEY_ID);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OAUTH2_ACCESS_TOKEN_SCOPE;
|
||||
CREATE TABLE IDN_OAUTH2_ACCESS_TOKEN_SCOPE (
|
||||
TOKEN_ID VARCHAR (255),
|
||||
@ -119,21 +138,27 @@ 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,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DISPLAY_NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(512),
|
||||
TENANT_ID INTEGER NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (SCOPE_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OAUTH2_SCOPE_BINDING;
|
||||
CREATE TABLE IF NOT EXISTS IDN_OAUTH2_SCOPE_BINDING (
|
||||
SCOPE_ID INTEGER NOT NULL,
|
||||
SCOPE_BINDING VARCHAR(255),
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE(SCOPE_ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
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) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
FOREIGN KEY (SCOPE_ID) REFERENCES IDN_OAUTH2_SCOPE (SCOPE_ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_SCIM_GROUP;
|
||||
@ -198,7 +223,7 @@ 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),
|
||||
DATA_VALUE VARCHAR(2048),
|
||||
PRIMARY KEY (TENANT_ID, USER_NAME, DATA_KEY)
|
||||
);
|
||||
|
||||
@ -251,6 +276,7 @@ CREATE TABLE SP_APP (
|
||||
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',
|
||||
ENABLE_AUTHORIZATION CHAR(1) DEFAULT '0',
|
||||
SUBJECT_CLAIM_URI VARCHAR (512),
|
||||
IS_SAAS_APP CHAR(1) DEFAULT '0',
|
||||
IS_DUMB_MODE CHAR(1) DEFAULT '0',
|
||||
@ -280,6 +306,7 @@ CREATE TABLE SP_INBOUND_AUTH (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
INBOUND_AUTH_KEY VARCHAR (255),
|
||||
INBOUND_AUTH_TYPE VARCHAR (255) NOT NULL,
|
||||
INBOUND_CONFIG_TYPE VARCHAR (255) NOT NULL,
|
||||
PROP_NAME VARCHAR (255),
|
||||
PROP_VALUE VARCHAR (1024) ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
@ -320,6 +347,7 @@ CREATE TABLE SP_CLAIM_MAPPING (
|
||||
SP_CLAIM VARCHAR (512) NOT NULL ,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_REQUESTED VARCHAR(128) DEFAULT '0',
|
||||
IS_MANDATORY VARCHAR(128) DEFAULT '0',
|
||||
DEFAULT_VALUE VARCHAR(255),
|
||||
PRIMARY KEY (ID));
|
||||
|
||||
@ -361,10 +389,24 @@ CREATE TABLE SP_PROVISIONING_CONNECTOR (
|
||||
APP_ID INTEGER NOT NULL,
|
||||
IS_JIT_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
BLOCKING CHAR(1) NOT NULL DEFAULT '0',
|
||||
RULE_ENABLED 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 SP_AUTH_SCRIPT;
|
||||
DROP SEQUENCE IF EXISTS SP_AUTH_SCRIPT_SEQ;
|
||||
CREATE SEQUENCE SP_AUTH_SCRIPT_SEQ;
|
||||
CREATE TABLE SP_AUTH_SCRIPT (
|
||||
ID INTEGER NOT NULL DEFAULT NEXTVAL('SP_AUTH_SCRIPT_SEQ'),
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
APP_ID INTEGER NOT NULL,
|
||||
TYPE VARCHAR(255) NOT NULL,
|
||||
CONTENT BYTEA DEFAULT NULL,
|
||||
IS_ENABLED CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDP;
|
||||
DROP SEQUENCE IF EXISTS IDP_SEQ;
|
||||
CREATE SEQUENCE IDP_SEQ;
|
||||
@ -394,9 +436,6 @@ CREATE TABLE IDP (
|
||||
|
||||
DROP TABLE IF EXISTS IDP_ROLE;
|
||||
DROP SEQUENCE IF EXISTS IDP_ROLE_SEQ;
|
||||
|
||||
INSERT INTO IDP (TENANT_ID, NAME, HOME_REALM_ID) VALUES (-1234, 'LOCAL', 'localhost');
|
||||
|
||||
CREATE SEQUENCE IDP_ROLE_SEQ;
|
||||
CREATE TABLE IDP_ROLE (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDP_ROLE_SEQ'),
|
||||
@ -460,11 +499,6 @@ CREATE TABLE IDP_AUTHENTICATOR (
|
||||
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;
|
||||
@ -479,9 +513,6 @@ CREATE TABLE IDP_METADATA (
|
||||
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;
|
||||
@ -496,9 +527,6 @@ CREATE TABLE IDP_AUTHENTICATOR_PROPERTY (
|
||||
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;
|
||||
@ -509,6 +537,7 @@ CREATE TABLE IDP_PROVISIONING_CONFIG (
|
||||
PROVISIONING_CONNECTOR_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_ENABLED CHAR (1) DEFAULT '0',
|
||||
IS_BLOCKING CHAR (1) DEFAULT '0',
|
||||
IS_RULES_ENABLED 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);
|
||||
@ -612,7 +641,7 @@ CREATE TABLE WF_BPS_PROFILE (
|
||||
HOST_URL_MANAGER VARCHAR(255),
|
||||
HOST_URL_WORKER VARCHAR(255),
|
||||
USERNAME VARCHAR(45),
|
||||
PASSWORD VARCHAR(255),
|
||||
PASSWORD VARCHAR(1023),
|
||||
CALLBACK_HOST VARCHAR (45),
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
PRIMARY KEY (PROFILE_NAME, TENANT_ID)
|
||||
@ -679,8 +708,334 @@ CREATE TABLE WF_WORKFLOW_REQUEST_RELATION(
|
||||
FOREIGN KEY (REQUEST_ID) REFERENCES WF_REQUEST(UUID)ON DELETE CASCADE
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_RECOVERY_DATA;
|
||||
CREATE TABLE IDN_RECOVERY_DATA (
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
CODE VARCHAR(255) NOT NULL,
|
||||
SCENARIO VARCHAR(255) NOT NULL,
|
||||
STEP VARCHAR(127) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
REMAINING_SETS VARCHAR(2500) DEFAULT NULL,
|
||||
PRIMARY KEY(USER_NAME, USER_DOMAIN, TENANT_ID, SCENARIO,STEP),
|
||||
UNIQUE(CODE)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_PASSWORD_HISTORY_DATA;
|
||||
CREATE SEQUENCE IDN_PASSWORD_HISTORY_DATA_PK_SEQ;
|
||||
CREATE TABLE IDN_PASSWORD_HISTORY_DATA (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_PASSWORD_HISTORY_DATA_PK_SEQ'),
|
||||
USER_NAME VARCHAR(255) NOT NULL,
|
||||
USER_DOMAIN VARCHAR(127) NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT -1,
|
||||
SALT_VALUE VARCHAR(255),
|
||||
HASH VARCHAR(255) NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (ID),
|
||||
UNIQUE (USER_NAME,USER_DOMAIN,TENANT_ID,SALT_VALUE,HASH)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_CLAIM_DIALECT;
|
||||
DROP SEQUENCE IF EXISTS IDN_CLAIM_DIALECT_SEQ;
|
||||
CREATE SEQUENCE IDN_CLAIM_DIALECT_SEQ;
|
||||
CREATE TABLE IDN_CLAIM_DIALECT (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_CLAIM_DIALECT_SEQ'),
|
||||
DIALECT_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
CONSTRAINT DIALECT_URI_CONSTRAINT UNIQUE (DIALECT_URI, TENANT_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_CLAIM;
|
||||
DROP SEQUENCE IF EXISTS IDN_CLAIM_SEQ;
|
||||
CREATE SEQUENCE IDN_CLAIM_SEQ;
|
||||
CREATE TABLE IDN_CLAIM (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_CLAIM_SEQ'),
|
||||
DIALECT_ID INTEGER,
|
||||
CLAIM_URI VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (DIALECT_ID) REFERENCES IDN_CLAIM_DIALECT(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT CLAIM_URI_CONSTRAINT UNIQUE (DIALECT_ID, CLAIM_URI, TENANT_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_CLAIM_MAPPED_ATTRIBUTE;
|
||||
DROP SEQUENCE IF EXISTS IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ;
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ;
|
||||
CREATE TABLE IDN_CLAIM_MAPPED_ATTRIBUTE (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_CLAIM_MAPPED_ATTRIBUTE_SEQ'),
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
USER_STORE_DOMAIN_NAME VARCHAR (255) NOT NULL,
|
||||
ATTRIBUTE_NAME VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT USER_STORE_DOMAIN_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, USER_STORE_DOMAIN_NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_CLAIM_PROPERTY;
|
||||
DROP SEQUENCE IF EXISTS IDN_CLAIM_PROPERTY_SEQ;
|
||||
CREATE SEQUENCE IDN_CLAIM_PROPERTY_SEQ;
|
||||
CREATE TABLE IDN_CLAIM_PROPERTY (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_CLAIM_PROPERTY_SEQ'),
|
||||
LOCAL_CLAIM_ID INTEGER,
|
||||
PROPERTY_NAME VARCHAR (255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR (255) NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT PROPERTY_NAME_CONSTRAINT UNIQUE (LOCAL_CLAIM_ID, PROPERTY_NAME, TENANT_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_CLAIM_MAPPING;
|
||||
DROP SEQUENCE IF EXISTS IDN_CLAIM_MAPPING_SEQ;
|
||||
CREATE SEQUENCE IDN_CLAIM_MAPPING_SEQ;
|
||||
CREATE TABLE IDN_CLAIM_MAPPING (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_CLAIM_MAPPING_SEQ'),
|
||||
EXT_CLAIM_ID INTEGER NOT NULL,
|
||||
MAPPED_LOCAL_CLAIM_ID INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (EXT_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (MAPPED_LOCAL_CLAIM_ID) REFERENCES IDN_CLAIM(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT EXT_TO_LOC_MAPPING_CONSTRN UNIQUE (EXT_CLAIM_ID, TENANT_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_SAML2_ASSERTION_STORE;
|
||||
DROP SEQUENCE IF EXISTS IDN_SAML2_ASSERTION_STORE_SEQ;
|
||||
CREATE SEQUENCE IDN_SAML2_ASSERTION_STORE_SEQ;
|
||||
CREATE TABLE IDN_SAML2_ASSERTION_STORE (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_SAML2_ASSERTION_STORE_SEQ'),
|
||||
SAML2_ID VARCHAR(255) ,
|
||||
SAML2_ISSUER VARCHAR(255) ,
|
||||
SAML2_SUBJECT VARCHAR(255) ,
|
||||
SAML2_SESSION_INDEX VARCHAR(255) ,
|
||||
SAML2_AUTHN_CONTEXT_CLASS_REF VARCHAR(255) ,
|
||||
SAML2_ASSERTION VARCHAR(4096) ,
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
DROP TABLE IF EXISTS IDN_OIDC_JTI;
|
||||
CREATE TABLE IDN_OIDC_JTI (
|
||||
JWT_ID VARCHAR(255) NOT NULL,
|
||||
EXP_TIME TIMESTAMP NOT NULL,
|
||||
TIME_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (JWT_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OIDC_PROPERTY;
|
||||
DROP SEQUENCE IF EXISTS IDN_OIDC_PROPERTY_SEQ;
|
||||
CREATE SEQUENCE IDN_OIDC_PROPERTY_SEQ;
|
||||
CREATE TABLE IDN_OIDC_PROPERTY (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_OIDC_PROPERTY_SEQ'),
|
||||
TENANT_ID INTEGER,
|
||||
CONSUMER_KEY VARCHAR(255) ,
|
||||
PROPERTY_KEY VARCHAR(255) NOT NULL,
|
||||
PROPERTY_VALUE VARCHAR(2047) ,
|
||||
PRIMARY KEY (ID) ,
|
||||
FOREIGN KEY (CONSUMER_KEY) REFERENCES IDN_OAUTH_CONSUMER_APPS(CONSUMER_KEY) ON DELETE CASCADE
|
||||
);
|
||||
DROP TABLE IF EXISTS IDN_OIDC_REQ_OBJECT_REFERENCE;
|
||||
DROP SEQUENCE IF EXISTS IDN_OIDC_REQUEST_OBJECT_REF_SEQ;
|
||||
CREATE SEQUENCE IDN_OIDC_REQUEST_OBJECT_REF_SEQ;
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_REFERENCE (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_OIDC_REQUEST_OBJECT_REF_SEQ'),
|
||||
CONSUMER_KEY_ID INTEGER ,
|
||||
CODE_ID VARCHAR(255) ,
|
||||
TOKEN_ID VARCHAR(255) ,
|
||||
SESSION_DATA_KEY VARCHAR(255),
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (CONSUMER_KEY_ID) REFERENCES IDN_OAUTH_CONSUMER_APPS(ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (TOKEN_ID) REFERENCES IDN_OAUTH2_ACCESS_TOKEN(TOKEN_ID) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CODE_ID) REFERENCES IDN_OAUTH2_AUTHORIZATION_CODE(CODE_ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OIDC_REQ_OBJECT_CLAIMS;
|
||||
DROP SEQUENCE IF EXISTS IDN_OIDC_REQ_OBJECT_CLAIMS_SEQ;
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJECT_CLAIMS_SEQ;
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJECT_CLAIMS (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_OIDC_REQ_OBJECT_CLAIMS_SEQ'),
|
||||
REQ_OBJECT_ID INTEGER,
|
||||
CLAIM_ATTRIBUTE VARCHAR(255) ,
|
||||
ESSENTIAL CHAR(1) NOT NULL DEFAULT '0' ,
|
||||
VALUE VARCHAR(255) ,
|
||||
IS_USERINFO CHAR(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_ID) REFERENCES IDN_OIDC_REQ_OBJECT_REFERENCE (ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_OIDC_REQ_OBJ_CLAIM_VALUES;
|
||||
DROP SEQUENCE IF EXISTS IDN_OIDC_REQ_OBJECT_CLAIM_VALUES_SEQ;
|
||||
CREATE SEQUENCE IDN_OIDC_REQ_OBJECT_CLAIM_VALUES_SEQ;
|
||||
CREATE TABLE IDN_OIDC_REQ_OBJ_CLAIM_VALUES (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_OIDC_REQ_OBJECT_CLAIM_VALUES_SEQ'),
|
||||
REQ_OBJECT_CLAIMS_ID INTEGER ,
|
||||
CLAIM_VALUES VARCHAR(255) ,
|
||||
PRIMARY KEY (ID),
|
||||
FOREIGN KEY (REQ_OBJECT_CLAIMS_ID) REFERENCES IDN_OIDC_REQ_OBJECT_CLAIMS(ID) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS IDN_CERTIFICATE;
|
||||
DROP SEQUENCE IF EXISTS IDN_CERTIFICATE_PK_SEQ;
|
||||
CREATE SEQUENCE IDN_CERTIFICATE_PK_SEQ;
|
||||
CREATE TABLE IDN_CERTIFICATE (
|
||||
ID INTEGER DEFAULT NEXTVAL('IDN_CERTIFICATE_PK_SEQ'),
|
||||
NAME VARCHAR(100),
|
||||
CERTIFICATE_IN_PEM BYTEA,
|
||||
TENANT_ID INTEGER DEFAULT 0,
|
||||
CONSTRAINT CERTIFICATE_UNIQUE_KEY UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
|
||||
-- End of IDENTITY Tables--
|
||||
|
||||
-- Start of CONSENT-MGT Tables --
|
||||
|
||||
DROP TABLE IF EXISTS CM_PII_CATEGORY;
|
||||
DROP SEQUENCE IF EXISTS CM_PII_CATEGORY_PK_SEQ;
|
||||
CREATE SEQUENCE CM_PII_CATEGORY_PK_SEQ;
|
||||
CREATE TABLE CM_PII_CATEGORY (
|
||||
ID INTEGER DEFAULT NEXTVAL('CM_PII_CATEGORY_PK_SEQ'),
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
DISPLAY_NAME VARCHAR(255),
|
||||
IS_SENSITIVE INTEGER NOT NULL,
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_PII_CATEGORY_CNT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_RECEIPT;
|
||||
CREATE TABLE CM_RECEIPT (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
VERSION VARCHAR(255) NOT NULL,
|
||||
JURISDICTION VARCHAR(255) NOT NULL,
|
||||
CONSENT_TIMESTAMP TIMESTAMP NOT NULL,
|
||||
COLLECTION_METHOD VARCHAR(255) NOT NULL,
|
||||
LANGUAGE VARCHAR(255) NOT NULL,
|
||||
PII_PRINCIPAL_ID VARCHAR(255) NOT NULL,
|
||||
PRINCIPAL_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
POLICY_URL VARCHAR(255) NOT NULL,
|
||||
STATE VARCHAR(255) NOT NULL,
|
||||
PII_CONTROLLER VARCHAR(2048) NOT NULL,
|
||||
PRIMARY KEY (CONSENT_RECEIPT_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_PURPOSE;
|
||||
DROP SEQUENCE IF EXISTS CM_PURPOSE_PK_SEQ;
|
||||
CREATE SEQUENCE CM_PURPOSE_PK_SEQ;
|
||||
CREATE TABLE CM_PURPOSE (
|
||||
ID INTEGER DEFAULT NEXTVAL('CM_PURPOSE_PK_SEQ'),
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_PURPOSE_CNT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_PURPOSE_CATEGORY;
|
||||
DROP SEQUENCE IF EXISTS CM_PURPOSE_CATEGORY_PK_SEQ;
|
||||
CREATE SEQUENCE CM_PURPOSE_CATEGORY_PK_SEQ;
|
||||
CREATE TABLE CM_PURPOSE_CATEGORY (
|
||||
ID INTEGER DEFAULT NEXTVAL('CM_PURPOSE_CATEGORY_PK_SEQ'),
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
DESCRIPTION VARCHAR(1023),
|
||||
TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_PURPOSE_CATEGORY_CNT UNIQUE (NAME, TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_RECEIPT_SP_ASSOC;
|
||||
DROP SEQUENCE IF EXISTS CM_RECEIPT_SP_ASSOC_PK_SEQ;
|
||||
CREATE SEQUENCE CM_RECEIPT_SP_ASSOC_PK_SEQ;
|
||||
CREATE TABLE CM_RECEIPT_SP_ASSOC (
|
||||
ID INTEGER DEFAULT NEXTVAL('CM_RECEIPT_SP_ASSOC_PK_SEQ'),
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
SP_NAME VARCHAR(255) NOT NULL,
|
||||
SP_DISPLAY_NAME VARCHAR(255),
|
||||
SP_DESCRIPTION VARCHAR(255),
|
||||
SP_TENANT_ID INTEGER DEFAULT '-1234',
|
||||
CONSTRAINT CM_RECEIPT_SP_ASSOC_CNT UNIQUE (CONSENT_RECEIPT_ID, SP_NAME, SP_TENANT_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_SP_PURPOSE_ASSOC;
|
||||
DROP SEQUENCE IF EXISTS CM_SP_PURPOSE_ASSOC_PK_SEQ;
|
||||
CREATE SEQUENCE CM_SP_PURPOSE_ASSOC_PK_SEQ;
|
||||
CREATE TABLE CM_SP_PURPOSE_ASSOC (
|
||||
ID INTEGER DEFAULT NEXTVAL('CM_SP_PURPOSE_ASSOC_PK_SEQ'),
|
||||
RECEIPT_SP_ASSOC INTEGER NOT NULL,
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CONSENT_TYPE VARCHAR(255) NOT NULL,
|
||||
IS_PRIMARY_PURPOSE INTEGER NOT NULL,
|
||||
TERMINATION VARCHAR(255) NOT NULL,
|
||||
THIRD_PARTY_DISCLOSURE INTEGER NOT NULL,
|
||||
THIRD_PARTY_NAME VARCHAR(255),
|
||||
CONSTRAINT CM_SP_PURPOSE_ASSOC_CNT UNIQUE (RECEIPT_SP_ASSOC, PURPOSE_ID),
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_SP_PURPOSE_PURPOSE_CAT_ASSC;
|
||||
CREATE TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PURPOSE_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT CM_SP_PURPOSE_PURPOSE_CAT_ASSC_CNT UNIQUE (SP_PURPOSE_ASSOC_ID, PURPOSE_CATEGORY_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_PURPOSE_PII_CAT_ASSOC;
|
||||
CREATE TABLE CM_PURPOSE_PII_CAT_ASSOC (
|
||||
PURPOSE_ID INTEGER NOT NULL,
|
||||
CM_PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
CONSTRAINT CM_PURPOSE_PII_CAT_ASSOC_CNT UNIQUE (PURPOSE_ID, CM_PII_CATEGORY_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_SP_PURPOSE_PII_CAT_ASSOC;
|
||||
CREATE TABLE CM_SP_PURPOSE_PII_CAT_ASSOC (
|
||||
SP_PURPOSE_ASSOC_ID INTEGER NOT NULL,
|
||||
PII_CATEGORY_ID INTEGER NOT NULL,
|
||||
VALIDITY VARCHAR(1023),
|
||||
CONSTRAINT CM_SP_PURPOSE_PII_CAT_ASSOC_CNT UNIQUE (SP_PURPOSE_ASSOC_ID, PII_CATEGORY_ID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS CM_CONSENT_RECEIPT_PROPERTY;
|
||||
CREATE TABLE CM_CONSENT_RECEIPT_PROPERTY (
|
||||
CONSENT_RECEIPT_ID VARCHAR(255) NOT NULL,
|
||||
NAME VARCHAR(255) NOT NULL,
|
||||
VALUE VARCHAR(1023) NOT NULL,
|
||||
CONSTRAINT CM_CONSENT_RECEIPT_PROPERTY_CNT UNIQUE (CONSENT_RECEIPT_ID, NAME)
|
||||
);
|
||||
|
||||
ALTER TABLE CM_RECEIPT_SP_ASSOC
|
||||
ADD CONSTRAINT CM_RECEIPT_SP_ASSOC_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk0 FOREIGN KEY (RECEIPT_SP_ASSOC) REFERENCES CM_RECEIPT_SP_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_ASSOC
|
||||
ADD CONSTRAINT CM_SP_PURPOSE_ASSOC_fk1 FOREIGN KEY (PURPOSE_ID) REFERENCES CM_PURPOSE (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PURPOSE_CAT_ASSC
|
||||
ADD CONSTRAINT CM_SP_P_P_CAT_ASSOC_fk1 FOREIGN KEY (PURPOSE_CATEGORY_ID) REFERENCES CM_PURPOSE_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk0 FOREIGN KEY (SP_PURPOSE_ASSOC_ID) REFERENCES CM_SP_PURPOSE_ASSOC (ID);
|
||||
|
||||
ALTER TABLE CM_SP_PURPOSE_PII_CAT_ASSOC
|
||||
ADD CONSTRAINT CM_SP_P_PII_CAT_ASSOC_fk1 FOREIGN KEY (PII_CATEGORY_ID) REFERENCES CM_PII_CATEGORY (ID);
|
||||
|
||||
ALTER TABLE CM_CONSENT_RECEIPT_PROPERTY
|
||||
ADD CONSTRAINT CM_CONSENT_RECEIPT_PRT_fk0 FOREIGN KEY (CONSENT_RECEIPT_ID) REFERENCES CM_RECEIPT (CONSENT_RECEIPT_ID);
|
||||
|
||||
INSERT INTO CM_PURPOSE (NAME, DESCRIPTION, TENANT_ID) values ('DEFAULT', 'For core functionalities of the product', '-1234');
|
||||
|
||||
INSERT INTO CM_PURPOSE_CATEGORY (NAME, DESCRIPTION, TENANT_ID) VALUES ('DEFAULT','For core functionalities of the product', '-1234');
|
||||
|
||||
-- End of CONSENT-MGT Tables --
|
||||
|
||||
CREATE SEQUENCE AM_SUBSCRIBER_SEQUENCE START WITH 1 INCREMENT BY 1;
|
||||
CREATE TABLE IF NOT EXISTS AM_SUBSCRIBER (
|
||||
SUBSCRIBER_ID INTEGER DEFAULT nextval('am_subscriber_sequence'),
|
||||
@ -797,7 +1152,7 @@ CREATE TABLE IF NOT EXISTS AM_APPLICATION_REGISTRATION (
|
||||
WF_REF VARCHAR(255) NOT NULL,
|
||||
APP_ID INT,
|
||||
TOKEN_TYPE VARCHAR(30),
|
||||
TOKEN_SCOPE VARCHAR(256) DEFAULT 'default',
|
||||
TOKEN_SCOPE VARCHAR(1500) DEFAULT 'default',
|
||||
INPUTS VARCHAR(1000),
|
||||
ALLOWED_DOMAINS VARCHAR(256),
|
||||
VALIDITY_PERIOD BIGINT,
|
||||
@ -1129,7 +1484,7 @@ CREATE SEQUENCE AM_BLOCK_CONDITIONS_SEQ START WITH 1 INCREMENT BY 1;
|
||||
CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
CONDITION_ID INTEGER DEFAULT NEXTVAL('AM_BLOCK_CONDITIONS_SEQ'),
|
||||
TYPE varchar(45) DEFAULT NULL,
|
||||
VALUE varchar(45) DEFAULT NULL,
|
||||
VALUE varchar(512) DEFAULT NULL,
|
||||
ENABLED varchar(45) DEFAULT NULL,
|
||||
DOMAIN varchar(45) DEFAULT NULL,
|
||||
UUID VARCHAR(256),
|
||||
@ -1137,12 +1492,49 @@ CREATE TABLE AM_BLOCK_CONDITIONS (
|
||||
UNIQUE (UUID)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS AM_CERTIFICATE_METADATA;
|
||||
CREATE TABLE AM_CERTIFICATE_METADATA (
|
||||
TENANT_ID INTEGER NOT NULL,
|
||||
ALIAS VARCHAR(45) NOT NULL,
|
||||
END_POINT VARCHAR(45) NOT NULL,
|
||||
CONSTRAINT PK_ALIAS PRIMARY KEY (ALIAS),
|
||||
CONSTRAINT END_POINT_CONSTRAINT UNIQUE (END_POINT)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS AM_APPLICATION_GROUP_MAPPING;
|
||||
CREATE TABLE AM_APPLICATION_GROUP_MAPPING (
|
||||
APPLICATION_ID INTEGER NOT NULL,
|
||||
GROUP_ID VARCHAR(512) NOT NULL,
|
||||
TENANT VARCHAR(255),
|
||||
PRIMARY KEY (APPLICATION_ID,GROUP_ID,TENANT),
|
||||
FOREIGN KEY (APPLICATION_ID) REFERENCES AM_APPLICATION(APPLICATION_ID) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS AM_USAGE_UPLOADED_FILES;
|
||||
CREATE TABLE AM_USAGE_UPLOADED_FILES (
|
||||
TENANT_DOMAIN VARCHAR(255) NOT NULL,
|
||||
FILE_NAME VARCHAR(255) NOT NULL,
|
||||
FILE_TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
FILE_PROCESSED INTEGER DEFAULT 0,
|
||||
FILE_CONTENT BYTEA DEFAULT NULL,
|
||||
PRIMARY KEY (TENANT_DOMAIN, FILE_NAME, FILE_TIMESTAMP)
|
||||
);
|
||||
|
||||
DROP TABLE IF EXISTS AM_API_LC_PUBLISH_EVENTS;
|
||||
DROP SEQUENCE IF EXISTS AM_API_LC_PUBLISH_EVENTS_PK_SEQ;
|
||||
CREATE SEQUENCE AM_API_LC_PUBLISH_EVENTS_PK_SEQ;
|
||||
CREATE TABLE IF NOT EXISTS AM_API_LC_PUBLISH_EVENTS (
|
||||
ID INTEGER NOT NULL DEFAULT NEXTVAL('AM_API_LC_PUBLISH_EVENTS_PK_SEQ'),
|
||||
TENANT_DOMAIN VARCHAR(500) NOT NULL,
|
||||
API_ID VARCHAR(500) NOT NULL,
|
||||
EVENT_TIME TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (ID)
|
||||
);
|
||||
-- End of API-MGT Tables --
|
||||
|
||||
-- Performance indexes start--
|
||||
|
||||
create index IDX_ITS_LMT on IDN_THRIFT_SESSION (LAST_MODIFIED_TIME);
|
||||
create index IDX_IOAT_AT on IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN);
|
||||
create index IDX_IOAT_UT on IDN_OAUTH2_ACCESS_TOKEN (USER_TYPE);
|
||||
create index IDX_AAI_CTX on AM_API (CONTEXT);
|
||||
create index IDX_AAKM_CK on AM_APPLICATION_KEY_MAPPING (CONSUMER_KEY);
|
||||
|
||||
@ -262,7 +262,7 @@ IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[RE
|
||||
CREATE TABLE REG_PROPERTY (
|
||||
REG_ID INTEGER IDENTITY(1,1) NOT NULL,
|
||||
REG_NAME VARCHAR(100) NOT NULL,
|
||||
REG_VALUE VARCHAR(10000),
|
||||
REG_VALUE VARCHAR(8000),
|
||||
REG_TENANT_ID INTEGER DEFAULT 0,
|
||||
CONSTRAINT PK_REG_PROPERTY PRIMARY KEY(REG_ID, REG_TENANT_ID)
|
||||
);
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<xsd:getApplication>
|
||||
<xsd:applicationName>${applicationName}</xsd:applicationName>
|
||||
</xsd:getApplication>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://model.common.application.identity.carbon.wso2.org/xsd" xmlns:xsd2="http://script.model.common.application.identity.carbon.wso2.org/xsd">
|
||||
<soapenv:Header />
|
||||
<soapenv:Body>
|
||||
<xsd:updateApplication>
|
||||
<xsd:serviceProvider>
|
||||
<xsd1:applicationID>${applicationId}</xsd1:applicationID>
|
||||
<xsd1:applicationName>${applicationName}</xsd1:applicationName>
|
||||
<!-- <xsd1:certificateContent>?</xsd1:certificateContent> -->
|
||||
<xsd1:description>${description}</xsd1:description>
|
||||
<xsd1:inboundAuthenticationConfig>
|
||||
<xsd1:inboundAuthenticationRequestConfigs>
|
||||
<!-- <xsd1:friendlyName>?</xsd1:friendlyName> -->
|
||||
<xsd1:inboundAuthKey>${inboundAuthKey}</xsd1:inboundAuthKey>
|
||||
<xsd1:inboundAuthType>${inboundAuthType}</xsd1:inboundAuthType>
|
||||
<xsd1:inboundConfigType>${inboundConfigType}</xsd1:inboundConfigType>
|
||||
<!-- <xsd1:properties>
|
||||
<xsd1:advanced>?</xsd1:advanced>
|
||||
<xsd1:confidential>?</xsd1:confidential>
|
||||
<xsd1:defaultValue>?</xsd1:defaultValue>
|
||||
<xsd1:description>?</xsd1:description>
|
||||
<xsd1:displayName>?</xsd1:displayName>
|
||||
<xsd1:displayOrder>?</xsd1:displayOrder>
|
||||
<xsd1:name>?</xsd1:name>
|
||||
<xsd1:required>false</xsd1:required>
|
||||
<xsd1:type>?</xsd1:type>
|
||||
<xsd1:value>?</xsd1:value>
|
||||
</xsd1:properties> -->
|
||||
</xsd1:inboundAuthenticationRequestConfigs>
|
||||
</xsd1:inboundAuthenticationConfig>
|
||||
<!-- <xsd1:inboundProvisioningConfig>
|
||||
<xsd1:dumbMode>?</xsd1:dumbMode>
|
||||
<xsd1:provisioningEnabled>?</xsd1:provisioningEnabled>
|
||||
<xsd1:provisioningUserStore>?</xsd1:provisioningUserStore>
|
||||
</xsd1:inboundProvisioningConfig>
|
||||
<xsd1:outboundProvisioningConfig>
|
||||
<xsd1:provisionByRoleList>?</xsd1:provisionByRoleList>
|
||||
</xsd1:outboundProvisioningConfig> -->
|
||||
<xsd1:owner>
|
||||
<xsd1:tenantDomain>${tenantDomain}</xsd1:tenantDomain>
|
||||
<xsd1:userName>${userName}</xsd1:userName>
|
||||
<xsd1:userStoreDomain>${userStoreDomain}</xsd1:userStoreDomain>
|
||||
</xsd1:owner>
|
||||
<xsd1:saasApp>${saasApp}</xsd1:saasApp>
|
||||
<xsd1:spProperties>
|
||||
<!-- <xsd1:displayName>?</xsd1:displayName> -->
|
||||
<xsd1:name>displayName</xsd1:name>
|
||||
<xsd1:value>${displayName}</xsd1:value>
|
||||
</xsd1:spProperties>
|
||||
<xsd1:permissionAndRoleConfig></xsd1:permissionAndRoleConfig>
|
||||
</xsd:serviceProvider>
|
||||
</xsd:updateApplication>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
|
||||
@ -1,249 +0,0 @@
|
||||
<!--
|
||||
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<parent>
|
||||
<groupId>org.wso2</groupId>
|
||||
<artifactId>wso2</artifactId>
|
||||
<version>1</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
<module>connectedcup</module>
|
||||
<module>../wso2/analytics/samples/connected-cup</module>
|
||||
</modules>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.wso2.iot.devicemgt-plugins</groupId>
|
||||
<artifactId>iot-devicetype-samples</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Install Connected Cup Device Types - IoT Core</name>
|
||||
<url>http://wso2.org</url>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.wso2.maven</groupId>
|
||||
<artifactId>carbon-p2-plugin</artifactId>
|
||||
<version>1.5.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>2-p2-repo-generation</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-repo-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<metadataRepository>file:\${basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${basedir}/target/p2-repo</artifactRepository>
|
||||
<publishArtifacts>true</publishArtifacts>
|
||||
<publishArtifactRepository>true</publishArtifactRepository>
|
||||
<featureArtifacts>
|
||||
<featureArtifactDef>
|
||||
org.coffeeking:org.coffeeking.connectedcup.backend.feature:\${org.coffeeking.version}
|
||||
</featureArtifactDef>
|
||||
<featureArtifactDef>
|
||||
org.coffeeking:org.coffeeking.connectedcup.ui.feature:\${org.coffeeking.version}
|
||||
</featureArtifactDef>
|
||||
</featureArtifacts>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>default-feature-install</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-profile-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<profile>default</profile>
|
||||
<metadataRepository>file:\${basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${basedir}/target/p2-repo</artifactRepository>
|
||||
<destination>\${basedir}/../wso2/components</destination>
|
||||
<deleteOldProfileFiles>false</deleteOldProfileFiles>
|
||||
<features>
|
||||
<!-- Connected Cup Features -->
|
||||
<feature>
|
||||
<id>org.coffeeking.connectedcup.ui.feature.group</id>
|
||||
<version>\${org.coffeeking.version}</version>
|
||||
</feature>
|
||||
<feature>
|
||||
<id>org.coffeeking.connectedcup.backend.feature.group</id>
|
||||
<version>\${org.coffeeking.version}</version>
|
||||
</feature>
|
||||
</features>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>manager-feature-install</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-profile-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<profile>device-manager</profile>
|
||||
<metadataRepository>file:\${basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${basedir}/target/p2-repo</artifactRepository>
|
||||
<destination>\${basedir}/../wso2/components</destination>
|
||||
<deleteOldProfileFiles>false</deleteOldProfileFiles>
|
||||
<features>
|
||||
<!-- Connected Cup UI Features -->
|
||||
<feature>
|
||||
<id>org.coffeeking.connectedcup.ui.feature.group</id>
|
||||
<version>\${org.coffeeking.version}</version>
|
||||
</feature>
|
||||
</features>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>backend-feature-install</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>p2-profile-gen</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<profile>device-backend</profile>
|
||||
<metadataRepository>file:\${basedir}/target/p2-repo</metadataRepository>
|
||||
<artifactRepository>file:\${basedir}/target/p2-repo</artifactRepository>
|
||||
<destination>\${basedir}/../wso2/components</destination>
|
||||
<deleteOldProfileFiles>false</deleteOldProfileFiles>
|
||||
<features>
|
||||
<!-- Connected Cup BE Features -->
|
||||
<feature>
|
||||
<id>org.coffeeking.connectedcup.backend.feature.group</id>
|
||||
<version>\${org.coffeeking.version}</version>
|
||||
</feature>
|
||||
</features>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-feature-install</id>
|
||||
<phase>package</phase>
|
||||
<configuration>
|
||||
<tasks>
|
||||
<replace token="false" value="true"
|
||||
dir="../wso2/components/default/configuration/org.eclipse.equinox.simpleconfigurator">
|
||||
<include name="**/bundles.info"/>
|
||||
</replace>
|
||||
<replace token="false" value="true"
|
||||
dir="../wso2/components/device-manager/configuration/org.eclipse.equinox.simpleconfigurator">
|
||||
<include name="**/bundles.info"/>
|
||||
</replace>
|
||||
<replace token="false" value="true"
|
||||
dir="../wso2/components/device-backend/configuration/org.eclipse.equinox.simpleconfigurator">
|
||||
<include name="**/bundles.info"/>
|
||||
</replace>
|
||||
</tasks>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>Apache Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
|
||||
<repositories>
|
||||
<!-- Before adding ANYTHING in here, please start a discussion on the dev list.
|
||||
Ideally the Axis2 build should only use Maven central (which is available
|
||||
by default) and nothing else. We had troubles with other repositories in
|
||||
the past. Therefore configuring additional repositories here should be
|
||||
considered very carefully. -->
|
||||
<repository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>WSO2 Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
</repositories>
|
||||
<properties>
|
||||
<carbon.device.mgt.plugin.version>${carbon.device.mgt.plugin.version}</carbon.device.mgt.plugin.version>
|
||||
<org.coffeeking.version>1.0.0</org.coffeeking.version>
|
||||
</properties>
|
||||
</project>
|
||||
@ -1,155 +0,0 @@
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<parent>
|
||||
<artifactId>device-mgt-iot-connectedcup</artifactId>
|
||||
<groupId>org.coffeeking</groupId>
|
||||
<version>1.0.0</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.coffeeking.connectedcup.agent</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>1.0.0</version>
|
||||
<name>WSO2 IoTS(Device Types) - Connected Cup Agent Web app</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
<artifactId>json</artifactId>
|
||||
<version>20151123</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.1.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.paho</groupId>
|
||||
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
|
||||
<version>1.0.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>connected-cup-agent</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>Apache Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
|
||||
<repositories>
|
||||
<!-- Before adding ANYTHING in here, please start a discussion on the dev list.
|
||||
Ideally the Axis2 build should only use Maven central (which is available
|
||||
by default) and nothing else. We had troubles with other repositories in
|
||||
the past. Therefore configuring additional repositories here should be
|
||||
considered very carefully. -->
|
||||
<repository>
|
||||
<id>wso2-nexus</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.releases</id>
|
||||
<name>WSO2 internal Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/releases/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
<checksumPolicy>ignore</checksumPolicy>
|
||||
</releases>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>wso2.snapshots</id>
|
||||
<name>WSO2 Snapshot Repository</name>
|
||||
<url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
</project>
|
||||
@ -1,67 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.coffeeking.agent.datasense;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.coffeeking.agent.transport.TransportHandlerException;
|
||||
import org.coffeeking.agent.transport.mqtt.ConnectedCupMQttTransportHandler;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.StreamCorruptedException;
|
||||
|
||||
public class PushLevel extends HttpServlet {
|
||||
private static final Log log = LogFactory.getLog(PushLevel.class);
|
||||
private ConnectedCupMQttTransportHandler connectedCupMQttTransportHandler;
|
||||
|
||||
public PushLevel() {
|
||||
connectedCupMQttTransportHandler = ConnectedCupMQttTransportHandler.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
String deviceId = req.getParameter("deviceId");
|
||||
String tenantDomain = req.getParameter("tenantDomain");
|
||||
String deviceOwner = req.getParameter("deviceOwner");
|
||||
String payload = req.getParameter("payload");
|
||||
payload = " {\"event\": {\"metaData\": {\"owner\": \"" + deviceOwner +
|
||||
"\", \"type\": \"coffeelevel\",\"deviceId\": " +
|
||||
"\"" + deviceId + "\",\"timestamp\": " + System.currentTimeMillis() +
|
||||
"},\"payloadData\": { \"coffeelevel\": " + Float.parseFloat(payload) + ", \"temperature\": 0} }}";
|
||||
String token = (String) req.getSession().getAttribute("token");
|
||||
if (!connectedCupMQttTransportHandler.isConnected()) {
|
||||
connectedCupMQttTransportHandler.setToken(token);
|
||||
connectedCupMQttTransportHandler.connect();
|
||||
}
|
||||
try {
|
||||
if (connectedCupMQttTransportHandler.isConnected()) {
|
||||
connectedCupMQttTransportHandler.publishToConnectedCup(deviceOwner, deviceId, payload, tenantDomain, 0,
|
||||
true);
|
||||
}
|
||||
} catch (TransportHandlerException e) {
|
||||
log.error(e);
|
||||
resp.sendError(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,66 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.coffeeking.agent.datasense;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.coffeeking.agent.transport.TransportHandlerException;
|
||||
import org.coffeeking.agent.transport.mqtt.ConnectedCupMQttTransportHandler;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
public class PushTemperature extends HttpServlet {
|
||||
private static final Log log = LogFactory.getLog(PushTemperature.class);
|
||||
private ConnectedCupMQttTransportHandler connectedCupMQttTransportHandler;
|
||||
|
||||
public PushTemperature() {
|
||||
connectedCupMQttTransportHandler = ConnectedCupMQttTransportHandler.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
String deviceId = req.getParameter("deviceId");
|
||||
String tenantDomain = req.getParameter("tenantDomain");
|
||||
String payload = req.getParameter("payload");
|
||||
String deviceOwner = req.getParameter("deviceOwner");
|
||||
payload = " {\"event\": {\"metaData\": {\"owner\": \"" + deviceOwner +
|
||||
"\", \"type\": \"temperature\",\"deviceId\": " +
|
||||
"\"" + deviceId + "\",\"timestamp\": " + System.currentTimeMillis() +
|
||||
"},\"payloadData\": { \"temperature\": " + Float.parseFloat(payload) + ", \"coffeelevel\": 0} }}";
|
||||
String token = (String) req.getSession().getAttribute("token");
|
||||
if (!connectedCupMQttTransportHandler.isConnected()) {
|
||||
connectedCupMQttTransportHandler.setToken(token);
|
||||
connectedCupMQttTransportHandler.connect();
|
||||
}
|
||||
try {
|
||||
if (connectedCupMQttTransportHandler.isConnected()) {
|
||||
connectedCupMQttTransportHandler.publishToConnectedCup(deviceOwner, deviceId, payload, tenantDomain, 0,
|
||||
true);
|
||||
}
|
||||
} catch (TransportHandlerException e) {
|
||||
log.error(e);
|
||||
resp.sendError(500);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.coffeeking.agent.transport;
|
||||
|
||||
/**
|
||||
* This interface consists of the core functionality related to the transport between any device and the server. The
|
||||
* interface is an abstraction, regardless of the underlying protocol used for the transport. Implementation of this
|
||||
* interface by any class that caters a specific protocol (ex: HTTP, XMPP, MQTT, CoAP) would ideally have methods
|
||||
* specific to the protocol used for communication and thees methods that implement the logic related to the devices
|
||||
* using the protocol.
|
||||
*
|
||||
* @param <T> a message type specific to the protocol implemented
|
||||
*/
|
||||
public interface TransportHandler<T> {
|
||||
int DEFAULT_TIMEOUT_INTERVAL = 5000; // millis ~ 10 sec
|
||||
|
||||
void connect();
|
||||
|
||||
boolean isConnected();
|
||||
|
||||
void processIncomingMessage() throws TransportHandlerException;
|
||||
|
||||
void processIncomingMessage(T message) throws TransportHandlerException;
|
||||
|
||||
void processIncomingMessage(T message, String... messageParams) throws TransportHandlerException;
|
||||
|
||||
void publishDeviceData() throws TransportHandlerException;
|
||||
|
||||
void publishDeviceData(T publishData) throws TransportHandlerException;
|
||||
|
||||
void publishDeviceData(String... publishData) throws TransportHandlerException;
|
||||
|
||||
void disconnect();
|
||||
}
|
||||
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.coffeeking.agent.transport;
|
||||
|
||||
public class TransportHandlerException extends Exception {
|
||||
private static final long serialVersionUID = 2736466230451105440L;
|
||||
|
||||
private String errorMessage;
|
||||
|
||||
public String getErrorMessage() {
|
||||
return errorMessage;
|
||||
}
|
||||
|
||||
public void setErrorMessage(String errorMessage) {
|
||||
this.errorMessage = errorMessage;
|
||||
}
|
||||
|
||||
public TransportHandlerException(String msg, Exception nestedEx) {
|
||||
super(msg, nestedEx);
|
||||
setErrorMessage(msg);
|
||||
}
|
||||
|
||||
public TransportHandlerException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
setErrorMessage(message);
|
||||
}
|
||||
|
||||
public TransportHandlerException(String msg) {
|
||||
super(msg);
|
||||
setErrorMessage(msg);
|
||||
}
|
||||
|
||||
public TransportHandlerException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public TransportHandlerException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
||||
@ -1,160 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.coffeeking.agent.transport.mqtt;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.coffeeking.agent.transport.TransportHandlerException;
|
||||
import org.eclipse.paho.client.mqttv3.MqttException;
|
||||
import org.eclipse.paho.client.mqttv3.MqttMessage;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
public class ConnectedCupMQttTransportHandler extends MQTTTransportHandler {
|
||||
|
||||
private static Log log = LogFactory.getLog(ConnectedCupMQttTransportHandler.class);
|
||||
|
||||
private static String iotServerSubscriber = UUID.randomUUID().toString().substring(0, 5);
|
||||
|
||||
private static final String DEVICE_TYPE = "connectedcup";
|
||||
|
||||
private static ConnectedCupMQttTransportHandler connectedCupMQttTransportHandler;
|
||||
|
||||
private static String publishTopic = "%s/" + DEVICE_TYPE + "/%s";
|
||||
|
||||
protected ConnectedCupMQttTransportHandler() {
|
||||
super(iotServerSubscriber, DEVICE_TYPE, "tcp://localhost:1886", "");
|
||||
}
|
||||
|
||||
private ScheduledFuture<?> dataPushServiceHandler;
|
||||
|
||||
public ScheduledFuture<?> getDataPushServiceHandler() {
|
||||
return dataPushServiceHandler;
|
||||
}
|
||||
|
||||
public void setToken(String token) {
|
||||
setUsernameAndPassword(token, "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect() {
|
||||
Runnable connect = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
log.info("Trying to connect..");
|
||||
while (!isConnected()) {
|
||||
try {
|
||||
connectToQueue();
|
||||
} catch (TransportHandlerException e) {
|
||||
log.warn("Connection to MQTT Broker at: " +
|
||||
mqttBrokerEndPoint + " failed");
|
||||
|
||||
try {
|
||||
Thread.sleep(timeoutInterval);
|
||||
} catch (InterruptedException ex) {
|
||||
log.error("MQTT-Subscriber: Thread Sleep Interrupt Exception");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log.info("Connected..");
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
Thread connectorThread = new Thread(connect);
|
||||
connectorThread.start();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processIncomingMessage(MqttMessage message, String... messageParams) {
|
||||
}
|
||||
|
||||
public void publishToConnectedCup(String deviceOwner , String deviceId, String payLoad, String tenantDomain, int qos, boolean retained)
|
||||
throws TransportHandlerException{
|
||||
String topic = String.format(publishTopic, tenantDomain, deviceId);
|
||||
publishToQueue(topic, payLoad, qos, retained);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
Runnable stopConnection = new Runnable() {
|
||||
public void run() {
|
||||
while (isConnected()) {
|
||||
try {
|
||||
dataPushServiceHandler.cancel(true);
|
||||
closeConnection();
|
||||
|
||||
} catch (MqttException e) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.warn("Unable to 'STOP' MQTT connection at broker at: " +
|
||||
mqttBrokerEndPoint);
|
||||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(timeoutInterval);
|
||||
} catch (InterruptedException e1) {
|
||||
log.error("MQTT-Terminator: Thread Sleep Interrupt Exception");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Thread terminatorThread = new Thread(stopConnection);
|
||||
terminatorThread.start();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void publishDeviceData() throws TransportHandlerException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishDeviceData(MqttMessage publishData) throws TransportHandlerException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishDeviceData(String... publishData) throws TransportHandlerException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processIncomingMessage() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processIncomingMessage(MqttMessage message) throws TransportHandlerException {
|
||||
|
||||
}
|
||||
|
||||
public static ConnectedCupMQttTransportHandler getInstance(){
|
||||
if(connectedCupMQttTransportHandler == null){
|
||||
connectedCupMQttTransportHandler = new ConnectedCupMQttTransportHandler();
|
||||
}
|
||||
return connectedCupMQttTransportHandler;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,372 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.coffeeking.agent.transport.mqtt;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.coffeeking.agent.transport.TransportHandler;
|
||||
import org.coffeeking.agent.transport.TransportHandlerException;
|
||||
import org.eclipse.paho.client.mqttv3.*;
|
||||
import java.io.File;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* This is an abstract class that implements the "TransportHandler" interface. The interface is an abstraction for
|
||||
* the core functionality with regards to device-server communication regardless of the Transport protocol. This
|
||||
* specific class contains the HTTP-Transport specific implementations. The class implements utility methods for the
|
||||
* case of a HTTP communication. However, this "abstract class", even-though it implements the "TransportHandler"
|
||||
* interface, does not contain the logic relevant to the interface methods. The specific functionality of the
|
||||
* interface methods are intended to be implemented by the concrete class that extends this abstract class and
|
||||
* utilizes the HTTP specific functionality (ideally a device API writer who would like to communicate to the device
|
||||
* via HTTP Protocol).
|
||||
* <p/>
|
||||
* This class contains the Device-Management specific implementation for all the MQTT functionality. This includes
|
||||
* connecting to a MQTT Broker & subscribing to the appropriate MQTT-topic, action plan upon losing connection or
|
||||
* successfully delivering a message to the broker and processing incoming messages. Makes use of the 'Paho-MQTT'
|
||||
* library provided by Eclipse Org.
|
||||
*/
|
||||
public abstract class MQTTTransportHandler
|
||||
implements MqttCallback, TransportHandler<MqttMessage> {
|
||||
private static final Log log = LogFactory.getLog(MQTTTransportHandler.class);
|
||||
|
||||
public static final int DEFAULT_MQTT_QUALITY_OF_SERVICE = 0;
|
||||
|
||||
private MqttClient client;
|
||||
private String clientId;
|
||||
private MqttConnectOptions options;
|
||||
private String clientWillTopic;
|
||||
|
||||
protected String mqttBrokerEndPoint;
|
||||
protected int timeoutInterval;
|
||||
protected String subscribeTopic;
|
||||
|
||||
/**
|
||||
* Constructor for the MQTTTransportHandler which takes in the owner, type of the device
|
||||
* and the MQTT Broker URL and the topic to subscribe.
|
||||
*
|
||||
* @param deviceOwner the owner of the device.
|
||||
* @param deviceType the CDMF Device-Type of the device.
|
||||
* @param mqttBrokerEndPoint the IP/URL of the MQTT broker endpoint.
|
||||
* @param subscribeTopic the MQTT topic to which the client is to be subscribed
|
||||
*/
|
||||
protected MQTTTransportHandler(String deviceOwner, String deviceType,
|
||||
String mqttBrokerEndPoint,
|
||||
String subscribeTopic) {
|
||||
this.clientId = deviceOwner + ":" + deviceType;
|
||||
this.subscribeTopic = subscribeTopic;
|
||||
this.clientWillTopic = deviceType + File.separator + "disconnection";
|
||||
this.mqttBrokerEndPoint = mqttBrokerEndPoint;
|
||||
this.timeoutInterval = DEFAULT_TIMEOUT_INTERVAL;
|
||||
this.initSubscriber();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for the MQTTTransportHandler which takes in the owner, type of the device
|
||||
* and the MQTT Broker URL and the topic to subscribe. Additionally this constructor takes in
|
||||
* the reconnection-time interval between successive attempts to connect to the broker.
|
||||
*
|
||||
* @param deviceOwner the owner of the device.
|
||||
* @param deviceType the CDMF Device-Type of the device.
|
||||
* @param mqttBrokerEndPoint the IP/URL of the MQTT broker endpoint.
|
||||
* @param subscribeTopic the MQTT topic to which the client is to be subscribed
|
||||
* @param intervalInMillis the time interval in MILLI-SECONDS between successive
|
||||
* attempts to connect to the broker.
|
||||
*/
|
||||
protected MQTTTransportHandler(String deviceOwner, String deviceType,
|
||||
String mqttBrokerEndPoint, String subscribeTopic,
|
||||
int intervalInMillis) {
|
||||
this.clientId = deviceOwner + ":" + deviceType;
|
||||
this.subscribeTopic = subscribeTopic;
|
||||
//TODO:: Use constant strings
|
||||
this.clientWillTopic = deviceType + File.separator + "disconnection";
|
||||
this.mqttBrokerEndPoint = mqttBrokerEndPoint;
|
||||
this.timeoutInterval = intervalInMillis;
|
||||
this.initSubscriber();
|
||||
}
|
||||
|
||||
public void setUsernameAndPassword (String username, String password) {
|
||||
options.setUserName(username);
|
||||
options.setPassword(password.toCharArray());
|
||||
}
|
||||
|
||||
public void setTimeoutInterval(int timeoutInterval) {
|
||||
this.timeoutInterval = timeoutInterval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the MQTT-Client. Creates a client using the given MQTT-broker endpoint and the
|
||||
* clientId (which is constructed by a concatenation of [deviceOwner]:[deviceType]). Also sets
|
||||
* the client's options parameter with the clientWillTopic (in-case of connection failure) and
|
||||
* other info. Also sets the call-back this current class.
|
||||
*/
|
||||
private void initSubscriber() {
|
||||
try {
|
||||
client = new MqttClient(this.mqttBrokerEndPoint, clientId, null);
|
||||
//TODO:: Need to check for debug
|
||||
log.info("MQTT subscriber was created with ClientID : " + clientId);
|
||||
} catch (MqttException ex) {
|
||||
//TODO:: Remove unnecessary formatting and print exception
|
||||
String errorMsg = "MQTT Client Error\n" + "\tReason: " + ex.getReasonCode() +
|
||||
"\n\tMessage: " + ex.getMessage() + "\n\tLocalMsg: " +
|
||||
ex.getLocalizedMessage() + "\n\tCause: " + ex.getCause() +
|
||||
"\n\tException: " + ex;
|
||||
log.error(errorMsg);
|
||||
//TODO:: Throw the error out
|
||||
}
|
||||
|
||||
options = new MqttConnectOptions();
|
||||
options.setCleanSession(true);
|
||||
//TODO:: Use constant strings
|
||||
options.setWill(clientWillTopic, "Connection-Lost".getBytes(StandardCharsets.UTF_8), 2,
|
||||
true);
|
||||
client.setCallback(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the connection to the MQTT-Broker persists.
|
||||
*
|
||||
* @return true if the client is connected to the MQTT-Broker, else false.
|
||||
*/
|
||||
@Override
|
||||
public boolean isConnected() {
|
||||
return client.isConnected();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Connects to the MQTT-Broker and if successfully established connection.
|
||||
*
|
||||
* @throws TransportHandlerException in the event of 'Connecting to' the MQTT broker fails.
|
||||
*/
|
||||
protected void connectToQueue() throws TransportHandlerException {
|
||||
try {
|
||||
client.connect(options);
|
||||
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Subscriber connected to queue at: " + this.mqttBrokerEndPoint);
|
||||
}
|
||||
} catch (MqttSecurityException ex) {
|
||||
String errorMsg = "MQTT Security Exception when connecting to queue\n" + "\tReason: " +
|
||||
" " +
|
||||
ex.getReasonCode() + "\n\tMessage: " + ex.getMessage() +
|
||||
"\n\tLocalMsg: " + ex.getLocalizedMessage() + "\n\tCause: " +
|
||||
ex.getCause() + "\n\tException: " + ex;
|
||||
//TODO:: Compulsory log of errors and remove formatted error
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug(errorMsg);
|
||||
}
|
||||
throw new TransportHandlerException(errorMsg, ex);
|
||||
|
||||
} catch (MqttException ex) {
|
||||
//TODO:: Compulsory log of errors and remove formatted error
|
||||
String errorMsg = "MQTT Exception when connecting to queue\n" + "\tReason: " +
|
||||
ex.getReasonCode() + "\n\tMessage: " + ex.getMessage() +
|
||||
"\n\tLocalMsg: " + ex.getLocalizedMessage() + "\n\tCause: " +
|
||||
ex.getCause() + "\n\tException: " + ex;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug(errorMsg);
|
||||
}
|
||||
throw new TransportHandlerException(errorMsg, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Subscribes to the MQTT-Topic specific to this MQTT Client. (The MQTT-Topic specific to the
|
||||
* device is taken in as a constructor parameter of this class) .
|
||||
*
|
||||
* @throws TransportHandlerException in the event of 'Subscribing to' the MQTT broker
|
||||
* fails.
|
||||
*/
|
||||
protected void subscribeToQueue() throws TransportHandlerException {
|
||||
try {
|
||||
//TODO:: QoS Level take it from a variable
|
||||
client.subscribe(subscribeTopic, 0);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Subscriber '" + clientId + "' subscribed to topic: " + subscribeTopic);
|
||||
}
|
||||
} catch (MqttException ex) {
|
||||
//TODO:: Compulsory log of errors and remove formatted error
|
||||
String errorMsg = "MQTT Exception when trying to subscribe to topic: " +
|
||||
subscribeTopic + "\n\tReason: " + ex.getReasonCode() +
|
||||
"\n\tMessage: " + ex.getMessage() + "\n\tLocalMsg: " +
|
||||
ex.getLocalizedMessage() + "\n\tCause: " + ex.getCause() +
|
||||
"\n\tException: " + ex;
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug(errorMsg);
|
||||
}
|
||||
|
||||
throw new TransportHandlerException(errorMsg, ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method is used to publish reply-messages for the control signals received.
|
||||
* Invocation of this method calls its overloaded-method with a QoS equal to that of the
|
||||
* default value.
|
||||
*
|
||||
* @param topic the topic to which the reply message is to be published.
|
||||
* @param payLoad the reply-message (payload) of the MQTT publish action.
|
||||
*/
|
||||
protected void publishToQueue(String topic, String payLoad)
|
||||
throws TransportHandlerException {
|
||||
publishToQueue(topic, payLoad, DEFAULT_MQTT_QUALITY_OF_SERVICE, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is an overloaded method that publishes MQTT reply-messages for control signals
|
||||
* received form the IoT-Server.
|
||||
*
|
||||
* @param topic the topic to which the reply message is to be published
|
||||
* @param payLoad the reply-message (payload) of the MQTT publish action.
|
||||
* @param qos the Quality-of-Service of the current publish action.
|
||||
* Could be 0(At-most once), 1(At-least once) or 2(Exactly once)
|
||||
*/
|
||||
protected void publishToQueue(String topic, String payLoad, int qos, boolean retained)
|
||||
throws TransportHandlerException {
|
||||
try {
|
||||
client.publish(topic, payLoad.getBytes(StandardCharsets.UTF_8), qos, retained);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Message: " + payLoad + " to MQTT topic [" + topic +
|
||||
"] published successfully");
|
||||
}
|
||||
} catch (MqttException ex) {
|
||||
String errorMsg =
|
||||
"MQTT Client Error" + "\n\tReason: " + ex.getReasonCode() + "\n\tMessage: " +
|
||||
ex.getMessage() + "\n\tLocalMsg: " + ex.getLocalizedMessage() +
|
||||
"\n\tCause: " + ex.getCause() + "\n\tException: " + ex;
|
||||
log.info(errorMsg);
|
||||
throw new TransportHandlerException(errorMsg, ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void publishToQueue(String topic, MqttMessage message)
|
||||
throws TransportHandlerException {
|
||||
try {
|
||||
client.publish(topic, message);
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Message: " + message.toString() + " to MQTT topic [" + topic +
|
||||
"] published successfully");
|
||||
}
|
||||
} catch (MqttException ex) {
|
||||
//TODO:: Compulsory log of errors and remove formatted error
|
||||
String errorMsg =
|
||||
"MQTT Client Error" + "\n\tReason: " + ex.getReasonCode() + "\n\tMessage: " +
|
||||
ex.getMessage() + "\n\tLocalMsg: " + ex.getLocalizedMessage() +
|
||||
"\n\tCause: " + ex.getCause() + "\n\tException: " + ex;
|
||||
log.info(errorMsg);
|
||||
throw new TransportHandlerException(errorMsg, ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Callback method which is triggered once the MQTT client losers its connection to the broker.
|
||||
* Spawns a new thread that executes necessary actions to try and reconnect to the endpoint.
|
||||
*
|
||||
* @param throwable a Throwable Object containing the details as to why the failure occurred.
|
||||
*/
|
||||
@Override
|
||||
public void connectionLost(Throwable throwable) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.warn("Lost Connection for client: " + this.clientId + " to " + this.mqttBrokerEndPoint + "." +
|
||||
"\nThis was due to - " + throwable.getMessage());
|
||||
}
|
||||
|
||||
Thread reconnectThread = new Thread() {
|
||||
public void run() {
|
||||
connect();
|
||||
}
|
||||
};
|
||||
reconnectThread.setDaemon(true);
|
||||
reconnectThread.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback method which is triggered upon receiving a MQTT Message from the broker. Spawns a
|
||||
* new thread that executes any actions to be taken with the received message.
|
||||
*
|
||||
* @param topic the MQTT-Topic to which the received message was published to and the
|
||||
* client was subscribed to.
|
||||
* @param mqttMessage the actual MQTT-Message that was received from the broker.
|
||||
*/
|
||||
@Override
|
||||
public void messageArrived(final String topic, final MqttMessage mqttMessage) {
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Got an MQTT message '" + mqttMessage.toString() + "' for topic '" + topic + "'.");
|
||||
}
|
||||
|
||||
Thread messageProcessorThread = new Thread() {
|
||||
public void run() {
|
||||
try {
|
||||
processIncomingMessage(mqttMessage, topic);
|
||||
} catch (TransportHandlerException e) {
|
||||
log.error("An error occurred when trying to process received MQTT message [" + mqttMessage + "] " +
|
||||
"for topic [" + topic + "].", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
messageProcessorThread.setDaemon(true);
|
||||
messageProcessorThread.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback method which gets triggered upon successful completion of a message delivery to
|
||||
* the broker.
|
||||
*
|
||||
* @param iMqttDeliveryToken the MQTT-DeliveryToken which includes the details about the
|
||||
* specific message delivery.
|
||||
*/
|
||||
@Override
|
||||
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
|
||||
String topic = iMqttDeliveryToken.getTopics()[0];
|
||||
String client = iMqttDeliveryToken.getClient().getClientId();
|
||||
|
||||
try {
|
||||
if (iMqttDeliveryToken.isComplete()) {
|
||||
if (log.isDebugEnabled()) {
|
||||
if (iMqttDeliveryToken.getMessage() != null) {
|
||||
String message = iMqttDeliveryToken.getMessage().toString();
|
||||
log.debug("Message to client [" + client + "] under topic (" + topic +
|
||||
") was delivered successfully with the delivery message: '" + message + "'");
|
||||
} else {
|
||||
log.debug("Message to client [" + client + "] under topic (" + topic +
|
||||
") was delivered successfully.");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.warn("FAILED: Delivery of MQTT message to [" + client + "] under topic [" + topic + "] failed.");
|
||||
}
|
||||
} catch (MqttException e) {
|
||||
//TODO:: Throw errors
|
||||
log.error("Error occurred whilst trying to read the message from the MQTT delivery token.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the connection to the MQTT Broker.
|
||||
*/
|
||||
public void closeConnection() throws MqttException {
|
||||
if (client != null && isConnected()) {
|
||||
client.disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,27 +0,0 @@
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
|
||||
version="2.5">
|
||||
<display-name>ConnectedCup-Webapp</display-name>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>PushTemperature</servlet-name>
|
||||
<servlet-class>org.coffeeking.agent.datasense.PushTemperature</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>PushTemperature</servlet-name>
|
||||
<url-pattern>/push_temperature</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>PushLevel</servlet-name>
|
||||
<servlet-class>org.coffeeking.agent.datasense.PushLevel</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>PushLevel</servlet-name>
|
||||
<url-pattern>/push_level</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
</web-app>
|
||||
@ -1,299 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
input[type=range][orient=vertical]
|
||||
{
|
||||
writing-mode: bt-lr; /* IE */
|
||||
-webkit-appearance: slider-vertical; /* WebKit */
|
||||
width: 8px;
|
||||
height: 175px;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
padding-top: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.left-pane{
|
||||
float: left;
|
||||
width: 30%;
|
||||
text-align: center;
|
||||
min-width: 325px;
|
||||
}
|
||||
.right-pane{
|
||||
float: right;
|
||||
background-color: rgba(204, 204, 204, 0.61);
|
||||
width: 70%;
|
||||
}
|
||||
.coffee-wrapper{
|
||||
margin: 10% 0 5% 10%;
|
||||
text-align: center;
|
||||
}
|
||||
.coffee-top{
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
z-index: 99;
|
||||
background-color: aquamarine;
|
||||
}
|
||||
.coffee-bottom{
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
height: 10px;
|
||||
width: 100%;
|
||||
z-index: 98;
|
||||
background-color: aqua;
|
||||
}
|
||||
|
||||
.handle {
|
||||
position: absolute;
|
||||
height: 200px;
|
||||
width: 97px;
|
||||
top: 39px;
|
||||
left: -111px;
|
||||
border-top-left-radius: 75px 100px;
|
||||
border-bottom-left-radius: 75px 100px;
|
||||
border-top-right-radius: 50% 20px;
|
||||
border-bottom-right-radius: 50% 20px;
|
||||
background: linear-gradient(to left, rgba(0, 0, 0, 0.01) 0%, rgba(0, 0, 0, 0.01) 100%);
|
||||
background-color: rgba(255, 255, 255, 0.28);
|
||||
border: 1px solid rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
.handle:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 167px;
|
||||
width: 76px;
|
||||
top: 15px;
|
||||
right: 0;
|
||||
border-top-left-radius: 45px 70px;
|
||||
border-bottom-left-radius: 45px 70px;
|
||||
border-top-right-radius: 45px 35px;
|
||||
border-bottom-right-radius: 45px 35px;
|
||||
background: rgba(204, 204, 204, 0.3);
|
||||
}
|
||||
|
||||
:before, :after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.coffee {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 300px;
|
||||
margin: 0 20px 50px 0;
|
||||
}
|
||||
|
||||
.coffee:after {
|
||||
height: 14px;
|
||||
width: 300px;
|
||||
border-radius: 46px/10px;
|
||||
box-shadow: 0px 1px 4px -2px rgba(0, 0, 0, 0.2), 0px 2px 10px -3px rgba(0, 0, 0, 0.1);
|
||||
bottom: -7.6px;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.coffee:before {
|
||||
height: 14px;
|
||||
width: 300px;
|
||||
border-radius: 46px/10px;
|
||||
box-shadow: 0px 2px 10px -2px rgba(0, 204, 255, 0.3), 0px 2px 15px -2px rgba(0, 204, 255, 0.4);
|
||||
bottom: -7.6px;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.coffee_main {
|
||||
height: 300px;
|
||||
position: relative;
|
||||
width: 298px;
|
||||
background: none;
|
||||
border: 1px solid rgba(255, 255, 255, 0.5);
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.coffee_main:after, .coffee_main:before {
|
||||
height: 12px;
|
||||
width: 296px;
|
||||
border-radius: 46px/10px;
|
||||
border: 2px solid rgba(255, 255, 255, 0.5);
|
||||
border-bottom: 2px solid rgba(255, 255, 255, 0.7);
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.3);
|
||||
left: -1px;
|
||||
}
|
||||
|
||||
.coffee_main:after {
|
||||
top: -7px;
|
||||
box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.6) inset, 0px 3px 3px -1px rgba(255, 255, 255, 0.4), 0px 0px 3px rgba(0, 0, 0, 0.05) inset, 0px 0px 6px rgba(255, 255, 255, 0.7) inset, 0px 0px 3px rgba(0, 0, 0, 0.15) inset;
|
||||
}
|
||||
|
||||
.coffee_main:before {
|
||||
top: 294px;
|
||||
box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.7) inset, 0px 0px 3px rgba(0, 0, 0, 0.15) inset;
|
||||
}
|
||||
|
||||
.coffee_mouth {
|
||||
height: 52px;
|
||||
width: 44px;
|
||||
margin: 0px auto;
|
||||
position: relative;
|
||||
background: none;
|
||||
border: 1px solid rgba(0, 0, 0, 0.04);
|
||||
border-top: none;
|
||||
border-bottom: none;
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0) 5%, rgba(255, 255, 255, 0) 95%, rgba(255, 255, 255, 0.3));
|
||||
box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.coffee_mouth:after {
|
||||
height: 6px;
|
||||
width: 44px;
|
||||
border-radius: 25px/6px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.4);
|
||||
left: -1px;
|
||||
top: -4px;
|
||||
z-index: 1;
|
||||
box-shadow: 0px 0px 3px rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.coffee_inner {
|
||||
height: 295px;
|
||||
width: 92%;
|
||||
margin: 0px auto;
|
||||
border-radius: 10px 10px 20px 20px/10px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.01);
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.3);
|
||||
border-bottom-width: 0.5px;
|
||||
position: relative;
|
||||
box-shadow: 0px 0px 2px rgba(255, 255, 255, 0.5) inset, 0px 0px 8px rgba(255, 255, 255, 0.6) inset, 0px 0px 5px rgba(255, 255, 255, 0.5);
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.coffee_inner:before {
|
||||
border-radius: 40px/4px;
|
||||
top: 140px;
|
||||
width: 90%;
|
||||
left: 3px;
|
||||
height: 9px;
|
||||
}
|
||||
|
||||
.coffee_top .highlight {
|
||||
display: block;
|
||||
height: 30px;
|
||||
width: 20px;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
top: 5px;
|
||||
transform: skew(0deg, 5deg);
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.6) 4%, rgba(255, 255, 255, 0.2) 98%, rgba(255, 255, 255, 0));
|
||||
}
|
||||
|
||||
.coffee_top .highlight:after {
|
||||
height: 30px;
|
||||
width: 2px;
|
||||
left: -3px;
|
||||
top: -1px;
|
||||
transform: skew(0deg, 5deg);
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.coffee_main .highlight {
|
||||
display: block;
|
||||
height: 301px;
|
||||
width: 25px;
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 6px;
|
||||
transform: skew(0deg, 6deg);
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.5) 4%, rgba(255, 255, 255, 0.2) 98%, rgba(255, 255, 255, 0));
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.coffee_main .highlight:after {
|
||||
height: 150px;
|
||||
width: 4px;
|
||||
left: -6px;
|
||||
top: 0px;
|
||||
transform: skew(0deg, 3deg);
|
||||
background: linear-gradient(to bottom, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0) 80%);
|
||||
}
|
||||
|
||||
.coffee_neck .highlight {
|
||||
display: block;
|
||||
height: 20px;
|
||||
width: 25px;
|
||||
position: absolute;
|
||||
left: 2px;
|
||||
top: 6px;
|
||||
transform: skew(0deg, 6deg);
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.3) 4%, rgba(255, 255, 255, 0.1) 98%, rgba(255, 255, 255, 0));
|
||||
}
|
||||
|
||||
.water {
|
||||
background: linear-gradient(-85deg, rgba(167, 92, 24, 0.35), rgba(169, 108, 52, 0.55) 70%, rgba(185, 128, 76, 0.4));
|
||||
width: 99%;
|
||||
height: 80px;
|
||||
position: absolute;
|
||||
left: 1px;
|
||||
bottom: 1px;
|
||||
border-radius: 50px 50px 20px 20px/8px 8px 10px 10px;
|
||||
box-shadow: 0px 0px 6px rgba(165, 117, 73, 0.5) inset, 0px 0.2px 3px -1px rgba(0, 0, 0, 0.3) inset, 0px 2px 6px -1px rgba(0, 0, 0, 0.1) inset, 0px 2px 5px rgba(190,155,123,0.3), 0px 1px 3px rgba(190,155,123,0.2);
|
||||
}
|
||||
|
||||
.water:after {
|
||||
height: 10px;
|
||||
width: 100%;
|
||||
left: -1px;
|
||||
top: 0px;
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0.4), rgba(255, 127, 0, 0.05) 50%, rgba(251, 148, 0, 0.1) 80%, rgba(255, 255, 255, 0.3));
|
||||
border-radius: 50px/8px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-bottom-color: rgba(255, 255, 255, 0.4);
|
||||
box-shadow: 0px 1px 2px -1px rgba(165, 90, 26, 0.35);
|
||||
}
|
||||
|
||||
.water:before {
|
||||
height: 10px;
|
||||
width: 100%;
|
||||
left: 2px;
|
||||
bottom: -1px;
|
||||
background: linear-gradient(to right, rgba(190,155,123,0.2), rgba(190,155,123,0.1) 50%, rgba(190,155,123,0.2) 80%, rgba(190,155,123,0.3));
|
||||
border-radius: 50px/10px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
border-bottom: none;
|
||||
box-shadow: 0px -2px 3px -1px rgba(190,155,123,0.25);
|
||||
}
|
||||
|
||||
.water {
|
||||
height: 0px;
|
||||
-webkit-transition: all 3s ease-out;
|
||||
-moz-transition: all 3s ease-out;
|
||||
-o-transition: all 3s ease-out;
|
||||
transition: all 3s ease-out;
|
||||
-webkit-border-radius: 10px;
|
||||
-moz-border-radius: 10px;
|
||||
}
|
||||
@ -1,134 +0,0 @@
|
||||
<%--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
--%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Connected Coffee Cup</title>
|
||||
<link rel="stylesheet" href="css/coffee.css">
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<%
|
||||
String deviceId = request.getParameter("deviceId");
|
||||
if (deviceId != null) {
|
||||
request.getSession().setAttribute("deviceId", deviceId);
|
||||
}
|
||||
|
||||
String deviceOwner = request.getParameter("deviceOwner");
|
||||
if (deviceOwner != null) {
|
||||
request.getSession().setAttribute("deviceOwner", deviceOwner);
|
||||
}
|
||||
|
||||
String tenantDomain = request.getParameter("tenantDomain");
|
||||
if (tenantDomain != null) {
|
||||
request.getSession().setAttribute("tenantDomain", tenantDomain);
|
||||
}
|
||||
|
||||
String token = request.getParameter("token");
|
||||
if (token != null) {
|
||||
request.getSession().setAttribute("token", token);
|
||||
}
|
||||
%>
|
||||
|
||||
<div class="container">
|
||||
<h1>Coffee Cup - Demo</h1>
|
||||
<div class="left-pane">
|
||||
<table style="width:100%">
|
||||
<tr>
|
||||
<td align="right" style="width: 140px">Temperature:</td>
|
||||
<td id="temperature_level" align="left" style="width: 60px">0 C</td>
|
||||
<td align="right" style="width: 140px">Coffee Level:</td>
|
||||
<td id="coffee_level" align="left" style="width: 60px">0%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input id="amount_temp" type="range" orient="vertical" min="0" max="100"
|
||||
value="0"
|
||||
onchange="updateTemperature(this.value)"><br/>
|
||||
</td>
|
||||
<td colspan="2" align="center">
|
||||
<input id="amount_coffee" type="range" orient="vertical" min="0" max="100"
|
||||
value="0"
|
||||
onchange="updateCoffee(this.value)">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" align="center">
|
||||
<button id="order-cup">Order Coffee Cup</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="right-pane">
|
||||
<div class="coffee-wrapper">
|
||||
<div class="coffee">
|
||||
<div class="coffee_main">
|
||||
<div class="coffee_inner">
|
||||
<div class="handle"></div>
|
||||
<div class="water" id="water"></div>
|
||||
</div>
|
||||
<div class="highlight"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="js/libs/jquery.min.js"></script>
|
||||
<script src="js/coffee.js"></script>
|
||||
<script src="js/libs/htmlpreview.min.js"></script>
|
||||
<script>HTMLPreview.replaceAssets();</script>
|
||||
<script>
|
||||
$('#order-cup').click(function () {
|
||||
var deviceId = '<%=request.getSession().getAttribute("deviceId")%>';
|
||||
var deviceOwner = '<%=request.getSession().getAttribute("deviceOwner")%>';
|
||||
var token = '<%=request.getSession().getAttribute("token")%>';
|
||||
var url = '/connectedcup/device/ordercoffee?deviceId=' + deviceId ;
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: url,
|
||||
headers: {
|
||||
'Authorization': 'Bearer ' + token
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function sendData() {
|
||||
var deviceId = '<%=request.getSession().getAttribute("deviceId")%>';
|
||||
var deviceOwner = '<%=request.getSession().getAttribute("deviceOwner")%>';
|
||||
var tenantDomain = '<%=request.getSession().getAttribute("tenantDomain")%>';
|
||||
if (tenantDomain == null) {
|
||||
tenantDomain = 'carbon.super';
|
||||
}
|
||||
var tempPayload = temperature;
|
||||
var levelPayload = coffee_amount;
|
||||
$.post('/connected-cup-agent/push_temperature?deviceId=' + deviceId + '&deviceOwner=' + deviceOwner +
|
||||
'&payload=' + tempPayload + '&tenantDomain=' + tenantDomain);
|
||||
$.post('/connected-cup-agent/push_level?deviceId=' + deviceId + '&deviceOwner=' + deviceOwner +
|
||||
'&payload=' + levelPayload + '&tenantDomain=' + tenantDomain);
|
||||
setTimeout(sendData, 5000);
|
||||
}
|
||||
|
||||
sendData();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,39 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var temperature = 0;
|
||||
var coffee_amount = 0;
|
||||
|
||||
function updateCoffee(newValue) {
|
||||
var coffee_level = document.getElementById('coffee_level');
|
||||
coffee_level.innerHTML = newValue + '%';
|
||||
coffee_amount = newValue;
|
||||
|
||||
var coffee = document.getElementById('water');
|
||||
if (newValue == 0) {
|
||||
coffee.style.height = (newValue * 3) + 'px';
|
||||
} else {
|
||||
coffee.style.height = (newValue * 3) - 3 + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
function updateTemperature(newValue) {
|
||||
temperature = newValue;
|
||||
var temperature_level = document.getElementById('temperature_level');
|
||||
temperature_level.innerHTML = newValue + ' C';
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
var HTMLPreview={content:"",previewform:document.getElementById("previewform"),file:function(){return location.search.substring(1)},raw:function(){return HTMLPreview.file().replace(/\/\/github\.com/,"//raw.githubusercontent.com").replace(/\/blob\//,"/")},replaceAssets:function(){var a,b,c;a=document.querySelectorAll("iframe[src],frame[src]");for(b=0;b<a.length;++b)if(c=a[b].src,0<c.indexOf("//raw.githubusercontent.com")||0<c.indexOf("//bitbucket.org"))a[b].src="//"+location.hostname+location.pathname+"?"+c;a=document.querySelectorAll("a[href]");for(b=0;b<a.length;++b)if(c=a[b].href,0<c.indexOf("#"))a[b].href="//"+location.hostname+location.pathname+location.search+"#"+a[b].hash.substring(1);else if((0<c.indexOf("//raw.githubusercontent.com")||0<c.indexOf("//bitbucket.org"))&&(0<c.indexOf(".html")||0<c.indexOf(".htm")))a[b].href="//"+location.hostname+location.pathname+"?"+c;if(!document.querySelectorAll("frameset").length){a=document.querySelectorAll("link[rel=stylesheet]");for(b=0;b<a.length;++b)c=a[b].href,(0<c.indexOf("//raw.githubusercontent.com")||0<c.indexOf("//bitbucket.org"))&&HTMLPreview.send(c,"loadCSS");a=document.querySelectorAll("script");for(b=0;b<a.length;++b)c=a[b].src,0<c.indexOf("//raw.githubusercontent.com")||0<c.indexOf("//bitbucket.org")?HTMLPreview.send(c,"loadJS"):!c&&0>a[b].innerHTML.indexOf("HTMLPreview")&&document.write(a[b].outerHTML)}},loadHTML:function(a){a&&a.query&&a.query.diagnostics&&a.query.diagnostics.redirect?HTMLPreview.send(a.query.diagnostics.redirect.content,"loadHTML"):a&&a.query&&a.query.results&&a.query.results.resources&&a.query.results.resources.content&&200==a.query.results.resources.status?(HTMLPreview.content=a.query.results.resources.content.replace(/<head>/i,'<head><base href="'+HTMLPreview.raw()+'">').replace(/<\/body>/i,'<script src="//'+location.hostname+'/htmlpreview.min.js">\x3c/script><script>HTMLPreview.replaceAssets();\x3c/script></body>').replace(/<\/head>\s*<frameset/gi,'<script src="//'+location.hostname+'/htmlpreview.min.js">\x3c/script><script>document.addEventListener("DOMContentLoaded",HTMLPreview.replaceAssets,false);\x3c/script></head><frameset'),setTimeout(function(){document.open();document.write(HTMLPreview.content);document.close()},50)):HTMLPreview.previewform.innerHTML=a&&a.error&&a.error.description?a.error.description:"Error: Cannot load file "+HTMLPreview.raw()},loadCSS:function(a){a&&a.query&&a.query.diagnostics&&a.query.diagnostics.redirect?HTMLPreview.send(a.query.diagnostics.redirect.content,"loadCSS"):a&&a.query&&a.query.results&&a.query.results.resources&&a.query.results.resources.content&&200==a.query.results.resources.status&&document.write("<style>"+a.query.results.resources.content.replace(/url\((?:'|")?([^\/][^:'"\)]+)(?:'|")?\)/gi,"url("+a.query.results.resources.url.replace(/[^\/]+\.css.*$/gi,"")+"$1)")+"</style>")},loadJS:function(a){a&&a.query&&a.query.diagnostics&&a.query.diagnostics.redirect?HTMLPreview.send(a.query.diagnostics.redirect.content,"loadJS"):a&&a.query&&a.query.results&&a.query.results.resources&&a.query.results.resources.content&&200==a.query.results.resources.status&&document.write("<script>"+a.query.results.resources.content+"\x3c/script>")},send:function(a,b){document.write('<script src="//query.yahooapis.com/v1/public/yql?q=select%20*%20from%20data.headers%20where%20url%3D%22'+encodeURIComponent(a)+"%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=HTMLPreview."+b+'">\x3c/script>')},submitform:function(){location.href="/?"+document.getElementById("file").value;return!1},init:function(){HTMLPreview.previewform.onsubmit=HTMLPreview.submitform;HTMLPreview.file()&&(HTMLPreview.previewform.innerHTML="<p>Loading...</p>",HTMLPreview.send(HTMLPreview.raw(),"loadHTML"))}};
|
||||
File diff suppressed because one or more lines are too long
@ -1,43 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<project name="create-connectedcup-capps" default="zip" basedir=".">
|
||||
|
||||
<property name="project-name" value="${ant.project.name}"/>
|
||||
<property name="target-dir" value="target/carbonapps"/>
|
||||
<property name="src-dir" value="src/main/resources/carbonapps"/>
|
||||
|
||||
<property name="ConnectedCup_dir" value="connected_cup"/>
|
||||
<property name="CoffeeLevel_Sensor_dir" value="coffee_level"/>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="${target-dir}" />
|
||||
</target>
|
||||
|
||||
<target name="zip" depends="clean">
|
||||
<mkdir dir="${target-dir}"/>
|
||||
<zip destfile="${target-dir}/${ConnectedCup_dir}.car">
|
||||
<zipfileset dir="${src-dir}/${ConnectedCup_dir}"/>
|
||||
</zip>
|
||||
<zip destfile="${target-dir}/${CoffeeLevel_Sensor_dir}.car">
|
||||
<zipfileset dir="${src-dir}/${CoffeeLevel_Sensor_dir}"/>
|
||||
</zip>
|
||||
</target>
|
||||
|
||||
</project>
|
||||
@ -1,93 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.coffeeking</groupId>
|
||||
<artifactId>device-mgt-iot-connectedcup</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>org.coffeeking.connectedcup.analytics</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<name>WSO2 IoTS(Device Types) - Connected Cup Analytics capp</name>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>2.4.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>auto-clean</id>
|
||||
<phase>initialize</phase>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>process-resources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<ant antfile="build.xml" target="zip"/>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>2.5.5</version>
|
||||
<configuration>
|
||||
<finalName>${project.artifactId}-${carbon.device.mgt.version}</finalName>
|
||||
<appendAssemblyId>false</appendAssemblyId>
|
||||
<descriptors>
|
||||
<descriptor>src/assembly/src.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>create-archive</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
@ -1,36 +0,0 @@
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<assembly
|
||||
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
|
||||
<id>src</id>
|
||||
<formats>
|
||||
<format>zip</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<baseDirectory>${basedir}/src</baseDirectory>
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>${basedir}/target/carbonapps</directory>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useDefaultExcludes>true</useDefaultExcludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</assembly>
|
||||
@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<artifacts>
|
||||
<artifact name="coffee_level" version="1.0.0" type="carbon/application">
|
||||
<dependency artifact="coffee_level_stream" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="coffee_level_store" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="coffee_level_receiver" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="coffee_level_script" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="coffee_level_publisher" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="temperature_level_stream" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="temperature_level_store" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="temperature_level_receiver" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="temperature_level_script" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
<dependency artifact="temperature_level_publisher" version="1.0.0" include="true" serverRole="DataAnalyticsServer"/>
|
||||
</artifact>
|
||||
</artifacts>
|
||||
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<artifact name="coffee_level_publisher" version="1.0.0" type="event/publisher" serverRole="DataAnalyticsServer">
|
||||
<file>coffee_level_publisher.xml</file>
|
||||
</artifact>
|
||||
@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<eventPublisher name="coffee_level_publisher" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher">
|
||||
<from streamName="org.wso2.iot.devices.coffeelevel" version="1.0.0"/>
|
||||
<mapping customMapping="disable" type="wso2event"/>
|
||||
<to eventAdapterType="secured-websocket"/>
|
||||
</eventPublisher>
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<artifact name="coffee_level_receiver" version="1.0.0" type="event/receiver" serverRole="DataAnalyticsServer">
|
||||
<file>coffee_level_receiver.xml</file>
|
||||
</artifact>
|
||||
@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<eventReceiver name="coffee_level_receiver" statistics="disable" trace="disable"
|
||||
xmlns="http://wso2.org/carbon/eventreceiver">
|
||||
<from eventAdapterType="wso2event">
|
||||
<property name="events.duplicated.in.cluster">false</property>
|
||||
</from>
|
||||
<mapping customMapping="disable" type="wso2event"/>
|
||||
<to streamName="org.wso2.iot.devices.coffeelevel" version="1.0.0"/>
|
||||
</eventReceiver>
|
||||
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<artifact name="coffee_level_script" version="1.0.0" type="analytics/spark" serverRole="DataAnalyticsServer">
|
||||
<file>coffee_level_script.xml</file>
|
||||
</artifact>
|
||||
@ -1,37 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<Analytics>
|
||||
<Name>coffee_level_script</Name>
|
||||
<Script>
|
||||
CREATE TEMPORARY TABLE DeviceCoffeeLevelData
|
||||
USING CarbonAnalytics OPTIONS(tableName "ORG_WSO2_IOT_DEVICES_COFFEELEVEL");
|
||||
|
||||
CREATE TEMPORARY TABLE DeviceCoffeeLevelSummaryData
|
||||
USING CarbonAnalytics OPTIONS (tableName "DEVICE_COFFEELEVEL_SUMMARY",
|
||||
schema "coffeelevel FLOAT, deviceType STRING -i, deviceId STRING -i, owner STRING -i, time LONG -i",
|
||||
primaryKeys "deviceType, deviceId, owner, time");
|
||||
|
||||
insert into table DeviceCoffeeLevelSummaryData
|
||||
select coffeelevel, meta_deviceType as deviceType, meta_deviceId as deviceId, meta_owner as owner, cast(meta_time/1000 as BIGINT)as time
|
||||
from DeviceCoffeeLevelData
|
||||
group by coffeelevel, meta_deviceType, meta_deviceId, meta_owner, cast(meta_time/1000 as BIGINT);
|
||||
</Script>
|
||||
<CronExpression>0 0/3 * * * ?</CronExpression>
|
||||
</Analytics>
|
||||
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<artifact name="coffee_level_store" version="1.0.0" type="analytics/eventstore" serverRole="DataAnalyticsServer">
|
||||
<file>org_wso2_iot_devices_coffeelevel.xml</file>
|
||||
</artifact>
|
||||
@ -1,62 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
~
|
||||
~ WSO2 Inc. licenses this file to you under the Apache License,
|
||||
~ Version 2.0 (the "License"); you may not use this file except
|
||||
~ in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<EventStoreConfiguration>
|
||||
<Source>
|
||||
<StreamId>org.wso2.iot.devices.coffeelevel:1.0.0</StreamId>
|
||||
</Source>
|
||||
<RecordStoreName>EVENT_STORE</RecordStoreName>
|
||||
<TableSchema>
|
||||
<ColumnDefinition>
|
||||
<Name>meta_owner</Name>
|
||||
<EnableIndexing>true</EnableIndexing>
|
||||
<IsPrimaryKey>true</IsPrimaryKey>
|
||||
<EnableScoreParam>false</EnableScoreParam>
|
||||
<Type>STRING</Type>
|
||||
</ColumnDefinition>
|
||||
<ColumnDefinition>
|
||||
<Name>meta_deviceType</Name>
|
||||
<EnableIndexing>true</EnableIndexing>
|
||||
<IsPrimaryKey>true</IsPrimaryKey>
|
||||
<EnableScoreParam>false</EnableScoreParam>
|
||||
<Type>STRING</Type>
|
||||
</ColumnDefinition>
|
||||
<ColumnDefinition>
|
||||
<Name>meta_deviceId</Name>
|
||||
<EnableIndexing>true</EnableIndexing>
|
||||
<IsPrimaryKey>true</IsPrimaryKey>
|
||||
<EnableScoreParam>false</EnableScoreParam>
|
||||
<Type>STRING</Type>
|
||||
</ColumnDefinition>
|
||||
<ColumnDefinition>
|
||||
<Name>meta_time</Name>
|
||||
<EnableIndexing>true</EnableIndexing>
|
||||
<IsPrimaryKey>true</IsPrimaryKey>
|
||||
<EnableScoreParam>false</EnableScoreParam>
|
||||
<Type>LONG</Type>
|
||||
</ColumnDefinition>
|
||||
<ColumnDefinition>
|
||||
<Name>coffeelevel</Name>
|
||||
<EnableIndexing>false</EnableIndexing>
|
||||
<IsPrimaryKey>false</IsPrimaryKey>
|
||||
<EnableScoreParam>false</EnableScoreParam>
|
||||
<Type>FLOAT</Type>
|
||||
</ColumnDefinition>
|
||||
</TableSchema>
|
||||
</EventStoreConfiguration>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user