The schema for the Kerbside MySQL database is as follows:
      erDiagram
      sources {
          string name PK
          string type
          datetime last_seen
          string seen_by
          boolean errored
          string url
          text ca_cert
          string username
          string password
          string project_name "OpenStack only"
          string user_domain_id "OpenStack only"
          string project_domain_id "OpenStack only"
          boolean deleted
      }

      sources ||--o{ consoles : "sources provide consoles"
      consoles {
          string uuid PK
          string source FK
          datetime discovered
          string hypervisor
          string hypervisor_ip
          integer insecure_port
          integer secure_port
          string name
          string host_subject
          string ticket
      }

      sources ||--o{ consoletokens: "sources enable consoletokens"
      consoles ||--o{ consoletokens: "consoles own consoletokens"
      consoletokens {
          string token PK
          string session_id
          string uuid FK
          string source FK
          integer created "epoch seconds"
          integer expires "epoch seconds"
      }

      consoletokens ||--o{ proxychannels: "consoletokens authenticate proxychannels"
      proxychannels {
          string node PK
          string pid PK
          datetime created
          string client_ip
          integer client_port
          integer connection_id
          string channel_type
          integer channel_id
          string session_id FK
      }

      consoles ||--o{ auditevents: "consoles create auditevents"
      auditevents {
          string source PK "No FK to avoid cascading delete"
          string uuid PK "No FK to avoid cascading delete"
          string session_id "No FK to avoid cascading delete"
          string channel
          datetime timestamp PK "microsecond precision"
          string node
          string pid
          text message
      }