superset-frontend/packages/superset-ui-core/src/connection/README.md
Connection modules for Superset:
SupersetClient requests and authenticationi18n locales and translationThe SupersetClient handles all client-side requests to the Superset backend. It can be configured
for use within the Superset application, or used to issue CORS requests in other applications. At
a high-level it supports:
CSRF token authentication
GET and POST requests (no PUT or DELETE)AbortController APIGET requests using If-None-Match and ETag headers// appSetup.js
import { SupersetClient } from `@superset-ui/core`;
SupersetClient.configure(...clientConfig);
SupersetClient.init(); // CSRF auth, can also chain `.configure().init();
// anotherFile.js
import { SupersetClient } from `@superset-ui/core`;
SupersetClient.post(...requestConfig)
.then(({ request, json }) => ...)
.catch((error) => ...);
The following flags can be passed in the client config call
SupersetClient.configure(...clientConfig);
protocol = 'http:'hostheaderscredentials = 'same-origin' (set to include for non-Superset apps)mode = 'same-origin' (set to cors for non-Superset apps)timeoutcsrfToken you can configure the client with a CSRF token at configuration time, else the client
will attempt to fetch this before any other requests are issuedThe following flags can be passed on a per-request call SupersetClient.get/post(...requestConfig);
url or endpointheadersbodytimeoutsignal (for aborting, from const { signal } = (new AbortController()))POST requests
postPayload (key values are added to a new FormData())stringify whether to call JSON.stringify on postPayload valuesPer-request aborting is implemented through the AbortController API:
import { SupersetClient } from '@superset-ui/core';
const controller = new AbortController();
const { signal } = controller;
SupersetClient.get({ ..., signal }).then(...).catch(...);
if (IWantToCancelForSomeReason) {
signal.abort(); // Promise is rejected, request `catch` is invoked
}