aboutsummaryrefslogtreecommitdiffstats
path: root/packages/policy-xacmlpdp-tarball/src/main/resources/postgres
diff options
context:
space:
mode:
authorwaynedunican <wayne.dunican@est.tech>2022-05-05 09:25:49 +0100
committerWayne Dunican <wayne.dunican@est.tech>2022-05-17 17:07:41 +0100
commit86c91fd09daeb36367bf4c99eda9a52b4523521b (patch)
treee69f3c4ab904b879b0ce7c914dd7c091ba09bc63 /packages/policy-xacmlpdp-tarball/src/main/resources/postgres
parent0949037a3ba7b646183acdeff83473527783b5ca (diff)
Support postgres in XACML-PDP
Issue-ID: POLICY-4187 Change-Id: Ifed655e214ce95b9cc8208cd5b0907e7bb00b463 Signed-off-by: Wayne Dunican <wayne.dunican@est.tech>
Diffstat (limited to 'packages/policy-xacmlpdp-tarball/src/main/resources/postgres')
-rw-r--r--packages/policy-xacmlpdp-tarball/src/main/resources/postgres/bin/create-guard-table-pg.sh56
-rw-r--r--packages/policy-xacmlpdp-tarball/src/main/resources/postgres/sql/createguardtable-pg.sql37
2 files changed, 93 insertions, 0 deletions
diff --git a/packages/policy-xacmlpdp-tarball/src/main/resources/postgres/bin/create-guard-table-pg.sh b/packages/policy-xacmlpdp-tarball/src/main/resources/postgres/bin/create-guard-table-pg.sh
new file mode 100644
index 00000000..1a71f8b4
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/resources/postgres/bin/create-guard-table-pg.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env sh
+#
+# ============LICENSE_START=======================================================
+# Copyright (C) 2022 Nordix Foundation. 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+SQL_FILE="${POLICY_HOME}/mysql/sql/createguardtable-pg.sql"
+
+# Remove escape backslashes if present and save output in temp file
+sed 's/\\//g' "${POLICY_HOME}"/apps/guard/xacml-pg.properties > /tmp/temp.xacml-pg.properties
+
+# Remove temp file
+if [ ! -f /tmp/temp.xacml-pg.properties ]; then
+ echo "Temporary guard xacml properties file not found!"
+ exit 1
+fi
+
+# Extract Maria DB Credential properties from xacml.properties file
+DB_HOSTNAME=$(awk -F[/:] '$1 == "javax.persistence.jdbc.url=jdbc" { print $3 $5 }' /tmp/temp.xacml-pg.properties)
+DB_USERNAME=$(awk -F= '$1 == "javax.persistence.jdbc.user" { print $2 }' /tmp/temp.xacml-pg.properties)
+DB_PASSWORD=$(awk -F= '$1 == "javax.persistence.jdbc.password" { print $2 }' /tmp/temp.xacml-pg.properties)
+
+# Remove temp file
+rm /tmp/temp.xacml-pg.properties
+
+if [ -z "$DB_HOSTNAME" ]; then
+ echo "No db host provided in guard xacml-pg.properties."
+ exit 2
+fi
+
+if [ -z "$DB_USERNAME" ]; then
+ echo "No db username provided in guard xacml-pg.properties."
+ exit 2
+fi
+
+if [ -z "$DB_PASSWORD" ]; then
+ echo "No db password provided in guard xacml-pg.properties."
+ exit 2
+fi
+
+# Execute sql command using sql file to create table
+psql -U postgres -h ${DB_HOSTNAME} -f ${SQL_FILE}
diff --git a/packages/policy-xacmlpdp-tarball/src/main/resources/postgres/sql/createguardtable-pg.sql b/packages/policy-xacmlpdp-tarball/src/main/resources/postgres/sql/createguardtable-pg.sql
new file mode 100644
index 00000000..501ad77e
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/resources/postgres/sql/createguardtable-pg.sql
@@ -0,0 +1,37 @@
+-- ============LICENSE_START=======================================================
+-- Copyright (C) 2022 Nordix Foundation. 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.
+-- ============LICENSE_END=========================================================
+
+\c operationshistory;
+
+create table if not exists operationshistory (
+ id int(11) SERIAL PRIMARY KEY,
+ closedLoopName varchar(255) not null,
+ requestId varchar(50),
+ actor varchar(50) not null,
+ operation varchar(50) not null,
+ target varchar(50) not null,
+ starttime timestamp not null,
+ outcome varchar(50) not null,
+ message varchar(255),
+ subrequestId varchar(50),
+ endtime timestamp not null default current_timestamp
+);
+
+create index if not exists operationshistory_clreqid_index on
+ operationshistory(requestId, closedLoopName);
+
+create index if not exists operationshistory_target_index on
+ operationshistory(target, operation, actor, endtime);