constructor(connection, user) {
    this.id = uuidv4();
    this.connection = renderConnection(connection, user);
    this.driver = drivers[connection.driver];

    if (!this.driver) {
      throw new Error('Invalid driver');
    }

    this.user = user;
    this.Client = this.driver.Client;
    this.connectedAt = null;

    appLog.debug(
      {
        connectionClientId: this.id,
        originalConnection: connection,
        renderedConnection: this.connection,
        user,
      },
      'Rendered connection for user'
    );
  }
@param {object} connection
@param {object} [user] - user to run query under. may not be provided if chart links turned on