<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF 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.
-->
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
	<property>
		<name>xasecure.audit.is.enabled</name>
		<value>true</value>
	</property>	
	

	<!-- DB audit provider configuration -->
	<property>
		<name>xasecure.audit.db.is.enabled</name>
		<value>false</value>
	</property>	
	
	<property>
		<name>xasecure.audit.db.is.async</name>
		<value>true</value>
	</property>	
	
	<property>
		<name>xasecure.audit.db.async.max.queue.size</name>
		<value>10240</value>
	</property>	

	<property>
		<name>xasecure.audit.db.async.max.flush.interval.ms</name>
		<value>30000</value>
	</property>	

	<property>
		<name>xasecure.audit.db.batch.size</name>
		<value>100</value>
	</property>	

	<!--  Properties whose name begin with "xasecure.audit.jpa." are used to configure JPA -->
	<property>
		<name>xasecure.audit.jpa.javax.persistence.jdbc.url</name>
		<value>jdbc:mysql://localhost:3306/ranger_audit</value>
	</property>

	<property>
		<name>xasecure.audit.jpa.javax.persistence.jdbc.user</name>
		<value>rangerlogger</value>
	</property>

	<property>
		<name>xasecure.audit.jpa.javax.persistence.jdbc.password</name>
		<value>none</value>
	</property>

	<property>
		<name>xasecure.audit.jpa.javax.persistence.jdbc.driver</name>
		<value>com.mysql.jdbc.Driver</value>
	</property>

	<property>
		<name>xasecure.audit.credential.provider.file</name>
		<value>jceks://file/etc/ranger/knoxdev/auditcred.jceks</value>
	</property>


	<!-- HDFS audit provider configuration -->
	<property>
		<name>xasecure.audit.hdfs.is.enabled</name>
		<value>false</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.is.async</name>
		<value>true</value>
	</property>	
	
	<property>
		<name>xasecure.audit.hdfs.async.max.queue.size</name>
		<value>1048576</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.async.max.flush.interval.ms</name>
		<value>30000</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.encoding</name>
		<value></value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.destination.directory</name>
		<value>hdfs://NAMENODE_HOST:8020/ranger/audit/%app-type%/%time:yyyyMMdd%</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.destination.file</name>
		<value>%hostname%-audit.log</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.destination.flush.interval.seconds</name>
		<value>900</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.destination.rollover.interval.seconds</name>
		<value>86400</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.destination.open.retry.interval.seconds</name>
		<value>60</value>
	</property>

	<property>
		<name>xasecure.audit.hdfs.config.local.buffer.directory</name>
		<value>/var/log/knox/audit</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.local.buffer.file</name>
		<value>%time:yyyyMMdd-HHmm.ss%.log</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.local.buffer.file.buffer.size.bytes</name>
		<value>8192</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.local.buffer.flush.interval.seconds</name>
		<value>60</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.local.buffer.rollover.interval.seconds</name>
		<value>600</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.local.archive.directory</name>
		<value>/var/log/knox/audit/archive</value>
	</property>	

	<property>
		<name>xasecure.audit.hdfs.config.local.archive.max.file.count</name>
		<value>10</value>
	</property>	

	<!-- Audit to HDFS on Azure Datastore (WASB) requires v3 style settings.  Comment the above and uncomment only the
	following to audit to Azure Blob Datastore via hdfs' WASB schema.

	NOTE: If you specify one audit destination in v3 style then other destinations, if any, must also be specified in v3 style
	====

	<property>
		<name>xasecure.audit.destination.hdfs</name>
		<value>enabled</value>
	</property>

	<property>
		<name>xasecure.audit.destination.hdfs.dir</name>
		<value>wasb://ranger-audit1@youraccount.blob.core.windows.net</value>
	</property>

	the following 3 correspond to the properties with similar name in core-site.xml, i.e.
	- fs.azure.account.key.youraccount.blob.core.windows.net => xasecure.audit.destination.hdfs.config.fs.azure.account.key.youraccount.blob.core.windows.net and
	- fs.azure.account.keyprovider.youraccount.blob.core.windows.net => xasecure.audit.destination.hdfs.config.fs.azure.account.keyprovider.youraccount.blob.core.windows.net,
	- fs.azure.shellkeyprovider.script => xasecure.audit.destination.hdfs.config.fs.azure.shellkeyprovider.script,

	<property>
		<name>xasecure.audit.destination.hdfs.config.fs.azure.account.key.youraccount.blob.core.windows.net</name>
		<value>YOUR ENCRYPTED ACCESS KEY</value>
	</property>

	<property>
		<name>xasecure.audit.destination.hdfs.config.fs.azure.account.keyprovider.youraccount.blob.core.windows.net</name>
		<value>org.apache.hadoop.fs.azure.ShellDecryptionKeyProvider</value>
	</property>

	<property>
		<name>xasecure.audit.destination.hdfs.config.fs.azure.shellkeyprovider.script</name>
		<value>/usr/lib/python2.7/dist-packages/hdinsight_common/decrypt.sh</value>
	</property>
	-->

	<!-- Log4j audit provider configuration -->
	<property>
		<name>xasecure.audit.log4j.is.enabled</name>
		<value>false</value>
	</property>	

	<property>
		<name>xasecure.audit.log4j.is.async</name>
		<value>false</value>
	</property>	
	
	<property>
		<name>xasecure.audit.log4j.async.max.queue.size</name>
		<value>10240</value>
	</property>	

	<property>
		<name>xasecure.audit.log4j.async.max.flush.interval.ms</name>
		<value>30000</value>
	</property>	
	
	<!-- Kafka audit provider configuration -->
	<property>
		<name>xasecure.audit.kafka.is.enabled</name>
		<value>false</value>
	</property>	

	<property>
		<name>xasecure.audit.kafka.async.max.queue.size</name>
		<value>1</value>
	</property>	

	<property>
		<name>xasecure.audit.kafka.async.max.flush.interval.ms</name>
		<value>1000</value>
	</property>	
	
	<property>
		<name>xasecure.audit.kafka.broker_list</name>
		<value>localhost:9092</value>
	</property>	

	<property>
		<name>xasecure.audit.kafka.topic_name</name>
		<value>ranger_audits</value>
	</property>	
	
	<!-- Ranger audit provider configuration -->
	<property>
		<name>xasecure.audit.solr.is.enabled</name>
		<value>false</value>
	</property>	
	
	<property>
		<name>xasecure.audit.solr.async.max.queue.size</name>
		<value>1</value>
	</property>	

	<property>
		<name>xasecure.audit.solr.async.max.flush.interval.ms</name>
		<value>1000</value>
	</property>	
	
	<property>
		<name>xasecure.audit.solr.solr_url</name>
		<value>http://localhost:6083/solr/ranger_audits</value>
	</property>	
	
</configuration>
