context-engine 0.1.6

Declarative context management for request handlers
Documentation
session:
  user:
    _set:
      store: Kvs
      ttl:    3600 # seconds
      
    id:
      _get:
        store: Memory
        key:    "request.authorization.user"

    _get:
      store:     TenantDb
      key:        "users.id.${session.user.id}"
      connection: ${connection.tenant_db}
      map:
        password_hash:         "password_hash"
        name:                  "name"
        email:                 "email"
        is_manager:            "is_manager"
        preference.color_mode: "color_mode"

    password_hash:
    name:
    email:
    is_manager:
    preference:
      color_mode:
    name_copy: ${session.user.name}

    tenant:
      id:
        _get:
          store: Memory
          key:    "request.authorization.tenant"
      _get:
        store:       CommonDb
        connection:   ${connection.common_db}
        key:          "tenants.id.${session.user.tenant.id}"
        map:
          code:        "code"
          name:        "name"
          email:       "email"
          locale:      "locale"
          allowed_ips: "allowed_ips"

      code:
      name:
      email:
      locale:
      allowed_ips:

connection:
  common_db:
    _get:
      store: Env
      map:
        host:     "COMMON_DB_HOST"
        port:     "COMMON_DB_PORT"
        database: "COMMON_DB_DATABASE"
        username: "COMMON_DB_USERNAME"
        password: "COMMON_DB_PASSWORD"

    host:
    port:
    database:
    username:
    password:
    driver:  "postgres"
    charset: "UTF8"

  tenant_db:
    _get:
      store:     CommonDb
      connection: ${connection.common_db}
      key:        "tenants.id.${session.user.tenant.id}"
      map:
        host:     "host"
        port:     "port"
        database: "database"
        username: "username"
        password: "password"
    _set:
      store: Kvs
      ttl:    36000 # seconds
        
    host:
    port:
    database:
    username:
    password:
    driver:  "postgres"
    charset: "UTF8"