feat(Metabase Node): Add Metabase Node (#3033)

* Boilerplate with new node's version for metabse

* Metabases MVP features

* Added new credential for metabse, added custom auth for metabase

* Fixed bug with one enpoint not working

* Clean up code

* Uniformised the renovate token

* Made two example of responses for review

* Fixed lint issues

* Feature add datasources

* Changed output from databases

* Changed questions data output

* Fixed issue when testing credentials with new node format

* Add the possibility to get raw data

* Removed handle for the metabase meta results, changed export's name

* Add binary extraction for the result data

* Fixed binary download issue

*  Add preAuthentication method to credentials

* Revert "Added new credential for metabse, added custom auth for metabase"

This reverts commit 5f1b7607adb85d6ec897b184853bdfdbae77df6d.

* Revert "Added new credential for metabse, added custom auth for metabase"

This reverts commit 5f1b7607adb85d6ec897b184853bdfdbae77df6d.

* Added preAuth and fixed autfixable linting rules

* Fixed linting errors

* Linting fixes

* Remove / at the end of url, and add placeholder for cred url

* Make export to Json retun only json and no binary

* Fix lint issues

* Add action and exception for lint rule

* Remove unnecessary credential file

*  Simplify and cleanup

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
This commit is contained in:
agobrech
2022-07-26 14:43:36 +02:00
committed by GitHub
parent b4525d06ea
commit 81b5828558
12 changed files with 773 additions and 8 deletions

View File

@@ -92,7 +92,6 @@ export class CredentialsHelper extends ICredentialsHelper {
if (credentialType.authenticate) {
if (typeof credentialType.authenticate === 'function') {
// Special authentication function is defined
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
return credentialType.authenticate(credentials, requestOptions as IHttpRequestOptions);
}
@@ -559,7 +558,6 @@ export class CredentialsHelper extends ICredentialsHelper {
nodeToTestWith?: string,
): Promise<INodeCredentialTestResult> {
const credentialTestFunction = this.getCredentialTestFunction(credentialType, nodeToTestWith);
if (credentialTestFunction === undefined) {
return Promise.resolve({
status: 'Error',
@@ -690,7 +688,6 @@ export class CredentialsHelper extends ICredentialsHelper {
statusCode: error.cause.response.status,
statusMessage: error.cause.response.statusText,
};
if (credentialTestFunction.testRequest.rules) {
// Special testing rules are defined so check all in order
for (const rule of credentialTestFunction.testRequest.rules) {
@@ -716,6 +713,11 @@ export class CredentialsHelper extends ICredentialsHelper {
`Received HTTP status code: ${errorResponseData.statusCode}`,
};
}
} else if (error.cause.code) {
return {
status: 'Error',
message: error.cause.code,
};
}
Logger.debug('Credential test failed', error);
return {