@superblocksteam/shared 0.9586.6 → 0.9589.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/index.d.ts +115 -0
- package/dist/database-lifecycle/index.d.ts.map +1 -0
- package/dist/database-lifecycle/index.js +143 -0
- package/dist/database-lifecycle/index.js.map +1 -0
- package/dist/database-lifecycle/index.test.d.ts +2 -0
- package/dist/database-lifecycle/index.test.d.ts.map +1 -0
- package/dist/database-lifecycle/index.test.js +110 -0
- package/dist/database-lifecycle/index.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/templates/dropbox.d.ts.map +1 -1
- package/dist/plugins/templates/dropbox.js +5 -1
- package/dist/plugins/templates/dropbox.js.map +1 -1
- package/dist/plugins/templates/shared/auth.d.ts +2 -0
- package/dist/plugins/templates/shared/auth.d.ts.map +1 -1
- package/dist/plugins/templates/shared/auth.js +1 -0
- package/dist/plugins/templates/shared/auth.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/ai/provider-credential.d.ts +53 -0
- package/dist/types/ai/provider-credential.d.ts.map +1 -0
- package/dist/types/ai/provider-credential.js +10 -0
- package/dist/types/ai/provider-credential.js.map +1 -0
- package/dist/types/audit/ocsf.d.ts.map +1 -1
- package/dist/types/audit/ocsf.js +8 -2
- package/dist/types/audit/ocsf.js.map +1 -1
- package/dist/types/commit/index.d.ts +1 -0
- package/dist/types/commit/index.d.ts.map +1 -1
- package/dist/types/commit/index.js.map +1 -1
- package/dist/types/common/env.d.ts +25 -0
- package/dist/types/common/env.d.ts.map +1 -1
- package/dist/types/common/env.js +29 -1
- package/dist/types/common/env.js.map +1 -1
- package/dist/types/common/env.test.d.ts +2 -0
- package/dist/types/common/env.test.d.ts.map +1 -0
- package/dist/types/common/env.test.js +24 -0
- package/dist/types/common/env.test.js.map +1 -0
- package/dist/types/common/response.d.ts +2 -2
- package/dist/types/common/response.d.ts.map +1 -1
- package/dist/types/common/response.js.map +1 -1
- package/dist/types/credentials/index.d.ts +7 -7
- package/dist/types/credentials/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/integration/index.d.ts +5 -2
- package/dist/types/integration/index.d.ts.map +1 -1
- package/dist/types/integration/index.js +5 -2
- package/dist/types/integration/index.js.map +1 -1
- package/dist/types/organization/agent.js +10 -40
- package/dist/types/organization/agent.js.map +1 -1
- package/dist/types/plugin/form.d.ts +1 -0
- package/dist/types/plugin/form.d.ts.map +1 -1
- package/dist/types/policyGate/index.d.ts +32 -0
- package/dist/types/policyGate/index.d.ts.map +1 -0
- package/dist/types/policyGate/index.js +3 -0
- package/dist/types/policyGate/index.js.map +1 -0
- package/dist/types/rbac/index.d.ts +8 -0
- package/dist/types/rbac/index.d.ts.map +1 -1
- package/dist/types/rbac/index.js +5 -0
- package/dist/types/rbac/index.js.map +1 -1
- package/dist/types/response/GetPolicyGateReadinessResponseBody.d.ts +3 -0
- package/dist/types/response/GetPolicyGateReadinessResponseBody.d.ts.map +1 -0
- package/dist/types/response/GetPolicyGateReadinessResponseBody.js +3 -0
- package/dist/types/response/GetPolicyGateReadinessResponseBody.js.map +1 -0
- package/dist/types/response/index.d.ts +1 -0
- package/dist/types/response/index.d.ts.map +1 -1
- package/dist/types/response/index.js +1 -0
- package/dist/types/response/index.js.map +1 -1
- package/dist/types/reviewPolicy/index.d.ts +105 -0
- package/dist/types/reviewPolicy/index.d.ts.map +1 -0
- package/dist/types/reviewPolicy/index.js +47 -0
- package/dist/types/reviewPolicy/index.js.map +1 -0
- package/dist/utils/git-url.d.ts +0 -1
- package/dist/utils/git-url.d.ts.map +1 -1
- package/dist/utils/git-url.js +1 -2
- package/dist/utils/git-url.js.map +1 -1
- package/dist/utils/git-url.test.js +0 -5
- package/dist/utils/git-url.test.js.map +1 -1
- package/dist-esm/database-lifecycle/index.d.ts +115 -0
- package/dist-esm/database-lifecycle/index.d.ts.map +1 -0
- package/dist-esm/database-lifecycle/index.js +131 -0
- package/dist-esm/database-lifecycle/index.js.map +1 -0
- package/dist-esm/database-lifecycle/index.test.d.ts +2 -0
- package/dist-esm/database-lifecycle/index.test.d.ts.map +1 -0
- package/dist-esm/database-lifecycle/index.test.js +108 -0
- package/dist-esm/database-lifecycle/index.test.js.map +1 -0
- package/dist-esm/index.d.ts +1 -0
- package/dist-esm/index.d.ts.map +1 -1
- package/dist-esm/index.js +1 -0
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/plugins/index.d.ts.map +1 -1
- package/dist-esm/plugins/index.js +4 -0
- package/dist-esm/plugins/index.js.map +1 -1
- package/dist-esm/plugins/templates/dropbox.d.ts.map +1 -1
- package/dist-esm/plugins/templates/dropbox.js +5 -1
- package/dist-esm/plugins/templates/dropbox.js.map +1 -1
- package/dist-esm/plugins/templates/shared/auth.d.ts +2 -0
- package/dist-esm/plugins/templates/shared/auth.d.ts.map +1 -1
- package/dist-esm/plugins/templates/shared/auth.js +1 -0
- package/dist-esm/plugins/templates/shared/auth.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/ai/provider-credential.d.ts +53 -0
- package/dist-esm/types/ai/provider-credential.d.ts.map +1 -0
- package/dist-esm/types/ai/provider-credential.js +7 -0
- package/dist-esm/types/ai/provider-credential.js.map +1 -0
- package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
- package/dist-esm/types/audit/ocsf.js +8 -2
- package/dist-esm/types/audit/ocsf.js.map +1 -1
- package/dist-esm/types/commit/index.d.ts +1 -0
- package/dist-esm/types/commit/index.d.ts.map +1 -1
- package/dist-esm/types/commit/index.js.map +1 -1
- package/dist-esm/types/common/env.d.ts +25 -0
- package/dist-esm/types/common/env.d.ts.map +1 -1
- package/dist-esm/types/common/env.js +27 -0
- package/dist-esm/types/common/env.js.map +1 -1
- package/dist-esm/types/common/env.test.d.ts +2 -0
- package/dist-esm/types/common/env.test.d.ts.map +1 -0
- package/dist-esm/types/common/env.test.js +22 -0
- package/dist-esm/types/common/env.test.js.map +1 -0
- package/dist-esm/types/common/response.d.ts +2 -2
- package/dist-esm/types/common/response.d.ts.map +1 -1
- package/dist-esm/types/common/response.js.map +1 -1
- package/dist-esm/types/credentials/index.d.ts +7 -7
- package/dist-esm/types/credentials/index.d.ts.map +1 -1
- package/dist-esm/types/index.d.ts +2 -0
- package/dist-esm/types/index.d.ts.map +1 -1
- package/dist-esm/types/index.js +2 -0
- package/dist-esm/types/index.js.map +1 -1
- package/dist-esm/types/integration/index.d.ts +5 -2
- package/dist-esm/types/integration/index.d.ts.map +1 -1
- package/dist-esm/types/integration/index.js +5 -2
- package/dist-esm/types/integration/index.js.map +1 -1
- package/dist-esm/types/organization/agent.js +1 -1
- package/dist-esm/types/organization/agent.js.map +1 -1
- package/dist-esm/types/plugin/form.d.ts +1 -0
- package/dist-esm/types/plugin/form.d.ts.map +1 -1
- package/dist-esm/types/policyGate/index.d.ts +32 -0
- package/dist-esm/types/policyGate/index.d.ts.map +1 -0
- package/dist-esm/types/policyGate/index.js +2 -0
- package/dist-esm/types/policyGate/index.js.map +1 -0
- package/dist-esm/types/rbac/index.d.ts +8 -0
- package/dist-esm/types/rbac/index.d.ts.map +1 -1
- package/dist-esm/types/rbac/index.js +5 -0
- package/dist-esm/types/rbac/index.js.map +1 -1
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.d.ts +3 -0
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.d.ts.map +1 -0
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.js +2 -0
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.js.map +1 -0
- package/dist-esm/types/response/index.d.ts +1 -0
- package/dist-esm/types/response/index.d.ts.map +1 -1
- package/dist-esm/types/response/index.js +1 -0
- package/dist-esm/types/response/index.js.map +1 -1
- package/dist-esm/types/reviewPolicy/index.d.ts +105 -0
- package/dist-esm/types/reviewPolicy/index.d.ts.map +1 -0
- package/dist-esm/types/reviewPolicy/index.js +44 -0
- package/dist-esm/types/reviewPolicy/index.js.map +1 -0
- package/dist-esm/utils/git-url.d.ts +0 -1
- package/dist-esm/utils/git-url.d.ts.map +1 -1
- package/dist-esm/utils/git-url.js +0 -1
- package/dist-esm/utils/git-url.js.map +1 -1
- package/dist-esm/utils/git-url.test.js +1 -6
- package/dist-esm/utils/git-url.test.js.map +1 -1
- package/package.json +3 -3
- package/src/database-lifecycle/index.test.ts +132 -0
- package/src/database-lifecycle/index.ts +278 -0
- package/src/index.ts +1 -0
- package/src/plugins/index.ts +4 -0
- package/src/plugins/templates/dropbox.ts +5 -1
- package/src/plugins/templates/shared/auth.ts +3 -0
- package/src/types/ai/index.ts +1 -0
- package/src/types/ai/provider-credential.ts +61 -0
- package/src/types/audit/ocsf.ts +8 -2
- package/src/types/commit/index.ts +1 -0
- package/src/types/common/env.test.ts +27 -0
- package/src/types/common/env.ts +28 -0
- package/src/types/common/response.ts +2 -2
- package/src/types/credentials/index.ts +7 -7
- package/src/types/index.ts +2 -0
- package/src/types/integration/index.ts +9 -2
- package/src/types/organization/agent.ts +1 -1
- package/src/types/plugin/form.ts +1 -0
- package/src/types/policyGate/index.ts +52 -0
- package/src/types/rbac/index.ts +6 -0
- package/src/types/response/GetPolicyGateReadinessResponseBody.ts +3 -0
- package/src/types/response/index.ts +1 -0
- package/src/types/reviewPolicy/index.ts +132 -0
- package/src/utils/git-url.test.ts +1 -14
- package/src/utils/git-url.ts +0 -2
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export type PolicyGateReadinessAction =
|
|
2
|
+
| 'contact_admin'
|
|
3
|
+
| 'fix_with_clark'
|
|
4
|
+
| 'request_approval'
|
|
5
|
+
| 'request_suppression'
|
|
6
|
+
| 'rerun_gate'
|
|
7
|
+
| 'view_report'
|
|
8
|
+
| 'wait';
|
|
9
|
+
|
|
10
|
+
export type PolicyGateReadinessFindingSummary = {
|
|
11
|
+
advisory: number;
|
|
12
|
+
approvalRequired: number;
|
|
13
|
+
blocking: number;
|
|
14
|
+
suppressed: number;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type PolicyGateReadinessItem = {
|
|
18
|
+
actions: PolicyGateReadinessAction[];
|
|
19
|
+
findingSummary: PolicyGateReadinessFindingSummary;
|
|
20
|
+
itemId: string;
|
|
21
|
+
itemType: 'security_agent' | 'security_scan';
|
|
22
|
+
mode: 'advisory' | 'approval' | 'blocking' | 'report_only';
|
|
23
|
+
policyId: string;
|
|
24
|
+
policyVersionId: string;
|
|
25
|
+
reviewRunId?: string;
|
|
26
|
+
staleReason?: string;
|
|
27
|
+
status: PolicyGateReadinessItemStatus;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type PolicyGateReadinessItemStatus =
|
|
31
|
+
| 'advisory_findings'
|
|
32
|
+
| 'approval_required'
|
|
33
|
+
| 'blocked'
|
|
34
|
+
| 'failed'
|
|
35
|
+
| 'missing'
|
|
36
|
+
| 'passed'
|
|
37
|
+
| 'running'
|
|
38
|
+
| 'stale';
|
|
39
|
+
|
|
40
|
+
export type PolicyGateReadinessResponse = {
|
|
41
|
+
items: PolicyGateReadinessItem[];
|
|
42
|
+
status: PolicyGateReadinessStatus;
|
|
43
|
+
target: PolicyGateReadinessTarget;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export type PolicyGateReadinessStatus = 'allowed' | 'approval_required' | 'blocked' | 'failed' | 'running' | 'stale';
|
|
47
|
+
|
|
48
|
+
export type PolicyGateReadinessTarget = {
|
|
49
|
+
applicationId: string;
|
|
50
|
+
commitId: string;
|
|
51
|
+
directoryContentsHash: string | null;
|
|
52
|
+
};
|
package/src/types/rbac/index.ts
CHANGED
|
@@ -124,6 +124,7 @@ export enum AssignmentTypeEnum {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
export enum PrincipalTypeEnum {
|
|
127
|
+
APPLICATION = 'application',
|
|
127
128
|
GROUP = 'group',
|
|
128
129
|
USER = 'user'
|
|
129
130
|
// ORGANIZATION = 'organization',
|
|
@@ -133,6 +134,7 @@ export enum PrincipalTypeEnum {
|
|
|
133
134
|
export enum ResourceTypeEnum {
|
|
134
135
|
ACCESS_TOKENS = 'access_tokens',
|
|
135
136
|
AGENTS = 'agents',
|
|
137
|
+
AI_INFERENCE = 'ai.inference',
|
|
136
138
|
APPLICATIONS = 'apps',
|
|
137
139
|
APPLICATIONS_APIS = 'apps.apis',
|
|
138
140
|
APPLICATIONS_PAGES = 'apps.pages',
|
|
@@ -190,6 +192,9 @@ export const ActionTypeByResourceType = {
|
|
|
190
192
|
READ: ActionTypeEnum.READ,
|
|
191
193
|
MANAGE: ActionTypeEnum.MANAGE
|
|
192
194
|
},
|
|
195
|
+
AI_INFERENCE: {
|
|
196
|
+
MANAGE: ActionTypeEnum.MANAGE
|
|
197
|
+
},
|
|
193
198
|
INTEGRATIONS_DEFAULT_AI: {
|
|
194
199
|
MANAGE: ActionTypeEnum.MANAGE
|
|
195
200
|
},
|
|
@@ -309,6 +314,7 @@ export type AssignmentDto = {
|
|
|
309
314
|
// group and user maps to principalId in the model
|
|
310
315
|
// that means we will either have group or user in this object
|
|
311
316
|
group?: GroupBrief;
|
|
317
|
+
principalApplication?: ResourceBrief & { devEnvEnabled: boolean };
|
|
312
318
|
user?: {
|
|
313
319
|
id: string;
|
|
314
320
|
name: string;
|
|
@@ -28,6 +28,7 @@ export * from './PutApiUpdateResponseBody.js';
|
|
|
28
28
|
export * from './GetApplicationDeploymentsResponseBody.js';
|
|
29
29
|
export * from './GetApiDeploymentsResponseBody.js';
|
|
30
30
|
export * from './GetPermissionEntitiesResponseBody.js';
|
|
31
|
+
export * from './GetPolicyGateReadinessResponseBody.js';
|
|
31
32
|
export * from './GetGroupPermissionEntitiesResponseBody.js';
|
|
32
33
|
export * from './GetAuditLogsEntitiesResponseBody.js';
|
|
33
34
|
export * from './GetAuditLogsResponseBody.js';
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export const AI_AGENT_STATUSES = ['active', 'disabled'] as const;
|
|
2
|
+
|
|
3
|
+
export const REVIEW_POLICY_NAME_MAX_LENGTH = 120;
|
|
4
|
+
export const REVIEW_POLICY_PROMPT_MAX_LENGTH = 10000;
|
|
5
|
+
|
|
6
|
+
export const REVIEW_POLICY_TYPES = ['built_in_security_scan', 'security_agent'] as const;
|
|
7
|
+
export const REVIEW_POLICY_SOURCES = ['admin_configured', 'superblocks_managed'] as const;
|
|
8
|
+
export const REVIEW_POLICY_TRIGGERS = ['before_deploy', 'after_checkpoint', 'manual'] as const;
|
|
9
|
+
export const REVIEW_POLICY_EXECUTION_CONTEXTS = [
|
|
10
|
+
'edit_mode_app',
|
|
11
|
+
'superblocks_sabs_built_assets',
|
|
12
|
+
'superblocks_sabs_dependency_metadata',
|
|
13
|
+
'superblocks_sabs_source_snapshot'
|
|
14
|
+
] as const;
|
|
15
|
+
export const REVIEW_POLICY_RUNTIMES = ['superblocks_dev_server_agent', 'superblocks_sabs'] as const;
|
|
16
|
+
export const REVIEW_POLICY_MODES = ['advisory', 'blocking'] as const;
|
|
17
|
+
export const REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent'] as const;
|
|
18
|
+
export const REVIEW_FINDING_SOURCE_PHASES = ['built_asset', 'dependency', 'edit_mode_app', 'iac', 'image', 'source'] as const;
|
|
19
|
+
export const REVIEW_FINDING_CATEGORIES = [
|
|
20
|
+
'external_policy',
|
|
21
|
+
'misconfiguration',
|
|
22
|
+
'security_agent',
|
|
23
|
+
'secret',
|
|
24
|
+
'sensitive_data',
|
|
25
|
+
'vulnerability'
|
|
26
|
+
] as const;
|
|
27
|
+
|
|
28
|
+
// Severity and confidence order is semantically meaningful from strongest to weakest.
|
|
29
|
+
export const REVIEW_FINDING_SEVERITIES = ['critical', 'high', 'medium', 'low', 'info'] as const;
|
|
30
|
+
export const REVIEW_FINDING_CONFIDENCES = ['high', 'medium', 'low'] as const;
|
|
31
|
+
export const REVIEW_FINDING_SUPPRESSION_STATUSES = ['active', 'expired', 'revoked'] as const;
|
|
32
|
+
|
|
33
|
+
// Lifecycle ordering is semantically meaningful; matches AiAgentRun status sequence with review-specific states.
|
|
34
|
+
export const REVIEW_RUN_STATUSES = [
|
|
35
|
+
'queued',
|
|
36
|
+
'running',
|
|
37
|
+
'passed',
|
|
38
|
+
'findings',
|
|
39
|
+
'blocked',
|
|
40
|
+
'errored',
|
|
41
|
+
'timed_out',
|
|
42
|
+
'canceled',
|
|
43
|
+
'stale'
|
|
44
|
+
] as const;
|
|
45
|
+
|
|
46
|
+
// Lifecycle ordering is semantically meaningful.
|
|
47
|
+
export const REVIEW_RUN_DECISIONS = ['allowed', 'advisory_allowed', 'blocked', 'error_blocked', 'not_applicable'] as const;
|
|
48
|
+
export const REVIEW_RUN_TRIGGERED_BYS = ['system', 'user'] as const;
|
|
49
|
+
|
|
50
|
+
export type AiAgentStatus = (typeof AI_AGENT_STATUSES)[number];
|
|
51
|
+
export type ReviewPolicyStatus = AiAgentStatus;
|
|
52
|
+
export type ReviewPolicyType = (typeof REVIEW_POLICY_TYPES)[number];
|
|
53
|
+
export type ReviewPolicySource = (typeof REVIEW_POLICY_SOURCES)[number];
|
|
54
|
+
export type ReviewPolicyTrigger = (typeof REVIEW_POLICY_TRIGGERS)[number];
|
|
55
|
+
export type ReviewPolicyExecutionContext = (typeof REVIEW_POLICY_EXECUTION_CONTEXTS)[number];
|
|
56
|
+
export type ReviewPolicyRuntime = (typeof REVIEW_POLICY_RUNTIMES)[number];
|
|
57
|
+
export type ReviewPolicyMode = (typeof REVIEW_POLICY_MODES)[number];
|
|
58
|
+
export type ReviewPolicyRunnerType = (typeof REVIEW_POLICY_RUNNER_TYPES)[number];
|
|
59
|
+
export type ReviewFindingSourcePhase = (typeof REVIEW_FINDING_SOURCE_PHASES)[number];
|
|
60
|
+
export type ReviewFindingCategory = (typeof REVIEW_FINDING_CATEGORIES)[number];
|
|
61
|
+
export type ReviewFindingSeverity = (typeof REVIEW_FINDING_SEVERITIES)[number];
|
|
62
|
+
export type ReviewFindingConfidence = (typeof REVIEW_FINDING_CONFIDENCES)[number];
|
|
63
|
+
export type ReviewFindingSuppressionStatus = (typeof REVIEW_FINDING_SUPPRESSION_STATUSES)[number];
|
|
64
|
+
export type ReviewRunStatus = (typeof REVIEW_RUN_STATUSES)[number];
|
|
65
|
+
export type ReviewRunDecision = (typeof REVIEW_RUN_DECISIONS)[number];
|
|
66
|
+
export type ReviewRunTriggeredBy = (typeof REVIEW_RUN_TRIGGERED_BYS)[number];
|
|
67
|
+
|
|
68
|
+
export type ReviewPolicyScopeType = 'all_apps' | 'limited';
|
|
69
|
+
|
|
70
|
+
export interface ReviewPolicyLastRunDto {
|
|
71
|
+
id: string;
|
|
72
|
+
status: ReviewRunStatus;
|
|
73
|
+
created: string;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface ReviewPolicyDto {
|
|
77
|
+
id: string;
|
|
78
|
+
organizationId: string;
|
|
79
|
+
aiAgentId: string;
|
|
80
|
+
activeVersionId: string;
|
|
81
|
+
versionNumber: number;
|
|
82
|
+
policyType: ReviewPolicyType;
|
|
83
|
+
source: ReviewPolicySource;
|
|
84
|
+
name: string;
|
|
85
|
+
status: AiAgentStatus;
|
|
86
|
+
mode: ReviewPolicyMode;
|
|
87
|
+
scope: { type: ReviewPolicyScopeType };
|
|
88
|
+
lastRun: ReviewPolicyLastRunDto | null;
|
|
89
|
+
createdBy: string | null;
|
|
90
|
+
created: string;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface ReviewPolicyDetailDto extends ReviewPolicyDto {
|
|
94
|
+
prompt: string;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface ReviewPolicyRunDto {
|
|
98
|
+
id: string;
|
|
99
|
+
applicationId: string;
|
|
100
|
+
applicationName: string | null;
|
|
101
|
+
applicationCommitId: string;
|
|
102
|
+
policyVersionNumber: number;
|
|
103
|
+
findingsCount: number;
|
|
104
|
+
profileId: string;
|
|
105
|
+
status: ReviewRunStatus;
|
|
106
|
+
decision: ReviewRunDecision | null;
|
|
107
|
+
decisionReason: string | null;
|
|
108
|
+
startedAt: string | null;
|
|
109
|
+
completedAt: string | null;
|
|
110
|
+
created: string;
|
|
111
|
+
errorCode: string | null;
|
|
112
|
+
errorMessage: string | null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface ReviewPolicyRunsDto {
|
|
116
|
+
policy: ReviewPolicyDto;
|
|
117
|
+
runs: ReviewPolicyRunDto[];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface ReviewPolicySummaryDto {
|
|
121
|
+
activeAgents: number;
|
|
122
|
+
agentRuns24h: number;
|
|
123
|
+
securityScans24h: number;
|
|
124
|
+
findings24h: number;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export type CreateReviewPolicyBody =
|
|
128
|
+
| { policyType: 'built_in_security_scan' }
|
|
129
|
+
| { policyType: 'security_agent'; name: string; prompt: string };
|
|
130
|
+
|
|
131
|
+
export type UpdateReviewPolicyBody = { status: AiAgentStatus };
|
|
132
|
+
export type UpdateReviewPolicyConfigBody = { activeVersionId: string; name: string; prompt: string };
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
GITHUB_PAT_SETTINGS_URL,
|
|
5
|
-
getGitHubCompareUrl,
|
|
6
|
-
gitRemoteUrlToWeb,
|
|
7
|
-
isGitHubUrl,
|
|
8
|
-
isValidGitUrl,
|
|
9
|
-
sshGitUrlToHttps
|
|
10
|
-
} from './git-url.js';
|
|
3
|
+
import { getGitHubCompareUrl, gitRemoteUrlToWeb, isGitHubUrl, isValidGitUrl, sshGitUrlToHttps } from './git-url.js';
|
|
11
4
|
|
|
12
5
|
describe('isValidGitUrl', () => {
|
|
13
6
|
it.each([
|
|
@@ -151,9 +144,3 @@ describe('sshGitUrlToHttps', () => {
|
|
|
151
144
|
expect(sshGitUrlToHttps('not-a-url')).toBeNull();
|
|
152
145
|
});
|
|
153
146
|
});
|
|
154
|
-
|
|
155
|
-
describe('GITHUB_PAT_SETTINGS_URL', () => {
|
|
156
|
-
it('is a valid URL', () => {
|
|
157
|
-
expect(GITHUB_PAT_SETTINGS_URL).toBe('https://github.com/settings/tokens');
|
|
158
|
-
});
|
|
159
|
-
});
|
package/src/utils/git-url.ts
CHANGED
|
@@ -10,8 +10,6 @@ const SSH_GIT_URL_RE = /^[\w-]+@[\w.-]+:[\w./-]+(\.git)?$/;
|
|
|
10
10
|
// ssh:// protocol format: ssh://git@host/path
|
|
11
11
|
const SSH_PROTOCOL_RE = /^ssh:\/\/[\w-]+@[\w.-]+(\/[\w./-]+)+(\.git)?\/?$/i;
|
|
12
12
|
|
|
13
|
-
export const GITHUB_PAT_SETTINGS_URL = 'https://github.com/settings/tokens';
|
|
14
|
-
|
|
15
13
|
export function isValidGitUrl(url: string): boolean {
|
|
16
14
|
const trimmed = url.trim();
|
|
17
15
|
return HTTPS_GIT_URL_RE.test(trimmed) || SSH_GIT_URL_RE.test(trimmed) || SSH_PROTOCOL_RE.test(trimmed);
|