# 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.
spring:
  datasource:
      driverClassName: org.h2.Driver
      url: jdbc:h2:file:~/metrondb
      username: root
      password: root
      platform: h2
  jpa:
    hibernate:
      ddl-auto: update

zookeeper:
  url:  node1:2181

kafka:
  broker:
    url: node1:6667
  security:
    protocol: PLAINTEXT

hdfs:
  namenode:
    url: hdfs://node1:8020

grok:
  path:
    temp: /apps/metron/patterns/tmp

storm:
  ui:
    url:   http://node1:8744
  parser:
    script.path: /usr/metron/${metron.version}/bin/start_parser_topology.sh
  enrichment:
    script.path: /usr/metron/${metron.version}/bin/start_enrichment_topology.sh
  indexing:
    randomaccess.script.path: /usr/metron/${metron.version}/bin/start_elasticsearch_topology.sh
    batch.script.path: /usr/metron/${metron.version}/bin/start_hdfs_topology.sh

kerberos:
  enabled: false
  principal: metron@EXAMPLE.COM
  keytab: /etc/security/keytabs/metron.headless.keytab

ldap:
  provider:
    url: ldap://node1:33389
    userdn: uid=admin,ou=people,dc=hadoop,dc=apache,dc=org
    password: "admin-password"
  user:
    dn.patterns: uid={0},ou=people,dc=hadoop,dc=apache,dc=org
    passwordAttribute: userPassword
    searchBase: ou=people,dc=hadoop,dc=apache,dc=org
    searchFilter: ""
  group:
    searchBase: ou=groups,dc=hadoop,dc=apache,dc=org
    searchFilter: "member={0}"
    roleAttribute: "cn"
