mirror of https://github.com/boxyhq/jackson.git
Fix type error (#2374)
* Fix type error * wip * Remove tests * Remove unused import in db.test.ts * check types in ci/cd --------- Co-authored-by: Deepak Prabhakara <deepak@boxyhq.com>
This commit is contained in:
parent
4b0133eee1
commit
f923451fbf
|
@ -146,6 +146,7 @@ jobs:
|
||||||
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
|
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run check-lint
|
- run: npm run check-lint
|
||||||
|
- run: npm run check-types
|
||||||
- run: npm run check-format
|
- run: npm run check-format
|
||||||
- run: npm run check-locale
|
- run: npm run check-locale
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { deflateRaw } from 'zlib';
|
||||||
import type { SAMLProfile } from '@boxyhq/saml20/dist/typings';
|
import type { SAMLProfile } from '@boxyhq/saml20/dist/typings';
|
||||||
import { generators } from 'openid-client';
|
import { generators } from 'openid-client';
|
||||||
|
|
||||||
import type { JacksonOption, Storable, SAMLSSORecord, OIDCSSORecord, AttributeMapping } from '../typings';
|
import type { JacksonOption, Storable, SAMLSSORecord, OIDCSSORecord, SAMLFederationApp } from '../typings';
|
||||||
import { getDefaultCertificate } from '../saml/x509';
|
import { getDefaultCertificate } from '../saml/x509';
|
||||||
import * as dbutils from '../db/utils';
|
import * as dbutils from '../db/utils';
|
||||||
import { JacksonError } from './error';
|
import { JacksonError } from './error';
|
||||||
|
@ -162,7 +162,7 @@ export class SSOHandler {
|
||||||
}: {
|
}: {
|
||||||
connection: SAMLSSORecord;
|
connection: SAMLSSORecord;
|
||||||
requestParams: Record<string, any>;
|
requestParams: Record<string, any>;
|
||||||
mappings: AttributeMapping[] | null;
|
mappings: SAMLFederationApp['mappings'];
|
||||||
}) {
|
}) {
|
||||||
// We have a connection now, so we can create the SAML request
|
// We have a connection now, so we can create the SAML request
|
||||||
const certificate = await getDefaultCertificate();
|
const certificate = await getDefaultCertificate();
|
||||||
|
@ -235,7 +235,7 @@ export class SSOHandler {
|
||||||
}: {
|
}: {
|
||||||
connection: OIDCSSORecord;
|
connection: OIDCSSORecord;
|
||||||
requestParams: Record<string, any>;
|
requestParams: Record<string, any>;
|
||||||
mappings: AttributeMapping[] | null;
|
mappings: SAMLFederationApp['mappings'];
|
||||||
}) {
|
}) {
|
||||||
if (!this.opts.oidcPath) {
|
if (!this.opts.oidcPath) {
|
||||||
throw new JacksonError('OpenID response handler path (oidcPath) is not set', 400);
|
throw new JacksonError('OpenID response handler path (oidcPath) is not set', 400);
|
||||||
|
@ -342,7 +342,7 @@ export class SSOHandler {
|
||||||
requested: any;
|
requested: any;
|
||||||
oidcCodeVerifier?: string;
|
oidcCodeVerifier?: string;
|
||||||
oidcNonce?: string;
|
oidcNonce?: string;
|
||||||
mappings: AttributeMapping[] | null;
|
mappings: SAMLFederationApp['mappings'];
|
||||||
}) => {
|
}) => {
|
||||||
const sessionId = crypto.randomBytes(16).toString('hex');
|
const sessionId = crypto.randomBytes(16).toString('hex');
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ export type SAMLFederationApp = {
|
||||||
faviconUrl: string | null;
|
faviconUrl: string | null;
|
||||||
primaryColor: string | null;
|
primaryColor: string | null;
|
||||||
tenants?: string[]; // To support multiple tenants for a single app
|
tenants?: string[]; // To support multiple tenants for a single app
|
||||||
mappings: AttributeMapping[] | null;
|
mappings?: AttributeMapping[] | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type SAMLFederationAppWithMetadata = SAMLFederationApp & {
|
export type SAMLFederationAppWithMetadata = SAMLFederationApp & {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { DatabaseEngine, DatabaseOption, EncryptionKey, Storable, DatabaseDriver } from '../../src/typings';
|
import { DatabaseOption, EncryptionKey, Storable, DatabaseDriver } from '../../src/typings';
|
||||||
import tap from 'tap';
|
import tap from 'tap';
|
||||||
import DB from '../../src/db/db';
|
import DB from '../../src/db/db';
|
||||||
import { randomBytes } from 'crypto';
|
import { randomBytes } from 'crypto';
|
||||||
|
@ -505,48 +505,4 @@ tap.test('dbs', async () => {
|
||||||
await value.close();
|
await value.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('db.new() error', async (t) => {
|
|
||||||
try {
|
|
||||||
await DB.new(
|
|
||||||
<DatabaseOption>{
|
|
||||||
engine: <DatabaseEngine>'mongo',
|
|
||||||
},
|
|
||||||
true
|
|
||||||
);
|
|
||||||
|
|
||||||
await DB.new(
|
|
||||||
<DatabaseOption>{
|
|
||||||
engine: <DatabaseEngine>'sql',
|
|
||||||
url: tap.expectUncaughtException().toString(),
|
|
||||||
},
|
|
||||||
true
|
|
||||||
);
|
|
||||||
|
|
||||||
t.ok(
|
|
||||||
<DatabaseOption>{
|
|
||||||
engine: <DatabaseEngine>'sql',
|
|
||||||
url: tap.expectUncaughtException().toString(),
|
|
||||||
},
|
|
||||||
'db must have connection'
|
|
||||||
);
|
|
||||||
|
|
||||||
await DB.new(
|
|
||||||
{
|
|
||||||
engine: <DatabaseEngine>'',
|
|
||||||
},
|
|
||||||
true
|
|
||||||
);
|
|
||||||
|
|
||||||
await DB.new(
|
|
||||||
<DatabaseOption>{
|
|
||||||
engine: <DatabaseEngine>'somedb',
|
|
||||||
},
|
|
||||||
true
|
|
||||||
);
|
|
||||||
t.fail('expecting an unsupported db error');
|
|
||||||
} catch (err) {
|
|
||||||
t.ok(err, 'got expected error');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -76,6 +76,7 @@ tap.test('Federated SAML flow', async (t) => {
|
||||||
const response = await samlFederatedController.sso.getAuthorizeUrl({
|
const response = await samlFederatedController.sso.getAuthorizeUrl({
|
||||||
request: samlRequestFromSP,
|
request: samlRequestFromSP,
|
||||||
relayState: relayStateFromSP,
|
relayState: relayStateFromSP,
|
||||||
|
samlBinding: 'HTTP-Redirect',
|
||||||
});
|
});
|
||||||
|
|
||||||
// Extract relay state created by Jackson
|
// Extract relay state created by Jackson
|
||||||
|
|
Loading…
Reference in New Issue