@proofhound/core 0.1.12 → 0.1.14
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/server/channels/mcp/dataset-import.tools.d.ts.map +1 -1
- package/dist/server/channels/mcp/dataset-import.tools.js +33 -0
- package/dist/server/channels/mcp/dataset-import.tools.js.map +1 -1
- package/dist/server/common/contracts/object-storage.provider.d.ts +2 -0
- package/dist/server/common/contracts/object-storage.provider.d.ts.map +1 -1
- package/dist/server/common/contracts/object-storage.provider.js +4 -0
- package/dist/server/common/contracts/object-storage.provider.js.map +1 -1
- package/dist/server/common/contracts/quota-policy.hook.d.ts +1 -1
- package/dist/server/common/contracts/quota-policy.hook.d.ts.map +1 -1
- package/dist/server/common/contracts/quota-policy.hook.js.map +1 -1
- package/dist/server/modules/annotation/annotation.controller.d.ts +3 -3
- package/dist/server/modules/annotation/annotation.module.d.ts.map +1 -1
- package/dist/server/modules/annotation/annotation.module.js +2 -1
- package/dist/server/modules/annotation/annotation.module.js.map +1 -1
- package/dist/server/modules/annotation/annotation.repository.d.ts +4 -1
- package/dist/server/modules/annotation/annotation.repository.d.ts.map +1 -1
- package/dist/server/modules/annotation/annotation.repository.js +31 -6
- package/dist/server/modules/annotation/annotation.repository.js.map +1 -1
- package/dist/server/modules/canary-release/canary-release.module.d.ts.map +1 -1
- package/dist/server/modules/canary-release/canary-release.module.js +2 -1
- package/dist/server/modules/canary-release/canary-release.module.js.map +1 -1
- package/dist/server/modules/canary-release/canary-release.repository.d.ts +4 -1
- package/dist/server/modules/canary-release/canary-release.repository.d.ts.map +1 -1
- package/dist/server/modules/canary-release/canary-release.repository.js +29 -4
- package/dist/server/modules/canary-release/canary-release.repository.js.map +1 -1
- package/dist/server/modules/dataset/dataset-import-raw-parser.d.ts +7 -0
- package/dist/server/modules/dataset/dataset-import-raw-parser.d.ts.map +1 -0
- package/dist/server/modules/dataset/dataset-import-raw-parser.js +104 -0
- package/dist/server/modules/dataset/dataset-import-raw-parser.js.map +1 -0
- package/dist/server/modules/dataset/dataset-import.controller.d.ts +31 -0
- package/dist/server/modules/dataset/dataset-import.controller.d.ts.map +1 -1
- package/dist/server/modules/dataset/dataset-import.controller.js +27 -0
- package/dist/server/modules/dataset/dataset-import.controller.js.map +1 -1
- package/dist/server/modules/dataset/dataset-import.repository.d.ts +15 -2
- package/dist/server/modules/dataset/dataset-import.repository.d.ts.map +1 -1
- package/dist/server/modules/dataset/dataset-import.repository.js +59 -12
- package/dist/server/modules/dataset/dataset-import.repository.js.map +1 -1
- package/dist/server/modules/dataset/dataset-import.service.d.ts +15 -2
- package/dist/server/modules/dataset/dataset-import.service.d.ts.map +1 -1
- package/dist/server/modules/dataset/dataset-import.service.js +196 -9
- package/dist/server/modules/dataset/dataset-import.service.js.map +1 -1
- package/dist/server/modules/dataset/dataset-sample-offload.d.ts +36 -0
- package/dist/server/modules/dataset/dataset-sample-offload.d.ts.map +1 -0
- package/dist/server/modules/dataset/dataset-sample-offload.js +41 -0
- package/dist/server/modules/dataset/dataset-sample-offload.js.map +1 -0
- package/dist/server/modules/dataset/dataset-sample-payload.d.ts +21 -0
- package/dist/server/modules/dataset/dataset-sample-payload.d.ts.map +1 -0
- package/dist/server/modules/dataset/dataset-sample-payload.js +72 -0
- package/dist/server/modules/dataset/dataset-sample-payload.js.map +1 -0
- package/dist/server/modules/dataset/dataset-sample-projection.d.ts +11 -0
- package/dist/server/modules/dataset/dataset-sample-projection.d.ts.map +1 -0
- package/dist/server/modules/dataset/dataset-sample-projection.js +49 -0
- package/dist/server/modules/dataset/dataset-sample-projection.js.map +1 -0
- package/dist/server/modules/dataset/dataset.module.d.ts.map +1 -1
- package/dist/server/modules/dataset/dataset.module.js +2 -0
- package/dist/server/modules/dataset/dataset.module.js.map +1 -1
- package/dist/server/modules/dataset/dataset.repository.d.ts +6 -1
- package/dist/server/modules/dataset/dataset.repository.d.ts.map +1 -1
- package/dist/server/modules/dataset/dataset.repository.js +59 -12
- package/dist/server/modules/dataset/dataset.repository.js.map +1 -1
- package/dist/server/modules/dataset/dataset.service.d.ts +2 -0
- package/dist/server/modules/dataset/dataset.service.d.ts.map +1 -1
- package/dist/server/modules/dataset/dataset.service.js +12 -0
- package/dist/server/modules/dataset/dataset.service.js.map +1 -1
- package/dist/server/modules/experiment/experiment.module.d.ts.map +1 -1
- package/dist/server/modules/experiment/experiment.module.js +2 -0
- package/dist/server/modules/experiment/experiment.module.js.map +1 -1
- package/dist/server/modules/experiment/experiment.workflow.d.ts +7 -1
- package/dist/server/modules/experiment/experiment.workflow.d.ts.map +1 -1
- package/dist/server/modules/experiment/experiment.workflow.js +33 -4
- package/dist/server/modules/experiment/experiment.workflow.js.map +1 -1
- package/dist/server/modules/optimization/optimization.module.d.ts.map +1 -1
- package/dist/server/modules/optimization/optimization.module.js +2 -0
- package/dist/server/modules/optimization/optimization.module.js.map +1 -1
- package/dist/server/modules/optimization/optimization.repository.d.ts +5 -1
- package/dist/server/modules/optimization/optimization.repository.d.ts.map +1 -1
- package/dist/server/modules/optimization/optimization.repository.js +30 -8
- package/dist/server/modules/optimization/optimization.repository.js.map +1 -1
- package/dist/server/modules/run-result/run-result-compaction-sweeper.d.ts +15 -0
- package/dist/server/modules/run-result/run-result-compaction-sweeper.d.ts.map +1 -0
- package/dist/server/modules/run-result/run-result-compaction-sweeper.js +74 -0
- package/dist/server/modules/run-result/run-result-compaction-sweeper.js.map +1 -0
- package/dist/server/modules/run-result/run-result-compaction.d.ts +38 -0
- package/dist/server/modules/run-result/run-result-compaction.d.ts.map +1 -0
- package/dist/server/modules/run-result/run-result-compaction.js +74 -0
- package/dist/server/modules/run-result/run-result-compaction.js.map +1 -0
- package/dist/server/modules/run-result/run-result-compactor.d.ts +58 -0
- package/dist/server/modules/run-result/run-result-compactor.d.ts.map +1 -0
- package/dist/server/modules/run-result/run-result-compactor.js +188 -0
- package/dist/server/modules/run-result/run-result-compactor.js.map +1 -0
- package/dist/server/modules/run-result/run-result-payload.d.ts +30 -0
- package/dist/server/modules/run-result/run-result-payload.d.ts.map +1 -0
- package/dist/server/modules/run-result/run-result-payload.js +82 -0
- package/dist/server/modules/run-result/run-result-payload.js.map +1 -0
- package/dist/server/modules/run-result/run-result-payload.reader.d.ts +20 -0
- package/dist/server/modules/run-result/run-result-payload.reader.d.ts.map +1 -0
- package/dist/server/modules/run-result/run-result-payload.reader.js +99 -0
- package/dist/server/modules/run-result/run-result-payload.reader.js.map +1 -0
- package/dist/server/modules/run-result/run-result.controller.d.ts +4 -0
- package/dist/server/modules/run-result/run-result.controller.d.ts.map +1 -1
- package/dist/server/modules/run-result/run-result.module.d.ts.map +1 -1
- package/dist/server/modules/run-result/run-result.module.js +14 -2
- package/dist/server/modules/run-result/run-result.module.js.map +1 -1
- package/dist/server/modules/run-result/run-result.repository.d.ts +3 -1
- package/dist/server/modules/run-result/run-result.repository.d.ts.map +1 -1
- package/dist/server/modules/run-result/run-result.repository.js +63 -4
- package/dist/server/modules/run-result/run-result.repository.js.map +1 -1
- package/package.json +14 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset-import.service.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"dataset-import.service.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,10 @@ const common_1 = require("@nestjs/common");
|
|
|
16
16
|
const logger_1 = require("@proofhound/logger");
|
|
17
17
|
const access_control_1 = require("../../common/access-control");
|
|
18
18
|
const access_control_service_1 = require("../../common/contracts/access-control.service");
|
|
19
|
+
const object_storage_provider_1 = require("../../common/contracts/object-storage.provider");
|
|
19
20
|
const quota_policy_hook_1 = require("../../common/contracts/quota-policy.hook");
|
|
20
21
|
const dataset_field_schema_util_1 = require("./dataset-field-schema.util");
|
|
22
|
+
const dataset_import_raw_parser_1 = require("./dataset-import-raw-parser");
|
|
21
23
|
const dataset_import_repository_1 = require("./dataset-import.repository");
|
|
22
24
|
const dataset_service_1 = require("./dataset.service");
|
|
23
25
|
const TYPE_INFERENCE_SAMPLE_LIMIT = 500;
|
|
@@ -25,12 +27,18 @@ const DEFAULT_SWEEP_INTERVAL_MS = 60_000;
|
|
|
25
27
|
const DEFAULT_STALE_TIMEOUT_MS = 120_000;
|
|
26
28
|
const MIN_TICK_MS = 1_000;
|
|
27
29
|
const IMAGE_ROLES = new Set(['image', 'image_url', 'image_base64']);
|
|
30
|
+
const DEFAULT_DATASET_RAW_UPLOAD_MAX_BYTES = 2 * 1024 * 1024 * 1024;
|
|
31
|
+
const DEFAULT_RAW_UPLOAD_EXPIRES_IN_SECONDS = 60 * 60;
|
|
32
|
+
const RAW_IMPORT_BATCH_MAX_ROWS = 1000;
|
|
33
|
+
const RAW_IMPORT_BATCH_MAX_BYTES = 8 * 1024 * 1024;
|
|
34
|
+
const RAW_IMPORT_MAX_SAMPLE_BYTES = 8 * 1024 * 1024;
|
|
28
35
|
let DatasetImportService = class DatasetImportService {
|
|
29
|
-
constructor(repo, datasetService, accessControl, quotaPolicy) {
|
|
36
|
+
constructor(repo, datasetService, accessControl, quotaPolicy, storage) {
|
|
30
37
|
this.repo = repo;
|
|
31
38
|
this.datasetService = datasetService;
|
|
32
39
|
this.accessControl = accessControl;
|
|
33
40
|
this.quotaPolicy = quotaPolicy;
|
|
41
|
+
this.storage = storage;
|
|
34
42
|
this.logger = (0, logger_1.createLogger)('dataset-import.service', { service: 'server' });
|
|
35
43
|
this.sweepTimer = null;
|
|
36
44
|
this.sweeping = false;
|
|
@@ -48,6 +56,7 @@ let DatasetImportService = class DatasetImportService {
|
|
|
48
56
|
async createImport(projectId, dto, actor) {
|
|
49
57
|
await this.getWritableProject(projectId, actor);
|
|
50
58
|
this.assertConsistentMappings(dto);
|
|
59
|
+
this.assertUploadSizeWithinLimit(dto.sourceFile.fileSizeBytes);
|
|
51
60
|
if (await this.repo.isDatasetNameTaken(projectId, dto.name)) {
|
|
52
61
|
throw new common_1.ConflictException('dataset_name_taken');
|
|
53
62
|
}
|
|
@@ -60,9 +69,65 @@ let DatasetImportService = class DatasetImportService {
|
|
|
60
69
|
const row = await this.repo.createImport({ projectId, actorUserId: actor.sub, dto });
|
|
61
70
|
return this.toImportItem(row);
|
|
62
71
|
}
|
|
72
|
+
async getRawImportCapabilities(projectId, actor) {
|
|
73
|
+
await this.getAccessibleProject(projectId, actor);
|
|
74
|
+
return {
|
|
75
|
+
supported: this.storage.isEnabled() && this.storage.supportsClientUploadSessions(),
|
|
76
|
+
maxBytes: this.getRawUploadMaxBytes(),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async createRawImport(projectId, dto, actor) {
|
|
80
|
+
await this.getWritableProject(projectId, actor);
|
|
81
|
+
this.assertConsistentMappings(dto);
|
|
82
|
+
this.assertUploadSizeWithinLimit(dto.sourceFile.fileSizeBytes);
|
|
83
|
+
if (await this.repo.isDatasetNameTaken(projectId, dto.name)) {
|
|
84
|
+
throw new common_1.ConflictException('dataset_name_taken');
|
|
85
|
+
}
|
|
86
|
+
if (!this.storage.isEnabled() || !this.storage.supportsClientUploadSessions()) {
|
|
87
|
+
throw new common_1.ServiceUnavailableException('dataset_raw_upload_unavailable');
|
|
88
|
+
}
|
|
89
|
+
await this.quotaPolicy.assertCanStore({
|
|
90
|
+
actor: (0, access_control_1.toActorContext)(actor),
|
|
91
|
+
bytes: nonnegativeInteger(dto.sourceFile.fileSizeBytes),
|
|
92
|
+
project: { projectId, source: 'local' },
|
|
93
|
+
source: 'dataset_raw_import',
|
|
94
|
+
});
|
|
95
|
+
const importId = (0, node_crypto_1.randomUUID)();
|
|
96
|
+
const uploadSession = await this.storage.createUploadSession({
|
|
97
|
+
project: { projectId, source: 'local' },
|
|
98
|
+
resourceType: 'dataset_raw',
|
|
99
|
+
resourceId: importId,
|
|
100
|
+
name: this.getRawObjectName(dto),
|
|
101
|
+
}, {
|
|
102
|
+
contentType: dto.sourceFile.contentType,
|
|
103
|
+
maxBytes: Math.min(dto.sourceFile.fileSizeBytes, this.getRawUploadMaxBytes()),
|
|
104
|
+
expiresInSeconds: DEFAULT_RAW_UPLOAD_EXPIRES_IN_SECONDS,
|
|
105
|
+
});
|
|
106
|
+
if (!uploadSession) {
|
|
107
|
+
throw new common_1.ServiceUnavailableException('dataset_raw_upload_unavailable');
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
const row = await this.repo.createImport({
|
|
111
|
+
importId,
|
|
112
|
+
projectId,
|
|
113
|
+
actorUserId: actor.sub,
|
|
114
|
+
dto,
|
|
115
|
+
importMode: 'raw_object',
|
|
116
|
+
rawUploadSession: { sessionId: uploadSession.sessionId, expiresAt: uploadSession.expiresAt },
|
|
117
|
+
});
|
|
118
|
+
return { import: this.toImportItem(row), uploadSession, maxBytes: this.getRawUploadMaxBytes() };
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
await this.storage.abortUpload(uploadSession.sessionId).catch(() => undefined);
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
63
125
|
async appendBatch(projectId, importId, dto, actor) {
|
|
64
126
|
await this.getWritableProject(projectId, actor);
|
|
65
127
|
const session = await this.requireImporting(projectId, importId);
|
|
128
|
+
if (session.importMode !== 'batch') {
|
|
129
|
+
throw new common_1.ConflictException('dataset_import_batch_not_allowed');
|
|
130
|
+
}
|
|
66
131
|
// Reject gaps so the committed staging rows always form a contiguous [0, receivedRows) prefix.
|
|
67
132
|
if (dto.batchStartIndex > session.receivedRows) {
|
|
68
133
|
throw new common_1.BadRequestException({ message: 'dataset_import_batch_gap', receivedRows: session.receivedRows });
|
|
@@ -85,11 +150,16 @@ let DatasetImportService = class DatasetImportService {
|
|
|
85
150
|
async complete(projectId, importId, actor) {
|
|
86
151
|
await this.getWritableProject(projectId, actor);
|
|
87
152
|
const session = await this.requireImporting(projectId, importId);
|
|
88
|
-
|
|
89
|
-
const fieldSchema = (0, dataset_field_schema_util_1.buildDatasetFieldSchema)(this.toFieldMappings(session), sampleRows);
|
|
90
|
-
const hasImages = fieldSchema.some((field) => IMAGE_ROLES.has(field.role));
|
|
91
|
-
const datasetId = (0, node_crypto_1.randomUUID)();
|
|
153
|
+
let rawObjectRef = null;
|
|
92
154
|
try {
|
|
155
|
+
if (session.importMode === 'raw_object') {
|
|
156
|
+
rawObjectRef = await this.ensureRawObjectRef(projectId, session, actor);
|
|
157
|
+
await this.ingestRawObjectIntoStaging(projectId, session, actor, rawObjectRef);
|
|
158
|
+
}
|
|
159
|
+
const sampleRows = await this.repo.getSampleDataForInference(importId, TYPE_INFERENCE_SAMPLE_LIMIT);
|
|
160
|
+
const fieldSchema = (0, dataset_field_schema_util_1.buildDatasetFieldSchema)(this.toFieldMappings(session), sampleRows);
|
|
161
|
+
const hasImages = fieldSchema.some((field) => IMAGE_ROLES.has(field.role));
|
|
162
|
+
const datasetId = (0, node_crypto_1.randomUUID)();
|
|
93
163
|
const { sampleCount } = await this.repo.promote({
|
|
94
164
|
importId,
|
|
95
165
|
projectId,
|
|
@@ -108,10 +178,15 @@ let DatasetImportService = class DatasetImportService {
|
|
|
108
178
|
actorId: actor.sub,
|
|
109
179
|
sampleCount,
|
|
110
180
|
});
|
|
181
|
+
if (rawObjectRef)
|
|
182
|
+
await this.cleanupRawObjectRef(rawObjectRef, importId);
|
|
111
183
|
this.logger.info({ importId, datasetId, sampleCount }, 'dataset_import_completed');
|
|
112
184
|
return { dataset, sampleCount };
|
|
113
185
|
}
|
|
114
186
|
catch (error) {
|
|
187
|
+
if (session.importMode === 'raw_object') {
|
|
188
|
+
await this.cleanupRawImportResources({ ...session, rawObjectRef: rawObjectRef ?? session.rawObjectRef });
|
|
189
|
+
}
|
|
115
190
|
if (error instanceof dataset_import_repository_1.DatasetImportEmptyError)
|
|
116
191
|
throw new common_1.BadRequestException('dataset_import_empty');
|
|
117
192
|
if (error instanceof dataset_import_repository_1.DatasetNameTakenError)
|
|
@@ -122,7 +197,10 @@ let DatasetImportService = class DatasetImportService {
|
|
|
122
197
|
// Cancel an in-progress import: delete the session (staging rows cascade). Idempotent — missing session is a no-op.
|
|
123
198
|
async abort(projectId, importId, actor) {
|
|
124
199
|
await this.getWritableProject(projectId, actor);
|
|
200
|
+
const row = await this.repo.findImportById(projectId, importId);
|
|
125
201
|
await this.repo.deleteImport(projectId, importId);
|
|
202
|
+
if (row)
|
|
203
|
+
await this.cleanupRawImportResources(row);
|
|
126
204
|
}
|
|
127
205
|
async getImport(projectId, importId, actor) {
|
|
128
206
|
await this.getAccessibleProject(projectId, actor);
|
|
@@ -138,11 +216,16 @@ let DatasetImportService = class DatasetImportService {
|
|
|
138
216
|
this.sweeping = true;
|
|
139
217
|
try {
|
|
140
218
|
const threshold = new Date(Date.now() - this.getStaleTimeoutMs());
|
|
141
|
-
const
|
|
142
|
-
|
|
219
|
+
const staleImports = await this.repo.findStaleImports(threshold);
|
|
220
|
+
const ids = staleImports.map((row) => row.id);
|
|
221
|
+
if (ids.length === 0) {
|
|
222
|
+
await this.storage.sweepPendingUploads(threshold.toISOString()).catch(() => undefined);
|
|
143
223
|
return;
|
|
224
|
+
}
|
|
144
225
|
const deleted = await this.repo.deleteImportsByIds(ids);
|
|
145
|
-
|
|
226
|
+
await Promise.all(staleImports.map((row) => this.cleanupRawImportResources(row)));
|
|
227
|
+
const pendingUploads = await this.storage.sweepPendingUploads(threshold.toISOString()).catch(() => 0);
|
|
228
|
+
this.logger.info({ deleted, pendingUploads }, 'dataset_import_sweep_reaped');
|
|
146
229
|
}
|
|
147
230
|
catch (error) {
|
|
148
231
|
this.logger.error({ error: error.message }, 'dataset_import_sweep_failed');
|
|
@@ -191,11 +274,104 @@ let DatasetImportService = class DatasetImportService {
|
|
|
191
274
|
return null;
|
|
192
275
|
return String(value);
|
|
193
276
|
}
|
|
277
|
+
async ingestRawObjectIntoStaging(projectId, session, actor, rawObjectRef) {
|
|
278
|
+
const stream = await this.storage.getObjectStream(rawObjectRef);
|
|
279
|
+
const fieldMappings = this.toFieldMappings(session);
|
|
280
|
+
const externalIdField = this.externalIdFieldName(session);
|
|
281
|
+
let batch = [];
|
|
282
|
+
let batchBytes = jsonArrayBytesForEmptyBatch();
|
|
283
|
+
let rowIndex = 0;
|
|
284
|
+
const flush = async () => {
|
|
285
|
+
if (batch.length === 0)
|
|
286
|
+
return;
|
|
287
|
+
await this.quotaPolicy.assertCanStore({
|
|
288
|
+
actor: (0, access_control_1.toActorContext)(actor),
|
|
289
|
+
bytes: batchBytes,
|
|
290
|
+
project: { projectId, source: 'local' },
|
|
291
|
+
source: 'dataset_raw_import_batch',
|
|
292
|
+
});
|
|
293
|
+
await this.repo.appendBatch(session.id, batch, rowIndex);
|
|
294
|
+
batch = [];
|
|
295
|
+
batchBytes = jsonArrayBytesForEmptyBatch();
|
|
296
|
+
};
|
|
297
|
+
for await (const rawRow of (0, dataset_import_raw_parser_1.parseRawDatasetRows)(stream, session.sourceFormat)) {
|
|
298
|
+
if (batch.length >= RAW_IMPORT_BATCH_MAX_ROWS)
|
|
299
|
+
await flush();
|
|
300
|
+
const data = this.projectSample(rawRow, fieldMappings);
|
|
301
|
+
const sampleBytes = utf8JsonBytes(data);
|
|
302
|
+
if (sampleBytes > RAW_IMPORT_MAX_SAMPLE_BYTES)
|
|
303
|
+
throw new common_1.BadRequestException('dataset_import_sample_too_large');
|
|
304
|
+
let candidateBytes = jsonArrayBytesAfterAppend(batchBytes, batch.length, sampleBytes);
|
|
305
|
+
if (candidateBytes > RAW_IMPORT_BATCH_MAX_BYTES) {
|
|
306
|
+
if (batch.length === 0)
|
|
307
|
+
throw new common_1.BadRequestException('dataset_import_sample_too_large');
|
|
308
|
+
await flush();
|
|
309
|
+
candidateBytes = jsonArrayBytesAfterAppend(batchBytes, batch.length, sampleBytes);
|
|
310
|
+
if (candidateBytes > RAW_IMPORT_BATCH_MAX_BYTES) {
|
|
311
|
+
throw new common_1.BadRequestException('dataset_import_sample_too_large');
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
batch.push({ rowIndex, data, externalId: this.getExternalId(data, externalIdField) });
|
|
315
|
+
batchBytes = candidateBytes;
|
|
316
|
+
rowIndex += 1;
|
|
317
|
+
}
|
|
318
|
+
await flush();
|
|
319
|
+
return rawObjectRef;
|
|
320
|
+
}
|
|
321
|
+
async ensureRawObjectRef(projectId, session, actor) {
|
|
322
|
+
if (session.rawObjectRef) {
|
|
323
|
+
this.assertRawObjectWithinLimit(session.rawObjectRef);
|
|
324
|
+
return session.rawObjectRef;
|
|
325
|
+
}
|
|
326
|
+
if (!session.rawUploadSessionId)
|
|
327
|
+
throw new common_1.BadRequestException('dataset_raw_upload_missing_session');
|
|
328
|
+
const ref = await this.storage.completeUpload({
|
|
329
|
+
sessionId: session.rawUploadSessionId,
|
|
330
|
+
actor: (0, access_control_1.toActorContext)(actor),
|
|
331
|
+
project: { projectId, source: 'local' },
|
|
332
|
+
});
|
|
333
|
+
this.assertRawObjectWithinLimit(ref);
|
|
334
|
+
await this.repo.markRawObjectRef(projectId, session.id, ref);
|
|
335
|
+
return ref;
|
|
336
|
+
}
|
|
337
|
+
projectSample(sample, fieldMappings) {
|
|
338
|
+
return Object.fromEntries(fieldMappings.map((field) => [
|
|
339
|
+
field.name,
|
|
340
|
+
Object.prototype.hasOwnProperty.call(sample, field.name) ? sample[field.name] : null,
|
|
341
|
+
]));
|
|
342
|
+
}
|
|
343
|
+
assertRawObjectWithinLimit(ref) {
|
|
344
|
+
this.assertUploadSizeWithinLimit(ref.bytes);
|
|
345
|
+
}
|
|
346
|
+
assertUploadSizeWithinLimit(bytes) {
|
|
347
|
+
if (nonnegativeInteger(bytes) > this.getRawUploadMaxBytes()) {
|
|
348
|
+
throw new common_1.BadRequestException('dataset_raw_upload_too_large');
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
async cleanupRawImportResources(row) {
|
|
352
|
+
if (row.rawUploadSessionId) {
|
|
353
|
+
await this.storage.abortUpload(row.rawUploadSessionId).catch((error) => {
|
|
354
|
+
this.logger.warn({ importId: row.id, error: error.message }, 'dataset_raw_upload_abort_failed');
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
if (row.rawObjectRef) {
|
|
358
|
+
await this.cleanupRawObjectRef(row.rawObjectRef, row.id);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
async cleanupRawObjectRef(ref, importId) {
|
|
362
|
+
await this.storage.deleteObjects([ref]).catch((error) => {
|
|
363
|
+
this.logger.warn({ importId, key: ref.key, error: error.message }, 'dataset_raw_object_delete_failed');
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
getRawObjectName(dto) {
|
|
367
|
+
return `input.${dto.sourceFormat}`;
|
|
368
|
+
}
|
|
194
369
|
toImportItem(row) {
|
|
195
370
|
return {
|
|
196
371
|
id: row.id,
|
|
197
372
|
projectId: row.projectId,
|
|
198
373
|
datasetId: row.datasetId,
|
|
374
|
+
importMode: row.importMode === 'raw_object' ? 'raw_object' : 'batch',
|
|
199
375
|
name: row.name,
|
|
200
376
|
description: row.description,
|
|
201
377
|
fileName: row.fileName,
|
|
@@ -216,6 +392,10 @@ let DatasetImportService = class DatasetImportService {
|
|
|
216
392
|
const raw = Number(process.env['DATASET_IMPORT_STALE_TIMEOUT_MS']);
|
|
217
393
|
return Number.isFinite(raw) && raw >= MIN_TICK_MS ? Math.floor(raw) : DEFAULT_STALE_TIMEOUT_MS;
|
|
218
394
|
}
|
|
395
|
+
getRawUploadMaxBytes() {
|
|
396
|
+
const raw = Number(process.env['DATASET_RAW_UPLOAD_MAX_BYTES']);
|
|
397
|
+
return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : DEFAULT_DATASET_RAW_UPLOAD_MAX_BYTES;
|
|
398
|
+
}
|
|
219
399
|
};
|
|
220
400
|
exports.DatasetImportService = DatasetImportService;
|
|
221
401
|
exports.DatasetImportService = DatasetImportService = __decorate([
|
|
@@ -223,11 +403,18 @@ exports.DatasetImportService = DatasetImportService = __decorate([
|
|
|
223
403
|
__metadata("design:paramtypes", [dataset_import_repository_1.DatasetImportRepository,
|
|
224
404
|
dataset_service_1.DatasetService,
|
|
225
405
|
access_control_service_1.AccessControlService,
|
|
226
|
-
quota_policy_hook_1.QuotaPolicyHook
|
|
406
|
+
quota_policy_hook_1.QuotaPolicyHook,
|
|
407
|
+
object_storage_provider_1.ObjectStorageProvider])
|
|
227
408
|
], DatasetImportService);
|
|
228
409
|
function utf8JsonBytes(value) {
|
|
229
410
|
return node_buffer_1.Buffer.byteLength(JSON.stringify(value ?? null), 'utf8');
|
|
230
411
|
}
|
|
412
|
+
function jsonArrayBytesForEmptyBatch() {
|
|
413
|
+
return 2; // []
|
|
414
|
+
}
|
|
415
|
+
function jsonArrayBytesAfterAppend(currentArrayBytes, currentLength, nextItemBytes) {
|
|
416
|
+
return currentLength === 0 ? jsonArrayBytesForEmptyBatch() + nextItemBytes : currentArrayBytes + 1 + nextItemBytes;
|
|
417
|
+
}
|
|
231
418
|
function nonnegativeInteger(value) {
|
|
232
419
|
return Number.isFinite(value) ? Math.max(0, Math.trunc(value ?? 0)) : 0;
|
|
233
420
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset-import.service.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dataset-import.service.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-import.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
import type { DatasetFieldSchemaDto } from '@proofhound/shared';
|
|
3
|
+
import type { ObjectCodec, StoredObjectRef } from '../../common/contracts/object-storage.provider';
|
|
4
|
+
export interface StagingSample {
|
|
5
|
+
data: unknown;
|
|
6
|
+
externalId: string | null;
|
|
7
|
+
}
|
|
8
|
+
export interface DatasetSampleOffloadRow {
|
|
9
|
+
datasetId: string;
|
|
10
|
+
data: null;
|
|
11
|
+
externalId: string | null;
|
|
12
|
+
payloadRef: {
|
|
13
|
+
shard: StoredObjectRef;
|
|
14
|
+
rowIndex: number;
|
|
15
|
+
};
|
|
16
|
+
searchPreview: string | null;
|
|
17
|
+
expectedOutputScalar: string | null;
|
|
18
|
+
labelScalar: string | null;
|
|
19
|
+
categoryScalar: string | null;
|
|
20
|
+
indexValues: Record<string, string> | null;
|
|
21
|
+
}
|
|
22
|
+
export interface OffloadStagingOptions {
|
|
23
|
+
datasetId: string;
|
|
24
|
+
sampleCount: number;
|
|
25
|
+
batchSize: number;
|
|
26
|
+
fieldSchema: DatasetFieldSchemaDto[];
|
|
27
|
+
codec?: ObjectCodec;
|
|
28
|
+
readBatch: (offset: number, limit: number) => Promise<StagingSample[]>;
|
|
29
|
+
putShard: (name: string, body: Buffer) => Promise<StoredObjectRef>;
|
|
30
|
+
insertRows: (rows: DatasetSampleOffloadRow[]) => Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export declare function offloadStagingToShards(opts: OffloadStagingOptions): Promise<{
|
|
33
|
+
shards: number;
|
|
34
|
+
storagePrefix: string | null;
|
|
35
|
+
}>;
|
|
36
|
+
//# sourceMappingURL=dataset-sample-offload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-sample-offload.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-offload.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAInG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA2C3D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.offloadStagingToShards = offloadStagingToShards;
|
|
4
|
+
const run_result_payload_1 = require("../run-result/run-result-payload");
|
|
5
|
+
const dataset_sample_projection_1 = require("./dataset-sample-projection");
|
|
6
|
+
async function offloadStagingToShards(opts) {
|
|
7
|
+
const codec = opts.codec ?? 'gzip';
|
|
8
|
+
let shardSeq = 0;
|
|
9
|
+
let offset = 0;
|
|
10
|
+
let firstShardKey = null;
|
|
11
|
+
while (offset < opts.sampleCount) {
|
|
12
|
+
const batch = await opts.readBatch(offset, opts.batchSize);
|
|
13
|
+
if (batch.length === 0)
|
|
14
|
+
break;
|
|
15
|
+
const body = await (0, run_result_payload_1.encodeShard)(batch.map((row) => row.data), codec);
|
|
16
|
+
const shardRef = await opts.putShard(`shard-${String(shardSeq).padStart(5, '0')}.jsonl.gz`, body);
|
|
17
|
+
firstShardKey ??= shardRef.key;
|
|
18
|
+
await opts.insertRows(batch.map((row, rowIndex) => {
|
|
19
|
+
const data = (row.data ?? null);
|
|
20
|
+
const projection = (0, dataset_sample_projection_1.projectDatasetSample)(data, opts.fieldSchema);
|
|
21
|
+
return {
|
|
22
|
+
datasetId: opts.datasetId,
|
|
23
|
+
data: null,
|
|
24
|
+
externalId: row.externalId,
|
|
25
|
+
payloadRef: { shard: shardRef, rowIndex },
|
|
26
|
+
searchPreview: projection.searchPreview,
|
|
27
|
+
expectedOutputScalar: projection.expectedOutputScalar,
|
|
28
|
+
labelScalar: projection.labelScalar,
|
|
29
|
+
categoryScalar: projection.categoryScalar,
|
|
30
|
+
indexValues: projection.indexValues,
|
|
31
|
+
};
|
|
32
|
+
}));
|
|
33
|
+
offset += batch.length;
|
|
34
|
+
shardSeq += 1;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
shards: shardSeq,
|
|
38
|
+
storagePrefix: firstShardKey ? firstShardKey.slice(0, firstShardKey.lastIndexOf('/') + 1) : null,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=dataset-sample-offload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-sample-offload.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-offload.ts"],"names":[],"mappings":";;AAwCA,wDA6CC;AA5ED,yEAA+D;AAC/D,2EAAmE;AA8B5D,KAAK,UAAU,sBAAsB,CAC1C,IAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IACnC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,OAAO,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAE9B,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAW,EAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAC5B,KAAK,CACN,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClG,aAAa,KAAK,QAAQ,CAAC,GAAG,CAAC;QAE/B,MAAM,IAAI,CAAC,UAAU,CACnB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAmC,CAAC;YAClE,MAAM,UAAU,GAAG,IAAA,gDAAoB,EAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAChE,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBACzC,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;gBACrD,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,cAAc,EAAE,UAAU,CAAC,cAAc;gBACzC,WAAW,EAAE,UAAU,CAAC,WAAW;aACpC,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACvB,QAAQ,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KACjG,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ObjectStorageProvider, type StoredObjectRef } from '../../common/contracts/object-storage.provider';
|
|
2
|
+
/** Stored in `dataset_samples.payload_ref`: the shard holding this sample's data + its line. */
|
|
3
|
+
export interface DatasetSamplePayloadRef {
|
|
4
|
+
shard: StoredObjectRef;
|
|
5
|
+
rowIndex: number;
|
|
6
|
+
}
|
|
7
|
+
export interface DatasetSamplePayloadRow {
|
|
8
|
+
data: unknown;
|
|
9
|
+
payloadRef: DatasetSamplePayloadRef | null;
|
|
10
|
+
}
|
|
11
|
+
export declare class DatasetSamplePayloadReader {
|
|
12
|
+
private readonly storage;
|
|
13
|
+
constructor(storage: ObjectStorageProvider);
|
|
14
|
+
/** Resolve one sample's data: inline when present, else from its shard. */
|
|
15
|
+
hydrate(row: DatasetSamplePayloadRow): Promise<unknown>;
|
|
16
|
+
/** Batch: groups rows by shard so a 500-sample batch is one GET per shard, not one per sample. */
|
|
17
|
+
hydrateMany(rows: DatasetSamplePayloadRow[]): Promise<unknown[]>;
|
|
18
|
+
/** The ref to read from, or null when the inline value should be used (cache / no offload / disabled). */
|
|
19
|
+
private shardRef;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dataset-sample-payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-sample-payload.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-payload.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAG7G,gGAAgG;AAChG,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC5C;AAED,qBACa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,qBAAqB;IAE3D,2EAA2E;IACrE,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAO7D,kGAAkG;IAC5F,WAAW,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAqBtE,0GAA0G;IAC1G,OAAO,CAAC,QAAQ;CAIjB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DatasetSamplePayloadReader = void 0;
|
|
13
|
+
// DatasetSamplePayloadReader — the read seam for dataset-sample content (SPEC 22 §7.3).
|
|
14
|
+
//
|
|
15
|
+
// The worker hot paths (experiment rendering, optimization rounds) load a sample's full `data`. Once
|
|
16
|
+
// promote tiers it out, `data` is null and the authoritative content lives in an object-storage shard.
|
|
17
|
+
// This seam returns the inline value when present (a small-sample cache, or no offload), else reads
|
|
18
|
+
// the shard. Pure pass-through when storage is disabled / the row was never offloaded. It reuses the
|
|
19
|
+
// generic JSONL shard codec from the run-result seam (one data object per line).
|
|
20
|
+
const common_1 = require("@nestjs/common");
|
|
21
|
+
const object_storage_provider_1 = require("../../common/contracts/object-storage.provider");
|
|
22
|
+
const run_result_payload_1 = require("../run-result/run-result-payload");
|
|
23
|
+
let DatasetSamplePayloadReader = class DatasetSamplePayloadReader {
|
|
24
|
+
constructor(storage) {
|
|
25
|
+
this.storage = storage;
|
|
26
|
+
}
|
|
27
|
+
/** Resolve one sample's data: inline when present, else from its shard. */
|
|
28
|
+
async hydrate(row) {
|
|
29
|
+
const ref = this.shardRef(row);
|
|
30
|
+
if (!ref)
|
|
31
|
+
return row.data ?? null;
|
|
32
|
+
const lines = await (0, run_result_payload_1.decodeShard)(await this.storage.getObject(ref.shard), ref.shard.codec);
|
|
33
|
+
return lines[ref.rowIndex] ?? null;
|
|
34
|
+
}
|
|
35
|
+
/** Batch: groups rows by shard so a 500-sample batch is one GET per shard, not one per sample. */
|
|
36
|
+
async hydrateMany(rows) {
|
|
37
|
+
const out = rows.map((r) => r.data ?? null);
|
|
38
|
+
const byShard = new Map();
|
|
39
|
+
rows.forEach((row, index) => {
|
|
40
|
+
const ref = this.shardRef(row);
|
|
41
|
+
if (!ref)
|
|
42
|
+
return;
|
|
43
|
+
const key = shardKey(ref.shard);
|
|
44
|
+
const group = byShard.get(key);
|
|
45
|
+
if (group)
|
|
46
|
+
group.entries.push({ index, rowIndex: ref.rowIndex });
|
|
47
|
+
else
|
|
48
|
+
byShard.set(key, { shard: ref.shard, entries: [{ index, rowIndex: ref.rowIndex }] });
|
|
49
|
+
});
|
|
50
|
+
await Promise.all([...byShard.values()].map(async ({ shard, entries }) => {
|
|
51
|
+
const lines = await (0, run_result_payload_1.decodeShard)(await this.storage.getObject(shard), shard.codec);
|
|
52
|
+
for (const { index, rowIndex } of entries)
|
|
53
|
+
out[index] = lines[rowIndex] ?? null;
|
|
54
|
+
}));
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
/** The ref to read from, or null when the inline value should be used (cache / no offload / disabled). */
|
|
58
|
+
shardRef(row) {
|
|
59
|
+
if (row.data != null || row.payloadRef == null || !this.storage.isEnabled())
|
|
60
|
+
return null;
|
|
61
|
+
return row.payloadRef;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
exports.DatasetSamplePayloadReader = DatasetSamplePayloadReader;
|
|
65
|
+
exports.DatasetSamplePayloadReader = DatasetSamplePayloadReader = __decorate([
|
|
66
|
+
(0, common_1.Injectable)(),
|
|
67
|
+
__metadata("design:paramtypes", [object_storage_provider_1.ObjectStorageProvider])
|
|
68
|
+
], DatasetSamplePayloadReader);
|
|
69
|
+
function shardKey(ref) {
|
|
70
|
+
return `${ref.provider}:${ref.bucket ?? ''}:${ref.key}`;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=dataset-sample-payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-sample-payload.js","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DatasetFieldSchemaDto } from '@proofhound/shared';
|
|
2
|
+
export interface DatasetSampleProjection {
|
|
3
|
+
searchPreview: string | null;
|
|
4
|
+
expectedOutputScalar: string | null;
|
|
5
|
+
labelScalar: string | null;
|
|
6
|
+
categoryScalar: string | null;
|
|
7
|
+
indexValues: Record<string, string> | null;
|
|
8
|
+
}
|
|
9
|
+
/** Build the DB-side projection for one sample from its data + the dataset's field schema. */
|
|
10
|
+
export declare function projectDatasetSample(data: Record<string, unknown> | null, fieldSchema: DatasetFieldSchemaDto[]): DatasetSampleProjection;
|
|
11
|
+
//# sourceMappingURL=dataset-sample-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-sample-projection.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/dataset/dataset-sample-projection.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5C;AAoBD,8FAA8F;AAC9F,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACpC,WAAW,EAAE,qBAAqB,EAAE,GACnC,uBAAuB,CAwBzB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.projectDatasetSample = projectDatasetSample;
|
|
4
|
+
const PREVIEW_MAX = 1000;
|
|
5
|
+
const SCALAR_MAX = 200;
|
|
6
|
+
const IMAGE_ROLES = new Set(['image', 'image_url', 'image_base64']);
|
|
7
|
+
function asScalar(value) {
|
|
8
|
+
if (value === null || value === undefined)
|
|
9
|
+
return null;
|
|
10
|
+
if (typeof value === 'string')
|
|
11
|
+
return value.length > SCALAR_MAX ? null : value;
|
|
12
|
+
if (typeof value === 'number' || typeof value === 'boolean')
|
|
13
|
+
return String(value);
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
function previewOf(data) {
|
|
17
|
+
if (data === null || data === undefined)
|
|
18
|
+
return null;
|
|
19
|
+
const text = typeof data === 'string' ? data : JSON.stringify(data);
|
|
20
|
+
if (text.length === 0)
|
|
21
|
+
return null;
|
|
22
|
+
return text.length > PREVIEW_MAX ? text.slice(0, PREVIEW_MAX) : text;
|
|
23
|
+
}
|
|
24
|
+
/** Build the DB-side projection for one sample from its data + the dataset's field schema. */
|
|
25
|
+
function projectDatasetSample(data, fieldSchema) {
|
|
26
|
+
if (data === null) {
|
|
27
|
+
return { searchPreview: null, expectedOutputScalar: null, labelScalar: null, categoryScalar: null, indexValues: null };
|
|
28
|
+
}
|
|
29
|
+
const expectedField = fieldSchema.find((f) => f.role === 'expected_output')?.name;
|
|
30
|
+
const expectedOutputScalar = expectedField ? asScalar(data[expectedField]) : null;
|
|
31
|
+
// index_values: short scalar values of the non-image fields, so distribution / filter on any
|
|
32
|
+
// configurable field works off `index_values->>field` once `data` is offloaded.
|
|
33
|
+
const indexValues = {};
|
|
34
|
+
for (const field of fieldSchema) {
|
|
35
|
+
if (IMAGE_ROLES.has(field.role))
|
|
36
|
+
continue;
|
|
37
|
+
const scalar = asScalar(data[field.name]);
|
|
38
|
+
if (scalar !== null)
|
|
39
|
+
indexValues[field.name] = scalar;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
searchPreview: previewOf(data),
|
|
43
|
+
expectedOutputScalar,
|
|
44
|
+
labelScalar: null,
|
|
45
|
+
categoryScalar: null,
|
|
46
|
+
indexValues: Object.keys(indexValues).length > 0 ? indexValues : null,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=dataset-sample-projection.js.map
|