veryfront 0.1.75 → 0.1.77
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/README.md +2 -0
- package/esm/cli/commands/files/command.d.ts +3 -3
- package/esm/cli/commands/pull/command.js +2 -2
- package/esm/cli/commands/task/command.d.ts.map +1 -1
- package/esm/cli/commands/task/command.js +57 -51
- package/esm/cli/commands/workflow/command-help.d.ts +3 -0
- package/esm/cli/commands/workflow/command-help.d.ts.map +1 -0
- package/esm/cli/commands/workflow/command-help.js +19 -0
- package/esm/cli/commands/workflow/command.d.ts +5 -0
- package/esm/cli/commands/workflow/command.d.ts.map +1 -0
- package/esm/cli/commands/workflow/command.js +119 -0
- package/esm/cli/commands/workflow/handler.d.ts +28 -0
- package/esm/cli/commands/workflow/handler.d.ts.map +1 -0
- package/esm/cli/commands/workflow/handler.js +19 -0
- package/esm/cli/help/command-definitions.d.ts.map +1 -1
- package/esm/cli/help/command-definitions.js +2 -0
- package/esm/cli/router.d.ts.map +1 -1
- package/esm/cli/router.js +2 -0
- package/esm/cli/shared/project-source-context.d.ts +18 -0
- package/esm/cli/shared/project-source-context.d.ts.map +1 -0
- package/esm/cli/shared/project-source-context.js +52 -0
- package/esm/deno.d.ts +6 -0
- package/esm/deno.js +12 -6
- package/esm/src/data/server-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/server-data-fetcher.js +17 -1
- package/esm/src/jobs/index.d.ts +34 -0
- package/esm/src/jobs/index.d.ts.map +1 -0
- package/esm/src/jobs/index.js +33 -0
- package/esm/src/jobs/jobs-client.d.ts +134 -0
- package/esm/src/jobs/jobs-client.d.ts.map +1 -0
- package/esm/src/jobs/jobs-client.js +218 -0
- package/esm/src/jobs/schemas.d.ts +1304 -0
- package/esm/src/jobs/schemas.d.ts.map +1 -0
- package/esm/src/jobs/schemas.js +159 -0
- package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts +3 -3
- package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/operations.js +12 -10
- package/esm/src/platform/adapters/veryfront-api-client/retry-handler.d.ts +4 -0
- package/esm/src/platform/adapters/veryfront-api-client/retry-handler.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/retry-handler.js +12 -6
- package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts +4 -4
- package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.js +4 -4
- package/esm/src/platform/index.d.ts +1 -0
- package/esm/src/platform/index.d.ts.map +1 -1
- package/esm/src/platform/index.js +1 -0
- package/esm/src/proxy/handler.d.ts.map +1 -1
- package/esm/src/proxy/handler.js +21 -21
- package/esm/src/routing/api/route-executor.d.ts.map +1 -1
- package/esm/src/routing/api/route-executor.js +30 -3
- package/esm/src/security/deno-permissions.d.ts +1 -1
- package/esm/src/security/deno-permissions.d.ts.map +1 -1
- package/esm/src/security/deno-permissions.js +2 -1
- package/esm/src/security/sandbox/project-worker.d.ts.map +1 -1
- package/esm/src/security/sandbox/project-worker.js +2 -2
- package/esm/src/security/sandbox/worker-permissions.d.ts.map +1 -1
- package/esm/src/security/sandbox/worker-permissions.js +23 -20
- package/esm/src/security/sandbox/worker-pool.d.ts.map +1 -1
- package/esm/src/security/sandbox/worker-pool.js +17 -14
- package/esm/src/security/sandbox/worker-types.d.ts +2 -0
- package/esm/src/security/sandbox/worker-types.d.ts.map +1 -1
- package/esm/src/security/sandbox/worker-types.js +2 -0
- package/esm/src/task/types.d.ts +6 -0
- package/esm/src/task/types.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/cli/commands/pull/command.ts +3 -3
- package/src/cli/commands/task/command.ts +66 -57
- package/src/cli/commands/workflow/command-help.ts +21 -0
- package/src/cli/commands/workflow/command.ts +152 -0
- package/src/cli/commands/workflow/handler.ts +25 -0
- package/src/cli/help/command-definitions.ts +2 -0
- package/src/cli/router.ts +2 -0
- package/src/cli/shared/project-source-context.ts +96 -0
- package/src/deno.js +12 -6
- package/src/src/data/server-data-fetcher.ts +30 -2
- package/src/src/jobs/index.ts +85 -0
- package/src/src/jobs/jobs-client.ts +503 -0
- package/src/src/jobs/schemas.ts +202 -0
- package/src/src/platform/adapters/veryfront-api-client/operations.ts +14 -14
- package/src/src/platform/adapters/veryfront-api-client/retry-handler.ts +15 -6
- package/src/src/platform/adapters/veryfront-api-client/schemas/api.schema.ts +4 -4
- package/src/src/platform/index.ts +1 -0
- package/src/src/proxy/handler.ts +27 -19
- package/src/src/routing/api/route-executor.ts +43 -7
- package/src/src/security/deno-permissions.ts +2 -1
- package/src/src/security/sandbox/project-worker.ts +2 -2
- package/src/src/security/sandbox/worker-permissions.ts +22 -19
- package/src/src/security/sandbox/worker-pool.ts +21 -13
- package/src/src/security/sandbox/worker-types.ts +3 -0
- package/src/src/task/types.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/src/jobs/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const JobStatusSchema = z.enum([
|
|
3
|
+
"submitted",
|
|
4
|
+
"working",
|
|
5
|
+
"completed",
|
|
6
|
+
"failed",
|
|
7
|
+
"canceled",
|
|
8
|
+
]);
|
|
9
|
+
export const CronJobStatusSchema = z.enum(["active", "paused", "deleting"]);
|
|
10
|
+
export const ReservedJobTargetFamilySchema = z.enum(["task:*", "workflow:*", "deploy:*"]);
|
|
11
|
+
export const PageInfoSchema = z.object({
|
|
12
|
+
self: z.string().nullable(),
|
|
13
|
+
first: z.literal(null),
|
|
14
|
+
next: z.string().nullable(),
|
|
15
|
+
prev: z.string().nullable(),
|
|
16
|
+
});
|
|
17
|
+
const JsonObjectSchema = z.record(z.unknown());
|
|
18
|
+
export const KnowledgeIngestFileResultSchema = z.object({
|
|
19
|
+
source: z.string(),
|
|
20
|
+
localSourcePath: z.string(),
|
|
21
|
+
outputPath: z.string(),
|
|
22
|
+
remotePath: z.string(),
|
|
23
|
+
slug: z.string(),
|
|
24
|
+
sourceType: z.string(),
|
|
25
|
+
summary: z.string(),
|
|
26
|
+
stats: JsonObjectSchema,
|
|
27
|
+
warnings: z.array(z.string()),
|
|
28
|
+
});
|
|
29
|
+
export const JobResultSchema = z
|
|
30
|
+
.discriminatedUnion("kind", [
|
|
31
|
+
z.object({
|
|
32
|
+
kind: z.literal("knowledge_ingest"),
|
|
33
|
+
files: z.array(KnowledgeIngestFileResultSchema),
|
|
34
|
+
}),
|
|
35
|
+
z.object({
|
|
36
|
+
kind: z.literal("artifacts"),
|
|
37
|
+
artifacts: z.array(z.unknown()),
|
|
38
|
+
}),
|
|
39
|
+
])
|
|
40
|
+
.nullable();
|
|
41
|
+
export const JobSchema = z.object({
|
|
42
|
+
id: z.string().uuid(),
|
|
43
|
+
project_id: z.string().uuid(),
|
|
44
|
+
environment_id: z.string().uuid().nullable(),
|
|
45
|
+
cron_job_id: z.string().uuid().nullable(),
|
|
46
|
+
batch_id: z.string().uuid().nullable(),
|
|
47
|
+
name: z.string(),
|
|
48
|
+
status: JobStatusSchema,
|
|
49
|
+
target: z.string(),
|
|
50
|
+
config: JsonObjectSchema,
|
|
51
|
+
context_id: z.string().uuid().nullable(),
|
|
52
|
+
timeout_seconds: z.number(),
|
|
53
|
+
backoff_limit: z.number(),
|
|
54
|
+
exit_code: z.number().nullable(),
|
|
55
|
+
failed_reason: z.string().nullable(),
|
|
56
|
+
failure_detail: z.string().nullable(),
|
|
57
|
+
result: JobResultSchema,
|
|
58
|
+
started_at: z.string().nullable(),
|
|
59
|
+
completed_at: z.string().nullable(),
|
|
60
|
+
created_by: z.string().uuid().nullable(),
|
|
61
|
+
created_at: z.string(),
|
|
62
|
+
updated_at: z.string(),
|
|
63
|
+
});
|
|
64
|
+
export const PaginatedJobsResponseSchema = z.object({
|
|
65
|
+
data: z.array(JobSchema),
|
|
66
|
+
page_info: PageInfoSchema,
|
|
67
|
+
});
|
|
68
|
+
export const JobEventSchema = z.object({
|
|
69
|
+
timestamp: z.string(),
|
|
70
|
+
level: z.string(),
|
|
71
|
+
message: z.string(),
|
|
72
|
+
service: z.string(),
|
|
73
|
+
trace_id: z.string().optional(),
|
|
74
|
+
request_id: z.string().optional(),
|
|
75
|
+
metadata: z.record(z.string()).optional(),
|
|
76
|
+
});
|
|
77
|
+
export const JobEventsResponseSchema = z.object({
|
|
78
|
+
entries: z.array(JobEventSchema),
|
|
79
|
+
next_cursor: z.string().nullable(),
|
|
80
|
+
stats: z.object({
|
|
81
|
+
bytes_processed: z.number(),
|
|
82
|
+
lines_processed: z.number(),
|
|
83
|
+
query_time_ms: z.number(),
|
|
84
|
+
}),
|
|
85
|
+
});
|
|
86
|
+
export const JobLogsResponseSchema = z.object({
|
|
87
|
+
logs: z.string().nullable(),
|
|
88
|
+
});
|
|
89
|
+
export const KnowledgeIngestBatchSourceSchema = z.object({
|
|
90
|
+
label: z.string(),
|
|
91
|
+
path: z.string().nullable(),
|
|
92
|
+
upload_id: z.string().uuid().nullable(),
|
|
93
|
+
remote_path: z.string().nullable(),
|
|
94
|
+
warning_count: z.number().int().nonnegative(),
|
|
95
|
+
});
|
|
96
|
+
export const JobBatchStatusCountsSchema = z.object({
|
|
97
|
+
submitted: z.number().int().nonnegative(),
|
|
98
|
+
working: z.number().int().nonnegative(),
|
|
99
|
+
completed: z.number().int().nonnegative(),
|
|
100
|
+
failed: z.number().int().nonnegative(),
|
|
101
|
+
canceled: z.number().int().nonnegative(),
|
|
102
|
+
});
|
|
103
|
+
export const JobBatchResultSchema = z
|
|
104
|
+
.discriminatedUnion("kind", [
|
|
105
|
+
z.object({
|
|
106
|
+
kind: z.literal("knowledge_ingest"),
|
|
107
|
+
total_count: z.number().int().nonnegative(),
|
|
108
|
+
completed_count: z.number().int().nonnegative(),
|
|
109
|
+
processing: z.array(KnowledgeIngestBatchSourceSchema),
|
|
110
|
+
completed: z.array(KnowledgeIngestBatchSourceSchema),
|
|
111
|
+
remaining: z.array(KnowledgeIngestBatchSourceSchema),
|
|
112
|
+
remaining_label: z.enum(["Remaining Files", "Not Ingested Files"]),
|
|
113
|
+
}),
|
|
114
|
+
])
|
|
115
|
+
.nullable();
|
|
116
|
+
export const JobBatchSchema = z.object({
|
|
117
|
+
id: z.string().uuid(),
|
|
118
|
+
project_id: z.string().uuid(),
|
|
119
|
+
target: z.string().nullable(),
|
|
120
|
+
job_count: z.number().int().nonnegative(),
|
|
121
|
+
status_counts: JobBatchStatusCountsSchema,
|
|
122
|
+
created_at: z.string(),
|
|
123
|
+
updated_at: z.string(),
|
|
124
|
+
result: JobBatchResultSchema,
|
|
125
|
+
});
|
|
126
|
+
export const JobTargetDefinitionSchema = z.object({
|
|
127
|
+
target: z.string(),
|
|
128
|
+
family: z.string(),
|
|
129
|
+
description: z.string(),
|
|
130
|
+
input_schema: JsonObjectSchema,
|
|
131
|
+
output_schema: JsonObjectSchema.nullable(),
|
|
132
|
+
});
|
|
133
|
+
export const JobTargetDefinitionsResponseSchema = z.object({
|
|
134
|
+
reserved_families: z.array(ReservedJobTargetFamilySchema),
|
|
135
|
+
data: z.array(JobTargetDefinitionSchema),
|
|
136
|
+
});
|
|
137
|
+
export const CronJobSchema = z.object({
|
|
138
|
+
id: z.string().uuid(),
|
|
139
|
+
project_id: z.string().uuid(),
|
|
140
|
+
environment_id: z.string().uuid().nullable(),
|
|
141
|
+
name: z.string(),
|
|
142
|
+
status: CronJobStatusSchema,
|
|
143
|
+
target: z.string(),
|
|
144
|
+
schedule: z.string(),
|
|
145
|
+
timezone: z.string(),
|
|
146
|
+
config: JsonObjectSchema,
|
|
147
|
+
timeout_seconds: z.number(),
|
|
148
|
+
backoff_limit: z.number(),
|
|
149
|
+
concurrency_policy: z.string(),
|
|
150
|
+
last_scheduled_at: z.string().nullable(),
|
|
151
|
+
last_successful_at: z.string().nullable(),
|
|
152
|
+
created_by: z.string().uuid().nullable(),
|
|
153
|
+
created_at: z.string(),
|
|
154
|
+
updated_at: z.string(),
|
|
155
|
+
});
|
|
156
|
+
export const PaginatedCronJobsResponseSchema = z.object({
|
|
157
|
+
data: z.array(CronJobSchema),
|
|
158
|
+
page_info: PageInfoSchema,
|
|
159
|
+
});
|
|
@@ -43,9 +43,9 @@ export declare class VeryfrontAPIOperations {
|
|
|
43
43
|
sortOrder?: "asc" | "desc";
|
|
44
44
|
}): Promise<Project[]>;
|
|
45
45
|
getProject(projectRef: string): Promise<Project>;
|
|
46
|
-
listBranchFiles(projectRef: string,
|
|
47
|
-
listAllBranchFiles(projectRef: string,
|
|
48
|
-
getBranchFile(projectRef: string,
|
|
46
|
+
listBranchFiles(projectRef: string, branchRef?: string, options?: ListFilesOptions): Promise<FileListResult>;
|
|
47
|
+
listAllBranchFiles(projectRef: string, branchRef?: string, options?: Omit<ListFilesOptions, "cursor">): Promise<ProjectFile[]>;
|
|
48
|
+
getBranchFile(projectRef: string, branchRef: string, pathOrId: string): Promise<FileDetail>;
|
|
49
49
|
listEnvironmentFiles(projectRef: string, environmentName?: string, options?: ListFilesOptions): Promise<FileListResult>;
|
|
50
50
|
listAllEnvironmentFiles(projectRef: string, environmentName?: string, options?: Omit<ListFilesOptions, "cursor">): Promise<ProjectFile[]>;
|
|
51
51
|
getEnvironmentFile(projectRef: string, environmentName: string, pathOrId: string): Promise<FileDetail>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/adapters/veryfront-api-client/operations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAOL,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,WAAW,EAGjB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AA6CD,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS,CAAC;IANpB,OAAO,CAAC,aAAa,CAAgB;gBAG3B,UAAU,EAAE,MAAM,EAC1B,eAAe,EAAE,MAAM,GAAG,aAAa,EAC/B,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,MAAM,YAAA;IAO5B,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI/C,QAAQ,IAAI,MAAM;IAIlB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC,YAAY,IAAI,MAAM;IAQhB,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAYhB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhD,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/adapters/veryfront-api-client/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,10 +88,11 @@ export class VeryfrontAPIOperations {
|
|
|
88
88
|
const raw = await this.request(`/projects/${encodeURIComponent(projectRef)}`);
|
|
89
89
|
return ProjectSchema.parse(raw);
|
|
90
90
|
}
|
|
91
|
-
async listBranchFiles(projectRef,
|
|
91
|
+
async listBranchFiles(projectRef, branchRef = "main", options = {}) {
|
|
92
92
|
const params = buildListParams(options);
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
params.set("branch", branchRef);
|
|
94
|
+
const url = `/projects/${encodeURIComponent(projectRef)}/files?${params}`;
|
|
95
|
+
logger.debug("listBranchFiles", { projectRef, branchRef, pattern: options.pattern });
|
|
95
96
|
const raw = await this.request(url);
|
|
96
97
|
const response = ListBranchFilesResponseSchema.parse(raw);
|
|
97
98
|
return {
|
|
@@ -99,23 +100,24 @@ export class VeryfrontAPIOperations {
|
|
|
99
100
|
page_info: response.page_info,
|
|
100
101
|
};
|
|
101
102
|
}
|
|
102
|
-
async listAllBranchFiles(projectRef,
|
|
103
|
-
const allFiles = await listAllFiles((cursor) => this.listBranchFiles(projectRef,
|
|
103
|
+
async listAllBranchFiles(projectRef, branchRef = "main", options = {}) {
|
|
104
|
+
const allFiles = await listAllFiles((cursor) => this.listBranchFiles(projectRef, branchRef, {
|
|
104
105
|
...options,
|
|
105
106
|
cursor,
|
|
106
107
|
limit: DEFAULT_PAGE_LIMIT,
|
|
107
108
|
}));
|
|
108
109
|
logger.debug("listAllBranchFiles DONE", {
|
|
109
110
|
projectRef,
|
|
110
|
-
|
|
111
|
+
branchRef,
|
|
111
112
|
totalFiles: allFiles.length,
|
|
112
113
|
});
|
|
113
114
|
return allFiles;
|
|
114
115
|
}
|
|
115
|
-
getBranchFile(projectRef,
|
|
116
|
+
getBranchFile(projectRef, branchRef, pathOrId) {
|
|
116
117
|
return withSpan(SpanNames.API_GET_FILE, async () => {
|
|
117
|
-
const
|
|
118
|
-
|
|
118
|
+
const params = new URLSearchParams({ branch: branchRef });
|
|
119
|
+
const url = `/projects/${encodeURIComponent(projectRef)}/files/${encodeURIComponent(pathOrId)}?${params}`;
|
|
120
|
+
logger.debug("getBranchFile", { projectRef, branchRef, pathOrId });
|
|
119
121
|
const raw = await this.request(url);
|
|
120
122
|
const response = BranchFileDetailSchema.parse(raw);
|
|
121
123
|
return {
|
|
@@ -128,7 +130,7 @@ export class VeryfrontAPIOperations {
|
|
|
128
130
|
}, {
|
|
129
131
|
"api.operation": "getBranchFile",
|
|
130
132
|
"api.project": projectRef,
|
|
131
|
-
"api.branch":
|
|
133
|
+
"api.branch": branchRef,
|
|
132
134
|
"api.path": pathOrId,
|
|
133
135
|
});
|
|
134
136
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as dntShim from "../../../../_dnt.shims.js";
|
|
1
2
|
export interface RetryConfig {
|
|
2
3
|
maxRetries: number;
|
|
3
4
|
initialDelay: number;
|
|
@@ -7,6 +8,9 @@ export interface RequestOptions {
|
|
|
7
8
|
returnText?: boolean;
|
|
8
9
|
/** Request timeout in milliseconds. Defaults to 30000ms (30 seconds). */
|
|
9
10
|
timeoutMs?: number;
|
|
11
|
+
method?: string;
|
|
12
|
+
body?: dntShim.BodyInit | null;
|
|
13
|
+
headers?: dntShim.HeadersInit;
|
|
10
14
|
}
|
|
11
15
|
export declare function requestWithRetry(url: string, apiToken: string, retryConfig: RetryConfig, options?: RequestOptions): Promise<unknown>;
|
|
12
16
|
//# sourceMappingURL=retry-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry-handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/adapters/veryfront-api-client/retry-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry-handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/platform/adapters/veryfront-api-client/retry-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAUrD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;CAC/B;AAKD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,CA4HlB"}
|
|
@@ -22,12 +22,18 @@ export async function requestWithRetry(url, apiToken, retryConfig, options = {})
|
|
|
22
22
|
try {
|
|
23
23
|
const result = await withSpan(SpanNames.HTTP_CLIENT_FETCH, async () => {
|
|
24
24
|
const startTime = performance.now();
|
|
25
|
-
const headers = new dntShim.Headers(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
const headers = new dntShim.Headers(options.headers);
|
|
26
|
+
headers.set("Authorization", `Bearer ${apiToken}`);
|
|
27
|
+
if (!headers.has("Content-Type")) {
|
|
28
|
+
headers.set("Content-Type", "application/json");
|
|
29
|
+
}
|
|
29
30
|
injectContext(headers);
|
|
30
|
-
const response = await dntShim.fetch(url, {
|
|
31
|
+
const response = await dntShim.fetch(url, {
|
|
32
|
+
method: options.method ?? "GET",
|
|
33
|
+
headers,
|
|
34
|
+
body: options.body,
|
|
35
|
+
signal: controller.signal,
|
|
36
|
+
});
|
|
31
37
|
const duration = performance.now() - startTime;
|
|
32
38
|
recordApiRequest(response.status);
|
|
33
39
|
apiLog.debug("Request completed", {
|
|
@@ -55,7 +61,7 @@ export async function requestWithRetry(url, apiToken, retryConfig, options = {})
|
|
|
55
61
|
const data = options.returnText ? await response.text() : await response.json();
|
|
56
62
|
return { data, status: response.status, duration };
|
|
57
63
|
}, {
|
|
58
|
-
"http.method": "GET",
|
|
64
|
+
"http.method": options.method ?? "GET",
|
|
59
65
|
"http.url": url,
|
|
60
66
|
"http.target": urlPath,
|
|
61
67
|
"http.host": urlObj.host,
|
|
@@ -3379,13 +3379,13 @@ export declare const API_ENDPOINTS: {
|
|
|
3379
3379
|
};
|
|
3380
3380
|
readonly listBranchFiles: {
|
|
3381
3381
|
readonly method: "GET";
|
|
3382
|
-
readonly path: "/projects/{projectRef}/
|
|
3383
|
-
readonly description: "List files
|
|
3382
|
+
readonly path: "/projects/{projectRef}/files?branch={branchRef}";
|
|
3383
|
+
readonly description: "List files for a branch ref or name (omit branch for main branch)";
|
|
3384
3384
|
};
|
|
3385
3385
|
readonly getBranchFile: {
|
|
3386
3386
|
readonly method: "GET";
|
|
3387
|
-
readonly path: "/projects/{projectRef}/
|
|
3388
|
-
readonly description: "Get file from a branch by path or UUID";
|
|
3387
|
+
readonly path: "/projects/{projectRef}/files/{pathOrId}?branch={branchRef}";
|
|
3388
|
+
readonly description: "Get file from a branch ref or name by path or UUID";
|
|
3389
3389
|
};
|
|
3390
3390
|
readonly listEnvironmentFiles: {
|
|
3391
3391
|
readonly method: "GET";
|
|
@@ -135,13 +135,13 @@ export const API_ENDPOINTS = {
|
|
|
135
135
|
},
|
|
136
136
|
listBranchFiles: {
|
|
137
137
|
method: "GET",
|
|
138
|
-
path: "/projects/{projectRef}/
|
|
139
|
-
description: "List files
|
|
138
|
+
path: "/projects/{projectRef}/files?branch={branchRef}",
|
|
139
|
+
description: "List files for a branch ref or name (omit branch for main branch)",
|
|
140
140
|
},
|
|
141
141
|
getBranchFile: {
|
|
142
142
|
method: "GET",
|
|
143
|
-
path: "/projects/{projectRef}/
|
|
144
|
-
description: "Get file from a branch by path or UUID",
|
|
143
|
+
path: "/projects/{projectRef}/files/{pathOrId}?branch={branchRef}",
|
|
144
|
+
description: "Get file from a branch ref or name by path or UUID",
|
|
145
145
|
},
|
|
146
146
|
listEnvironmentFiles: {
|
|
147
147
|
method: "GET",
|
|
@@ -15,5 +15,6 @@ export { lookup as lookupMimeType } from "./compat/media-types.js";
|
|
|
15
15
|
export { createKVStore, MemoryKv } from "./compat/kv/index.js";
|
|
16
16
|
export { isDeno } from "./compat/runtime.js";
|
|
17
17
|
export { createFSAdapter, VeryfrontFSAdapter } from "./adapters/fs/index.js";
|
|
18
|
+
export { enhanceAdapterWithFS, isExtendedFSAdapter } from "./adapters/fs/index.js";
|
|
18
19
|
export { VeryfrontApiClient } from "./adapters/veryfront-api-client/index.js";
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/platform/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,KAAK,UAAU,EACf,KAAK,EACL,OAAO,EACP,YAAY,EACZ,MAAM,EACN,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/platform/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,KAAK,UAAU,EACf,KAAK,EACL,OAAO,EACP,YAAY,EACZ,MAAM,EACN,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC"}
|
|
@@ -22,5 +22,6 @@ export { createKVStore, MemoryKv } from "./compat/kv/index.js";
|
|
|
22
22
|
export { isDeno } from "./compat/runtime.js";
|
|
23
23
|
// Adapters: filesystem
|
|
24
24
|
export { createFSAdapter, VeryfrontFSAdapter } from "./adapters/fs/index.js";
|
|
25
|
+
export { enhanceAdapterWithFS, isExtendedFSAdapter } from "./adapters/fs/index.js";
|
|
25
26
|
// Adapters: API client
|
|
26
27
|
export { VeryfrontApiClient } from "./adapters/veryfront-api-client/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,eAAO,MAAM,sBAAsB,0MAYzB,CAAC;AA6EX,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA4CD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;0BA6K1B,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,YAAY,CAAC;0BA+NvC,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;0BAjVrD,MAAM,EAAE;;EA+XpC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAwB7F"}
|
package/esm/src/proxy/handler.js
CHANGED
|
@@ -2,10 +2,11 @@ import * as dntShim from "../../_dnt.shims.js";
|
|
|
2
2
|
import { TokenManager } from "./token-manager.js";
|
|
3
3
|
import { parseProjectDomain } from "../server/utils/domain-parser.js";
|
|
4
4
|
import { createFileSystem } from "../platform/compat/fs.js";
|
|
5
|
-
import { cwd } from "../platform/compat/process.js";
|
|
5
|
+
import { cwd, getEnv } from "../platform/compat/process.js";
|
|
6
6
|
import { join } from "../platform/compat/path/index.js";
|
|
7
7
|
import { injectContext, ProxySpanNames, withSpan } from "./tracing.js";
|
|
8
8
|
import { computeContentSourceId } from "../cache/keys.js";
|
|
9
|
+
import { jwtVerify } from "jose";
|
|
9
10
|
export const INTERNAL_PROXY_HEADERS = [
|
|
10
11
|
"x-token",
|
|
11
12
|
"x-project-slug",
|
|
@@ -69,23 +70,23 @@ function extractUserToken(cookieHeader) {
|
|
|
69
70
|
const match = cookieHeader.match(/(?:^|;\s*)authToken=([^;]+)/);
|
|
70
71
|
return match?.[1] ? decodeURIComponent(match[1]) : undefined;
|
|
71
72
|
}
|
|
72
|
-
function extractUserIdFromToken(token) {
|
|
73
|
+
async function extractUserIdFromToken(token, log) {
|
|
74
|
+
const jwtSecret = getEnv("JWT_SECRET");
|
|
75
|
+
if (!jwtSecret) {
|
|
76
|
+
log?.warn("JWT_SECRET not configured — cannot verify user token");
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
73
79
|
try {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const remainder = base64.length % 4;
|
|
80
|
-
if (remainder === 2)
|
|
81
|
-
base64 += "==";
|
|
82
|
-
else if (remainder === 3)
|
|
83
|
-
base64 += "=";
|
|
84
|
-
const decoded = JSON.parse(atob(base64));
|
|
85
|
-
return decoded?.userId;
|
|
80
|
+
const secret = new TextEncoder().encode(jwtSecret);
|
|
81
|
+
const { payload } = await jwtVerify(token, secret, {
|
|
82
|
+
algorithms: ["HS256"],
|
|
83
|
+
});
|
|
84
|
+
return payload.userId;
|
|
86
85
|
}
|
|
87
|
-
catch (
|
|
88
|
-
|
|
86
|
+
catch (error) {
|
|
87
|
+
log?.debug("JWT verification failed", {
|
|
88
|
+
error: error instanceof Error ? error.message : String(error),
|
|
89
|
+
});
|
|
89
90
|
return undefined;
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -171,7 +172,7 @@ export function createProxyHandler(options) {
|
|
|
171
172
|
const returnPath = safePath + url.search;
|
|
172
173
|
return `https://veryfront.com/sign-in?from=${encodeURIComponent(returnPath)}`;
|
|
173
174
|
}
|
|
174
|
-
function checkProtectedAccess(req, matchingEnv, userToken, users, logContext) {
|
|
175
|
+
async function checkProtectedAccess(req, matchingEnv, userToken, users, logContext) {
|
|
175
176
|
if (!matchingEnv?.protected)
|
|
176
177
|
return null;
|
|
177
178
|
if (!userToken) {
|
|
@@ -183,9 +184,8 @@ export function createProxyHandler(options) {
|
|
|
183
184
|
});
|
|
184
185
|
return { status: 302, message: "Authentication required", redirectUrl };
|
|
185
186
|
}
|
|
186
|
-
const userId = extractUserIdFromToken(userToken);
|
|
187
|
+
const userId = await extractUserIdFromToken(userToken, logger);
|
|
187
188
|
if (!userId) {
|
|
188
|
-
// Malformed token — treat as unauthenticated so user can re-sign-in
|
|
189
189
|
const redirectUrl = makeAuthRedirectUrl(req);
|
|
190
190
|
logger?.info("Could not extract userId from token", {
|
|
191
191
|
...logContext,
|
|
@@ -209,7 +209,7 @@ export function createProxyHandler(options) {
|
|
|
209
209
|
if (!lookupResult)
|
|
210
210
|
return { projectId: undefined, releaseId: undefined };
|
|
211
211
|
const matchingEnv = lookupResult.environments?.find(envMatcher);
|
|
212
|
-
const protectionError = checkProtectedAccess(req, matchingEnv, userToken, lookupResult.users, logContext);
|
|
212
|
+
const protectionError = await checkProtectedAccess(req, matchingEnv, userToken, lookupResult.users, logContext);
|
|
213
213
|
if (protectionError)
|
|
214
214
|
return { error: protectionError };
|
|
215
215
|
return {
|
|
@@ -293,7 +293,7 @@ export function createProxyHandler(options) {
|
|
|
293
293
|
const matchingEnv = lookupResult.environments?.find((env) => env.domains?.some((d) => d.toLowerCase() === normalizedHost));
|
|
294
294
|
releaseId = matchingEnv?.active_release_id ?? undefined;
|
|
295
295
|
environmentId = matchingEnv?.id;
|
|
296
|
-
const protectionError = checkProtectedAccess(req, matchingEnv, userToken, lookupResult.users, { domain: host });
|
|
296
|
+
const protectionError = await checkProtectedAccess(req, matchingEnv, userToken, lookupResult.users, { domain: host });
|
|
297
297
|
if (protectionError) {
|
|
298
298
|
return makeErrorContext(base, protectionError.status, protectionError.message, token, protectionError.redirectUrl);
|
|
299
299
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-executor.d.ts","sourceRoot":"","sources":["../../../../src/src/routing/api/route-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"route-executor.d.ts","sourceRoot":"","sources":["../../../../src/src/routing/api/route-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,QAAQ,EAKT,MAAM,0BAA0B,CAAC;AAgUlC,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CA6C3B;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAuC3B"}
|
|
@@ -8,6 +8,7 @@ import { errorToRFC9457Response } from "../../errors/middleware/http-error-bound
|
|
|
8
8
|
import { serverLogger as logger } from "../../utils/index.js";
|
|
9
9
|
import { isDevelopment as isDevelopmentEnv } from "../../build/config/environment.js";
|
|
10
10
|
import { getWorkerPool, isWorkerIsolationEnabled, } from "../../security/sandbox/worker-pool.js";
|
|
11
|
+
import { MAX_WORKER_BODY_BYTES, } from "../../security/sandbox/worker-types.js";
|
|
11
12
|
import { getProjectEnvSnapshot } from "../../server/project-env/storage.js";
|
|
12
13
|
function isDevelopment(adapter) {
|
|
13
14
|
const env = adapter.env.get("MODE") ??
|
|
@@ -85,13 +86,39 @@ function toHeadResponse(response) {
|
|
|
85
86
|
// ---------------------------------------------------------------------------
|
|
86
87
|
// Worker Isolation Helpers
|
|
87
88
|
// ---------------------------------------------------------------------------
|
|
89
|
+
function checkContentLengthLimit(request) {
|
|
90
|
+
const contentLength = request.headers.get("content-length");
|
|
91
|
+
if (!contentLength)
|
|
92
|
+
return;
|
|
93
|
+
const bytes = parseInt(contentLength, 10);
|
|
94
|
+
if (bytes > MAX_WORKER_BODY_BYTES) {
|
|
95
|
+
throw createError({
|
|
96
|
+
type: "api",
|
|
97
|
+
message: `Request body too large for isolated execution (${(bytes / 1024 / 1024).toFixed(1)} MB, limit ${MAX_WORKER_BODY_BYTES / 1024 / 1024} MB)`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async function readBodyWithSizeGuard(request) {
|
|
102
|
+
if (!request.body)
|
|
103
|
+
return null;
|
|
104
|
+
// Fast path: reject before buffering if Content-Length is known
|
|
105
|
+
checkContentLengthLimit(request);
|
|
106
|
+
const body = new Uint8Array(await request.arrayBuffer());
|
|
107
|
+
// Fallback: check actual size for chunked/streaming bodies
|
|
108
|
+
if (body.byteLength > MAX_WORKER_BODY_BYTES) {
|
|
109
|
+
throw createError({
|
|
110
|
+
type: "api",
|
|
111
|
+
message: `Request body too large for isolated execution (${(body.byteLength / 1024 / 1024).toFixed(1)} MB, limit ${MAX_WORKER_BODY_BYTES / 1024 / 1024} MB)`,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return body;
|
|
115
|
+
}
|
|
88
116
|
async function serializeRequest(request) {
|
|
89
|
-
const body = request.body ? new Uint8Array(await request.arrayBuffer()) : null;
|
|
90
117
|
return {
|
|
91
118
|
url: request.url,
|
|
92
119
|
method: request.method,
|
|
93
120
|
headers: [...request.headers.entries()],
|
|
94
|
-
body,
|
|
121
|
+
body: await readBodyWithSizeGuard(request),
|
|
95
122
|
};
|
|
96
123
|
}
|
|
97
124
|
function deserializeResponse(s) {
|
|
@@ -165,7 +192,7 @@ function executePagesRouteIsolated(modulePath, request, match, pathname, adapter
|
|
|
165
192
|
return withSpan("api.executePagesRoute.isolated", async () => {
|
|
166
193
|
try {
|
|
167
194
|
const pool = getWorkerPool();
|
|
168
|
-
const body =
|
|
195
|
+
const body = await readBodyWithSizeGuard(request);
|
|
169
196
|
const workerResponse = await pool.execute(projectDir, [projectDir], {
|
|
170
197
|
type: "execute-pages-route",
|
|
171
198
|
id: dntShim.crypto.randomUUID(),
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* SERVER — CLI server (dev, production, proxy, MCP, split-mode).
|
|
11
11
|
* Also used by build and test tasks that need equivalent access.
|
|
12
12
|
*/
|
|
13
|
-
export declare const SERVER_PERMISSIONS: readonly ["--allow-read", "--allow-write", "--allow-net", "--allow-env", "--allow-run", "--allow-
|
|
13
|
+
export declare const SERVER_PERMISSIONS: readonly ["--allow-read", "--allow-write", "--allow-net", "--allow-env", "--allow-run", "--allow-sys", "--unstable-worker-options", "--unstable-net"];
|
|
14
14
|
/**
|
|
15
15
|
* WORKFLOW_JOB — `ProcessJobExecutor` (RESTRICTED).
|
|
16
16
|
* Runs user-authored code — no `--allow-run`, `--allow-ffi`, or `--allow-sys`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deno-permissions.d.ts","sourceRoot":"","sources":["../../../src/src/security/deno-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"deno-permissions.d.ts","sourceRoot":"","sources":["../../../src/src/security/deno-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,uJASrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,0EAK3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,2DAI3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,yDAI5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-worker.d.ts","sourceRoot":"","sources":["../../../../src/src/security/sandbox/project-worker.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAGf,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-worker.d.ts","sourceRoot":"","sources":["../../../../src/src/security/sandbox/project-worker.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAW3B,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAcD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAEtE,qBAAa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,oBAAoB;IAMzC,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IA+Bb;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAqCxD;;;;;;;OAOG;IACH,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC;IA+FjE;;OAEG;IACG,SAAS,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BpD;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAKxB;;OAEG;IACH,SAAS,IAAI,IAAI;IAuBjB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,aAAa;IA+CrB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,gBAAgB;CAazB"}
|
|
@@ -13,6 +13,7 @@ import { isCompiledBinary } from "../../utils/index.js";
|
|
|
13
13
|
import { withSpan } from "../../observability/tracing/otlp-setup.js";
|
|
14
14
|
import { TIMEOUT_ERROR, UNKNOWN_ERROR } from "../../errors/index.js";
|
|
15
15
|
const logger = serverLogger.component("project-worker");
|
|
16
|
+
const textEncoder = new TextEncoder();
|
|
16
17
|
export class ProjectWorker {
|
|
17
18
|
projectId;
|
|
18
19
|
worker = null;
|
|
@@ -112,7 +113,6 @@ export class ProjectWorker {
|
|
|
112
113
|
this._lastActivityAt = Date.now();
|
|
113
114
|
this._status = "busy";
|
|
114
115
|
const requestId = request.id;
|
|
115
|
-
const encoder = new TextEncoder();
|
|
116
116
|
return new ReadableStream({
|
|
117
117
|
start: (controller) => {
|
|
118
118
|
let timer = dntShim.setTimeout(() => {
|
|
@@ -164,7 +164,7 @@ export class ProjectWorker {
|
|
|
164
164
|
this.updateIdleStatus();
|
|
165
165
|
// If we get an ssr-result, emit it as a single chunk
|
|
166
166
|
if (response.type === "ssr-result") {
|
|
167
|
-
controller.enqueue(
|
|
167
|
+
controller.enqueue(textEncoder.encode(response.html));
|
|
168
168
|
controller.close();
|
|
169
169
|
}
|
|
170
170
|
else if (response.type === "error") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-permissions.d.ts","sourceRoot":"","sources":["../../../../src/src/security/sandbox/worker-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"worker-permissions.d.ts","sourceRoot":"","sources":["../../../../src/src/security/sandbox/worker-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EAAE,GAClB,iBAAiB,CA0BnB"}
|