@superblocksteam/shared 0.9617.7 → 0.9618.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/appDatabaseImport.d.ts +42 -7
- package/dist/database-lifecycle/appDatabaseImport.d.ts.map +1 -1
- package/dist/database-lifecycle/appDatabaseImport.js +66 -5
- package/dist/database-lifecycle/appDatabaseImport.js.map +1 -1
- package/dist/database-lifecycle/appDatabaseImport.test.js +79 -0
- package/dist/database-lifecycle/appDatabaseImport.test.js.map +1 -1
- package/dist/database-lifecycle/appDatabaseStatus.d.ts +18 -0
- package/dist/database-lifecycle/appDatabaseStatus.d.ts.map +1 -1
- package/dist/database-lifecycle/appDatabaseStatus.js +21 -0
- package/dist/database-lifecycle/appDatabaseStatus.js.map +1 -1
- package/dist/database-lifecycle/appDatabaseStatus.test.js +11 -0
- package/dist/database-lifecycle/appDatabaseStatus.test.js.map +1 -1
- package/dist/database-lifecycle/dataImport.d.ts +45 -2
- package/dist/database-lifecycle/dataImport.d.ts.map +1 -1
- package/dist/database-lifecycle/dataImport.js +209 -3
- package/dist/database-lifecycle/dataImport.js.map +1 -1
- package/dist/database-lifecycle/dataImport.test.js +60 -0
- package/dist/database-lifecycle/dataImport.test.js.map +1 -1
- package/dist/database-lifecycle/importCompatibility.d.ts +40 -0
- package/dist/database-lifecycle/importCompatibility.d.ts.map +1 -0
- package/dist/database-lifecycle/importCompatibility.js +121 -0
- package/dist/database-lifecycle/importCompatibility.js.map +1 -0
- package/dist/database-lifecycle/importCompatibility.test.d.ts +2 -0
- package/dist/database-lifecycle/importCompatibility.test.d.ts.map +1 -0
- package/dist/database-lifecycle/importCompatibility.test.js +114 -0
- package/dist/database-lifecycle/importCompatibility.test.js.map +1 -0
- package/dist/database-lifecycle/index.d.ts +29 -5
- package/dist/database-lifecycle/index.d.ts.map +1 -1
- package/dist/database-lifecycle/index.js +18 -5
- package/dist/database-lifecycle/index.js.map +1 -1
- package/dist/database-lifecycle/index.test.js +4 -1
- package/dist/database-lifecycle/index.test.js.map +1 -1
- 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/types/audit/ocsf.d.ts +2 -1
- package/dist/types/audit/ocsf.d.ts.map +1 -1
- package/dist/types/audit/ocsf.js +8 -0
- package/dist/types/audit/ocsf.js.map +1 -1
- package/dist/types/codeSecurity/index.d.ts +2 -1
- package/dist/types/codeSecurity/index.d.ts.map +1 -1
- package/dist/types/codeSecurity/index.js +43 -5
- package/dist/types/codeSecurity/index.js.map +1 -1
- package/dist/types/codeSecurity/index.test.js +37 -3
- package/dist/types/codeSecurity/index.test.js.map +1 -1
- package/dist/types/datasource/auth.d.ts +1 -0
- package/dist/types/datasource/auth.d.ts.map +1 -1
- package/dist/types/datasource/auth.js +8 -2
- package/dist/types/datasource/auth.js.map +1 -1
- package/dist/types/datasource/auth.test.js +19 -1
- package/dist/types/datasource/auth.test.js.map +1 -1
- package/dist/types/integration/index.d.ts +16 -1
- package/dist/types/integration/index.d.ts.map +1 -1
- package/dist/types/integration/index.js +8 -1
- package/dist/types/integration/index.js.map +1 -1
- package/dist/types/rbac/index.d.ts +0 -5
- package/dist/types/rbac/index.d.ts.map +1 -1
- package/dist/types/rbac/index.js.map +1 -1
- package/dist/types/response/index.d.ts +0 -1
- package/dist/types/response/index.d.ts.map +1 -1
- package/dist/types/response/index.js +0 -1
- package/dist/types/response/index.js.map +1 -1
- package/dist-esm/database-lifecycle/appDatabaseImport.d.ts +42 -7
- package/dist-esm/database-lifecycle/appDatabaseImport.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/appDatabaseImport.js +65 -5
- package/dist-esm/database-lifecycle/appDatabaseImport.js.map +1 -1
- package/dist-esm/database-lifecycle/appDatabaseImport.test.js +79 -0
- package/dist-esm/database-lifecycle/appDatabaseImport.test.js.map +1 -1
- package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts +18 -0
- package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/appDatabaseStatus.js +18 -0
- package/dist-esm/database-lifecycle/appDatabaseStatus.js.map +1 -1
- package/dist-esm/database-lifecycle/appDatabaseStatus.test.js +12 -1
- package/dist-esm/database-lifecycle/appDatabaseStatus.test.js.map +1 -1
- package/dist-esm/database-lifecycle/dataImport.d.ts +45 -2
- package/dist-esm/database-lifecycle/dataImport.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/dataImport.js +205 -3
- package/dist-esm/database-lifecycle/dataImport.js.map +1 -1
- package/dist-esm/database-lifecycle/dataImport.test.js +61 -1
- package/dist-esm/database-lifecycle/dataImport.test.js.map +1 -1
- package/dist-esm/database-lifecycle/importCompatibility.d.ts +40 -0
- package/dist-esm/database-lifecycle/importCompatibility.d.ts.map +1 -0
- package/dist-esm/database-lifecycle/importCompatibility.js +117 -0
- package/dist-esm/database-lifecycle/importCompatibility.js.map +1 -0
- package/dist-esm/database-lifecycle/importCompatibility.test.d.ts +2 -0
- package/dist-esm/database-lifecycle/importCompatibility.test.d.ts.map +1 -0
- package/dist-esm/database-lifecycle/importCompatibility.test.js +112 -0
- package/dist-esm/database-lifecycle/importCompatibility.test.js.map +1 -0
- package/dist-esm/database-lifecycle/index.d.ts +29 -5
- package/dist-esm/database-lifecycle/index.d.ts.map +1 -1
- package/dist-esm/database-lifecycle/index.js +13 -5
- package/dist-esm/database-lifecycle/index.js.map +1 -1
- package/dist-esm/database-lifecycle/index.test.js +4 -1
- package/dist-esm/database-lifecycle/index.test.js.map +1 -1
- 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/types/audit/ocsf.d.ts +2 -1
- package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
- package/dist-esm/types/audit/ocsf.js +8 -0
- package/dist-esm/types/audit/ocsf.js.map +1 -1
- package/dist-esm/types/codeSecurity/index.d.ts +2 -1
- package/dist-esm/types/codeSecurity/index.d.ts.map +1 -1
- package/dist-esm/types/codeSecurity/index.js +43 -5
- package/dist-esm/types/codeSecurity/index.js.map +1 -1
- package/dist-esm/types/codeSecurity/index.test.js +37 -3
- package/dist-esm/types/codeSecurity/index.test.js.map +1 -1
- package/dist-esm/types/datasource/auth.d.ts +1 -0
- package/dist-esm/types/datasource/auth.d.ts.map +1 -1
- package/dist-esm/types/datasource/auth.js +7 -1
- package/dist-esm/types/datasource/auth.js.map +1 -1
- package/dist-esm/types/datasource/auth.test.js +20 -2
- package/dist-esm/types/datasource/auth.test.js.map +1 -1
- package/dist-esm/types/integration/index.d.ts +16 -1
- package/dist-esm/types/integration/index.d.ts.map +1 -1
- package/dist-esm/types/integration/index.js +8 -1
- package/dist-esm/types/integration/index.js.map +1 -1
- package/dist-esm/types/rbac/index.d.ts +0 -5
- package/dist-esm/types/rbac/index.d.ts.map +1 -1
- package/dist-esm/types/rbac/index.js.map +1 -1
- package/dist-esm/types/response/index.d.ts +0 -1
- package/dist-esm/types/response/index.d.ts.map +1 -1
- package/dist-esm/types/response/index.js +0 -1
- package/dist-esm/types/response/index.js.map +1 -1
- package/package.json +2 -2
- package/src/database-lifecycle/appDatabaseImport.test.ts +95 -0
- package/src/database-lifecycle/appDatabaseImport.ts +134 -8
- package/src/database-lifecycle/appDatabaseStatus.test.ts +20 -1
- package/src/database-lifecycle/appDatabaseStatus.ts +39 -0
- package/src/database-lifecycle/dataImport.test.ts +75 -0
- package/src/database-lifecycle/dataImport.ts +267 -4
- package/src/database-lifecycle/importCompatibility.test.ts +146 -0
- package/src/database-lifecycle/importCompatibility.ts +148 -0
- package/src/database-lifecycle/index.test.ts +4 -1
- package/src/database-lifecycle/index.ts +54 -4
- package/src/index.ts +1 -0
- package/src/types/audit/ocsf.ts +10 -1
- package/src/types/codeSecurity/index.test.ts +40 -3
- package/src/types/codeSecurity/index.ts +45 -4
- package/src/types/datasource/auth.test.ts +25 -1
- package/src/types/datasource/auth.ts +9 -1
- package/src/types/integration/index.ts +17 -0
- package/src/types/rbac/index.ts +0 -8
- package/src/types/response/index.ts +0 -1
- package/dist/types/response/GetGroupPermissionEntitiesResponseBody.d.ts +0 -3
- package/dist/types/response/GetGroupPermissionEntitiesResponseBody.d.ts.map +0 -1
- package/dist/types/response/GetGroupPermissionEntitiesResponseBody.js +0 -3
- package/dist/types/response/GetGroupPermissionEntitiesResponseBody.js.map +0 -1
- package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.d.ts +0 -3
- package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.d.ts.map +0 -1
- package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.js +0 -2
- package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.js.map +0 -1
- package/src/types/response/GetGroupPermissionEntitiesResponseBody.ts +0 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DataImportKind } from './dataImport.js';
|
|
2
|
-
export declare const APP_DATABASE_IMPORT_OPERATIONS: readonly ["prepare_import_prefix_upload", "inspect_import_prefix", "restore_import_data"];
|
|
3
|
-
export declare const APP_DATABASE_IMPORT_STATES: readonly ["requested", "preparing_prefix_upload", "awaiting_prefix_upload", "validating_schema", "schema_validated", "uploading", "importing", "completed", "failed", "cancelled"];
|
|
4
|
-
export declare const APP_DATABASE_IMPORT_ERROR_CODES: readonly ["prefix_incomplete", "schema_mismatch", "unsupported_archive_format", "archive_corrupt", "postgres_version_newer_than_target", "unsupported_object", "schema_not_aligned", "missing_bucket_access", "internal", "invalid_input", "size_mismatch", "checksum_mismatch", "commit_uncertain", "stream_failed", "restore_failed"];
|
|
2
|
+
export declare const APP_DATABASE_IMPORT_OPERATIONS: readonly ["prepare_import_prefix_upload", "inspect_import_prefix", "capture_integration_pg_dump", "restore_integration_pg_dump", "restore_import_data"];
|
|
3
|
+
export declare const APP_DATABASE_IMPORT_STATES: readonly ["requested", "preparing_prefix_upload", "awaiting_prefix_upload", "validating_schema", "schema_validated", "capturing_source", "restoring", "uploading", "upload_completed", "importing", "completed", "failed", "cancelled"];
|
|
4
|
+
export declare const APP_DATABASE_IMPORT_ERROR_CODES: readonly ["prefix_incomplete", "schema_mismatch", "unsupported_archive_format", "archive_corrupt", "postgres_version_newer_than_target", "unsupported_object", "schema_not_aligned", "missing_bucket_access", "internal", "invalid_input", "size_mismatch", "source_connection_failed", "source_dump_failed", "source_integration_forbidden", "source_integration_not_found", "source_integration_unsupported", "source_profile_unavailable", "source_worker_mismatch", "checksum_mismatch", "commit_uncertain", "stream_failed", "restore_failed"];
|
|
5
5
|
export type AppDatabaseImportKind = Extract<DataImportKind, 'pg_dump_custom'>;
|
|
6
6
|
export type AppDatabaseImportLifecycleOperation = (typeof APP_DATABASE_IMPORT_OPERATIONS)[number];
|
|
7
7
|
export type AppDatabaseImportState = (typeof APP_DATABASE_IMPORT_STATES)[number];
|
|
@@ -13,10 +13,16 @@ export type AppDatabaseImportValidationMetadata = {
|
|
|
13
13
|
export type AppDatabaseImportDispatchDetails = {
|
|
14
14
|
importId: string;
|
|
15
15
|
kind: AppDatabaseImportKind;
|
|
16
|
-
prefixSizeBytes: number;
|
|
17
16
|
profileToken: string;
|
|
18
17
|
resourceToken: string;
|
|
19
18
|
};
|
|
19
|
+
export type AppDatabaseImportSource = {
|
|
20
|
+
integrationConfigurationId: string;
|
|
21
|
+
integrationId: string;
|
|
22
|
+
profile: string;
|
|
23
|
+
profileId: string;
|
|
24
|
+
type: 'integration';
|
|
25
|
+
};
|
|
20
26
|
type AppDatabaseImportDispatchBase<TDesiredSpec> = {
|
|
21
27
|
applicationId: string;
|
|
22
28
|
bindingId: string;
|
|
@@ -37,15 +43,31 @@ type AppDatabaseImportDispatchBase<TDesiredSpec> = {
|
|
|
37
43
|
export type PrepareImportPrefixUploadDispatchPayloadEnvelope<TDesiredSpec> = AppDatabaseImportDispatchBase<TDesiredSpec> & {
|
|
38
44
|
import: AppDatabaseImportDispatchDetails & {
|
|
39
45
|
expectedSizeBytes: number;
|
|
46
|
+
prefixSizeBytes: number;
|
|
40
47
|
};
|
|
41
48
|
operation: 'prepare_import_prefix_upload';
|
|
42
49
|
};
|
|
43
50
|
export type InspectImportPrefixDispatchPayloadEnvelope<TDesiredSpec> = AppDatabaseImportDispatchBase<TDesiredSpec> & {
|
|
44
51
|
import: AppDatabaseImportDispatchDetails & {
|
|
52
|
+
prefixSizeBytes: number;
|
|
45
53
|
prefixObjectKey: string;
|
|
46
54
|
};
|
|
47
55
|
operation: 'inspect_import_prefix';
|
|
48
56
|
};
|
|
57
|
+
export type CaptureIntegrationPgDumpDispatchPayloadEnvelope<TDesiredSpec> = AppDatabaseImportDispatchBase<TDesiredSpec> & {
|
|
58
|
+
import: AppDatabaseImportDispatchDetails & {
|
|
59
|
+
source: AppDatabaseImportSource;
|
|
60
|
+
};
|
|
61
|
+
operation: 'capture_integration_pg_dump';
|
|
62
|
+
};
|
|
63
|
+
export type RestoreIntegrationPgDumpDispatchPayloadEnvelope<TDesiredSpec> = AppDatabaseImportDispatchBase<TDesiredSpec> & {
|
|
64
|
+
import: AppDatabaseImportDispatchDetails & {
|
|
65
|
+
objectKey: string;
|
|
66
|
+
sha256: string;
|
|
67
|
+
sizeBytes: number;
|
|
68
|
+
};
|
|
69
|
+
operation: 'restore_integration_pg_dump';
|
|
70
|
+
};
|
|
49
71
|
export type RestoreImportDataDispatchPayloadEnvelope<TDesiredSpec> = AppDatabaseImportDispatchBase<TDesiredSpec> & {
|
|
50
72
|
import: AppDatabaseImportDispatchDetails & {
|
|
51
73
|
objectKey: string;
|
|
@@ -53,7 +75,7 @@ export type RestoreImportDataDispatchPayloadEnvelope<TDesiredSpec> = AppDatabase
|
|
|
53
75
|
};
|
|
54
76
|
operation: 'restore_import_data';
|
|
55
77
|
};
|
|
56
|
-
export type AppDatabaseImportDispatchPayloadEnvelope<TDesiredSpec> = InspectImportPrefixDispatchPayloadEnvelope<TDesiredSpec> | PrepareImportPrefixUploadDispatchPayloadEnvelope<TDesiredSpec> | RestoreImportDataDispatchPayloadEnvelope<TDesiredSpec>;
|
|
78
|
+
export type AppDatabaseImportDispatchPayloadEnvelope<TDesiredSpec> = CaptureIntegrationPgDumpDispatchPayloadEnvelope<TDesiredSpec> | InspectImportPrefixDispatchPayloadEnvelope<TDesiredSpec> | PrepareImportPrefixUploadDispatchPayloadEnvelope<TDesiredSpec> | RestoreImportDataDispatchPayloadEnvelope<TDesiredSpec> | RestoreIntegrationPgDumpDispatchPayloadEnvelope<TDesiredSpec>;
|
|
57
79
|
export type PrepareImportPrefixUploadCallbackResult = {
|
|
58
80
|
prefixObjectKey: string;
|
|
59
81
|
prefixUploadHeaders?: Record<string, string>;
|
|
@@ -69,10 +91,23 @@ export type InspectImportPrefixCallbackResult = {
|
|
|
69
91
|
result: 'schema_validated';
|
|
70
92
|
validationMetadata: AppDatabaseImportValidationMetadata;
|
|
71
93
|
};
|
|
72
|
-
export type
|
|
94
|
+
export type CaptureIntegrationPgDumpCallbackResult = {
|
|
95
|
+
artifact: {
|
|
96
|
+
objectKey: string;
|
|
97
|
+
sha256: string;
|
|
98
|
+
sizeBytes: number;
|
|
99
|
+
};
|
|
100
|
+
result: 'integration_pg_dump_captured';
|
|
101
|
+
};
|
|
102
|
+
export type RestoreIntegrationPgDumpCallbackResult = {
|
|
103
|
+
result: 'integration_pg_dump_restored';
|
|
104
|
+
validationMetadata: AppDatabaseImportValidationMetadata;
|
|
105
|
+
};
|
|
106
|
+
export type AppDatabaseImportCallbackResult = CaptureIntegrationPgDumpCallbackResult | InspectImportPrefixCallbackResult | PrepareImportPrefixUploadCallbackResult | RestoreIntegrationPgDumpCallbackResult;
|
|
73
107
|
export declare function isAppDatabaseImportLifecycleOperation(value: string): value is AppDatabaseImportLifecycleOperation;
|
|
74
108
|
export declare function isAppDatabaseImportDispatchPayload(value: unknown): value is AppDatabaseImportDispatchPayloadEnvelope<Record<string, unknown>>;
|
|
75
109
|
export declare function isAppDatabaseImportCallbackResult(value: unknown): value is AppDatabaseImportCallbackResult;
|
|
76
|
-
export declare function
|
|
110
|
+
export declare function isAppDatabaseImportSource(value: unknown): value is AppDatabaseImportSource;
|
|
111
|
+
export declare function parseAppDatabaseImportValidationMetadata(value: unknown, requireExact?: boolean): AppDatabaseImportValidationMetadata | undefined;
|
|
77
112
|
export {};
|
|
78
113
|
//# sourceMappingURL=appDatabaseImport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appDatabaseImport.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAEvE,eAAO,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"appDatabaseImport.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,15 @@ exports.APP_DATABASE_IMPORT_ERROR_CODES = exports.APP_DATABASE_IMPORT_STATES = e
|
|
|
4
4
|
exports.isAppDatabaseImportLifecycleOperation = isAppDatabaseImportLifecycleOperation;
|
|
5
5
|
exports.isAppDatabaseImportDispatchPayload = isAppDatabaseImportDispatchPayload;
|
|
6
6
|
exports.isAppDatabaseImportCallbackResult = isAppDatabaseImportCallbackResult;
|
|
7
|
+
exports.isAppDatabaseImportSource = isAppDatabaseImportSource;
|
|
7
8
|
exports.parseAppDatabaseImportValidationMetadata = parseAppDatabaseImportValidationMetadata;
|
|
8
|
-
exports.APP_DATABASE_IMPORT_OPERATIONS = [
|
|
9
|
+
exports.APP_DATABASE_IMPORT_OPERATIONS = [
|
|
10
|
+
'prepare_import_prefix_upload',
|
|
11
|
+
'inspect_import_prefix',
|
|
12
|
+
'capture_integration_pg_dump',
|
|
13
|
+
'restore_integration_pg_dump',
|
|
14
|
+
'restore_import_data'
|
|
15
|
+
];
|
|
9
16
|
// Subset of DATA_IMPORT_STATES. Prefix success is schema_validated, not ready.
|
|
10
17
|
exports.APP_DATABASE_IMPORT_STATES = [
|
|
11
18
|
'requested',
|
|
@@ -13,7 +20,10 @@ exports.APP_DATABASE_IMPORT_STATES = [
|
|
|
13
20
|
'awaiting_prefix_upload',
|
|
14
21
|
'validating_schema',
|
|
15
22
|
'schema_validated',
|
|
23
|
+
'capturing_source',
|
|
24
|
+
'restoring',
|
|
16
25
|
'uploading',
|
|
26
|
+
'upload_completed',
|
|
17
27
|
'importing',
|
|
18
28
|
'completed',
|
|
19
29
|
'failed',
|
|
@@ -31,6 +41,13 @@ exports.APP_DATABASE_IMPORT_ERROR_CODES = [
|
|
|
31
41
|
'internal',
|
|
32
42
|
'invalid_input',
|
|
33
43
|
'size_mismatch',
|
|
44
|
+
'source_connection_failed',
|
|
45
|
+
'source_dump_failed',
|
|
46
|
+
'source_integration_forbidden',
|
|
47
|
+
'source_integration_not_found',
|
|
48
|
+
'source_integration_unsupported',
|
|
49
|
+
'source_profile_unavailable',
|
|
50
|
+
'source_worker_mismatch',
|
|
34
51
|
'checksum_mismatch',
|
|
35
52
|
'commit_uncertain',
|
|
36
53
|
'stream_failed',
|
|
@@ -47,8 +64,20 @@ function isAppDatabaseImportDispatchPayload(value) {
|
|
|
47
64
|
if (!isNonEmptyString(value.import.profileToken) || !isNonEmptyString(value.import.resourceToken)) {
|
|
48
65
|
return false;
|
|
49
66
|
}
|
|
67
|
+
if (value.operation === 'capture_integration_pg_dump') {
|
|
68
|
+
return (hasOnlyKeys(value.import, ['importId', 'kind', 'profileToken', 'resourceToken', 'source']) &&
|
|
69
|
+
isAppDatabaseImportSource(value.import.source));
|
|
70
|
+
}
|
|
71
|
+
if (value.operation === 'restore_integration_pg_dump') {
|
|
72
|
+
return (hasOnlyKeys(value.import, ['importId', 'kind', 'objectKey', 'profileToken', 'resourceToken', 'sha256', 'sizeBytes']) &&
|
|
73
|
+
isSafeObjectKey(value.import.objectKey) &&
|
|
74
|
+
isPositiveInteger(value.import.sizeBytes) &&
|
|
75
|
+
isSha256(value.import.sha256));
|
|
76
|
+
}
|
|
50
77
|
if (value.operation === 'prepare_import_prefix_upload') {
|
|
51
|
-
return value.import
|
|
78
|
+
return (hasOnlyKeys(value.import, ['expectedSizeBytes', 'importId', 'kind', 'prefixSizeBytes', 'profileToken', 'resourceToken']) &&
|
|
79
|
+
isPositiveInteger(value.import.expectedSizeBytes) &&
|
|
80
|
+
isPositiveInteger(value.import.prefixSizeBytes));
|
|
52
81
|
}
|
|
53
82
|
if (value.operation === 'restore_import_data') {
|
|
54
83
|
return (value.import.expectedSizeBytes === undefined &&
|
|
@@ -57,7 +86,8 @@ function isAppDatabaseImportDispatchPayload(value) {
|
|
|
57
86
|
isSha256Hex(value.import.prefixChecksumSha256));
|
|
58
87
|
}
|
|
59
88
|
return (value.operation === 'inspect_import_prefix' &&
|
|
60
|
-
value.import
|
|
89
|
+
hasOnlyKeys(value.import, ['importId', 'kind', 'prefixObjectKey', 'prefixSizeBytes', 'profileToken', 'resourceToken']) &&
|
|
90
|
+
isPositiveInteger(value.import.prefixSizeBytes) &&
|
|
61
91
|
isNonEmptyString(value.import.prefixObjectKey));
|
|
62
92
|
}
|
|
63
93
|
function isAppDatabaseImportCallbackResult(value) {
|
|
@@ -72,14 +102,36 @@ function isAppDatabaseImportCallbackResult(value) {
|
|
|
72
102
|
isPositiveInteger(value.nextPrefixSizeBytes) &&
|
|
73
103
|
value.nextPrefixSizeBytes > value.inspectedPrefixSizeBytes);
|
|
74
104
|
}
|
|
105
|
+
if (value.result === 'integration_pg_dump_captured') {
|
|
106
|
+
return (hasOnlyKeys(value, ['artifact', 'result']) &&
|
|
107
|
+
isUnknownRecord(value.artifact) &&
|
|
108
|
+
hasOnlyKeys(value.artifact, ['objectKey', 'sha256', 'sizeBytes']) &&
|
|
109
|
+
isSafeObjectKey(value.artifact.objectKey) &&
|
|
110
|
+
isPositiveInteger(value.artifact.sizeBytes) &&
|
|
111
|
+
isSha256(value.artifact.sha256));
|
|
112
|
+
}
|
|
113
|
+
if (value.result === 'integration_pg_dump_restored') {
|
|
114
|
+
return (hasOnlyKeys(value, ['result', 'validationMetadata']) &&
|
|
115
|
+
parseAppDatabaseImportValidationMetadata(value.validationMetadata, true) !== undefined);
|
|
116
|
+
}
|
|
75
117
|
return (value.result === 'schema_validated' &&
|
|
76
118
|
parseAppDatabaseImportValidationMetadata(value.validationMetadata) !== undefined &&
|
|
77
119
|
(value.prefixChecksumSha256 === undefined || isSha256Hex(value.prefixChecksumSha256)));
|
|
78
120
|
}
|
|
121
|
+
function isAppDatabaseImportSource(value) {
|
|
122
|
+
return (isUnknownRecord(value) &&
|
|
123
|
+
hasOnlyKeys(value, ['integrationConfigurationId', 'integrationId', 'profile', 'profileId', 'type']) &&
|
|
124
|
+
value.type === 'integration' &&
|
|
125
|
+
isNonEmptyString(value.integrationId) &&
|
|
126
|
+
isNonEmptyString(value.integrationConfigurationId) &&
|
|
127
|
+
isNonEmptyString(value.profileId) &&
|
|
128
|
+
isNonEmptyString(value.profile));
|
|
129
|
+
}
|
|
79
130
|
// Rebuild metadata from its allowlisted fields so archive contents, SQL, rows,
|
|
80
131
|
// and other worker-provided details cannot cross this contract boundary.
|
|
81
|
-
function parseAppDatabaseImportValidationMetadata(value) {
|
|
132
|
+
function parseAppDatabaseImportValidationMetadata(value, requireExact = false) {
|
|
82
133
|
if (!isUnknownRecord(value) ||
|
|
134
|
+
(requireExact && !hasOnlyKeys(value, ['postgresMajorVersion', 'tableNames'])) ||
|
|
83
135
|
!isPositiveInteger(value.postgresMajorVersion) ||
|
|
84
136
|
!Array.isArray(value.tableNames) ||
|
|
85
137
|
!value.tableNames.every(isNonEmptyString)) {
|
|
@@ -99,7 +151,6 @@ function hasImportDispatchBase(value) {
|
|
|
99
151
|
isUnknownRecord(value.import) &&
|
|
100
152
|
isNonEmptyString(value.import.importId) &&
|
|
101
153
|
value.import.kind === 'pg_dump_custom' &&
|
|
102
|
-
isPositiveInteger(value.import.prefixSizeBytes) &&
|
|
103
154
|
isNonEmptyString(value.organizationId) &&
|
|
104
155
|
isNonEmptyString(value.profile) &&
|
|
105
156
|
isNonEmptyString(value.requestId) &&
|
|
@@ -123,7 +174,17 @@ function isNonEmptyString(value) {
|
|
|
123
174
|
function isPositiveInteger(value) {
|
|
124
175
|
return typeof value === 'number' && Number.isSafeInteger(value) && value > 0;
|
|
125
176
|
}
|
|
177
|
+
function isSha256(value) {
|
|
178
|
+
return typeof value === 'string' && /^[0-9a-f]{64}$/.test(value);
|
|
179
|
+
}
|
|
180
|
+
function isSafeObjectKey(value) {
|
|
181
|
+
return (typeof value === 'string' && /^[A-Za-z0-9][A-Za-z0-9._/-]{0,1023}$/.test(value) && !value.split('/').some((segment) => segment === '..'));
|
|
182
|
+
}
|
|
126
183
|
function isUnknownRecord(value) {
|
|
127
184
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
128
185
|
}
|
|
186
|
+
function hasOnlyKeys(value, allowed) {
|
|
187
|
+
const allowedKeys = new Set(allowed);
|
|
188
|
+
return Object.keys(value).every((key) => allowedKeys.has(key));
|
|
189
|
+
}
|
|
129
190
|
//# sourceMappingURL=appDatabaseImport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appDatabaseImport.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"appDatabaseImport.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,57 @@ const appDatabaseImport_js_1 = require("./appDatabaseImport.js");
|
|
|
32
32
|
import: base.import,
|
|
33
33
|
operation: 'prepare_import_prefix_upload'
|
|
34
34
|
})).toBe(false);
|
|
35
|
+
const generatedBase = {
|
|
36
|
+
...base,
|
|
37
|
+
import: {
|
|
38
|
+
importId: 'import-id',
|
|
39
|
+
kind: 'pg_dump_custom',
|
|
40
|
+
profileToken: 'profile-token',
|
|
41
|
+
resourceToken: 'resource-token'
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportDispatchPayload)({
|
|
45
|
+
...generatedBase,
|
|
46
|
+
import: {
|
|
47
|
+
...generatedBase.import,
|
|
48
|
+
source: {
|
|
49
|
+
integrationConfigurationId: 'configuration-id',
|
|
50
|
+
integrationId: 'integration-id',
|
|
51
|
+
profile: 'production',
|
|
52
|
+
profileId: 'profile-id',
|
|
53
|
+
type: 'integration'
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
operation: 'capture_integration_pg_dump'
|
|
57
|
+
})).toBe(true);
|
|
58
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportDispatchPayload)({
|
|
59
|
+
...generatedBase,
|
|
60
|
+
import: {
|
|
61
|
+
...generatedBase.import,
|
|
62
|
+
source: { integrationId: 'integration-id', password: 'secret', type: 'integration' }
|
|
63
|
+
},
|
|
64
|
+
operation: 'capture_integration_pg_dump'
|
|
65
|
+
})).toBe(false);
|
|
66
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportDispatchPayload)({
|
|
67
|
+
...generatedBase,
|
|
68
|
+
import: {
|
|
69
|
+
...generatedBase.import,
|
|
70
|
+
objectKey: 'imports/import-id/source.custom',
|
|
71
|
+
sha256: 'a'.repeat(64),
|
|
72
|
+
sizeBytes: 42
|
|
73
|
+
},
|
|
74
|
+
operation: 'restore_integration_pg_dump'
|
|
75
|
+
})).toBe(true);
|
|
76
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportDispatchPayload)({
|
|
77
|
+
...generatedBase,
|
|
78
|
+
import: {
|
|
79
|
+
...generatedBase.import,
|
|
80
|
+
objectKey: 'imports/import-id/source.custom?credential=secret',
|
|
81
|
+
sha256: 'a'.repeat(64),
|
|
82
|
+
sizeBytes: 42
|
|
83
|
+
},
|
|
84
|
+
operation: 'restore_integration_pg_dump'
|
|
85
|
+
})).toBe(false);
|
|
35
86
|
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportDispatchPayload)({
|
|
36
87
|
...base,
|
|
37
88
|
import: {
|
|
@@ -100,6 +151,34 @@ const appDatabaseImport_js_1 = require("./appDatabaseImport.js");
|
|
|
100
151
|
})).toBe(false);
|
|
101
152
|
});
|
|
102
153
|
(0, vitest_1.test)('requires prefix growth and narrow nested callback results', () => {
|
|
154
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportCallbackResult)({
|
|
155
|
+
artifact: {
|
|
156
|
+
objectKey: 'imports/import-id/source.custom',
|
|
157
|
+
sha256: 'a'.repeat(64),
|
|
158
|
+
sizeBytes: 42
|
|
159
|
+
},
|
|
160
|
+
result: 'integration_pg_dump_captured'
|
|
161
|
+
})).toBe(true);
|
|
162
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportCallbackResult)({
|
|
163
|
+
artifact: { objectKey: 'source.custom', sha256: 'not-a-sha', sizeBytes: 42 },
|
|
164
|
+
result: 'integration_pg_dump_captured'
|
|
165
|
+
})).toBe(false);
|
|
166
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportCallbackResult)({
|
|
167
|
+
result: 'integration_pg_dump_restored',
|
|
168
|
+
validationMetadata: {
|
|
169
|
+
postgresMajorVersion: 16,
|
|
170
|
+
tableNames: ['public.orders']
|
|
171
|
+
}
|
|
172
|
+
})).toBe(true);
|
|
173
|
+
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportCallbackResult)({
|
|
174
|
+
diagnostics: 'secret',
|
|
175
|
+
result: 'integration_pg_dump_restored',
|
|
176
|
+
validationMetadata: {
|
|
177
|
+
postgresMajorVersion: 16,
|
|
178
|
+
sql: 'SELECT secret',
|
|
179
|
+
tableNames: ['public.orders']
|
|
180
|
+
}
|
|
181
|
+
})).toBe(false);
|
|
103
182
|
(0, vitest_1.expect)((0, appDatabaseImport_js_1.isAppDatabaseImportCallbackResult)({
|
|
104
183
|
inspectedPrefixSizeBytes: 1_024,
|
|
105
184
|
nextPrefixSizeBytes: 2_048,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appDatabaseImport.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"appDatabaseImport.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseImport.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AppDatabaseTagRef } from './appDatabaseCompatibility.js';
|
|
2
|
+
import type { AppDatabaseImportTagSupport } from './importCompatibility.js';
|
|
2
3
|
import type { DatabaseEngine, LifecycleMigrationState, LifecycleState } from './index.js';
|
|
3
4
|
/**
|
|
4
5
|
* Builder-safe physical instance fields. Pool capacity and the internal
|
|
@@ -16,13 +17,25 @@ export type AppDatabaseStatusIntegration = {
|
|
|
16
17
|
name: string;
|
|
17
18
|
pluginId: string;
|
|
18
19
|
};
|
|
20
|
+
export declare const DATABASE_WIDE_LIFECYCLE_OPERATIONS: readonly ["migrate_schema", "restore_import_data", "retire_database"];
|
|
21
|
+
export type DatabaseWideLifecycleOperation = (typeof DATABASE_WIDE_LIFECYCLE_OPERATIONS)[number];
|
|
22
|
+
export declare const TABLE_IMPORT_IN_PROGRESS_REASON = "A table import is running on this database.";
|
|
23
|
+
export declare function databaseWideOperationBlockReason(operation: DatabaseWideLifecycleOperation): string;
|
|
24
|
+
export declare function preferredBlockingDatabaseOperation(operations: readonly string[]): DatabaseWideLifecycleOperation | undefined;
|
|
19
25
|
export type AppDatabaseStatusBinding = {
|
|
26
|
+
/**
|
|
27
|
+
* Owning OPA deployment name (`databaseLifecycle:agentName`). Null on
|
|
28
|
+
* bindings created before ownership tracking. Schema reads route to this
|
|
29
|
+
* agent; without it the browser cannot authorize a describe call.
|
|
30
|
+
*/
|
|
31
|
+
agentName: string | null;
|
|
20
32
|
bindingId: string;
|
|
21
33
|
created: string;
|
|
22
34
|
instance: AppDatabaseStatusInstance | null;
|
|
23
35
|
integration: AppDatabaseStatusIntegration | null;
|
|
24
36
|
lastActivity: string;
|
|
25
37
|
lifecycleState: LifecycleState;
|
|
38
|
+
inProgressOperation?: DatabaseWideLifecycleOperation;
|
|
26
39
|
logicalName: string;
|
|
27
40
|
migrationDirectory: string | null;
|
|
28
41
|
migrationState: LifecycleMigrationState;
|
|
@@ -30,6 +43,11 @@ export type AppDatabaseStatusBinding = {
|
|
|
30
43
|
export type AppDatabaseStatusTag = AppDatabaseTagRef & {
|
|
31
44
|
/** Null when this data tag has no live (non-cancelled) database. */
|
|
32
45
|
binding: AppDatabaseStatusBinding | null;
|
|
46
|
+
/**
|
|
47
|
+
* Whether this tag's registered worker can run a CSV import. Computed by
|
|
48
|
+
* the server from connected-agent registrations, not from a browser probe.
|
|
49
|
+
*/
|
|
50
|
+
csvImport?: AppDatabaseImportTagSupport;
|
|
33
51
|
/**
|
|
34
52
|
* True when this data tag had a database that was retired. The live
|
|
35
53
|
* binding is omitted so the tag can be provisioned again, but Status
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appDatabaseStatus.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1F;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"appDatabaseStatus.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1F;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,eAAO,MAAM,kCAAkC,uEAAwE,CAAC;AACxH,MAAM,MAAM,8BAA8B,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjG,eAAO,MAAM,+BAA+B,gDAAgD,CAAC;AAE7F,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,8BAA8B,GAAG,MAAM,CASlG;AAID,wBAAgB,kCAAkC,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,8BAA8B,GAAG,SAAS,CAE5H;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC3C,WAAW,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAG/B,mBAAmB,CAAC,EAAE,8BAA8B,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG;IACrD,oEAAoE;IACpE,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,yBAAyB,EAAE,OAAO,CAAC;IACnC,IAAI,EAAE,oBAAoB,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAE7F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAE/F;AAED,wBAAgB,sCAAsC,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAIzF"}
|
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TABLE_IMPORT_IN_PROGRESS_REASON = exports.DATABASE_WIDE_LIFECYCLE_OPERATIONS = void 0;
|
|
4
|
+
exports.databaseWideOperationBlockReason = databaseWideOperationBlockReason;
|
|
5
|
+
exports.preferredBlockingDatabaseOperation = preferredBlockingDatabaseOperation;
|
|
3
6
|
exports.isEditLifecycleTag = isEditLifecycleTag;
|
|
4
7
|
exports.isDeployLifecycleTag = isDeployLifecycleTag;
|
|
5
8
|
exports.isProductionDatabaseRetirementEligible = isProductionDatabaseRetirementEligible;
|
|
6
9
|
const index_js_1 = require("../types/event/index.js");
|
|
10
|
+
// These rewrite or remove the whole database. A CSV import into any table on
|
|
11
|
+
// that binding has to wait until the lifecycle request leaves these states.
|
|
12
|
+
exports.DATABASE_WIDE_LIFECYCLE_OPERATIONS = ['migrate_schema', 'restore_import_data', 'retire_database'];
|
|
13
|
+
exports.TABLE_IMPORT_IN_PROGRESS_REASON = 'A table import is running on this database.';
|
|
14
|
+
function databaseWideOperationBlockReason(operation) {
|
|
15
|
+
switch (operation) {
|
|
16
|
+
case 'migrate_schema':
|
|
17
|
+
return 'A schema migration is running on this database.';
|
|
18
|
+
case 'restore_import_data':
|
|
19
|
+
return 'A database restore is running on this data tag.';
|
|
20
|
+
case 'retire_database':
|
|
21
|
+
return 'This database is being removed.';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const BLOCKING_OPERATION_PRIORITY = ['retire_database', 'migrate_schema', 'restore_import_data'];
|
|
25
|
+
function preferredBlockingDatabaseOperation(operations) {
|
|
26
|
+
return BLOCKING_OPERATION_PRIORITY.find((operation) => operations.includes(operation));
|
|
27
|
+
}
|
|
7
28
|
/**
|
|
8
29
|
* Edit lifecycle membership: tags used for edit provisioning and migrations.
|
|
9
30
|
* That is every editor-only tag, plus the editor default even when that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appDatabaseStatus.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appDatabaseStatus.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.ts"],"names":[],"mappings":";;;AA8BA,4EASC;AAID,gFAEC;AAuED,gDAEC;AAOD,oDAEC;AAED,wFAIC;AArID,sDAAmD;AAuBnD,6EAA6E;AAC7E,4EAA4E;AAC/D,QAAA,kCAAkC,GAAG,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,CAAU,CAAC;AAG3G,QAAA,+BAA+B,GAAG,6CAA6C,CAAC;AAE7F,SAAgB,gCAAgC,CAAC,SAAyC;IACxF,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,gBAAgB;YACnB,OAAO,iDAAiD,CAAC;QAC3D,KAAK,qBAAqB;YACxB,OAAO,iDAAiD,CAAC;QAC3D,KAAK,iBAAiB;YACpB,OAAO,iCAAiC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,2BAA2B,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,CAAU,CAAC;AAE1G,SAAgB,kCAAkC,CAAC,UAA6B;IAC9E,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACzF,CAAC;AAkED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,GAAiD;IAClF,OAAO,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAQ,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,GAAiD;IACpF,OAAO,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAQ,CAAC,MAAM,CAAC,CAAC;AACzG,CAAC;AAED,SAAgB,sCAAsC,CAAC,MAAyB;IAC9E,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnG,MAAM,6BAA6B,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAClH,OAAO,CAAC,eAAe,IAAI,6BAA6B,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC;AAChG,CAAC"}
|
|
@@ -4,6 +4,7 @@ const vitest_1 = require("vitest");
|
|
|
4
4
|
const index_js_1 = require("../types/event/index.js");
|
|
5
5
|
const appDatabaseStatus_js_1 = require("./appDatabaseStatus.js");
|
|
6
6
|
const binding = {
|
|
7
|
+
agentName: 'customer-opa',
|
|
7
8
|
bindingId: 'binding-1',
|
|
8
9
|
created: '2026-09-14T00:00:00.000Z',
|
|
9
10
|
instance: null,
|
|
@@ -85,4 +86,14 @@ function status(overrides = {}) {
|
|
|
85
86
|
}))).toBe(false);
|
|
86
87
|
});
|
|
87
88
|
});
|
|
89
|
+
(0, vitest_1.describe)('database-wide operation block', () => {
|
|
90
|
+
(0, vitest_1.it)('prefers retirement over a migration and names the operation the import has to wait for', () => {
|
|
91
|
+
(0, vitest_1.expect)((0, appDatabaseStatus_js_1.preferredBlockingDatabaseOperation)(['restore_import_data', 'migrate_schema', 'retire_database'])).toBe('retire_database');
|
|
92
|
+
(0, vitest_1.expect)((0, appDatabaseStatus_js_1.preferredBlockingDatabaseOperation)(['import_table_data'])).toBeUndefined();
|
|
93
|
+
(0, vitest_1.expect)((0, appDatabaseStatus_js_1.databaseWideOperationBlockReason)('migrate_schema')).toBe('A schema migration is running on this database.');
|
|
94
|
+
(0, vitest_1.expect)((0, appDatabaseStatus_js_1.databaseWideOperationBlockReason)('restore_import_data')).toBe('A database restore is running on this data tag.');
|
|
95
|
+
(0, vitest_1.expect)((0, appDatabaseStatus_js_1.databaseWideOperationBlockReason)('retire_database')).toBe('This database is being removed.');
|
|
96
|
+
(0, vitest_1.expect)(appDatabaseStatus_js_1.TABLE_IMPORT_IN_PROGRESS_REASON).toBe('A table import is running on this database.');
|
|
97
|
+
});
|
|
98
|
+
});
|
|
88
99
|
//# sourceMappingURL=appDatabaseStatus.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appDatabaseStatus.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAE9C,sDAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"appDatabaseStatus.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAE9C,sDAAmD;AACnD,iEAOgC;AAEhC,MAAM,OAAO,GAA6B;IACxC,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,0BAA0B;IACnC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,0BAA0B;IACxC,cAAc,EAAE,OAAO;IACvB,WAAW,EAAE,QAAQ;IACrB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,UAAU;CAC3B,CAAC;AAEF,SAAS,MAAM,CAAC,YAAwC,EAAE;IACxD,OAAO;QACL,aAAa,EAAE,OAAO;QACtB,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;QACtB,yBAAyB,EAAE,KAAK;QAChC,IAAI,EAAE;YACJ;gBACE,cAAc,EAAE,CAAC,mBAAQ,CAAC,QAAQ,CAAC;gBACnC,OAAO;gBACP,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,YAAY;gBACzB,eAAe,EAAE,KAAK;gBACtB,UAAU,EAAE,YAAY;aACzB;SACF;QACD,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,IAAA,iBAAQ,EAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,IAAA,WAAE,EAAC,gGAAgG,EAAE,GAAG,EAAE;QACxG,IAAA,eAAM,EAAC,IAAA,6DAAsC,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,IAAA,eAAM,EAAC,IAAA,6DAAsC,EAAC,MAAM,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,IAAA,eAAM,EACJ,IAAA,6DAAsC,EACpC,MAAM,CAAC;YACL,IAAI,EAAE;gBACJ,GAAG,MAAM,EAAE,CAAC,IAAI;gBAChB;oBACE,cAAc,EAAE,CAAC,mBAAQ,CAAC,MAAM,CAAC;oBACjC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;oBAClD,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,SAAS;oBACtB,eAAe,EAAE,IAAI;oBACrB,UAAU,EAAE,SAAS;iBACtB;aACF;SACF,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,8FAA8F,EAAE,GAAG,EAAE;QACtG,IAAA,eAAM,EACJ,IAAA,6DAAsC,EACpC,MAAM,CAAC;YACL,IAAI,EAAE;gBACJ;oBACE,cAAc,EAAE,EAAE;oBAClB,OAAO;oBACP,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,oBAAoB;oBACjC,eAAe,EAAE,KAAK;oBACtB,UAAU,EAAE,oBAAoB;iBACjC;aACF;SACF,CAAC,CACH,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oGAAoG,EAAE,GAAG,EAAE;QAC5G,IAAA,eAAM,EACJ,IAAA,6DAAsC,EACpC,MAAM,CAAC;YACL,IAAI,EAAE;gBACJ,GAAG,MAAM,EAAE,CAAC,IAAI;gBAChB;oBACE,cAAc,EAAE,CAAC,mBAAQ,CAAC,MAAM,EAAE,mBAAQ,CAAC,QAAQ,CAAC;oBACpD,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;oBAClD,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,SAAS;oBACtB,eAAe,EAAE,IAAI;oBACrB,UAAU,EAAE,SAAS;iBACtB;aACF;SACF,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAA,WAAE,EAAC,wFAAwF,EAAE,GAAG,EAAE;QAChG,IAAA,eAAM,EAAC,IAAA,yDAAkC,EAAC,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjI,IAAA,eAAM,EAAC,IAAA,yDAAkC,EAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAClF,IAAA,eAAM,EAAC,IAAA,uDAAgC,EAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACnH,IAAA,eAAM,EAAC,IAAA,uDAAgC,EAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACxH,IAAA,eAAM,EAAC,IAAA,uDAAgC,EAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACpG,IAAA,eAAM,EAAC,sDAA+B,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const DATA_IMPORT_KINDS: readonly ["csv", "pg_dump_custom"];
|
|
2
|
-
export declare const DATA_IMPORT_STATES: readonly ["requested", "preparing_upload", "preparing_prefix_upload", "awaiting_upload", "awaiting_prefix_upload", "uploading", "upload_completed", "validating", "validating_schema", "schema_validated", "ready", "importing", "completed", "failed", "cancelled"];
|
|
3
|
-
export declare const DATA_IMPORT_ACTIVE_STATES: ("requested" | "preparing_upload" | "preparing_prefix_upload" | "awaiting_upload" | "awaiting_prefix_upload" | "uploading" | "upload_completed" | "validating" | "validating_schema" | "schema_validated" | "ready" | "importing" | "completed" | "failed" | "cancelled")[];
|
|
2
|
+
export declare const DATA_IMPORT_STATES: readonly ["requested", "preparing_upload", "preparing_prefix_upload", "awaiting_upload", "awaiting_prefix_upload", "uploading", "upload_completed", "validating", "validating_schema", "schema_validated", "capturing_source", "restoring", "ready", "importing", "completed", "failed", "cancelled"];
|
|
3
|
+
export declare const DATA_IMPORT_ACTIVE_STATES: ("requested" | "preparing_upload" | "preparing_prefix_upload" | "awaiting_upload" | "awaiting_prefix_upload" | "uploading" | "upload_completed" | "validating" | "validating_schema" | "schema_validated" | "capturing_source" | "restoring" | "ready" | "importing" | "completed" | "failed" | "cancelled")[];
|
|
4
4
|
export declare const DATA_IMPORT_TARGET_TYPES: readonly ["app_database"];
|
|
5
5
|
export type DataImportKind = (typeof DATA_IMPORT_KINDS)[number];
|
|
6
6
|
export type DataImportState = (typeof DATA_IMPORT_STATES)[number];
|
|
@@ -27,18 +27,52 @@ export type DataImportUploadMetadata = {
|
|
|
27
27
|
};
|
|
28
28
|
export type PgDumpDataImportMetadata = {
|
|
29
29
|
kind: 'pg_dump_custom';
|
|
30
|
+
capturedObjectKey?: string;
|
|
31
|
+
capturedSha256?: string;
|
|
32
|
+
capturedSizeBytes?: number;
|
|
30
33
|
currentPrefixSizeBytes?: number;
|
|
31
34
|
postgresMajorVersion?: number;
|
|
32
35
|
prefixChecksumSha256?: string;
|
|
33
36
|
prefixObjectKey?: string;
|
|
34
37
|
requestedPrefixSizeBytes?: number;
|
|
38
|
+
source?: {
|
|
39
|
+
integrationConfigurationId: string;
|
|
40
|
+
integrationId: string;
|
|
41
|
+
profile: string;
|
|
42
|
+
profileId: string;
|
|
43
|
+
type: 'integration';
|
|
44
|
+
};
|
|
35
45
|
tableNames?: string[];
|
|
36
46
|
};
|
|
47
|
+
export type CsvColumnMapping = {
|
|
48
|
+
source: string;
|
|
49
|
+
target: string;
|
|
50
|
+
};
|
|
51
|
+
export type CsvTableImportPlan = {
|
|
52
|
+
columnMapping: CsvColumnMapping[];
|
|
53
|
+
dateStyle: string;
|
|
54
|
+
delimiter: ',' | ';' | '\t' | '|';
|
|
55
|
+
emptyAsNull: boolean;
|
|
56
|
+
encoding: 'UTF8' | 'WINDOWS1252';
|
|
57
|
+
hasHeader: boolean;
|
|
58
|
+
timeZone: string;
|
|
59
|
+
trimWhitespace: boolean;
|
|
60
|
+
};
|
|
37
61
|
export type CsvDataImportMetadata = {
|
|
38
62
|
kind: 'csv';
|
|
39
63
|
mode: 'append' | 'replace';
|
|
40
64
|
table: string;
|
|
65
|
+
} & Partial<CsvTableImportPlan>;
|
|
66
|
+
export type CsvImportPlanParse = {
|
|
67
|
+
message: string;
|
|
68
|
+
status: 'invalid';
|
|
69
|
+
} | {
|
|
70
|
+
plan: CsvTableImportPlan;
|
|
71
|
+
status: 'ok';
|
|
41
72
|
};
|
|
73
|
+
export type CsvTableImportPlanPresence = {
|
|
74
|
+
status: 'absent';
|
|
75
|
+
} | CsvImportPlanParse;
|
|
42
76
|
export type DataImportMetadata = PgDumpDataImportMetadata | CsvDataImportMetadata;
|
|
43
77
|
export type DataImportOutcome = {
|
|
44
78
|
rowsDeleted?: string;
|
|
@@ -48,6 +82,15 @@ export type DataImportOutcome = {
|
|
|
48
82
|
export declare function mintDataImportConcurrencyKey(metadata: DataImportMetadata, target: AppDatabaseDataImportTarget): string;
|
|
49
83
|
export declare function parseDataImportTarget(value: unknown): DataImportTarget | undefined;
|
|
50
84
|
export declare function parseDataImportMetadata(kind: DataImportKind, value: unknown): DataImportMetadata | undefined;
|
|
85
|
+
export declare function csvTableImportPlan(metadata: CsvDataImportMetadata): CsvTableImportPlan | undefined;
|
|
86
|
+
export declare function isReservedCsvImportTable(table: string): boolean;
|
|
87
|
+
export declare function csvImportPlanFromWizard(input: {
|
|
88
|
+
columnMappings: Record<string, string>;
|
|
89
|
+
dateFormat: string;
|
|
90
|
+
encoding: string;
|
|
91
|
+
trimWhitespace: boolean;
|
|
92
|
+
}): CsvImportPlanParse;
|
|
93
|
+
export declare function parseCsvTableImportPlanFields(value: Record<string, unknown>): CsvTableImportPlanPresence;
|
|
51
94
|
export declare function parseDataImportOutcome(value: unknown): DataImportOutcome | undefined;
|
|
52
95
|
export declare function sqlStringList(values: readonly string[]): string;
|
|
53
96
|
//# sourceMappingURL=dataImport.d.ts.map
|