#  *******************************************************************************
#  Copyright (c) 2019 Contributors to the Eclipse Foundation
#
#  See the NOTICE file(s) distributed with this work for additional
#  information regarding copyright ownership.
#
#  This program and the accompanying materials are made available under the
#  terms of the Eclipse Public License v. 2.0 which is available at
#  http://www.eclipse.org/legal/epl-2.0.
#
#  SPDX-License-Identifier: EPL-2.0
#  *******************************************************************************
spring:
  datasource:
    url: jdbc:postgresql://entopticadirx:5432/ContactBaseDataDevServer
    username: cbd_service
    password: cbd_service
  flyway:
    enabled: false

server:
  max-http-header-size: 262144

jwt:
  tokenHeader: accessToken
  useStaticJwt: false
  staticJwt: x

---

spring:
  profiles: test

  datasource:
    url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
jpa:
  hibernate:
    ddl-auto: create
  show-sql: true
flyway:
  enabled: false

jwt:
  tokenHeader: accessToken
  useStaticJwt: true
  staticJwt: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIYlI3Z2pobmE2eXJRZnZJTWhUSV9tY2g3ZmtTQWVFX3hLTjBhZVl0bjdjIn0.eyJqdGkiOiIwMGFkMGMxZC04OGY1LTQ1YmItOWUwYS1jZjI4MzgwODVmZGMiLCJleHAiOjE1Nzg2NDgyMzAsIm5iZiI6MCwiaWF0IjoxNTc4NjQ3OTMwLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvRWxvZ2Jvb2siLCJhdWQiOiJlbG9nYm9vay1iYWNrZW5kIiwic3ViIjoiMjY0NGYxMTgtNDdhOC00YjRmLWJiMmMtM2Y5YmM2ZGViYjkxIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZWxvZ2Jvb2stYmFja2VuZCIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6ImFhNzhiM2ExLTJkNGYtNDg3OC1iZTI4LTE0MzJkZjdlZjlmYiIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsia29uLXdyaXRlciIsImtvbi1hY2Nlc3MiXX0sInJlc291cmNlX2FjY2VzcyI6e30sIm5hbWUiOiJEYXZpZCBXcml0ZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkYXZpZF93IiwiZ2l2ZW5fbmFtZSI6IkRhdmlkIiwiZmFtaWx5X25hbWUiOiJXcml0ZXIifQ.WwiyRinJta-YAg3Eu4md6TU1j_LO7pj-MlK-KBtEhyPwx643qC3a_9aIAu-bsKionnDzC79hB5JE1pWJbqFRyUZptzs_F0o-cYy7zk5qGby_pl9jXWJsW7x2K1x6zowGOYFOMf6ipyyef_ubfGBouLJK8Xrql8tMOI5znwE2aEqlIIbwmIrVncA6c-x9mwREz_Y5CW1bE0SlLdTy_wculxrMovWqmljVxKDdcSipAcJAetMbwjQtQ8LDWrlZm89_uCb-zp9FMBDcZ7DBokDd_-tou8a4cKBJNHS78tkDsP9X_l326E3We8Wm1CGhoFt4x7FFkYxiNwx-L7pyADdqAA

usercontext:
  id: b6d19e04-3f08-4ef6-8637-9cd82e9736af
  username: user-admin-m1
  tenant: public
  security:
    enabled: false
---

spring:
  profiles: devserver

server:
  port: 9155
