@superblocksteam/shared 0.9613.2 → 0.9614.0
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/database-lifecycle/destructiveMigrations.d.ts +18 -0
- package/dist/database-lifecycle/destructiveMigrations.d.ts.map +1 -1
- package/dist/database-lifecycle/destructiveMigrations.js.map +1 -1
- package/dist/database-lifecycle/index.d.ts +8 -1
- package/dist/database-lifecycle/index.d.ts.map +1 -1
- package/dist/database-lifecycle/index.js +2 -1
- package/dist/database-lifecycle/index.js.map +1 -1
- package/dist/dbfs/types.d.ts +1 -0
- package/dist/dbfs/types.d.ts.map +1 -1
- package/dist/dbfs/types.js +14 -3
- package/dist/dbfs/types.js.map +1 -1
- package/dist/errors/http.d.ts +5 -3
- package/dist/errors/http.d.ts.map +1 -1
- package/dist/errors/http.js +9 -5
- package/dist/errors/http.js.map +1 -1
- package/dist/types/ai/index.d.ts +1 -0
- package/dist/types/ai/index.d.ts.map +1 -1
- package/dist/types/ai/index.js +1 -0
- package/dist/types/ai/index.js.map +1 -1
- package/dist/types/audit/ocsf.d.ts +11 -0
- package/dist/types/audit/ocsf.d.ts.map +1 -1
- package/dist/types/billing/index.d.ts +1 -0
- package/dist/types/billing/index.d.ts.map +1 -1
- package/dist/types/billing/index.js +1 -0
- package/dist/types/billing/index.js.map +1 -1
- package/dist/types/billing/usageSource.d.ts +26 -0
- package/dist/types/billing/usageSource.d.ts.map +1 -0
- package/dist/types/billing/usageSource.js +100 -0
- package/dist/types/billing/usageSource.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 +5 -1
- package/dist/types/policyGate/index.d.ts.map +1 -1
- package/dist/types/policyGate/index.js +11 -0
- package/dist/types/policyGate/index.js.map +1 -1
- package/dist/types/policyGate/index.test.d.ts +2 -0
- package/dist/types/policyGate/index.test.d.ts.map +1 -0
- package/dist/types/policyGate/index.test.js +23 -0
- package/dist/types/policyGate/index.test.js.map +1 -0
- package/dist/types/publishPipeline/index.d.ts +27 -0
- package/dist/types/publishPipeline/index.d.ts.map +1 -1
- package/dist/types/publishPipeline/index.js +1 -0
- package/dist/types/publishPipeline/index.js.map +1 -1
- package/dist/types/publishPipeline/plan.d.ts +9 -4
- package/dist/types/publishPipeline/plan.d.ts.map +1 -1
- package/dist/types/publishPipeline/plan.js +37 -20
- package/dist/types/publishPipeline/plan.js.map +1 -1
- package/dist/types/publishPipeline/plan.test.js +28 -8
- package/dist/types/publishPipeline/plan.test.js.map +1 -1
- package/dist/types/publishPipeline/policyStatus.d.ts +7 -0
- package/dist/types/publishPipeline/policyStatus.d.ts.map +1 -0
- package/dist/types/publishPipeline/policyStatus.js +40 -0
- package/dist/types/publishPipeline/policyStatus.js.map +1 -0
- 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/types/scim/index.d.ts +21 -1
- package/dist/types/scim/index.d.ts.map +1 -1
- package/dist/types/scim/index.js +19 -1
- package/dist/types/scim/index.js.map +1 -1
- package/dist/utils/attachment-delivery.d.ts +7 -0
- package/dist/utils/attachment-delivery.d.ts.map +1 -1
- package/dist/utils/attachment-delivery.js +19 -2
- package/dist/utils/attachment-delivery.js.map +1 -1
- package/dist/utils/attachment-delivery.test.d.ts +2 -0
- package/dist/utils/attachment-delivery.test.d.ts.map +1 -0
- package/dist/utils/attachment-delivery.test.js +40 -0
- package/dist/utils/attachment-delivery.test.js.map +1 -0
- package/dist/utils/attachment-upload.d.ts +3 -2
- package/dist/utils/attachment-upload.d.ts.map +1 -1
- package/dist/utils/attachment-upload.js +11 -3
- package/dist/utils/attachment-upload.js.map +1 -1
- package/dist/utils/attachment-upload.test.js +40 -1
- package/dist/utils/attachment-upload.test.js.map +1 -1
- package/dist/utils/attachment-validation.d.ts +64 -0
- package/dist/utils/attachment-validation.d.ts.map +1 -0
- package/dist/utils/attachment-validation.js +269 -0
- package/dist/utils/attachment-validation.js.map +1 -0
- package/dist/utils/attachment-validation.test.d.ts +2 -0
- package/dist/utils/attachment-validation.test.d.ts.map +1 -0
- package/dist/utils/attachment-validation.test.js +171 -0
- package/dist/utils/attachment-validation.test.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist-esm/database-lifecycle/destructiveMigrations.d.ts +18 -0
- package/dist-esm/database-lifecycle/destructiveMigrations.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/destructiveMigrations.js.map +1 -1
- package/dist-esm/database-lifecycle/index.d.ts +8 -1
- package/dist-esm/database-lifecycle/index.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/index.js +1 -0
- package/dist-esm/database-lifecycle/index.js.map +1 -1
- package/dist-esm/dbfs/types.d.ts +1 -0
- package/dist-esm/dbfs/types.d.ts.map +1 -1
- package/dist-esm/dbfs/types.js +13 -2
- package/dist-esm/dbfs/types.js.map +1 -1
- package/dist-esm/errors/http.d.ts +5 -3
- package/dist-esm/errors/http.d.ts.map +1 -1
- package/dist-esm/errors/http.js +9 -5
- package/dist-esm/errors/http.js.map +1 -1
- package/dist-esm/types/ai/index.d.ts +1 -0
- package/dist-esm/types/ai/index.d.ts.map +1 -1
- package/dist-esm/types/ai/index.js +1 -0
- package/dist-esm/types/ai/index.js.map +1 -1
- package/dist-esm/types/audit/ocsf.d.ts +11 -0
- package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
- package/dist-esm/types/billing/index.d.ts +1 -0
- package/dist-esm/types/billing/index.d.ts.map +1 -1
- package/dist-esm/types/billing/index.js +1 -0
- package/dist-esm/types/billing/index.js.map +1 -1
- package/dist-esm/types/billing/usageSource.d.ts +26 -0
- package/dist-esm/types/billing/usageSource.d.ts.map +1 -0
- package/dist-esm/types/billing/usageSource.js +97 -0
- package/dist-esm/types/billing/usageSource.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 +5 -1
- package/dist-esm/types/policyGate/index.d.ts.map +1 -1
- package/dist-esm/types/policyGate/index.js +10 -0
- package/dist-esm/types/policyGate/index.js.map +1 -1
- package/dist-esm/types/policyGate/index.test.d.ts +2 -0
- package/dist-esm/types/policyGate/index.test.d.ts.map +1 -0
- package/dist-esm/types/policyGate/index.test.js +21 -0
- package/dist-esm/types/policyGate/index.test.js.map +1 -0
- package/dist-esm/types/publishPipeline/index.d.ts +27 -0
- package/dist-esm/types/publishPipeline/index.d.ts.map +1 -1
- package/dist-esm/types/publishPipeline/index.js +1 -0
- package/dist-esm/types/publishPipeline/index.js.map +1 -1
- package/dist-esm/types/publishPipeline/plan.d.ts +9 -4
- package/dist-esm/types/publishPipeline/plan.d.ts.map +1 -1
- package/dist-esm/types/publishPipeline/plan.js +36 -19
- package/dist-esm/types/publishPipeline/plan.js.map +1 -1
- package/dist-esm/types/publishPipeline/plan.test.js +29 -9
- package/dist-esm/types/publishPipeline/plan.test.js.map +1 -1
- package/dist-esm/types/publishPipeline/policyStatus.d.ts +7 -0
- package/dist-esm/types/publishPipeline/policyStatus.d.ts.map +1 -0
- package/dist-esm/types/publishPipeline/policyStatus.js +37 -0
- package/dist-esm/types/publishPipeline/policyStatus.js.map +1 -0
- 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/dist-esm/types/scim/index.d.ts +21 -1
- package/dist-esm/types/scim/index.d.ts.map +1 -1
- package/dist-esm/types/scim/index.js +18 -0
- package/dist-esm/types/scim/index.js.map +1 -1
- package/dist-esm/utils/attachment-delivery.d.ts +7 -0
- package/dist-esm/utils/attachment-delivery.d.ts.map +1 -1
- package/dist-esm/utils/attachment-delivery.js +17 -2
- package/dist-esm/utils/attachment-delivery.js.map +1 -1
- package/dist-esm/utils/attachment-delivery.test.d.ts +2 -0
- package/dist-esm/utils/attachment-delivery.test.d.ts.map +1 -0
- package/dist-esm/utils/attachment-delivery.test.js +38 -0
- package/dist-esm/utils/attachment-delivery.test.js.map +1 -0
- package/dist-esm/utils/attachment-upload.d.ts +3 -2
- package/dist-esm/utils/attachment-upload.d.ts.map +1 -1
- package/dist-esm/utils/attachment-upload.js +10 -2
- package/dist-esm/utils/attachment-upload.js.map +1 -1
- package/dist-esm/utils/attachment-upload.test.js +42 -3
- package/dist-esm/utils/attachment-upload.test.js.map +1 -1
- package/dist-esm/utils/attachment-validation.d.ts +64 -0
- package/dist-esm/utils/attachment-validation.d.ts.map +1 -0
- package/dist-esm/utils/attachment-validation.js +259 -0
- package/dist-esm/utils/attachment-validation.js.map +1 -0
- package/dist-esm/utils/attachment-validation.test.d.ts +2 -0
- package/dist-esm/utils/attachment-validation.test.d.ts.map +1 -0
- package/dist-esm/utils/attachment-validation.test.js +169 -0
- package/dist-esm/utils/attachment-validation.test.js.map +1 -0
- package/dist-esm/utils/index.d.ts +1 -0
- package/dist-esm/utils/index.d.ts.map +1 -1
- package/dist-esm/utils/index.js +1 -0
- package/dist-esm/utils/index.js.map +1 -1
- package/package.json +4 -3
- package/src/database-lifecycle/destructiveMigrations.ts +19 -0
- package/src/database-lifecycle/index.ts +13 -1
- package/src/dbfs/types.ts +15 -3
- package/src/errors/http.ts +11 -5
- package/src/types/ai/index.ts +1 -0
- package/src/types/audit/ocsf.ts +14 -0
- package/src/types/billing/index.ts +1 -0
- package/src/types/billing/usageSource.ts +114 -0
- package/src/types/policyGate/errors.ts +1 -0
- package/src/types/policyGate/index.test.ts +25 -0
- package/src/types/policyGate/index.ts +21 -1
- package/src/types/publishPipeline/index.ts +29 -0
- package/src/types/publishPipeline/plan.test.ts +34 -9
- package/src/types/publishPipeline/plan.ts +41 -19
- package/src/types/publishPipeline/policyStatus.ts +44 -0
- package/src/types/reviewPolicy/index.ts +18 -4
- package/src/types/scim/index.ts +28 -1
- package/src/utils/attachment-delivery.test.ts +52 -0
- package/src/utils/attachment-delivery.ts +20 -2
- package/src/utils/attachment-upload.test.ts +58 -4
- package/src/utils/attachment-upload.ts +13 -3
- package/src/utils/attachment-validation.test.ts +226 -0
- package/src/utils/attachment-validation.ts +269 -0
- package/src/utils/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,WAAW,GAAsC;IACrD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,CAAC;IAClB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,KAAoC;IACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,GAAsB,SAAS,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,kBAAkB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAyB,EACzB,KAAoB,EACpB,KAAmD;IAEnD,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACnF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, test } from 'vitest';
|
|
2
|
-
import { buildPublishPlan, orderPublishSteps,
|
|
2
|
+
import { buildPublishPlan, orderPublishSteps, rollUpPublishSteps } from './plan.js';
|
|
3
3
|
const TARGET = { applicationId: 'app-1', commitId: 'commit-1' };
|
|
4
4
|
function step(overrides) {
|
|
5
5
|
return {
|
|
@@ -9,18 +9,21 @@ function step(overrides) {
|
|
|
9
9
|
...overrides
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
describe('
|
|
12
|
+
describe('rollUpPublishSteps', () => {
|
|
13
13
|
test('an empty plan is passed', () => {
|
|
14
|
-
expect(
|
|
14
|
+
expect(rollUpPublishSteps([])).toBe('passed');
|
|
15
15
|
});
|
|
16
16
|
test('the worst status wins by precedence', () => {
|
|
17
|
-
expect(
|
|
18
|
-
expect(
|
|
19
|
-
expect(
|
|
17
|
+
expect(rollUpPublishSteps([step({ id: 'a', status: 'passed' }), step({ id: 'b', status: 'advisory' }), step({ id: 'c', status: 'blocked' })])).toBe('blocked');
|
|
18
|
+
expect(rollUpPublishSteps([step({ id: 'a', status: 'in_progress' }), step({ id: 'b', status: 'failed' })])).toBe('failed');
|
|
19
|
+
expect(rollUpPublishSteps([step({ id: 'a', status: 'advisory' }), step({ id: 'b', status: 'passed' })])).toBe('advisory');
|
|
20
20
|
});
|
|
21
21
|
test('skipped never masks a real status', () => {
|
|
22
|
-
expect(
|
|
23
|
-
expect(
|
|
22
|
+
expect(rollUpPublishSteps([step({ id: 'a', status: 'skipped' }), step({ id: 'b', status: 'passed' })])).toBe('passed');
|
|
23
|
+
expect(rollUpPublishSteps([step({ id: 'a', status: 'skipped' })])).toBe('skipped');
|
|
24
|
+
});
|
|
25
|
+
test('an unknown wire status blocks the plan', () => {
|
|
26
|
+
expect(rollUpPublishSteps([step({ id: 'new-server-status', status: 'new_server_status' })])).toBe('blocked');
|
|
24
27
|
});
|
|
25
28
|
test('precedence order is exhaustive and worst-first', () => {
|
|
26
29
|
const precedence = [
|
|
@@ -40,9 +43,26 @@ describe('rollUpPublishPlan', () => {
|
|
|
40
43
|
const steps = better
|
|
41
44
|
? [step({ id: 'better', status: better }), step({ id: 'worse', status: worse })]
|
|
42
45
|
: [step({ id: 'only', status: worse })];
|
|
43
|
-
expect(
|
|
46
|
+
expect(rollUpPublishSteps(steps)).toBe(worse);
|
|
44
47
|
}
|
|
45
48
|
});
|
|
49
|
+
test('uses the plan precedence for any sibling steps', () => {
|
|
50
|
+
const children = [
|
|
51
|
+
step({ id: 'blocked-child', kind: 'policy_gates', status: 'blocked' }),
|
|
52
|
+
step({ id: 'running-child', kind: 'policy_gates', status: 'in_progress' })
|
|
53
|
+
];
|
|
54
|
+
expect(rollUpPublishSteps(children)).toBe('blocked');
|
|
55
|
+
expect(rollUpPublishSteps([step({ id: 'pending-child', status: 'pending' }), step({ id: 'passed-child' })])).toBe('pending');
|
|
56
|
+
});
|
|
57
|
+
test('reads sibling statuses without reinterpreting nested children', () => {
|
|
58
|
+
const parent = step({
|
|
59
|
+
children: [step({ id: 'policy:security-agent', kind: 'policy_gates', status: 'failed' })],
|
|
60
|
+
id: 'policy_gates:before_deploy',
|
|
61
|
+
kind: 'policy_gates',
|
|
62
|
+
status: 'passed'
|
|
63
|
+
});
|
|
64
|
+
expect(rollUpPublishSteps([parent])).toBe('passed');
|
|
65
|
+
});
|
|
46
66
|
});
|
|
47
67
|
describe('orderPublishSteps', () => {
|
|
48
68
|
test('orders steps by the publish spine regardless of input order', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.test.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"plan.test.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/plan.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type PolicyGateReadinessItem } from '../policyGate/index.js';
|
|
2
|
+
import type { PublishStepStatus } from './index.js';
|
|
3
|
+
export declare function policyItemPublishStatus(item: PolicyGateReadinessItem, options?: {
|
|
4
|
+
blockingHoldAcknowledged?: boolean;
|
|
5
|
+
blockingHoldAckEligible?: boolean;
|
|
6
|
+
}): PublishStepStatus;
|
|
7
|
+
//# sourceMappingURL=policyStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policyStatus.d.ts","sourceRoot":"","sources":["../../../src/types/publishPipeline/policyStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAE5H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,GAAE;IACP,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC9B,GACL,iBAAiB,CAiCnB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { isHardBlockingPolicyItem, isPublishHoldingPolicyItem } from '../policyGate/index.js';
|
|
2
|
+
import { isAdvisoryHoldFindingSeverity } from '../reviewPolicy/index.js';
|
|
3
|
+
export function policyItemPublishStatus(item, options = {}) {
|
|
4
|
+
const { blockingHoldAcknowledged = false, blockingHoldAckEligible = false } = options;
|
|
5
|
+
switch (item.status) {
|
|
6
|
+
case 'failed':
|
|
7
|
+
if (isPublishHoldingPolicyItem(item)) {
|
|
8
|
+
return blockingHoldAcknowledged && blockingHoldAckEligible ? 'advisory' : 'blocked';
|
|
9
|
+
}
|
|
10
|
+
return isHardBlockingPolicyItem(item) ? 'failed' : 'advisory';
|
|
11
|
+
case 'blocked':
|
|
12
|
+
if (isHardBlockingPolicyItem(item)) {
|
|
13
|
+
return 'blocked';
|
|
14
|
+
}
|
|
15
|
+
if (isPublishHoldingPolicyItem(item)) {
|
|
16
|
+
return blockingHoldAcknowledged && blockingHoldAckEligible ? 'advisory' : 'blocked';
|
|
17
|
+
}
|
|
18
|
+
return 'advisory';
|
|
19
|
+
case 'approval_required':
|
|
20
|
+
return 'action_required';
|
|
21
|
+
case 'stale':
|
|
22
|
+
return 'stale';
|
|
23
|
+
case 'running':
|
|
24
|
+
return 'in_progress';
|
|
25
|
+
case 'missing':
|
|
26
|
+
return 'pending';
|
|
27
|
+
case 'advisory_findings':
|
|
28
|
+
return (item.findings ?? []).some((finding) => isAdvisoryHoldFindingSeverity(finding.severity)) ? 'advisory' : 'passed';
|
|
29
|
+
case 'passed':
|
|
30
|
+
return 'passed';
|
|
31
|
+
default: {
|
|
32
|
+
const _exhaustive = item.status;
|
|
33
|
+
return _exhaustive;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=policyStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policyStatus.js","sourceRoot":"","sources":["../../../src/types/publishPipeline/policyStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAgC,MAAM,wBAAwB,CAAC;AAC5H,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAGzE,MAAM,UAAU,uBAAuB,CACrC,IAA6B,EAC7B,UAGI,EAAE;IAEN,MAAM,EAAE,wBAAwB,GAAG,KAAK,EAAE,uBAAuB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACtF,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,OAAO,wBAAwB,IAAI,uBAAuB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,CAAC;YACD,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;QAChE,KAAK,SAAS;YACZ,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,OAAO,wBAAwB,IAAI,uBAAuB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,KAAK,mBAAmB;YACtB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC;QACvB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,mBAAmB;YACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1H,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,IAAI,CAAC,MAAM,CAAC;YACvC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;AACH,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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"}
|
|
@@ -4,8 +4,28 @@ export declare enum ScimSchema {
|
|
|
4
4
|
USER_ENTERPRISE = "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
|
|
5
5
|
LIST = "urn:ietf:params:scim:api:messages:2.0:ListResponse",
|
|
6
6
|
PATCH = "urn:ietf:params:scim:api:messages:2.0:PatchOp",
|
|
7
|
-
GROUP = "urn:ietf:params:scim:schemas:core:2.0:Group"
|
|
7
|
+
GROUP = "urn:ietf:params:scim:schemas:core:2.0:Group",
|
|
8
|
+
ERROR = "urn:ietf:params:scim:api:messages:2.0:Error"
|
|
8
9
|
}
|
|
10
|
+
export declare const SCIM_CONTENT_TYPE = "application/scim+json";
|
|
11
|
+
export declare enum ScimErrorType {
|
|
12
|
+
invalidFilter = "invalidFilter",
|
|
13
|
+
tooMany = "tooMany",
|
|
14
|
+
uniqueness = "uniqueness",
|
|
15
|
+
mutability = "mutability",
|
|
16
|
+
invalidSyntax = "invalidSyntax",
|
|
17
|
+
invalidPath = "invalidPath",
|
|
18
|
+
noTarget = "noTarget",
|
|
19
|
+
invalidValue = "invalidValue",
|
|
20
|
+
invalidVers = "invalidVers",
|
|
21
|
+
sensitive = "sensitive"
|
|
22
|
+
}
|
|
23
|
+
export type ScimError = {
|
|
24
|
+
schemas: [ScimSchema.ERROR];
|
|
25
|
+
status: string;
|
|
26
|
+
detail: string;
|
|
27
|
+
scimType?: ScimErrorType;
|
|
28
|
+
};
|
|
9
29
|
export declare enum OperationCode {
|
|
10
30
|
replace = "replace",
|
|
11
31
|
add = "add",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/scim/index.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,IAAI,8BAA8B;IAClC,IAAI,+CAA+C;IACnD,eAAe,+DAA+D;IAC9E,IAAI,uDAAuD;IAC3D,KAAK,kDAAkD;IACvD,KAAK,gDAAgD;CACtD;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/scim/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,25 @@ export var ScimSchema;
|
|
|
6
6
|
ScimSchema["LIST"] = "urn:ietf:params:scim:api:messages:2.0:ListResponse";
|
|
7
7
|
ScimSchema["PATCH"] = "urn:ietf:params:scim:api:messages:2.0:PatchOp";
|
|
8
8
|
ScimSchema["GROUP"] = "urn:ietf:params:scim:schemas:core:2.0:Group";
|
|
9
|
+
ScimSchema["ERROR"] = "urn:ietf:params:scim:api:messages:2.0:Error";
|
|
9
10
|
})(ScimSchema || (ScimSchema = {}));
|
|
11
|
+
// RFC 7644 section 3.1: the media type SCIM requests and responses use.
|
|
12
|
+
export const SCIM_CONTENT_TYPE = 'application/scim+json';
|
|
13
|
+
// The ten keywords of RFC 7644 Table 9 (section 3.12). An IdP reads this to decide whether a
|
|
14
|
+
// failure is permanent or worth retrying, so a wrong keyword is worse than none.
|
|
15
|
+
export var ScimErrorType;
|
|
16
|
+
(function (ScimErrorType) {
|
|
17
|
+
ScimErrorType["invalidFilter"] = "invalidFilter";
|
|
18
|
+
ScimErrorType["tooMany"] = "tooMany";
|
|
19
|
+
ScimErrorType["uniqueness"] = "uniqueness";
|
|
20
|
+
ScimErrorType["mutability"] = "mutability";
|
|
21
|
+
ScimErrorType["invalidSyntax"] = "invalidSyntax";
|
|
22
|
+
ScimErrorType["invalidPath"] = "invalidPath";
|
|
23
|
+
ScimErrorType["noTarget"] = "noTarget";
|
|
24
|
+
ScimErrorType["invalidValue"] = "invalidValue";
|
|
25
|
+
ScimErrorType["invalidVers"] = "invalidVers";
|
|
26
|
+
ScimErrorType["sensitive"] = "sensitive";
|
|
27
|
+
})(ScimErrorType || (ScimErrorType = {}));
|
|
10
28
|
export var OperationCode;
|
|
11
29
|
(function (OperationCode) {
|
|
12
30
|
OperationCode["replace"] = "replace";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/scim/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/scim/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,gDAAkC,CAAA;IAClC,iEAAmD,CAAA;IACnD,4FAA8E,CAAA;IAC9E,yEAA2D,CAAA;IAC3D,qEAAuD,CAAA;IACvD,mEAAqD,CAAA;IACrD,mEAAqD,CAAA;AACvD,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAEzD,6FAA6F;AAC7F,iFAAiF;AACjF,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,gDAA+B,CAAA;IAC/B,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,gDAA+B,CAAA;IAC/B,4CAA2B,CAAA;IAC3B,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,wCAAuB,CAAA;AACzB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB;AAUD,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,4BAAW,CAAA;IACX,kCAAiB,CAAA;AACnB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAQD,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,mCAAe,CAAA;AACjB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AA+FD,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,iCAAe,CAAA;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
|
|
@@ -5,6 +5,13 @@ type AttachmentTypeInput = {
|
|
|
5
5
|
mimeType?: string | null;
|
|
6
6
|
};
|
|
7
7
|
export declare function detectAttachmentArchiveType(input: AttachmentTypeInput): AttachmentArchiveType | null;
|
|
8
|
+
/**
|
|
9
|
+
* Postgres custom-format dumps (`pg_dump -Fc`) use the `.dump` extension and are
|
|
10
|
+
* binary. They must stay reference-only (uploaded to Bucketeer, downloaded via
|
|
11
|
+
* tool) rather than being coerced to text/plain for the model.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isDumpAttachment(input: AttachmentTypeInput): boolean;
|
|
14
|
+
export declare function isReferenceOnlySupportedAttachment(input: AttachmentTypeInput): boolean;
|
|
8
15
|
export declare function classifyAttachmentDelivery(input: AttachmentTypeInput): AttachmentDeliveryMode;
|
|
9
16
|
export declare function isSupportedAttachmentUploadType(input: AttachmentTypeInput): boolean;
|
|
10
17
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-delivery.d.ts","sourceRoot":"","sources":["../../src/utils/attachment-delivery.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAczD,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAcF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,IAAI,CA2BpG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,sBAAsB,CAoB7F;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAUnF"}
|
|
1
|
+
{"version":3,"file":"attachment-delivery.d.ts","sourceRoot":"","sources":["../../src/utils/attachment-delivery.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAczD,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAcF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,IAAI,CA2BpG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAOpE;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAEtF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,sBAAsB,CAoB7F;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAUnF"}
|
|
@@ -45,8 +45,23 @@ export function detectAttachmentArchiveType(input) {
|
|
|
45
45
|
}
|
|
46
46
|
return null;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Postgres custom-format dumps (`pg_dump -Fc`) use the `.dump` extension and are
|
|
50
|
+
* binary. They must stay reference-only (uploaded to Bucketeer, downloaded via
|
|
51
|
+
* tool) rather than being coerced to text/plain for the model.
|
|
52
|
+
*/
|
|
53
|
+
export function isDumpAttachment(input) {
|
|
54
|
+
if (normalizeFileName(input.fileName).endsWith('.dump')) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
const mimeType = normalizeMimeType(input.mimeType);
|
|
58
|
+
return mimeType === 'application/x-postgresql-dump' || mimeType === 'application/vnd.postgresql.dump';
|
|
59
|
+
}
|
|
60
|
+
export function isReferenceOnlySupportedAttachment(input) {
|
|
61
|
+
return detectAttachmentArchiveType(input) !== null || isDumpAttachment(input);
|
|
62
|
+
}
|
|
48
63
|
export function classifyAttachmentDelivery(input) {
|
|
49
|
-
if (
|
|
64
|
+
if (isReferenceOnlySupportedAttachment(input)) {
|
|
50
65
|
return 'reference_only';
|
|
51
66
|
}
|
|
52
67
|
const mimeType = normalizeMimeType(input.mimeType);
|
|
@@ -62,7 +77,7 @@ export function classifyAttachmentDelivery(input) {
|
|
|
62
77
|
return 'reference_only';
|
|
63
78
|
}
|
|
64
79
|
export function isSupportedAttachmentUploadType(input) {
|
|
65
|
-
if (
|
|
80
|
+
if (isReferenceOnlySupportedAttachment(input)) {
|
|
66
81
|
return true;
|
|
67
82
|
}
|
|
68
83
|
if (!hasAnyFileName(input) && !normalizeMimeType(input.mimeType)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-delivery.js","sourceRoot":"","sources":["../../src/utils/attachment-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,MAAM,0BAA0B,GAA+C;IAC7E,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IACvD,GAAG,EAAE,IAAI,GAAG,CAAC;QACX,sBAAsB;QACtB,8BAA8B;QAC9B,oBAAoB;QACpB,wBAAwB;QACxB,mBAAmB;KACpB,CAAC;IACF,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,iBAAiB,CAAC,CAAC;CACvF,CAAC;AAOF,SAAS,iBAAiB,CAAC,QAAwB;IACjD,OAAO,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAiB;IAC1C,OAAO,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,KAA0B;IAChD,OAAO,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAA0B;IACpE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,0BAA0B,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAA0B;IACnE,IAAI,
|
|
1
|
+
{"version":3,"file":"attachment-delivery.js","sourceRoot":"","sources":["../../src/utils/attachment-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-delivery.test.d.ts","sourceRoot":"","sources":["../../src/utils/attachment-delivery.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, expect, test } from 'vitest';
|
|
2
|
+
import { classifyAttachmentDelivery, isDumpAttachment, isSupportedAttachmentUploadType } from './attachment-delivery.js';
|
|
3
|
+
describe('dump attachments', () => {
|
|
4
|
+
test('detects .dump by filename regardless of mime type', () => {
|
|
5
|
+
expect(isDumpAttachment({ fileName: 'orders_prod.dump' })).toBe(true);
|
|
6
|
+
expect(isDumpAttachment({ fileName: 'orders_prod.dump', mimeType: 'application/octet-stream' })).toBe(true);
|
|
7
|
+
expect(isDumpAttachment({ fileName: 'orders_prod.dump', mimeType: 'text/plain' })).toBe(true);
|
|
8
|
+
expect(isDumpAttachment({ fileName: 'orders_prod.dump', mimeType: '' })).toBe(true);
|
|
9
|
+
expect(isDumpAttachment({ fileName: 'orders.sql' })).toBe(false);
|
|
10
|
+
expect(isDumpAttachment({ fileName: 'archive.zip' })).toBe(false);
|
|
11
|
+
});
|
|
12
|
+
test('detects dumps by dedicated mime type when filename is missing', () => {
|
|
13
|
+
expect(isDumpAttachment({ mimeType: 'application/x-postgresql-dump' })).toBe(true);
|
|
14
|
+
expect(isSupportedAttachmentUploadType({
|
|
15
|
+
mimeType: 'application/x-postgresql-dump'
|
|
16
|
+
})).toBe(true);
|
|
17
|
+
expect(classifyAttachmentDelivery({
|
|
18
|
+
mimeType: 'application/x-postgresql-dump'
|
|
19
|
+
})).toBe('reference_only');
|
|
20
|
+
});
|
|
21
|
+
test('classifies dumps as reference-only so they are not inlined to the model', () => {
|
|
22
|
+
expect(classifyAttachmentDelivery({
|
|
23
|
+
fileName: 'orders_prod.dump',
|
|
24
|
+
mimeType: 'application/octet-stream'
|
|
25
|
+
})).toBe('reference_only');
|
|
26
|
+
});
|
|
27
|
+
test('allows dump uploads as a supported attachment type', () => {
|
|
28
|
+
expect(isSupportedAttachmentUploadType({
|
|
29
|
+
fileName: 'orders_prod.dump',
|
|
30
|
+
mimeType: 'application/octet-stream'
|
|
31
|
+
})).toBe(true);
|
|
32
|
+
expect(isSupportedAttachmentUploadType({
|
|
33
|
+
fileName: 'orders_prod.dump',
|
|
34
|
+
mimeType: ''
|
|
35
|
+
})).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=attachment-delivery.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment-delivery.test.js","sourceRoot":"","sources":["../../src/utils/attachment-delivery.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAEzH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5G,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9F,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,CACJ,+BAA+B,CAAC;YAC9B,QAAQ,EAAE,+BAA+B;SAC1C,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CACJ,0BAA0B,CAAC;YACzB,QAAQ,EAAE,+BAA+B;SAC1C,CAAC,CACH,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACnF,MAAM,CACJ,0BAA0B,CAAC;YACzB,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,0BAA0B;SACrC,CAAC,CACH,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC9D,MAAM,CACJ,+BAA+B,CAAC;YAC9B,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,0BAA0B;SACrC,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CACJ,+BAA+B,CAAC;YAC9B,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -146,8 +146,9 @@ export declare function uploadAttachmentToServerApi(params: {
|
|
|
146
146
|
* internals into the UI, so the verbatim path is gated on this code rather
|
|
147
147
|
* than on the presence of the field.
|
|
148
148
|
*/
|
|
149
|
-
export type UserFacingUploadErrorCode = 'attachment_content_mismatch';
|
|
149
|
+
export type UserFacingUploadErrorCode = 'attachment_content_mismatch' | 'attachment_invalid';
|
|
150
150
|
export declare const ATTACHMENT_CONTENT_MISMATCH_CODE: UserFacingUploadErrorCode;
|
|
151
|
+
export declare const ATTACHMENT_INVALID_CODE: UserFacingUploadErrorCode;
|
|
151
152
|
export declare class AttachmentUploadApiError extends Error {
|
|
152
153
|
readonly code: UserFacingUploadErrorCode;
|
|
153
154
|
readonly status: number;
|
|
@@ -159,7 +160,7 @@ export declare class AttachmentUploadApiError extends Error {
|
|
|
159
160
|
export declare function isUserFacingUploadError(error: unknown): error is AttachmentUploadApiError;
|
|
160
161
|
/**
|
|
161
162
|
* Pull the server's user-facing `{ code, error }` pair out of a response body.
|
|
162
|
-
* Returns undefined unless `code` is
|
|
163
|
+
* Returns undefined unless `code` is a recognized user-facing upload error,
|
|
163
164
|
* and for non-JSON bodies, non-string `error` fields, and blank strings, so
|
|
164
165
|
* the caller keeps the diagnostic form that still carries the HTTP status.
|
|
165
166
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-upload.d.ts","sourceRoot":"","sources":["../../src/utils/attachment-upload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attachment-upload.d.ts","sourceRoot":"","sources":["../../src/utils/attachment-upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ const TEXT_ATTACHMENT_MIME_TYPES = {
|
|
|
28
28
|
txt: 'text/plain',
|
|
29
29
|
yaml: 'text/yaml'
|
|
30
30
|
};
|
|
31
|
+
const POSTGRES_DUMP_MIME_TYPES = new Set(['application/vnd.postgresql.dump', 'application/x-postgresql-dump']);
|
|
31
32
|
export const TEXT_LIKE_FILE_EXTENSIONS = [
|
|
32
33
|
'.txt',
|
|
33
34
|
'.text',
|
|
@@ -102,6 +103,9 @@ function normalizeNonEmptyString(value) {
|
|
|
102
103
|
}
|
|
103
104
|
export function isTextLikeMimeType(mimeType) {
|
|
104
105
|
const normalizedMimeType = mimeType.toLowerCase();
|
|
106
|
+
if (POSTGRES_DUMP_MIME_TYPES.has(normalizedMimeType)) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
105
109
|
return (normalizedMimeType.startsWith('text/') ||
|
|
106
110
|
normalizedMimeType.includes('json') ||
|
|
107
111
|
normalizedMimeType.includes('xml') ||
|
|
@@ -185,6 +189,9 @@ export function getAttachmentMimeTypeFromFileName(fileName) {
|
|
|
185
189
|
if (normalizedFileName.endsWith('.jpeg')) {
|
|
186
190
|
return 'image/jpeg';
|
|
187
191
|
}
|
|
192
|
+
if (normalizedFileName.endsWith('.dump')) {
|
|
193
|
+
return 'application/x-postgresql-dump';
|
|
194
|
+
}
|
|
188
195
|
return getTextLikeMimeTypeFromFileName(normalizedFileName);
|
|
189
196
|
}
|
|
190
197
|
function isProviderSafeTextMimeType(mimeType) {
|
|
@@ -444,6 +451,7 @@ export async function uploadAttachmentToServerApi(params) {
|
|
|
444
451
|
return (await response.json());
|
|
445
452
|
}
|
|
446
453
|
export const ATTACHMENT_CONTENT_MISMATCH_CODE = 'attachment_content_mismatch';
|
|
454
|
+
export const ATTACHMENT_INVALID_CODE = 'attachment_invalid';
|
|
447
455
|
export class AttachmentUploadApiError extends Error {
|
|
448
456
|
code;
|
|
449
457
|
status;
|
|
@@ -465,11 +473,11 @@ function readStringProperty(value, key) {
|
|
|
465
473
|
return typeof property === 'string' ? property : undefined;
|
|
466
474
|
}
|
|
467
475
|
function isUserFacingUploadErrorCode(code) {
|
|
468
|
-
return code === ATTACHMENT_CONTENT_MISMATCH_CODE;
|
|
476
|
+
return code === ATTACHMENT_CONTENT_MISMATCH_CODE || code === ATTACHMENT_INVALID_CODE;
|
|
469
477
|
}
|
|
470
478
|
/**
|
|
471
479
|
* Pull the server's user-facing `{ code, error }` pair out of a response body.
|
|
472
|
-
* Returns undefined unless `code` is
|
|
480
|
+
* Returns undefined unless `code` is a recognized user-facing upload error,
|
|
473
481
|
* and for non-JSON bodies, non-string `error` fields, and blank strings, so
|
|
474
482
|
* the caller keeps the diagnostic form that still carries the HTTP status.
|
|
475
483
|
*/
|