#
# Properties that the embedded PDP engine uses to configure and load
#
# Standard API Factories
#
xacml.dataTypeFactory=com.att.research.xacml.std.StdDataTypeFactory
xacml.pdpEngineFactory=com.att.research.xacmlatt.pdp.ATTPDPEngineFactory
xacml.pepEngineFactory=com.att.research.xacml.std.pep.StdEngineFactory
xacml.pipFinderFactory=com.att.research.xacml.std.pip.StdPIPFinderFactory
xacml.traceEngineFactory=com.att.research.xacml.std.trace.LoggingTraceEngineFactory
#
# AT&T PDP Implementation Factories
#
xacml.att.evaluationContextFactory=com.att.research.xacmlatt.pdp.std.StdEvaluationContextFactory
xacml.att.combiningAlgorithmFactory=com.att.research.xacmlatt.pdp.std.StdCombiningAlgorithmFactory
xacml.att.functionDefinitionFactory=com.att.research.xacmlatt.pdp.std.StdFunctionDefinitionFactory
#
# ONAP PDP Implementation Factories
#
xacml.att.policyFinderFactory=org.onap.policy.pdp.xacml.application.common.OnapPolicyFinderFactory

#
# Use a root combining algorithm
#
xacml.att.policyFinderFactory.combineRootPolicies=urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides

#
# PIP Engine Definitions
#
count-recent-operations.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.CountRecentOperationsPip
count-recent-operations.issuer=urn:org:onap:xacml:guard:count-recent-operations
count-recent-operations.name=CountRecentOperations
count-recent-operations.description=Returns operation counts based on time window
count-recent-operations.persistenceunit=OperationsHistoryPU

get-operation-outcome.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.GetOperationOutcomePip
get-operation-outcome.issuer=urn:org:onap:xacml:guard:get-operation-outcome
get-operation-outcome.name=GetOperationOutcome
get-operation-outcome.description=Returns operation outcome
get-operation-outcome.persistenceunit=OperationsHistoryPU

#
# Make pips available to finder
#
xacml.pip.engines=count-recent-operations,get-operation-outcome

#
# JPA Properties
#
eclipselink.target-database=PostgreSQL
jakarta.persistence.jdbc.driver=org.postgresql.Driver
jakarta.persistence.jdbc.url=jdbc:postgresql://postgres:5432/operationshistory
jakarta.persistence.jdbc.user=policy_user
jakarta.persistence.jdbc.password=policy_user
