Allow taps to generate catalog without auth, and/or without JSON schema validation on settings

Currently, some taps require credentials in order to perform discovery and at least in theory, config settings are allowed to alter the output of the catalog (flattening and stream maps, for instance).

Given that we want discovery to work even without auth (at least for sources which can support it), we need to modify tap and target behaviors to be able to generate a catalog, even if the tap config validation otherwise would not pass due to missing credentials.

Any of these could work in theory:

  1. Discovery mode skips JSON schema setting validation (not ideal perhaps because of the risk of KeyError exceptions that may be hard for the user to debug).
  2. Discovery mode does perform validation, but rather than producing a hard failure, it prints a non-fatal warning message before continuing the discovery process.
  3. Some other tap-level setting where a developer informs the SDK whether and how the catalog can be generated when creds are not provided.

I'm leaning towards option 2 because it is the least invasive, it's relatively easy for users to debug, and it does not require the developer to modify their existing code. (Executions that require creds will naturally fail, and executions that don't require creds will naturally succeed.) Since we're not technically ignoring or disabling config, this also means that stream maps and flattening behaviors will happen as usual, along the normal code path and without need to alter or make exception.

Edited by AJ Steers