sec_logs: 
  logOut: 
    typ: String
    dflt: logout.json
  requestOut:
    typ: String
    dflt: requests_log.json
  requestStore:
    typ: String
    dflt: fs
  trackingOut:
    typ: String
    dflt: track_log.json
  trackingStore:
    typ: String
    dflt: fs
  debugLevel: 
    typ: Number
    dflt: 0

sec_webserver:
  host:
    dflt: localhost
    typ: String
  port: 
    typ: Number
    dflt: 8080
  protocol:
    typ: String
    dflt:  http
  keyPem:
    typ: String
    dflt:  ssl/key.pem
  certPem:
    typ: String
    dflt:  ssl/cert.pem
  allowOrigins:
    typ: Array:String
    dflt:
    - "http://localhost:3333"
    - "http://localhost:5555"

sec_jwt: 
  useJWT:
    typ: Bool
    dflt:  true
  jwtRealm:
    typ: String
    dflt:        cvgen
  jwtKey:
    typ: String
    dflt: "cvsecret-here"
  jwtTimeout:
    typ: Number
    dflt: 20
  jwtMaxRefresh:
    typ: Number
    dflt: 10
  signingAlgorithm: 
    typ: String
    dflt: "RS256"
  jwtKeyPem:
    typ: String
    dflt: "ssl/jwt_key.pem"
  jwtCertPem:
    typ: String
    dflt: "ssl/jwt_cert.pem"

sec_auth:
  authSep:
    typ: String
    dflt: ;
  passwdEnc:
    typ: String
    dflt: enc;
  invitationsPath:
    typ: String
    dflt: invitations.yaml
  recoveryTime: 
    typ: Number
    dflt: 5
  useAuthz:
    typ: Bool
    dflt:  true
  authzModel:
    typ: String
    dflt:  rbac_model.conf
  authzPolicy:
    typ: String
    dflt:  rbac_policy.csv
  adminRole:
    typ: String
    dflt:  admin
  usersStore:
    typ: String
    dflt: fs

sec_perms:
  pubUser:
    typ: String
    dflt:  none
  usersPath:
    typ: String
    dflt:  users.yaml
  usersModelsPath:
    typ: String
    dflt:  usersmodels.yaml
  identityKey:
    typ: String
    dflt:  id

sec_routes:
  rootAuthGroup:
    typ: String
    dflt:  /
  routes:
    typ: Object
    labelitms: Route
    vars: 
      path:
        typ: String
        dflt: ''
      param:
        typ: String
        dflt: ''
    dflt: 
      root: 
        path: /
        param: ""
      page:
        path: "/page/:id"
        param: id
      data:
        path: "/getdata/:target"
        param: target
      post_data:
        path: /info
      auth:
        path: "/auth/:target"
        param: target
      refreshauth:
        path: "/refreshauth"
      post_login:
        path: "/login"

sec_templates:
  templatesRoot:
    typ: String
    dflt:  templates
  templatesExt:
    typ: String
    dflt:  .tmpl
  # @ willl be replace with 'templatesRoot'
  templatesIncludes:
    typ: String
    dflt:  "@includes"
  templatesLayouts:
    typ: String
    dflt:  "@layouts"
  templatesFiles:
    typ: Object
    labelitms: Template
    vars: 
      path:
        typ: String
        dflt: ''
      route:
        typ: String
        dflt: ''
    dflt:
      index: 
        path: "@index.html"
        route: /
      welcome: 
        path: "@welcome.tmpl"
        route: /welcome
      foo_bar: 
        path: "@foo/bar.tmpl"
        route: /foobar

sec_mail:
  mailHost:
    typ: String
    dflt:  localhost
  mailPort:
    typ: Number
    dflt:  465
  mailFrom:
    typ: String
    valid: Email 
    dflt:  info@
  mailPswd:
    typ: Password
    dflt:  
  mailCertPath:
    typ: String
    dflt: dkim.cert 
  mailCertDom:
    typ: String
    dflt: ""
  tplsMailPath:
    typ: String
    dflt:  mail
  tplsMail:
    typ: Object
    labelitms: Template
    vars: 
      path:
        typ: String
        dflt: ''
      route:
        typ: String
        dflt: ''
    dflt: 
      path: newuser
      type: text

sec_assets:
  assetsPath:
    typ: String
    dflt:  ./assets
  assetsURL:
    typ: String
    dflt:  /assets

sec_models:
  useDist:
    typ: Bool
    dflt:  true
  genDist:
    typ: Bool
    dflt:  true
  genExcludeList:
    typ: Array:String
    dflt:
    - cv
  dataDistPath:
    typ: String
    dflt:  ./data/dist
  dataPath:
    typ: String
    dflt:  ./data
  dataModelsRoot:
    typ: String
    dflt:  models.yaml
  dataCorePath:
    typ: String
    dflt:  core.yaml
  dataDflt:
    typ: String
    dflt:  cv
  dataItems:
    typ: Array:String
    dflt:  
    - showinfo
    - models
    - core
    - profile
    - projects
    - work_experience
    - education
    - teaching
    - talks
    - others
  #  - expandskills
  dataStore:
    typ: String
    dflt: fs 

sec_langs:
  langs:
    typ: Array:String
    labelitms: Lang
    dflt:  
    - es
    - en
  mainLang:
    typ: String
    dflt:  en

sec_git:
  useRepo:
    typ: Bool
    dflt:  true
  useRepoOnReq:
    typ: Bool
    dflt:  false
  quietGit:
    typ: Bool
    dflt:  true
  backgGit:
    typ: Bool
    dflt:  true
  repoPath:
    typ: String
    dflt:  ./data
  repoName:
    typ: String
    dflt:  origin
  repoCommit:
    dflt: "chore: update srvcvgen"
    typ: String

sec_others:
  openBrowser:
    typ: Bool
    dflt: true

sec_redis: 
  redisHost: 
    typ: String
    dflt: localhost
  redisPort:
    typ: Number
    dflt: 6379
  redisDB: 
    typ: String
    dflt: cvgen
  redisPswd: 
    typ: String
    dflt: ""