tweaked caching of jackson lib instance, fixed misc types (#1142)

This commit is contained in:
Deepak Prabhakara 2023-05-15 10:02:51 +01:00 committed by GitHub
parent e95844d81e
commit 2e21b533d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 96 deletions

View File

@ -1,104 +1,15 @@
import type {
IAdminController,
IConnectionAPIController,
ILogoutController,
IOAuthController,
IHealthCheckController,
ISetupLinkController,
IDirectorySyncController,
IOidcDiscoveryController,
ISPSAMLConfig,
ISAMLFederationController,
IBrandingController,
} from '@boxyhq/saml-jackson';
import type { SAMLJackson } from '@boxyhq/saml-jackson';
import jackson from '@boxyhq/saml-jackson';
import { jacksonOptions } from '@lib/env';
import '@lib/metrics';
let connectionAPIController: IConnectionAPIController;
let oauthController: IOAuthController;
let adminController: IAdminController;
let logoutController: ILogoutController;
let healthCheckController: IHealthCheckController;
let setupLinkController: ISetupLinkController;
let directorySyncController: IDirectorySyncController;
let oidcDiscoveryController: IOidcDiscoveryController;
let spConfig: ISPSAMLConfig;
let samlFederatedController: ISAMLFederationController;
let checkLicense: () => Promise<boolean>;
let brandingController: IBrandingController;
const g = global as any;
export default async function init() {
if (
!g.connectionAPIController ||
!g.oauthController ||
!g.adminController ||
!g.logoutController ||
!g.healthCheckController ||
!g.setupLinkController ||
!g.directorySyncController ||
!g.oidcDiscoveryController ||
!g.spConfig ||
!g.samlFederatedController ||
!g.brandingController
) {
const ret = await jackson(jacksonOptions);
connectionAPIController = ret.connectionAPIController;
oauthController = ret.oauthController;
adminController = ret.adminController;
logoutController = ret.logoutController;
healthCheckController = ret.healthCheckController;
setupLinkController = ret.setupLinkController;
directorySyncController = ret.directorySyncController;
oidcDiscoveryController = ret.oidcDiscoveryController;
spConfig = ret.spConfig;
samlFederatedController = ret.samlFederatedController;
checkLicense = ret.checkLicense;
brandingController = ret.brandingController;
g.connectionAPIController = connectionAPIController;
g.oauthController = oauthController;
g.adminController = adminController;
g.logoutController = logoutController;
g.healthCheckController = healthCheckController;
g.directorySyncController = directorySyncController;
g.setupLinkController = setupLinkController;
g.oidcDiscoveryController = oidcDiscoveryController;
g.spConfig = spConfig;
g.isJacksonReady = true;
g.samlFederatedController = samlFederatedController;
g.checkLicense = checkLicense;
g.brandingController = brandingController;
} else {
connectionAPIController = g.connectionAPIController;
oauthController = g.oauthController;
adminController = g.adminController;
logoutController = g.logoutController;
healthCheckController = g.healthCheckController;
directorySyncController = g.directorySyncController;
oidcDiscoveryController = g.oidcDiscoveryController;
setupLinkController = g.setupLinkController;
spConfig = g.spConfig;
samlFederatedController = g.samlFederatedController;
checkLicense = g.checkLicense;
brandingController = g.brandingController;
if (!g.jacksonInstance) {
g.jacksonInstance = await jackson(jacksonOptions);
}
return {
spConfig,
connectionAPIController,
oauthController,
adminController,
logoutController,
healthCheckController,
directorySyncController,
oidcDiscoveryController,
setupLinkController,
samlFederatedController,
checkLicense,
brandingController,
};
return g.jacksonInstance as SAMLJackson;
}

View File

@ -26,7 +26,7 @@ export class AdminController implements IAdminController {
)) as Records<SAMLSSORecord | OIDCSSORecord>;
if (!connectionList || !connectionList.length) {
return [];
return { data: [] };
}
return { data: transformConnections(connectionList), pageToken: nextPageToken };
@ -40,7 +40,7 @@ export class AdminController implements IAdminController {
)) as Records<Trace>;
if (!traces || !traces.length) {
return [];
return { data: [] };
}
return { data: traces, pageToken: nextPageToken };

View File

@ -20,7 +20,7 @@ export class HealthCheckController implements IHealthCheckController {
status: number;
}> {
try {
if (!g.isJacksonReady) {
if (!g.jacksonInstance) {
return {
status: 503,
};