@superblocksteam/shared 2.0.0-SNAPSHOT.4665a67985a1ea20 → 2.0.0-SNAPSHOT.48e235955a4e53a0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/socket/socketWithClientAuth.d.ts +2 -0
- package/dist/socket/socketWithClientAuth.d.ts.map +1 -1
- package/dist/socket/socketWithClientAuth.js +7 -1
- package/dist/socket/socketWithClientAuth.js.map +1 -1
- package/dist/socket/socketWithClientAuth.test.d.ts +2 -0
- package/dist/socket/socketWithClientAuth.test.d.ts.map +1 -0
- package/dist/socket/socketWithClientAuth.test.js +79 -0
- package/dist/socket/socketWithClientAuth.test.js.map +1 -0
- package/dist/types/policyGate/errors.d.ts +3 -0
- package/dist/types/policyGate/errors.d.ts.map +1 -1
- package/dist/types/policyGate/errors.js +1 -0
- package/dist/types/policyGate/errors.js.map +1 -1
- package/dist/types/policyGate/index.d.ts +2 -1
- package/dist/types/policyGate/index.d.ts.map +1 -1
- package/dist/types/policyGate/index.js.map +1 -1
- package/dist/types/reviewPolicy/index.d.ts +14 -4
- package/dist/types/reviewPolicy/index.d.ts.map +1 -1
- package/dist/types/reviewPolicy/index.js +11 -5
- package/dist/types/reviewPolicy/index.js.map +1 -1
- package/dist-esm/socket/socketWithClientAuth.d.ts +2 -0
- package/dist-esm/socket/socketWithClientAuth.d.ts.map +1 -1
- package/dist-esm/socket/socketWithClientAuth.js +7 -1
- package/dist-esm/socket/socketWithClientAuth.js.map +1 -1
- package/dist-esm/socket/socketWithClientAuth.test.d.ts +2 -0
- package/dist-esm/socket/socketWithClientAuth.test.d.ts.map +1 -0
- package/dist-esm/socket/socketWithClientAuth.test.js +74 -0
- package/dist-esm/socket/socketWithClientAuth.test.js.map +1 -0
- package/dist-esm/types/policyGate/errors.d.ts +3 -0
- package/dist-esm/types/policyGate/errors.d.ts.map +1 -1
- package/dist-esm/types/policyGate/errors.js +1 -0
- package/dist-esm/types/policyGate/errors.js.map +1 -1
- package/dist-esm/types/policyGate/index.d.ts +2 -1
- package/dist-esm/types/policyGate/index.d.ts.map +1 -1
- package/dist-esm/types/policyGate/index.js.map +1 -1
- package/dist-esm/types/reviewPolicy/index.d.ts +14 -4
- package/dist-esm/types/reviewPolicy/index.d.ts.map +1 -1
- package/dist-esm/types/reviewPolicy/index.js +10 -4
- package/dist-esm/types/reviewPolicy/index.js.map +1 -1
- package/package.json +3 -3
- package/src/socket/socketWithClientAuth.test.ts +84 -0
- package/src/socket/socketWithClientAuth.ts +7 -1
- package/src/types/policyGate/errors.ts +1 -0
- package/src/types/policyGate/index.ts +7 -1
- package/src/types/reviewPolicy/index.ts +18 -4
|
@@ -5,6 +5,7 @@ import { GenericMiddleware, ISocketClient, MethodHandlers, RequestContextBase, S
|
|
|
5
5
|
export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestContext extends RequestContextBase> extends TracedSocket<ImplementedMethods, CallableMethods, RequestContext> {
|
|
6
6
|
private authorization?;
|
|
7
7
|
private authorizationVersion;
|
|
8
|
+
private readonly getAuthorization?;
|
|
8
9
|
private hasSentAuth;
|
|
9
10
|
constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
|
|
10
11
|
onClose: (event: WebSocket.CloseEvent) => void;
|
|
@@ -15,6 +16,7 @@ export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods,
|
|
|
15
16
|
warn: (message?: string) => void;
|
|
16
17
|
};
|
|
17
18
|
getAbortSignal?: () => AbortSignal | undefined;
|
|
19
|
+
getAuthorization?: () => Promise<string>;
|
|
18
20
|
});
|
|
19
21
|
request<Params, Result>(method: string, params: Params): Promise<Result>;
|
|
20
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;QACnH,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAwB;IAC1D,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;QACnH,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;QAC/C,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KAC1C;IAQG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc9E;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAK7D;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EACf,kBAAkB,EAClB,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAE9D,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpH,GACA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
|
|
@@ -10,14 +10,20 @@ const util_js_1 = require("./util.js");
|
|
|
10
10
|
class ISocketWithClientAuth extends tracedSocket_js_1.TracedSocket {
|
|
11
11
|
authorization;
|
|
12
12
|
authorizationVersion = 0;
|
|
13
|
+
getAuthorization;
|
|
13
14
|
hasSentAuth = false;
|
|
14
15
|
constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, options) {
|
|
15
16
|
super(ws, requestHandlers, globalMiddlewares, tracer, options);
|
|
16
17
|
this.authorization = authorization;
|
|
18
|
+
this.getAuthorization = options.getAuthorization;
|
|
17
19
|
}
|
|
18
20
|
// override `request` from the base class to send `authorization` when appropriate
|
|
19
21
|
async request(method, params) {
|
|
20
|
-
|
|
22
|
+
if (this.getAuthorization) {
|
|
23
|
+
const authorization = await this.getAuthorization();
|
|
24
|
+
if (authorization !== this.authorization)
|
|
25
|
+
this.setAuthorization(authorization);
|
|
26
|
+
}
|
|
21
27
|
const authorizationVersion = this.authorizationVersion;
|
|
22
28
|
const authorization = this.hasSentAuth ? undefined : this.authorization;
|
|
23
29
|
const result = await super.request(method, params, authorization);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":";;;AAuEA,0DAmBC;AAvFD,2CAAkD;AAClD,uDAAiD;AAEjD,uCAA6C;AAE7C,sEAAsE;AACtE,mEAAmE;AACnE,MAAa,qBAAsG,SAAQ,8BAI1H;IACS,aAAa,CAAU;IACvB,oBAAoB,GAAG,CAAC,CAAC;IAChB,gBAAgB,CAAyB;IAClD,WAAW,GAAG,KAAK,CAAC;IAE5B,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAMC;QAED,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACnD,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,IAAI,aAAa,KAAK,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,oBAAoB,KAAK,oBAAoB,EAAE,CAAC;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAoC;QACnD,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;QACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAvDD,sDAuDC;AAED;;;GAGG;AACI,KAAK,UAAU,uBAAuB,CAK3C,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,OAAO,IAAA,+BAAmB,EAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.test.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_events_1 = require("node:events");
|
|
7
|
+
const api_1 = require("@opentelemetry/api");
|
|
8
|
+
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
9
|
+
const vitest_1 = require("vitest");
|
|
10
|
+
const socketWithClientAuth_js_1 = require("./socketWithClientAuth.js");
|
|
11
|
+
const util_js_1 = require("./util.js");
|
|
12
|
+
(0, vitest_1.describe)('socket request authorization', () => {
|
|
13
|
+
const servers = [];
|
|
14
|
+
const authorizations = [];
|
|
15
|
+
async function connect(options) {
|
|
16
|
+
const server = new isomorphic_ws_1.default.Server({ host: '127.0.0.1', port: 0 });
|
|
17
|
+
servers.push(server);
|
|
18
|
+
server.on('connection', (ws) => {
|
|
19
|
+
ws.on('message', (data) => {
|
|
20
|
+
const message = JSON.parse(data.toString());
|
|
21
|
+
if (!message.request)
|
|
22
|
+
throw new Error('Expected a socket request');
|
|
23
|
+
authorizations.push(message.request.setAuthorization);
|
|
24
|
+
ws.send(JSON.stringify({ response: { error: null, id: message.request.id, payload: 'ok' } }));
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
await (0, node_events_1.once)(server, 'listening');
|
|
28
|
+
const address = server.address();
|
|
29
|
+
if (!address || typeof address === 'string')
|
|
30
|
+
throw new Error('Expected a TCP test server');
|
|
31
|
+
const ws = await (0, util_js_1.connectWebSocket)(`ws://127.0.0.1:${address.port}`);
|
|
32
|
+
return new socketWithClientAuth_js_1.ISocketWithClientAuth(ws, options.authorization, {}, [], api_1.trace.getTracer('socket-auth-test'), {
|
|
33
|
+
getAuthorization: options.getAuthorization,
|
|
34
|
+
onClose: () => undefined
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
(0, vitest_1.afterEach)(async () => {
|
|
38
|
+
authorizations.length = 0;
|
|
39
|
+
for (const server of servers.splice(0)) {
|
|
40
|
+
for (const client of server.clients)
|
|
41
|
+
client.terminate();
|
|
42
|
+
await new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve())));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
(0, vitest_1.it)('refreshes authorization before each request and sends only changed credentials', async () => {
|
|
46
|
+
let authorization = 'Bearer first-token';
|
|
47
|
+
const socket = await connect({ authorization: 'Bearer expired-token', getAuthorization: async () => authorization });
|
|
48
|
+
await (0, vitest_1.expect)(socket.request('test.read', {})).resolves.toBe('ok');
|
|
49
|
+
await (0, vitest_1.expect)(socket.request('test.read', {})).resolves.toBe('ok');
|
|
50
|
+
authorization = 'Bearer second-token';
|
|
51
|
+
await (0, vitest_1.expect)(socket.request('test.read', {})).resolves.toBe('ok');
|
|
52
|
+
(0, vitest_1.expect)(authorizations).toEqual(['Bearer first-token', undefined, 'Bearer second-token']);
|
|
53
|
+
socket.close();
|
|
54
|
+
});
|
|
55
|
+
(0, vitest_1.it)('sends no request when refreshing authorization fails and allows a later retry', async () => {
|
|
56
|
+
let refreshFailed = true;
|
|
57
|
+
const socket = await connect({
|
|
58
|
+
authorization: 'Bearer expired-token',
|
|
59
|
+
getAuthorization: async () => {
|
|
60
|
+
if (refreshFailed)
|
|
61
|
+
throw new Error('Refresh unavailable');
|
|
62
|
+
return 'Bearer refreshed-token';
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
await (0, vitest_1.expect)(socket.request('test.read', {})).rejects.toThrow('Refresh unavailable');
|
|
66
|
+
refreshFailed = false;
|
|
67
|
+
await (0, vitest_1.expect)(socket.request('test.read', {})).resolves.toBe('ok');
|
|
68
|
+
(0, vitest_1.expect)(authorizations).toEqual(['Bearer refreshed-token']);
|
|
69
|
+
socket.close();
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.it)('preserves static authorization when no provider is supplied', async () => {
|
|
72
|
+
const socket = await connect({ authorization: 'Bearer personal-token' });
|
|
73
|
+
await (0, vitest_1.expect)(socket.request('test.read', {})).resolves.toBe('ok');
|
|
74
|
+
await (0, vitest_1.expect)(socket.request('test.read', {})).resolves.toBe('ok');
|
|
75
|
+
(0, vitest_1.expect)(authorizations).toEqual(['Bearer personal-token', undefined]);
|
|
76
|
+
socket.close();
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=socketWithClientAuth.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.test.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.test.ts"],"names":[],"mappings":";;;;;AAAA,6CAAmC;AAEnC,4CAA2C;AAC3C,kEAAsC;AACtC,mCAAyD;AAGzD,uEAAkE;AAClE,uCAA6C;AAE7C,IAAA,iBAAQ,EAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,cAAc,GAA8B,EAAE,CAAC;IAErD,KAAK,UAAU,OAAO,CAAC,OAA6E;QAClG,MAAM,MAAM,GAAG,IAAI,uBAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;YAC7B,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACnE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBACtD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,IAAA,kBAAI,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3F,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,kBAAkB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,+CAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,WAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;YACvG,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;SACzB,CAAC,CAAC;IACL,CAAC;IAED,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QACnB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACxD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,IAAI,aAAa,GAAG,oBAAoB,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;QAErH,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,aAAa,GAAG,qBAAqB,CAAC;QACtC,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElE,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC3B,aAAa,EAAE,sBAAsB;YACrC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAC3B,IAAI,aAAa;oBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAC1D,OAAO,wBAAwB,CAAC;YAClC,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACrF,aAAa,GAAG,KAAK,CAAC;QACtB,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElE,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElE,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -47,6 +47,9 @@ export declare const POLICY_GATE_ERROR_CODES: {
|
|
|
47
47
|
readonly canceled: {
|
|
48
48
|
readonly category: "user_action";
|
|
49
49
|
};
|
|
50
|
+
readonly dependency_scan_stalled: {
|
|
51
|
+
readonly category: "platform_transient";
|
|
52
|
+
};
|
|
50
53
|
readonly dev_server_unreachable: {
|
|
51
54
|
readonly category: "platform_transient";
|
|
52
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,mBAE5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,QAAiB,CAAC;AAQ5D,eAAO,MAAM,kCAAkC,QAAgB,CAAC;AAKhE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,mBAE5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,QAAiB,CAAC;AAQ5D,eAAO,MAAM,kCAAkC,QAAgB,CAAC;AAKhE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BoB,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAEvE,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,mBAAmB,CAE1F;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAEzF"}
|
|
@@ -36,6 +36,7 @@ exports.POLICY_GATE_ERROR_CODES = {
|
|
|
36
36
|
output_token_limit: { category: 'platform_error' }, // Our output token cap cut off the report.
|
|
37
37
|
// Server dispatch and stale-run failures.
|
|
38
38
|
canceled: { category: 'user_action' }, // The user canceled the in-flight publish.
|
|
39
|
+
dependency_scan_stalled: { category: 'platform_transient' }, // The in-process dependency scan never completed.
|
|
39
40
|
dev_server_unreachable: { category: 'platform_transient' }, // The dev server did not finish the run.
|
|
40
41
|
dispatch_failed: { category: 'platform_transient' }, // The server could not start the run.
|
|
41
42
|
// Legacy code from dev servers that predate this registry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":";;;AA4DA,sDAEC;AAED,wDAEC;AA5DY,QAAA,8BAA8B,GAAwB;IACjE,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEW,QAAA,4BAA4B,GAAG,CAAC,CAAC;AACjC,QAAA,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,iEAAiE;AACpD,QAAA,kCAAkC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,4EAA4E;AAC5E,2EAA2E;AAC3E,oEAAoE;AACvD,QAAA,iCAAiC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAElD,QAAA,uBAAuB,GAAG;IACrC,+CAA+C;IAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IACnF,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yCAAyC;IAC5F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,wCAAwC;IACxF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,uCAAuC;IACvF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,qEAAqE;IACrH,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,8CAA8C;IAClG,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAC5F,WAAW,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,8CAA8C;IAC3F,WAAW,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IAC9F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,0CAA0C;IAC1F,cAAc,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IACxF,kBAAkB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,2CAA2C;IAE/F,0CAA0C;IAC1C,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IAClF,uBAAuB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,kDAAkD;IAC/G,sBAAsB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,yCAAyC;IACrG,eAAe,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAE3F,2DAA2D;IAC3D,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gDAAgD;IAEtG,gCAAgC;IAChC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yBAAyB;IAC5E,uBAAuB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,kDAAkD;IAC3G,oBAAoB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,0CAA0C;IACpG,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IACjG,oBAAoB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,qCAAqC;CACpC,CAAC;AAIzD,SAAgB,qBAAqB,CAAC,SAAkB;IACtD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,+BAAuB,EAAE,SAAS,CAAC,CAAC;AAC5F,CAAC;AAED,SAAgB,sBAAsB,CAAC,SAA6B;IAClE,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,+BAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,sCAA8B,CAAC;AAChH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReviewFindingCategory, ReviewFindingConfidence, ReviewFindingSeverity } from '../reviewPolicy/index.js';
|
|
1
|
+
import type { ReviewFindingCategory, ReviewFindingConfidence, ReviewFindingSeverity, ReviewPolicyRunnerType } from '../reviewPolicy/index.js';
|
|
2
2
|
export * from './errors.js';
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated Use the `superblocks.policy-gates.security-scans.enabled` LaunchDarkly flag instead.
|
|
@@ -50,6 +50,7 @@ export type PolicyGateReadinessItem = {
|
|
|
50
50
|
policyVersionId: string;
|
|
51
51
|
progress?: PolicyGateScanProgress;
|
|
52
52
|
reviewRunId?: string;
|
|
53
|
+
runnerType?: ReviewPolicyRunnerType;
|
|
53
54
|
runs?: PolicyGateReadinessRun[];
|
|
54
55
|
staleReason?: string;
|
|
55
56
|
status: PolicyGateReadinessItemStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAGlC,cAAc,aAAa,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,OAAe,CAAC;AAErD,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,qBAAqB,GACrB,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,6EAA6E;IAC7E,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,kBAAkB,GAAG,QAAQ,CAAC;AAEpF,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjG,MAAM,MAAM,2BAA2B,GAAG;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,wBAAwB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC9E,cAAc,EAAE,uBAAuB,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACxC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,iCAAiC,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,gBAAgB,GAAG,eAAe,CAAC;IAC7C,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,0BAA0B,GAAG,aAAa,CAAC;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,IAAI,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,6BAA6B,CAAC;CACvC,CAAC;AAKF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAKxG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAEpG;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAE1G;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,GAAG,OAAO,CAW/G;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAAC;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,iCAAiC,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,6BAA6B,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC,mBAAmB,GACnB,mBAAmB,GACnB,SAAS,GACT,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,MAAM,EAAE,yBAAyB,CAAC;IAClC,MAAM,EAAE,yBAAyB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAElI,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,+HACgF,CAAC;AAE/H,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,mBAAmB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,GAAG,MAAM,CAE7F;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAElH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAqFA,4DAKC;AAQD,oDAEC;AAED,gEAEC;AAUD,oEAWC;AAyFD,8DAEC;AAED,8DAEC;AAtND,2CAA2D;AAE3D,8CAA4B;AAE5B;;;;GAIG;AACU,QAAA,sBAAsB,GAAY,KAAK,CAAC;AAmErD,8EAA8E;AAC9E,+EAA+E;AAC/E,iBAAiB;AACjB,SAAgB,wBAAwB,CAAC,IAAsD;IAC7F,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,IAAsD;IACzF,OAAO,IAAI,CAAC,IAAI,KAAK,0BAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AAC7G,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAsD;IAC/F,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,4BAA4B,CAAC,KAAyD;IACpG,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CACT,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,QAAQ;YACxB,IAAI,CAAC,MAAM,KAAK,mBAAmB;YACnC,0BAA0B,CAAC,IAAI,CAAC;YAChC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CACxF,CACF,CAAC;AACJ,CAAC;AAuCD;;;;GAIG;AACU,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;GAOG;AACU,QAAA,iCAAiC,GAC5C,4HAA4H,CAAC;AAkC/H,SAAgB,yBAAyB,CAAC,IAA2C;IACnF,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;AAC3G,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAA+D;IACvG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,wCAA4B,CAAC;AACjI,CAAC"}
|
|
@@ -4,13 +4,14 @@ export declare const REVIEW_POLICY_NAME_MAX_LENGTH = 120;
|
|
|
4
4
|
export declare const REVIEW_POLICY_PROMPT_MAX_LENGTH = 10000;
|
|
5
5
|
export declare const BUILT_IN_SECURITY_SCAN_NAME = "Superblocks Security Scan";
|
|
6
6
|
export declare const SUPERBLOCKS_SECURITY_AGENT_NAME = "Superblocks Security Agent";
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const DEPENDENCY_VULNERABILITY_SCAN_NAME = "Superblocks Dependency Vulnerability Scan";
|
|
8
|
+
export declare const REVIEW_POLICY_TYPES: readonly ["built_in_security_scan", "security_agent", "dependency_vulnerability_scan"];
|
|
8
9
|
export declare const REVIEW_POLICY_SOURCES: readonly ["admin_configured", "superblocks_managed"];
|
|
9
10
|
export declare const REVIEW_POLICY_TRIGGERS: readonly ["before_deploy", "after_checkpoint", "manual"];
|
|
10
|
-
export declare const REVIEW_POLICY_EXECUTION_CONTEXTS: readonly ["edit_mode_app", "superblocks_sabs_built_assets", "superblocks_sabs_dependency_metadata", "superblocks_sabs_source_snapshot"];
|
|
11
|
-
export declare const REVIEW_POLICY_RUNTIMES: readonly ["superblocks_dev_server_agent", "superblocks_sabs"];
|
|
11
|
+
export declare const REVIEW_POLICY_EXECUTION_CONTEXTS: readonly ["edit_mode_app", "superblocks_sabs_built_assets", "superblocks_sabs_dependency_metadata", "superblocks_sabs_source_snapshot", "dependency_manifest"];
|
|
12
|
+
export declare const REVIEW_POLICY_RUNTIMES: readonly ["superblocks_dev_server_agent", "superblocks_sabs", "superblocks_server"];
|
|
12
13
|
export declare const REVIEW_POLICY_MODES: readonly ["advisory", "blocking_with_exceptions", "blocking"];
|
|
13
|
-
export declare const REVIEW_POLICY_RUNNER_TYPES: readonly ["built_in_security_scan", "llm_security_agent"];
|
|
14
|
+
export declare const REVIEW_POLICY_RUNNER_TYPES: readonly ["built_in_security_scan", "llm_security_agent", "dependency_vulnerability_scan"];
|
|
14
15
|
export declare const REVIEW_FINDING_SOURCE_PHASES: readonly ["built_asset", "dependency", "edit_mode_app", "iac", "image", "source"];
|
|
15
16
|
export declare const REVIEW_FINDING_CATEGORIES: readonly ["external_policy", "misconfiguration", "security_agent", "secret", "sensitive_data", "static_analysis", "vulnerability"];
|
|
16
17
|
export declare const REVIEW_FINDING_SEVERITIES: readonly ["critical", "high", "medium", "low", "info"];
|
|
@@ -189,6 +190,10 @@ export type CreateReviewPolicyBody = {
|
|
|
189
190
|
policyType: 'built_in_security_scan';
|
|
190
191
|
mode?: ReviewPolicyMode;
|
|
191
192
|
scope?: ReviewPolicyScopeInput;
|
|
193
|
+
} | {
|
|
194
|
+
policyType: 'dependency_vulnerability_scan';
|
|
195
|
+
mode?: ReviewPolicyMode;
|
|
196
|
+
scope?: ReviewPolicyScopeInput;
|
|
192
197
|
} | {
|
|
193
198
|
policyType: 'security_agent';
|
|
194
199
|
source: 'superblocks_managed';
|
|
@@ -209,6 +214,11 @@ export type UpdateReviewPolicyConfigBody = {
|
|
|
209
214
|
policyType: 'built_in_security_scan';
|
|
210
215
|
mode: ReviewPolicyMode;
|
|
211
216
|
scope?: ReviewPolicyScopeInput;
|
|
217
|
+
} | {
|
|
218
|
+
activeVersionId: string;
|
|
219
|
+
policyType: 'dependency_vulnerability_scan';
|
|
220
|
+
mode: ReviewPolicyMode;
|
|
221
|
+
scope?: ReviewPolicyScopeInput;
|
|
212
222
|
} | {
|
|
213
223
|
activeVersionId: string;
|
|
214
224
|
policyType: 'security_agent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,iBAAiB,iCAAkC,CAAC;AAEjE,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAGrD,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAIvE,eAAO,MAAM,+BAA+B,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_REVIEW_POLICY_SUMMARY_WINDOW = exports.REVIEW_POLICY_SUMMARY_WINDOWS = exports.MAX_REVIEW_POLICY_RUNS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUNS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUN_ORDER = exports.REVIEW_POLICY_RUN_ORDERS = exports.DEFAULT_REVIEW_POLICY_RUN_SORT = exports.REVIEW_POLICY_RUN_SORTS = exports.MAX_REVIEW_POLICY_RUN_FINDINGS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUN_FINDINGS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUN_FINDING_ORDER = exports.REVIEW_POLICY_RUN_FINDING_ORDERS = exports.REVIEW_POLICY_DOMAINS = exports.REVIEW_POLICY_STAGES = exports.REVIEW_RUN_TRIGGERED_BYS = exports.REVIEW_RUN_DECISIONS = exports.REVIEW_RUN_STATUSES = exports.REVIEW_FINDING_SUPPRESSION_STATUSES = exports.REVIEW_FINDING_CONFIDENCES = exports.BLOCKING_FINDING_SEVERITIES = exports.ADVISORY_HOLD_FINDING_SEVERITIES = exports.REVIEW_FINDING_SEVERITIES = exports.REVIEW_FINDING_CATEGORIES = exports.REVIEW_FINDING_SOURCE_PHASES = exports.REVIEW_POLICY_RUNNER_TYPES = exports.REVIEW_POLICY_MODES = exports.REVIEW_POLICY_RUNTIMES = exports.REVIEW_POLICY_EXECUTION_CONTEXTS = exports.REVIEW_POLICY_TRIGGERS = exports.REVIEW_POLICY_SOURCES = exports.REVIEW_POLICY_TYPES = exports.SUPERBLOCKS_SECURITY_AGENT_NAME = exports.BUILT_IN_SECURITY_SCAN_NAME = exports.REVIEW_POLICY_PROMPT_MAX_LENGTH = exports.REVIEW_POLICY_NAME_MAX_LENGTH = exports.AI_AGENT_STATUSES = void 0;
|
|
3
|
+
exports.DEFAULT_REVIEW_POLICY_SUMMARY_WINDOW = exports.REVIEW_POLICY_SUMMARY_WINDOWS = exports.MAX_REVIEW_POLICY_RUNS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUNS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUN_ORDER = exports.REVIEW_POLICY_RUN_ORDERS = exports.DEFAULT_REVIEW_POLICY_RUN_SORT = exports.REVIEW_POLICY_RUN_SORTS = exports.MAX_REVIEW_POLICY_RUN_FINDINGS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUN_FINDINGS_LIMIT = exports.DEFAULT_REVIEW_POLICY_RUN_FINDING_ORDER = exports.REVIEW_POLICY_RUN_FINDING_ORDERS = exports.REVIEW_POLICY_DOMAINS = exports.REVIEW_POLICY_STAGES = exports.REVIEW_RUN_TRIGGERED_BYS = exports.REVIEW_RUN_DECISIONS = exports.REVIEW_RUN_STATUSES = exports.REVIEW_FINDING_SUPPRESSION_STATUSES = exports.REVIEW_FINDING_CONFIDENCES = exports.BLOCKING_FINDING_SEVERITIES = exports.ADVISORY_HOLD_FINDING_SEVERITIES = exports.REVIEW_FINDING_SEVERITIES = exports.REVIEW_FINDING_CATEGORIES = exports.REVIEW_FINDING_SOURCE_PHASES = exports.REVIEW_POLICY_RUNNER_TYPES = exports.REVIEW_POLICY_MODES = exports.REVIEW_POLICY_RUNTIMES = exports.REVIEW_POLICY_EXECUTION_CONTEXTS = exports.REVIEW_POLICY_TRIGGERS = exports.REVIEW_POLICY_SOURCES = exports.REVIEW_POLICY_TYPES = exports.DEPENDENCY_VULNERABILITY_SCAN_NAME = exports.SUPERBLOCKS_SECURITY_AGENT_NAME = exports.BUILT_IN_SECURITY_SCAN_NAME = exports.REVIEW_POLICY_PROMPT_MAX_LENGTH = exports.REVIEW_POLICY_NAME_MAX_LENGTH = exports.AI_AGENT_STATUSES = void 0;
|
|
4
4
|
exports.isAdvisoryHoldFindingSeverity = isAdvisoryHoldFindingSeverity;
|
|
5
5
|
exports.isBlockingFindingSeverity = isBlockingFindingSeverity;
|
|
6
6
|
exports.reviewPolicyDomainForType = reviewPolicyDomainForType;
|
|
@@ -12,19 +12,25 @@ exports.BUILT_IN_SECURITY_SCAN_NAME = 'Superblocks Security Scan';
|
|
|
12
12
|
// Display name of the Superblocks-managed security agent. One per organization; its prompt is owned
|
|
13
13
|
// by the platform, so admins can only enable it and choose its mode.
|
|
14
14
|
exports.SUPERBLOCKS_SECURITY_AGENT_NAME = 'Superblocks Security Agent';
|
|
15
|
-
|
|
15
|
+
// Display name of the Superblocks-managed pre-publish dependency CVE check. One per organization;
|
|
16
|
+
// runs synchronously against the vulnerability index, so it needs no runner config to enable.
|
|
17
|
+
exports.DEPENDENCY_VULNERABILITY_SCAN_NAME = 'Superblocks Dependency Vulnerability Scan';
|
|
18
|
+
exports.REVIEW_POLICY_TYPES = ['built_in_security_scan', 'security_agent', 'dependency_vulnerability_scan'];
|
|
16
19
|
exports.REVIEW_POLICY_SOURCES = ['admin_configured', 'superblocks_managed'];
|
|
17
20
|
exports.REVIEW_POLICY_TRIGGERS = ['before_deploy', 'after_checkpoint', 'manual'];
|
|
18
21
|
exports.REVIEW_POLICY_EXECUTION_CONTEXTS = [
|
|
19
22
|
'edit_mode_app',
|
|
20
23
|
'superblocks_sabs_built_assets',
|
|
21
24
|
'superblocks_sabs_dependency_metadata',
|
|
22
|
-
'superblocks_sabs_source_snapshot'
|
|
25
|
+
'superblocks_sabs_source_snapshot',
|
|
26
|
+
'dependency_manifest'
|
|
23
27
|
];
|
|
24
|
-
|
|
28
|
+
// `superblocks_server` runs in-process on the API server (no external runner), for checks like the
|
|
29
|
+
// dependency vulnerability scan that only need data already indexed at commit time.
|
|
30
|
+
exports.REVIEW_POLICY_RUNTIMES = ['superblocks_dev_server_agent', 'superblocks_sabs', 'superblocks_server'];
|
|
25
31
|
// Ordered from least to most strict; the mode select renders in array order.
|
|
26
32
|
exports.REVIEW_POLICY_MODES = ['advisory', 'blocking_with_exceptions', 'blocking'];
|
|
27
|
-
exports.REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent'];
|
|
33
|
+
exports.REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent', 'dependency_vulnerability_scan'];
|
|
28
34
|
exports.REVIEW_FINDING_SOURCE_PHASES = ['built_asset', 'dependency', 'edit_mode_app', 'iac', 'image', 'source'];
|
|
29
35
|
exports.REVIEW_FINDING_CATEGORIES = [
|
|
30
36
|
'external_policy',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { GenericMiddleware, ISocketClient, MethodHandlers, RequestContextBase, S
|
|
|
5
5
|
export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestContext extends RequestContextBase> extends TracedSocket<ImplementedMethods, CallableMethods, RequestContext> {
|
|
6
6
|
private authorization?;
|
|
7
7
|
private authorizationVersion;
|
|
8
|
+
private readonly getAuthorization?;
|
|
8
9
|
private hasSentAuth;
|
|
9
10
|
constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
|
|
10
11
|
onClose: (event: WebSocket.CloseEvent) => void;
|
|
@@ -15,6 +16,7 @@ export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods,
|
|
|
15
16
|
warn: (message?: string) => void;
|
|
16
17
|
};
|
|
17
18
|
getAbortSignal?: () => AbortSignal | undefined;
|
|
19
|
+
getAuthorization?: () => Promise<string>;
|
|
18
20
|
});
|
|
19
21
|
request<Params, Result>(method: string, params: Params): Promise<Result>;
|
|
20
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;QACnH,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAwB;IAC1D,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;QACnH,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;QAC/C,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KAC1C;IAQG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc9E;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAK7D;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EACf,kBAAkB,EAClB,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAE9D,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpH,GACA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
|
|
@@ -6,14 +6,20 @@ import { connectWebSocket } from './util.js';
|
|
|
6
6
|
export class ISocketWithClientAuth extends TracedSocket {
|
|
7
7
|
authorization;
|
|
8
8
|
authorizationVersion = 0;
|
|
9
|
+
getAuthorization;
|
|
9
10
|
hasSentAuth = false;
|
|
10
11
|
constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, options) {
|
|
11
12
|
super(ws, requestHandlers, globalMiddlewares, tracer, options);
|
|
12
13
|
this.authorization = authorization;
|
|
14
|
+
this.getAuthorization = options.getAuthorization;
|
|
13
15
|
}
|
|
14
16
|
// override `request` from the base class to send `authorization` when appropriate
|
|
15
17
|
async request(method, params) {
|
|
16
|
-
|
|
18
|
+
if (this.getAuthorization) {
|
|
19
|
+
const authorization = await this.getAuthorization();
|
|
20
|
+
if (authorization !== this.authorization)
|
|
21
|
+
this.setAuthorization(authorization);
|
|
22
|
+
}
|
|
17
23
|
const authorizationVersion = this.authorizationVersion;
|
|
18
24
|
const authorization = this.hasSentAuth ? undefined : this.authorization;
|
|
19
25
|
const result = await super.request(method, params, authorization);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,OAAO,qBAAsG,SAAQ,YAI1H;IACS,aAAa,CAAU;IACvB,oBAAoB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,OAAO,qBAAsG,SAAQ,YAI1H;IACS,aAAa,CAAU;IACvB,oBAAoB,GAAG,CAAC,CAAC;IAChB,gBAAgB,CAAyB;IAClD,WAAW,GAAG,KAAK,CAAC;IAE5B,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAMC;QAED,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACnD,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,IAAI,aAAa,KAAK,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,oBAAoB,KAAK,oBAAoB,EAAE,CAAC;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAoC;QACnD,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;QACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAK3C,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;IAED,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.test.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { once } from 'node:events';
|
|
2
|
+
import { trace } from '@opentelemetry/api';
|
|
3
|
+
import WebSocket from 'isomorphic-ws';
|
|
4
|
+
import { afterEach, describe, expect, it } from 'vitest';
|
|
5
|
+
import { ISocketWithClientAuth } from './socketWithClientAuth.js';
|
|
6
|
+
import { connectWebSocket } from './util.js';
|
|
7
|
+
describe('socket request authorization', () => {
|
|
8
|
+
const servers = [];
|
|
9
|
+
const authorizations = [];
|
|
10
|
+
async function connect(options) {
|
|
11
|
+
const server = new WebSocket.Server({ host: '127.0.0.1', port: 0 });
|
|
12
|
+
servers.push(server);
|
|
13
|
+
server.on('connection', (ws) => {
|
|
14
|
+
ws.on('message', (data) => {
|
|
15
|
+
const message = JSON.parse(data.toString());
|
|
16
|
+
if (!message.request)
|
|
17
|
+
throw new Error('Expected a socket request');
|
|
18
|
+
authorizations.push(message.request.setAuthorization);
|
|
19
|
+
ws.send(JSON.stringify({ response: { error: null, id: message.request.id, payload: 'ok' } }));
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
await once(server, 'listening');
|
|
23
|
+
const address = server.address();
|
|
24
|
+
if (!address || typeof address === 'string')
|
|
25
|
+
throw new Error('Expected a TCP test server');
|
|
26
|
+
const ws = await connectWebSocket(`ws://127.0.0.1:${address.port}`);
|
|
27
|
+
return new ISocketWithClientAuth(ws, options.authorization, {}, [], trace.getTracer('socket-auth-test'), {
|
|
28
|
+
getAuthorization: options.getAuthorization,
|
|
29
|
+
onClose: () => undefined
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
afterEach(async () => {
|
|
33
|
+
authorizations.length = 0;
|
|
34
|
+
for (const server of servers.splice(0)) {
|
|
35
|
+
for (const client of server.clients)
|
|
36
|
+
client.terminate();
|
|
37
|
+
await new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve())));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
it('refreshes authorization before each request and sends only changed credentials', async () => {
|
|
41
|
+
let authorization = 'Bearer first-token';
|
|
42
|
+
const socket = await connect({ authorization: 'Bearer expired-token', getAuthorization: async () => authorization });
|
|
43
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
44
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
45
|
+
authorization = 'Bearer second-token';
|
|
46
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
47
|
+
expect(authorizations).toEqual(['Bearer first-token', undefined, 'Bearer second-token']);
|
|
48
|
+
socket.close();
|
|
49
|
+
});
|
|
50
|
+
it('sends no request when refreshing authorization fails and allows a later retry', async () => {
|
|
51
|
+
let refreshFailed = true;
|
|
52
|
+
const socket = await connect({
|
|
53
|
+
authorization: 'Bearer expired-token',
|
|
54
|
+
getAuthorization: async () => {
|
|
55
|
+
if (refreshFailed)
|
|
56
|
+
throw new Error('Refresh unavailable');
|
|
57
|
+
return 'Bearer refreshed-token';
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
await expect(socket.request('test.read', {})).rejects.toThrow('Refresh unavailable');
|
|
61
|
+
refreshFailed = false;
|
|
62
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
63
|
+
expect(authorizations).toEqual(['Bearer refreshed-token']);
|
|
64
|
+
socket.close();
|
|
65
|
+
});
|
|
66
|
+
it('preserves static authorization when no provider is supplied', async () => {
|
|
67
|
+
const socket = await connect({ authorization: 'Bearer personal-token' });
|
|
68
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
69
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
70
|
+
expect(authorizations).toEqual(['Bearer personal-token', undefined]);
|
|
71
|
+
socket.close();
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=socketWithClientAuth.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.test.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,9 @@ export declare const POLICY_GATE_ERROR_CODES: {
|
|
|
47
47
|
readonly canceled: {
|
|
48
48
|
readonly category: "user_action";
|
|
49
49
|
};
|
|
50
|
+
readonly dependency_scan_stalled: {
|
|
51
|
+
readonly category: "platform_transient";
|
|
52
|
+
};
|
|
50
53
|
readonly dev_server_unreachable: {
|
|
51
54
|
readonly category: "platform_transient";
|
|
52
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,mBAE5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,QAAiB,CAAC;AAQ5D,eAAO,MAAM,kCAAkC,QAAgB,CAAC;AAKhE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAErH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,uBAAuB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,mBAE5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,6BAA6B,QAAiB,CAAC;AAQ5D,eAAO,MAAM,kCAAkC,QAAgB,CAAC;AAKhE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BoB,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAEvE,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,mBAAmB,CAE1F;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAEzF"}
|
|
@@ -31,6 +31,7 @@ export const POLICY_GATE_ERROR_CODES = {
|
|
|
31
31
|
output_token_limit: { category: 'platform_error' }, // Our output token cap cut off the report.
|
|
32
32
|
// Server dispatch and stale-run failures.
|
|
33
33
|
canceled: { category: 'user_action' }, // The user canceled the in-flight publish.
|
|
34
|
+
dependency_scan_stalled: { category: 'platform_transient' }, // The in-process dependency scan never completed.
|
|
34
35
|
dev_server_unreachable: { category: 'platform_transient' }, // The dev server did not finish the run.
|
|
35
36
|
dispatch_failed: { category: 'platform_transient' }, // The server could not start the run.
|
|
36
37
|
// Legacy code from dev servers that predate this registry.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,8BAA8B,GAAwB;IACjE,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,4EAA4E;AAC5E,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/D,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,+CAA+C;IAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IACnF,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yCAAyC;IAC5F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,wCAAwC;IACxF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,uCAAuC;IACvF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,qEAAqE;IACrH,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,8CAA8C;IAClG,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAC5F,WAAW,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,8CAA8C;IAC3F,WAAW,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IAC9F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,0CAA0C;IAC1F,cAAc,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IACxF,kBAAkB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,2CAA2C;IAE/F,0CAA0C;IAC1C,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IAClF,sBAAsB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,yCAAyC;IACrG,eAAe,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAE3F,2DAA2D;IAC3D,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gDAAgD;IAEtG,gCAAgC;IAChC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yBAAyB;IAC5E,uBAAuB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,kDAAkD;IAC3G,oBAAoB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,0CAA0C;IACpG,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IACjG,oBAAoB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,qCAAqC;CACpC,CAAC;AAIzD,MAAM,UAAU,qBAAqB,CAAC,SAAkB;IACtD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAA6B;IAClE,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC;AAChH,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/types/policyGate/errors.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,8BAA8B,GAAwB;IACjE,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,4EAA4E;AAC5E,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/D,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,+CAA+C;IAC/C,OAAO,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IACnF,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yCAAyC;IAC5F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,wCAAwC;IACxF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,uCAAuC;IACvF,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,qEAAqE;IACrH,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,8CAA8C;IAClG,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAC5F,WAAW,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,8CAA8C;IAC3F,WAAW,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IAC9F,cAAc,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,0CAA0C;IAC1F,cAAc,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IACxF,kBAAkB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,2CAA2C;IAE/F,0CAA0C;IAC1C,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,2CAA2C;IAClF,uBAAuB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,kDAAkD;IAC/G,sBAAsB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,yCAAyC;IACrG,eAAe,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,sCAAsC;IAE3F,2DAA2D;IAC3D,gBAAgB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gDAAgD;IAEtG,gCAAgC;IAChC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,yBAAyB;IAC5E,uBAAuB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,kDAAkD;IAC3G,oBAAoB,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,0CAA0C;IACpG,cAAc,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,6CAA6C;IACjG,oBAAoB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,qCAAqC;CACpC,CAAC;AAIzD,MAAM,UAAU,qBAAqB,CAAC,SAAkB;IACtD,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAA6B;IAClE,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC;AAChH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReviewFindingCategory, ReviewFindingConfidence, ReviewFindingSeverity } from '../reviewPolicy/index.js';
|
|
1
|
+
import type { ReviewFindingCategory, ReviewFindingConfidence, ReviewFindingSeverity, ReviewPolicyRunnerType } from '../reviewPolicy/index.js';
|
|
2
2
|
export * from './errors.js';
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated Use the `superblocks.policy-gates.security-scans.enabled` LaunchDarkly flag instead.
|
|
@@ -50,6 +50,7 @@ export type PolicyGateReadinessItem = {
|
|
|
50
50
|
policyVersionId: string;
|
|
51
51
|
progress?: PolicyGateScanProgress;
|
|
52
52
|
reviewRunId?: string;
|
|
53
|
+
runnerType?: ReviewPolicyRunnerType;
|
|
53
54
|
runs?: PolicyGateReadinessRun[];
|
|
54
55
|
staleReason?: string;
|
|
55
56
|
status: PolicyGateReadinessItemStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/policyGate/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,cAAc,aAAa,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAY,KAAK,CAAC;AAmErD,8EAA8E;AAC9E,+EAA+E;AAC/E,iBAAiB;AACjB,MAAM,UAAU,wBAAwB,CAAC,IAAsD;IAC7F,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAsD;IACzF,OAAO,IAAI,CAAC,IAAI,KAAK,0BAA0B,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAsD;IAC/F,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAyD;IACpG,OAAO,CACL,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CACT,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,QAAQ;YACxB,IAAI,CAAC,MAAM,KAAK,mBAAmB;YACnC,0BAA0B,CAAC,IAAI,CAAC;YAChC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CACxF,CACF,CAAC;AACJ,CAAC;AAuCD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,4HAA4H,CAAC;AAkC/H,MAAM,UAAU,yBAAyB,CAAC,IAA2C;IACnF,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAA+D;IACvG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAC;AACjI,CAAC"}
|
|
@@ -4,13 +4,14 @@ export declare const REVIEW_POLICY_NAME_MAX_LENGTH = 120;
|
|
|
4
4
|
export declare const REVIEW_POLICY_PROMPT_MAX_LENGTH = 10000;
|
|
5
5
|
export declare const BUILT_IN_SECURITY_SCAN_NAME = "Superblocks Security Scan";
|
|
6
6
|
export declare const SUPERBLOCKS_SECURITY_AGENT_NAME = "Superblocks Security Agent";
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const DEPENDENCY_VULNERABILITY_SCAN_NAME = "Superblocks Dependency Vulnerability Scan";
|
|
8
|
+
export declare const REVIEW_POLICY_TYPES: readonly ["built_in_security_scan", "security_agent", "dependency_vulnerability_scan"];
|
|
8
9
|
export declare const REVIEW_POLICY_SOURCES: readonly ["admin_configured", "superblocks_managed"];
|
|
9
10
|
export declare const REVIEW_POLICY_TRIGGERS: readonly ["before_deploy", "after_checkpoint", "manual"];
|
|
10
|
-
export declare const REVIEW_POLICY_EXECUTION_CONTEXTS: readonly ["edit_mode_app", "superblocks_sabs_built_assets", "superblocks_sabs_dependency_metadata", "superblocks_sabs_source_snapshot"];
|
|
11
|
-
export declare const REVIEW_POLICY_RUNTIMES: readonly ["superblocks_dev_server_agent", "superblocks_sabs"];
|
|
11
|
+
export declare const REVIEW_POLICY_EXECUTION_CONTEXTS: readonly ["edit_mode_app", "superblocks_sabs_built_assets", "superblocks_sabs_dependency_metadata", "superblocks_sabs_source_snapshot", "dependency_manifest"];
|
|
12
|
+
export declare const REVIEW_POLICY_RUNTIMES: readonly ["superblocks_dev_server_agent", "superblocks_sabs", "superblocks_server"];
|
|
12
13
|
export declare const REVIEW_POLICY_MODES: readonly ["advisory", "blocking_with_exceptions", "blocking"];
|
|
13
|
-
export declare const REVIEW_POLICY_RUNNER_TYPES: readonly ["built_in_security_scan", "llm_security_agent"];
|
|
14
|
+
export declare const REVIEW_POLICY_RUNNER_TYPES: readonly ["built_in_security_scan", "llm_security_agent", "dependency_vulnerability_scan"];
|
|
14
15
|
export declare const REVIEW_FINDING_SOURCE_PHASES: readonly ["built_asset", "dependency", "edit_mode_app", "iac", "image", "source"];
|
|
15
16
|
export declare const REVIEW_FINDING_CATEGORIES: readonly ["external_policy", "misconfiguration", "security_agent", "secret", "sensitive_data", "static_analysis", "vulnerability"];
|
|
16
17
|
export declare const REVIEW_FINDING_SEVERITIES: readonly ["critical", "high", "medium", "low", "info"];
|
|
@@ -189,6 +190,10 @@ export type CreateReviewPolicyBody = {
|
|
|
189
190
|
policyType: 'built_in_security_scan';
|
|
190
191
|
mode?: ReviewPolicyMode;
|
|
191
192
|
scope?: ReviewPolicyScopeInput;
|
|
193
|
+
} | {
|
|
194
|
+
policyType: 'dependency_vulnerability_scan';
|
|
195
|
+
mode?: ReviewPolicyMode;
|
|
196
|
+
scope?: ReviewPolicyScopeInput;
|
|
192
197
|
} | {
|
|
193
198
|
policyType: 'security_agent';
|
|
194
199
|
source: 'superblocks_managed';
|
|
@@ -209,6 +214,11 @@ export type UpdateReviewPolicyConfigBody = {
|
|
|
209
214
|
policyType: 'built_in_security_scan';
|
|
210
215
|
mode: ReviewPolicyMode;
|
|
211
216
|
scope?: ReviewPolicyScopeInput;
|
|
217
|
+
} | {
|
|
218
|
+
activeVersionId: string;
|
|
219
|
+
policyType: 'dependency_vulnerability_scan';
|
|
220
|
+
mode: ReviewPolicyMode;
|
|
221
|
+
scope?: ReviewPolicyScopeInput;
|
|
212
222
|
} | {
|
|
213
223
|
activeVersionId: string;
|
|
214
224
|
policyType: 'security_agent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,iBAAiB,iCAAkC,CAAC;AAEjE,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAGrD,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AAIvE,eAAO,MAAM,+BAA+B,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,19 +6,25 @@ export const BUILT_IN_SECURITY_SCAN_NAME = 'Superblocks Security Scan';
|
|
|
6
6
|
// Display name of the Superblocks-managed security agent. One per organization; its prompt is owned
|
|
7
7
|
// by the platform, so admins can only enable it and choose its mode.
|
|
8
8
|
export const SUPERBLOCKS_SECURITY_AGENT_NAME = 'Superblocks Security Agent';
|
|
9
|
-
|
|
9
|
+
// Display name of the Superblocks-managed pre-publish dependency CVE check. One per organization;
|
|
10
|
+
// runs synchronously against the vulnerability index, so it needs no runner config to enable.
|
|
11
|
+
export const DEPENDENCY_VULNERABILITY_SCAN_NAME = 'Superblocks Dependency Vulnerability Scan';
|
|
12
|
+
export const REVIEW_POLICY_TYPES = ['built_in_security_scan', 'security_agent', 'dependency_vulnerability_scan'];
|
|
10
13
|
export const REVIEW_POLICY_SOURCES = ['admin_configured', 'superblocks_managed'];
|
|
11
14
|
export const REVIEW_POLICY_TRIGGERS = ['before_deploy', 'after_checkpoint', 'manual'];
|
|
12
15
|
export const REVIEW_POLICY_EXECUTION_CONTEXTS = [
|
|
13
16
|
'edit_mode_app',
|
|
14
17
|
'superblocks_sabs_built_assets',
|
|
15
18
|
'superblocks_sabs_dependency_metadata',
|
|
16
|
-
'superblocks_sabs_source_snapshot'
|
|
19
|
+
'superblocks_sabs_source_snapshot',
|
|
20
|
+
'dependency_manifest'
|
|
17
21
|
];
|
|
18
|
-
|
|
22
|
+
// `superblocks_server` runs in-process on the API server (no external runner), for checks like the
|
|
23
|
+
// dependency vulnerability scan that only need data already indexed at commit time.
|
|
24
|
+
export const REVIEW_POLICY_RUNTIMES = ['superblocks_dev_server_agent', 'superblocks_sabs', 'superblocks_server'];
|
|
19
25
|
// Ordered from least to most strict; the mode select renders in array order.
|
|
20
26
|
export const REVIEW_POLICY_MODES = ['advisory', 'blocking_with_exceptions', 'blocking'];
|
|
21
|
-
export const REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent'];
|
|
27
|
+
export const REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent', 'dependency_vulnerability_scan'];
|
|
22
28
|
export const REVIEW_FINDING_SOURCE_PHASES = ['built_asset', 'dependency', 'edit_mode_app', 'iac', 'image', 'source'];
|
|
23
29
|
export const REVIEW_FINDING_CATEGORIES = [
|
|
24
30
|
'external_policy',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAEjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AACjD,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GAAG,2BAA2B,CAAC;AAEvE,oGAAoG;AACpG,qEAAqE;AACrE,MAAM,CAAC,MAAM,+BAA+B,GAAG,4BAA4B,CAAC;AAE5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/shared",
|
|
3
|
-
"version": "2.0.0-SNAPSHOT.
|
|
3
|
+
"version": "2.0.0-SNAPSHOT.48e235955a4e53a0",
|
|
4
4
|
"description": "Superblocks Shared Resources",
|
|
5
5
|
"license": "Superblocks Community Software License",
|
|
6
6
|
"repository": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@types/lodash": "^4.17.0",
|
|
49
49
|
"@types/node": "^24",
|
|
50
50
|
"@types/semver": "^7.5.6",
|
|
51
|
-
"@vitest/coverage-v8": "^4.
|
|
51
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
52
52
|
"chokidar-cli": "3.0.0",
|
|
53
53
|
"eslint": "^9.39.2",
|
|
54
54
|
"eslint-config-prettier": "^10.1.8",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"globals": "^17.3.0",
|
|
60
60
|
"typescript": "^6.0.3",
|
|
61
61
|
"typescript-eslint": "^8.59.2",
|
|
62
|
-
"vitest": "^4.
|
|
62
|
+
"vitest": "^4.1.11"
|
|
63
63
|
},
|
|
64
64
|
"engines": {
|
|
65
65
|
"node": ">=24",
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { once } from 'node:events';
|
|
2
|
+
|
|
3
|
+
import { trace } from '@opentelemetry/api';
|
|
4
|
+
import WebSocket from 'isomorphic-ws';
|
|
5
|
+
import { afterEach, describe, expect, it } from 'vitest';
|
|
6
|
+
|
|
7
|
+
import type { SocketMessage } from './socket.js';
|
|
8
|
+
import { ISocketWithClientAuth } from './socketWithClientAuth.js';
|
|
9
|
+
import { connectWebSocket } from './util.js';
|
|
10
|
+
|
|
11
|
+
describe('socket request authorization', () => {
|
|
12
|
+
const servers: WebSocket.Server[] = [];
|
|
13
|
+
const authorizations: Array<string | undefined> = [];
|
|
14
|
+
|
|
15
|
+
async function connect(options: { authorization?: string; getAuthorization?: () => Promise<string> }) {
|
|
16
|
+
const server = new WebSocket.Server({ host: '127.0.0.1', port: 0 });
|
|
17
|
+
servers.push(server);
|
|
18
|
+
server.on('connection', (ws) => {
|
|
19
|
+
ws.on('message', (data) => {
|
|
20
|
+
const message: SocketMessage = JSON.parse(data.toString());
|
|
21
|
+
if (!message.request) throw new Error('Expected a socket request');
|
|
22
|
+
authorizations.push(message.request.setAuthorization);
|
|
23
|
+
ws.send(JSON.stringify({ response: { error: null, id: message.request.id, payload: 'ok' } }));
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
await once(server, 'listening');
|
|
27
|
+
const address = server.address();
|
|
28
|
+
if (!address || typeof address === 'string') throw new Error('Expected a TCP test server');
|
|
29
|
+
const ws = await connectWebSocket(`ws://127.0.0.1:${address.port}`);
|
|
30
|
+
return new ISocketWithClientAuth(ws, options.authorization, {}, [], trace.getTracer('socket-auth-test'), {
|
|
31
|
+
getAuthorization: options.getAuthorization,
|
|
32
|
+
onClose: () => undefined
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
afterEach(async () => {
|
|
37
|
+
authorizations.length = 0;
|
|
38
|
+
for (const server of servers.splice(0)) {
|
|
39
|
+
for (const client of server.clients) client.terminate();
|
|
40
|
+
await new Promise<void>((resolve, reject) => server.close((error) => (error ? reject(error) : resolve())));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('refreshes authorization before each request and sends only changed credentials', async () => {
|
|
45
|
+
let authorization = 'Bearer first-token';
|
|
46
|
+
const socket = await connect({ authorization: 'Bearer expired-token', getAuthorization: async () => authorization });
|
|
47
|
+
|
|
48
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
49
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
50
|
+
authorization = 'Bearer second-token';
|
|
51
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
52
|
+
|
|
53
|
+
expect(authorizations).toEqual(['Bearer first-token', undefined, 'Bearer second-token']);
|
|
54
|
+
socket.close();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('sends no request when refreshing authorization fails and allows a later retry', async () => {
|
|
58
|
+
let refreshFailed = true;
|
|
59
|
+
const socket = await connect({
|
|
60
|
+
authorization: 'Bearer expired-token',
|
|
61
|
+
getAuthorization: async () => {
|
|
62
|
+
if (refreshFailed) throw new Error('Refresh unavailable');
|
|
63
|
+
return 'Bearer refreshed-token';
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
await expect(socket.request('test.read', {})).rejects.toThrow('Refresh unavailable');
|
|
68
|
+
refreshFailed = false;
|
|
69
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
70
|
+
|
|
71
|
+
expect(authorizations).toEqual(['Bearer refreshed-token']);
|
|
72
|
+
socket.close();
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it('preserves static authorization when no provider is supplied', async () => {
|
|
76
|
+
const socket = await connect({ authorization: 'Bearer personal-token' });
|
|
77
|
+
|
|
78
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
79
|
+
await expect(socket.request('test.read', {})).resolves.toBe('ok');
|
|
80
|
+
|
|
81
|
+
expect(authorizations).toEqual(['Bearer personal-token', undefined]);
|
|
82
|
+
socket.close();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -15,6 +15,7 @@ export class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestC
|
|
|
15
15
|
> {
|
|
16
16
|
private authorization?: string;
|
|
17
17
|
private authorizationVersion = 0;
|
|
18
|
+
private readonly getAuthorization?: () => Promise<string>;
|
|
18
19
|
private hasSentAuth = false;
|
|
19
20
|
|
|
20
21
|
constructor(
|
|
@@ -28,15 +29,20 @@ export class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestC
|
|
|
28
29
|
timeouts?: SocketTimeouts;
|
|
29
30
|
logger?: { error: (message?: string) => void; info: (message?: string) => void; warn: (message?: string) => void };
|
|
30
31
|
getAbortSignal?: () => AbortSignal | undefined;
|
|
32
|
+
getAuthorization?: () => Promise<string>;
|
|
31
33
|
}
|
|
32
34
|
) {
|
|
33
35
|
super(ws, requestHandlers, globalMiddlewares, tracer, options);
|
|
34
36
|
this.authorization = authorization;
|
|
37
|
+
this.getAuthorization = options.getAuthorization;
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
// override `request` from the base class to send `authorization` when appropriate
|
|
38
41
|
async request<Params, Result>(method: string, params: Params): Promise<Result> {
|
|
39
|
-
|
|
42
|
+
if (this.getAuthorization) {
|
|
43
|
+
const authorization = await this.getAuthorization();
|
|
44
|
+
if (authorization !== this.authorization) this.setAuthorization(authorization);
|
|
45
|
+
}
|
|
40
46
|
const authorizationVersion = this.authorizationVersion;
|
|
41
47
|
const authorization = this.hasSentAuth ? undefined : this.authorization;
|
|
42
48
|
const result = await super.request<Params, Result>(method, params, authorization);
|
|
@@ -41,6 +41,7 @@ export const POLICY_GATE_ERROR_CODES = {
|
|
|
41
41
|
|
|
42
42
|
// Server dispatch and stale-run failures.
|
|
43
43
|
canceled: { category: 'user_action' }, // The user canceled the in-flight publish.
|
|
44
|
+
dependency_scan_stalled: { category: 'platform_transient' }, // The in-process dependency scan never completed.
|
|
44
45
|
dev_server_unreachable: { category: 'platform_transient' }, // The dev server did not finish the run.
|
|
45
46
|
dispatch_failed: { category: 'platform_transient' }, // The server could not start the run.
|
|
46
47
|
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
ReviewFindingCategory,
|
|
3
|
+
ReviewFindingConfidence,
|
|
4
|
+
ReviewFindingSeverity,
|
|
5
|
+
ReviewPolicyRunnerType
|
|
6
|
+
} from '../reviewPolicy/index.js';
|
|
2
7
|
import { MAX_POLICY_GATE_RUN_ATTEMPTS } from './errors.js';
|
|
3
8
|
|
|
4
9
|
export * from './errors.js';
|
|
@@ -69,6 +74,7 @@ export type PolicyGateReadinessItem = {
|
|
|
69
74
|
policyVersionId: string;
|
|
70
75
|
progress?: PolicyGateScanProgress;
|
|
71
76
|
reviewRunId?: string;
|
|
77
|
+
runnerType?: ReviewPolicyRunnerType;
|
|
72
78
|
runs?: PolicyGateReadinessRun[];
|
|
73
79
|
staleReason?: string;
|
|
74
80
|
status: PolicyGateReadinessItemStatus;
|
|
@@ -12,19 +12,26 @@ export const BUILT_IN_SECURITY_SCAN_NAME = 'Superblocks Security Scan';
|
|
|
12
12
|
// by the platform, so admins can only enable it and choose its mode.
|
|
13
13
|
export const SUPERBLOCKS_SECURITY_AGENT_NAME = 'Superblocks Security Agent';
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
// Display name of the Superblocks-managed pre-publish dependency CVE check. One per organization;
|
|
16
|
+
// runs synchronously against the vulnerability index, so it needs no runner config to enable.
|
|
17
|
+
export const DEPENDENCY_VULNERABILITY_SCAN_NAME = 'Superblocks Dependency Vulnerability Scan';
|
|
18
|
+
|
|
19
|
+
export const REVIEW_POLICY_TYPES = ['built_in_security_scan', 'security_agent', 'dependency_vulnerability_scan'] as const;
|
|
16
20
|
export const REVIEW_POLICY_SOURCES = ['admin_configured', 'superblocks_managed'] as const;
|
|
17
21
|
export const REVIEW_POLICY_TRIGGERS = ['before_deploy', 'after_checkpoint', 'manual'] as const;
|
|
18
22
|
export const REVIEW_POLICY_EXECUTION_CONTEXTS = [
|
|
19
23
|
'edit_mode_app',
|
|
20
24
|
'superblocks_sabs_built_assets',
|
|
21
25
|
'superblocks_sabs_dependency_metadata',
|
|
22
|
-
'superblocks_sabs_source_snapshot'
|
|
26
|
+
'superblocks_sabs_source_snapshot',
|
|
27
|
+
'dependency_manifest'
|
|
23
28
|
] as const;
|
|
24
|
-
|
|
29
|
+
// `superblocks_server` runs in-process on the API server (no external runner), for checks like the
|
|
30
|
+
// dependency vulnerability scan that only need data already indexed at commit time.
|
|
31
|
+
export const REVIEW_POLICY_RUNTIMES = ['superblocks_dev_server_agent', 'superblocks_sabs', 'superblocks_server'] as const;
|
|
25
32
|
// Ordered from least to most strict; the mode select renders in array order.
|
|
26
33
|
export const REVIEW_POLICY_MODES = ['advisory', 'blocking_with_exceptions', 'blocking'] as const;
|
|
27
|
-
export const REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent'] as const;
|
|
34
|
+
export const REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent', 'dependency_vulnerability_scan'] as const;
|
|
28
35
|
export const REVIEW_FINDING_SOURCE_PHASES = ['built_asset', 'dependency', 'edit_mode_app', 'iac', 'image', 'source'] as const;
|
|
29
36
|
export const REVIEW_FINDING_CATEGORIES = [
|
|
30
37
|
'external_policy',
|
|
@@ -262,6 +269,7 @@ export interface ReviewPolicySummaryDto {
|
|
|
262
269
|
|
|
263
270
|
export type CreateReviewPolicyBody =
|
|
264
271
|
| { policyType: 'built_in_security_scan'; mode?: ReviewPolicyMode; scope?: ReviewPolicyScopeInput }
|
|
272
|
+
| { policyType: 'dependency_vulnerability_scan'; mode?: ReviewPolicyMode; scope?: ReviewPolicyScopeInput }
|
|
265
273
|
| {
|
|
266
274
|
policyType: 'security_agent';
|
|
267
275
|
source: 'superblocks_managed';
|
|
@@ -284,6 +292,12 @@ export type UpdateReviewPolicyConfigBody =
|
|
|
284
292
|
mode: ReviewPolicyMode;
|
|
285
293
|
scope?: ReviewPolicyScopeInput;
|
|
286
294
|
}
|
|
295
|
+
| {
|
|
296
|
+
activeVersionId: string;
|
|
297
|
+
policyType: 'dependency_vulnerability_scan';
|
|
298
|
+
mode: ReviewPolicyMode;
|
|
299
|
+
scope?: ReviewPolicyScopeInput;
|
|
300
|
+
}
|
|
287
301
|
| {
|
|
288
302
|
activeVersionId: string;
|
|
289
303
|
policyType: 'security_agent';
|