@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.
Files changed (155) hide show
  1. package/dist/database-lifecycle/appDatabaseImport.d.ts +42 -7
  2. package/dist/database-lifecycle/appDatabaseImport.d.ts.map +1 -1
  3. package/dist/database-lifecycle/appDatabaseImport.js +66 -5
  4. package/dist/database-lifecycle/appDatabaseImport.js.map +1 -1
  5. package/dist/database-lifecycle/appDatabaseImport.test.js +79 -0
  6. package/dist/database-lifecycle/appDatabaseImport.test.js.map +1 -1
  7. package/dist/database-lifecycle/appDatabaseStatus.d.ts +18 -0
  8. package/dist/database-lifecycle/appDatabaseStatus.d.ts.map +1 -1
  9. package/dist/database-lifecycle/appDatabaseStatus.js +21 -0
  10. package/dist/database-lifecycle/appDatabaseStatus.js.map +1 -1
  11. package/dist/database-lifecycle/appDatabaseStatus.test.js +11 -0
  12. package/dist/database-lifecycle/appDatabaseStatus.test.js.map +1 -1
  13. package/dist/database-lifecycle/dataImport.d.ts +45 -2
  14. package/dist/database-lifecycle/dataImport.d.ts.map +1 -1
  15. package/dist/database-lifecycle/dataImport.js +209 -3
  16. package/dist/database-lifecycle/dataImport.js.map +1 -1
  17. package/dist/database-lifecycle/dataImport.test.js +60 -0
  18. package/dist/database-lifecycle/dataImport.test.js.map +1 -1
  19. package/dist/database-lifecycle/importCompatibility.d.ts +40 -0
  20. package/dist/database-lifecycle/importCompatibility.d.ts.map +1 -0
  21. package/dist/database-lifecycle/importCompatibility.js +121 -0
  22. package/dist/database-lifecycle/importCompatibility.js.map +1 -0
  23. package/dist/database-lifecycle/importCompatibility.test.d.ts +2 -0
  24. package/dist/database-lifecycle/importCompatibility.test.d.ts.map +1 -0
  25. package/dist/database-lifecycle/importCompatibility.test.js +114 -0
  26. package/dist/database-lifecycle/importCompatibility.test.js.map +1 -0
  27. package/dist/database-lifecycle/index.d.ts +29 -5
  28. package/dist/database-lifecycle/index.d.ts.map +1 -1
  29. package/dist/database-lifecycle/index.js +18 -5
  30. package/dist/database-lifecycle/index.js.map +1 -1
  31. package/dist/database-lifecycle/index.test.js +4 -1
  32. package/dist/database-lifecycle/index.test.js.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/types/audit/ocsf.d.ts +2 -1
  38. package/dist/types/audit/ocsf.d.ts.map +1 -1
  39. package/dist/types/audit/ocsf.js +8 -0
  40. package/dist/types/audit/ocsf.js.map +1 -1
  41. package/dist/types/codeSecurity/index.d.ts +2 -1
  42. package/dist/types/codeSecurity/index.d.ts.map +1 -1
  43. package/dist/types/codeSecurity/index.js +43 -5
  44. package/dist/types/codeSecurity/index.js.map +1 -1
  45. package/dist/types/codeSecurity/index.test.js +37 -3
  46. package/dist/types/codeSecurity/index.test.js.map +1 -1
  47. package/dist/types/datasource/auth.d.ts +1 -0
  48. package/dist/types/datasource/auth.d.ts.map +1 -1
  49. package/dist/types/datasource/auth.js +8 -2
  50. package/dist/types/datasource/auth.js.map +1 -1
  51. package/dist/types/datasource/auth.test.js +19 -1
  52. package/dist/types/datasource/auth.test.js.map +1 -1
  53. package/dist/types/integration/index.d.ts +16 -1
  54. package/dist/types/integration/index.d.ts.map +1 -1
  55. package/dist/types/integration/index.js +8 -1
  56. package/dist/types/integration/index.js.map +1 -1
  57. package/dist/types/rbac/index.d.ts +0 -5
  58. package/dist/types/rbac/index.d.ts.map +1 -1
  59. package/dist/types/rbac/index.js.map +1 -1
  60. package/dist/types/response/index.d.ts +0 -1
  61. package/dist/types/response/index.d.ts.map +1 -1
  62. package/dist/types/response/index.js +0 -1
  63. package/dist/types/response/index.js.map +1 -1
  64. package/dist-esm/database-lifecycle/appDatabaseImport.d.ts +42 -7
  65. package/dist-esm/database-lifecycle/appDatabaseImport.d.ts.map +1 -1
  66. package/dist-esm/database-lifecycle/appDatabaseImport.js +65 -5
  67. package/dist-esm/database-lifecycle/appDatabaseImport.js.map +1 -1
  68. package/dist-esm/database-lifecycle/appDatabaseImport.test.js +79 -0
  69. package/dist-esm/database-lifecycle/appDatabaseImport.test.js.map +1 -1
  70. package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts +18 -0
  71. package/dist-esm/database-lifecycle/appDatabaseStatus.d.ts.map +1 -1
  72. package/dist-esm/database-lifecycle/appDatabaseStatus.js +18 -0
  73. package/dist-esm/database-lifecycle/appDatabaseStatus.js.map +1 -1
  74. package/dist-esm/database-lifecycle/appDatabaseStatus.test.js +12 -1
  75. package/dist-esm/database-lifecycle/appDatabaseStatus.test.js.map +1 -1
  76. package/dist-esm/database-lifecycle/dataImport.d.ts +45 -2
  77. package/dist-esm/database-lifecycle/dataImport.d.ts.map +1 -1
  78. package/dist-esm/database-lifecycle/dataImport.js +205 -3
  79. package/dist-esm/database-lifecycle/dataImport.js.map +1 -1
  80. package/dist-esm/database-lifecycle/dataImport.test.js +61 -1
  81. package/dist-esm/database-lifecycle/dataImport.test.js.map +1 -1
  82. package/dist-esm/database-lifecycle/importCompatibility.d.ts +40 -0
  83. package/dist-esm/database-lifecycle/importCompatibility.d.ts.map +1 -0
  84. package/dist-esm/database-lifecycle/importCompatibility.js +117 -0
  85. package/dist-esm/database-lifecycle/importCompatibility.js.map +1 -0
  86. package/dist-esm/database-lifecycle/importCompatibility.test.d.ts +2 -0
  87. package/dist-esm/database-lifecycle/importCompatibility.test.d.ts.map +1 -0
  88. package/dist-esm/database-lifecycle/importCompatibility.test.js +112 -0
  89. package/dist-esm/database-lifecycle/importCompatibility.test.js.map +1 -0
  90. package/dist-esm/database-lifecycle/index.d.ts +29 -5
  91. package/dist-esm/database-lifecycle/index.d.ts.map +1 -1
  92. package/dist-esm/database-lifecycle/index.js +13 -5
  93. package/dist-esm/database-lifecycle/index.js.map +1 -1
  94. package/dist-esm/database-lifecycle/index.test.js +4 -1
  95. package/dist-esm/database-lifecycle/index.test.js.map +1 -1
  96. package/dist-esm/index.d.ts +1 -0
  97. package/dist-esm/index.d.ts.map +1 -1
  98. package/dist-esm/index.js +1 -0
  99. package/dist-esm/index.js.map +1 -1
  100. package/dist-esm/types/audit/ocsf.d.ts +2 -1
  101. package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
  102. package/dist-esm/types/audit/ocsf.js +8 -0
  103. package/dist-esm/types/audit/ocsf.js.map +1 -1
  104. package/dist-esm/types/codeSecurity/index.d.ts +2 -1
  105. package/dist-esm/types/codeSecurity/index.d.ts.map +1 -1
  106. package/dist-esm/types/codeSecurity/index.js +43 -5
  107. package/dist-esm/types/codeSecurity/index.js.map +1 -1
  108. package/dist-esm/types/codeSecurity/index.test.js +37 -3
  109. package/dist-esm/types/codeSecurity/index.test.js.map +1 -1
  110. package/dist-esm/types/datasource/auth.d.ts +1 -0
  111. package/dist-esm/types/datasource/auth.d.ts.map +1 -1
  112. package/dist-esm/types/datasource/auth.js +7 -1
  113. package/dist-esm/types/datasource/auth.js.map +1 -1
  114. package/dist-esm/types/datasource/auth.test.js +20 -2
  115. package/dist-esm/types/datasource/auth.test.js.map +1 -1
  116. package/dist-esm/types/integration/index.d.ts +16 -1
  117. package/dist-esm/types/integration/index.d.ts.map +1 -1
  118. package/dist-esm/types/integration/index.js +8 -1
  119. package/dist-esm/types/integration/index.js.map +1 -1
  120. package/dist-esm/types/rbac/index.d.ts +0 -5
  121. package/dist-esm/types/rbac/index.d.ts.map +1 -1
  122. package/dist-esm/types/rbac/index.js.map +1 -1
  123. package/dist-esm/types/response/index.d.ts +0 -1
  124. package/dist-esm/types/response/index.d.ts.map +1 -1
  125. package/dist-esm/types/response/index.js +0 -1
  126. package/dist-esm/types/response/index.js.map +1 -1
  127. package/package.json +2 -2
  128. package/src/database-lifecycle/appDatabaseImport.test.ts +95 -0
  129. package/src/database-lifecycle/appDatabaseImport.ts +134 -8
  130. package/src/database-lifecycle/appDatabaseStatus.test.ts +20 -1
  131. package/src/database-lifecycle/appDatabaseStatus.ts +39 -0
  132. package/src/database-lifecycle/dataImport.test.ts +75 -0
  133. package/src/database-lifecycle/dataImport.ts +267 -4
  134. package/src/database-lifecycle/importCompatibility.test.ts +146 -0
  135. package/src/database-lifecycle/importCompatibility.ts +148 -0
  136. package/src/database-lifecycle/index.test.ts +4 -1
  137. package/src/database-lifecycle/index.ts +54 -4
  138. package/src/index.ts +1 -0
  139. package/src/types/audit/ocsf.ts +10 -1
  140. package/src/types/codeSecurity/index.test.ts +40 -3
  141. package/src/types/codeSecurity/index.ts +45 -4
  142. package/src/types/datasource/auth.test.ts +25 -1
  143. package/src/types/datasource/auth.ts +9 -1
  144. package/src/types/integration/index.ts +17 -0
  145. package/src/types/rbac/index.ts +0 -8
  146. package/src/types/response/index.ts +0 -1
  147. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.d.ts +0 -3
  148. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.d.ts.map +0 -1
  149. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.js +0 -3
  150. package/dist/types/response/GetGroupPermissionEntitiesResponseBody.js.map +0 -1
  151. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.d.ts +0 -3
  152. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.d.ts.map +0 -1
  153. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.js +0 -2
  154. package/dist-esm/types/response/GetGroupPermissionEntitiesResponseBody.js.map +0 -1
  155. 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 AppDatabaseImportCallbackResult = InspectImportPrefixCallbackResult | PrepareImportPrefixUploadCallbackResult;
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 parseAppDatabaseImportValidationMetadata(value: unknown): AppDatabaseImportValidationMetadata | undefined;
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":"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"}
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 = ['prepare_import_prefix_upload', 'inspect_import_prefix', 'restore_import_data'];
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.prefixObjectKey === undefined && isPositiveInteger(value.import.expectedSizeBytes);
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.expectedSizeBytes === undefined &&
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":"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"}
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;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,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;IAC/B,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;;;;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
+ {"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":";;AA6EA,gDAEC;AAOD,oDAEC;AAED,wFAIC;AA9FD,sDAAmD;AAwEnD;;;;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"}
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":"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"}
1
+ {"version":3,"file":"appDatabaseStatus.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/appDatabaseStatus.test.ts"],"names":[],"mappings":"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"}
@@ -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