@superblocksteam/shared 0.9603.3 → 0.9604.1

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 (145) hide show
  1. package/dist/database-lifecycle/capacityPolicy.d.ts +51 -0
  2. package/dist/database-lifecycle/capacityPolicy.d.ts.map +1 -0
  3. package/dist/database-lifecycle/capacityPolicy.js +159 -0
  4. package/dist/database-lifecycle/capacityPolicy.js.map +1 -0
  5. package/dist/database-lifecycle/capacityPolicy.test.d.ts +2 -0
  6. package/dist/database-lifecycle/capacityPolicy.test.d.ts.map +1 -0
  7. package/dist/database-lifecycle/capacityPolicy.test.js +159 -0
  8. package/dist/database-lifecycle/capacityPolicy.test.js.map +1 -0
  9. package/dist/database-lifecycle/edit-lifecycle-capability.d.ts +18 -0
  10. package/dist/database-lifecycle/edit-lifecycle-capability.d.ts.map +1 -0
  11. package/dist/database-lifecycle/edit-lifecycle-capability.js +32 -0
  12. package/dist/database-lifecycle/edit-lifecycle-capability.js.map +1 -0
  13. package/dist/database-lifecycle/edit-lifecycle-capability.test.d.ts +2 -0
  14. package/dist/database-lifecycle/edit-lifecycle-capability.test.d.ts.map +1 -0
  15. package/dist/database-lifecycle/edit-lifecycle-capability.test.js +91 -0
  16. package/dist/database-lifecycle/edit-lifecycle-capability.test.js.map +1 -0
  17. package/dist/database-lifecycle/index.d.ts +50 -27
  18. package/dist/database-lifecycle/index.d.ts.map +1 -1
  19. package/dist/database-lifecycle/index.js +78 -54
  20. package/dist/database-lifecycle/index.js.map +1 -1
  21. package/dist/database-lifecycle/index.test.js +120 -77
  22. package/dist/database-lifecycle/index.test.js.map +1 -1
  23. package/dist/database-lifecycle/physicalPoolIdentity.d.ts +29 -0
  24. package/dist/database-lifecycle/physicalPoolIdentity.d.ts.map +1 -0
  25. package/dist/database-lifecycle/physicalPoolIdentity.js +64 -0
  26. package/dist/database-lifecycle/physicalPoolIdentity.js.map +1 -0
  27. package/dist/database-lifecycle/physicalPoolIdentity.test.d.ts +2 -0
  28. package/dist/database-lifecycle/physicalPoolIdentity.test.d.ts.map +1 -0
  29. package/dist/database-lifecycle/physicalPoolIdentity.test.js +51 -0
  30. package/dist/database-lifecycle/physicalPoolIdentity.test.js.map +1 -0
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/types/audit/ocsf.d.ts +60 -6
  36. package/dist/types/audit/ocsf.d.ts.map +1 -1
  37. package/dist/types/audit/ocsf.js +12 -1
  38. package/dist/types/audit/ocsf.js.map +1 -1
  39. package/dist/types/deployment/deployQueueStatus.d.ts +13 -0
  40. package/dist/types/deployment/deployQueueStatus.d.ts.map +1 -1
  41. package/dist/types/deployment/index.d.ts +1 -1
  42. package/dist/types/deployment/index.d.ts.map +1 -1
  43. package/dist/types/deployment/index.js.map +1 -1
  44. package/dist/types/policyGate/index.d.ts +5 -0
  45. package/dist/types/policyGate/index.d.ts.map +1 -1
  46. package/dist/types/policyGate/index.js +5 -1
  47. package/dist/types/policyGate/index.js.map +1 -1
  48. package/dist/types/publishPipeline/plan.js +1 -1
  49. package/dist/types/publishPipeline/plan.js.map +1 -1
  50. package/dist/types/publishPipeline/plan.test.js +3 -3
  51. package/dist/types/publishPipeline/plan.test.js.map +1 -1
  52. package/dist/types/rbac/index.d.ts +2 -0
  53. package/dist/types/rbac/index.d.ts.map +1 -1
  54. package/dist/types/rbac/index.js +3 -1
  55. package/dist/types/rbac/index.js.map +1 -1
  56. package/dist/types/reviewPolicy/index.d.ts +35 -4
  57. package/dist/types/reviewPolicy/index.d.ts.map +1 -1
  58. package/dist/types/reviewPolicy/index.js +15 -1
  59. package/dist/types/reviewPolicy/index.js.map +1 -1
  60. package/dist/types/reviewPolicy/index.test.d.ts +2 -0
  61. package/dist/types/reviewPolicy/index.test.d.ts.map +1 -0
  62. package/dist/types/reviewPolicy/index.test.js +17 -0
  63. package/dist/types/reviewPolicy/index.test.js.map +1 -0
  64. package/dist-esm/database-lifecycle/capacityPolicy.d.ts +51 -0
  65. package/dist-esm/database-lifecycle/capacityPolicy.d.ts.map +1 -0
  66. package/dist-esm/database-lifecycle/capacityPolicy.js +150 -0
  67. package/dist-esm/database-lifecycle/capacityPolicy.js.map +1 -0
  68. package/dist-esm/database-lifecycle/capacityPolicy.test.d.ts +2 -0
  69. package/dist-esm/database-lifecycle/capacityPolicy.test.d.ts.map +1 -0
  70. package/dist-esm/database-lifecycle/capacityPolicy.test.js +157 -0
  71. package/dist-esm/database-lifecycle/capacityPolicy.test.js.map +1 -0
  72. package/dist-esm/database-lifecycle/edit-lifecycle-capability.d.ts +18 -0
  73. package/dist-esm/database-lifecycle/edit-lifecycle-capability.d.ts.map +1 -0
  74. package/dist-esm/database-lifecycle/edit-lifecycle-capability.js +29 -0
  75. package/dist-esm/database-lifecycle/edit-lifecycle-capability.js.map +1 -0
  76. package/dist-esm/database-lifecycle/edit-lifecycle-capability.test.d.ts +2 -0
  77. package/dist-esm/database-lifecycle/edit-lifecycle-capability.test.d.ts.map +1 -0
  78. package/dist-esm/database-lifecycle/edit-lifecycle-capability.test.js +89 -0
  79. package/dist-esm/database-lifecycle/edit-lifecycle-capability.test.js.map +1 -0
  80. package/dist-esm/database-lifecycle/index.d.ts +50 -27
  81. package/dist-esm/database-lifecycle/index.d.ts.map +1 -1
  82. package/dist-esm/database-lifecycle/index.js +62 -51
  83. package/dist-esm/database-lifecycle/index.js.map +1 -1
  84. package/dist-esm/database-lifecycle/index.test.js +90 -47
  85. package/dist-esm/database-lifecycle/index.test.js.map +1 -1
  86. package/dist-esm/database-lifecycle/physicalPoolIdentity.d.ts +29 -0
  87. package/dist-esm/database-lifecycle/physicalPoolIdentity.d.ts.map +1 -0
  88. package/dist-esm/database-lifecycle/physicalPoolIdentity.js +59 -0
  89. package/dist-esm/database-lifecycle/physicalPoolIdentity.js.map +1 -0
  90. package/dist-esm/database-lifecycle/physicalPoolIdentity.test.d.ts +2 -0
  91. package/dist-esm/database-lifecycle/physicalPoolIdentity.test.d.ts.map +1 -0
  92. package/dist-esm/database-lifecycle/physicalPoolIdentity.test.js +49 -0
  93. package/dist-esm/database-lifecycle/physicalPoolIdentity.test.js.map +1 -0
  94. package/dist-esm/index.d.ts +1 -0
  95. package/dist-esm/index.d.ts.map +1 -1
  96. package/dist-esm/index.js +1 -0
  97. package/dist-esm/index.js.map +1 -1
  98. package/dist-esm/types/audit/ocsf.d.ts +60 -6
  99. package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
  100. package/dist-esm/types/audit/ocsf.js +12 -1
  101. package/dist-esm/types/audit/ocsf.js.map +1 -1
  102. package/dist-esm/types/deployment/deployQueueStatus.d.ts +13 -0
  103. package/dist-esm/types/deployment/deployQueueStatus.d.ts.map +1 -1
  104. package/dist-esm/types/deployment/index.d.ts +1 -1
  105. package/dist-esm/types/deployment/index.d.ts.map +1 -1
  106. package/dist-esm/types/deployment/index.js.map +1 -1
  107. package/dist-esm/types/policyGate/index.d.ts +5 -0
  108. package/dist-esm/types/policyGate/index.d.ts.map +1 -1
  109. package/dist-esm/types/policyGate/index.js +5 -1
  110. package/dist-esm/types/policyGate/index.js.map +1 -1
  111. package/dist-esm/types/publishPipeline/plan.js +1 -1
  112. package/dist-esm/types/publishPipeline/plan.js.map +1 -1
  113. package/dist-esm/types/publishPipeline/plan.test.js +3 -3
  114. package/dist-esm/types/publishPipeline/plan.test.js.map +1 -1
  115. package/dist-esm/types/rbac/index.d.ts +2 -0
  116. package/dist-esm/types/rbac/index.d.ts.map +1 -1
  117. package/dist-esm/types/rbac/index.js +3 -1
  118. package/dist-esm/types/rbac/index.js.map +1 -1
  119. package/dist-esm/types/reviewPolicy/index.d.ts +35 -4
  120. package/dist-esm/types/reviewPolicy/index.d.ts.map +1 -1
  121. package/dist-esm/types/reviewPolicy/index.js +13 -0
  122. package/dist-esm/types/reviewPolicy/index.js.map +1 -1
  123. package/dist-esm/types/reviewPolicy/index.test.d.ts +2 -0
  124. package/dist-esm/types/reviewPolicy/index.test.d.ts.map +1 -0
  125. package/dist-esm/types/reviewPolicy/index.test.js +15 -0
  126. package/dist-esm/types/reviewPolicy/index.test.js.map +1 -0
  127. package/package.json +1 -1
  128. package/src/database-lifecycle/capacityPolicy.test.ts +209 -0
  129. package/src/database-lifecycle/capacityPolicy.ts +197 -0
  130. package/src/database-lifecycle/edit-lifecycle-capability.test.ts +116 -0
  131. package/src/database-lifecycle/edit-lifecycle-capability.ts +34 -0
  132. package/src/database-lifecycle/index.test.ts +105 -48
  133. package/src/database-lifecycle/index.ts +157 -90
  134. package/src/database-lifecycle/physicalPoolIdentity.test.ts +64 -0
  135. package/src/database-lifecycle/physicalPoolIdentity.ts +75 -0
  136. package/src/index.ts +1 -0
  137. package/src/types/audit/ocsf.ts +73 -7
  138. package/src/types/deployment/deployQueueStatus.ts +14 -0
  139. package/src/types/deployment/index.ts +2 -1
  140. package/src/types/policyGate/index.ts +5 -1
  141. package/src/types/publishPipeline/plan.test.ts +3 -3
  142. package/src/types/publishPipeline/plan.ts +1 -1
  143. package/src/types/rbac/index.ts +3 -1
  144. package/src/types/reviewPolicy/index.test.ts +17 -0
  145. package/src/types/reviewPolicy/index.ts +52 -5
@@ -1,8 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const vitest_1 = require("vitest");
4
- const index_js_1 = require("./index.js");
4
+ const index_js_1 = require("../types/api/index.js");
5
+ const index_js_2 = require("./index.js");
5
6
  (0, vitest_1.describe)('database lifecycle contracts', () => {
7
+ // Postgres `ALTER TYPE ... ADD VALUE` appends. TypeORM's entity-vs-schema
8
+ // check treats enum label order as part of the contract, so this array must
9
+ // match the live `lifecycle_operation_enum` order rather than alphabetical
10
+ // or semantic grouping.
11
+ (0, vitest_1.test)('lists lifecycle operations in Postgres enum order', () => {
12
+ (0, vitest_1.expect)(index_js_2.LIFECYCLE_OPERATIONS).toEqual(['ensure_database', 'migrate_schema', 'retire_database', 'ensure_physical_database_instance']);
13
+ });
14
+ (0, vitest_1.test)('allows lifecycle-managed integrations only in application APIs', () => {
15
+ (0, vitest_1.expect)((0, index_js_2.isLifecycleManagedIntegrationAllowedForApiTrigger)(index_js_1.ApiTriggerType.UI, index_js_2.DATABASE_LIFECYCLE_MANAGED_BY)).toBe(true);
16
+ (0, vitest_1.expect)((0, index_js_2.isLifecycleManagedIntegrationAllowedForApiTrigger)(index_js_1.ApiTriggerType.WORKFLOW, index_js_2.DATABASE_LIFECYCLE_MANAGED_BY)).toBe(false);
17
+ (0, vitest_1.expect)((0, index_js_2.isLifecycleManagedIntegrationAllowedForApiTrigger)(index_js_1.ApiTriggerType.SCHEDULE, index_js_2.DATABASE_LIFECYCLE_MANAGED_BY)).toBe(false);
18
+ (0, vitest_1.expect)((0, index_js_2.isLifecycleManagedIntegrationAllowedForApiTrigger)(index_js_1.ApiTriggerType.WORKFLOW, null)).toBe(true);
19
+ });
6
20
  (0, vitest_1.test)('computes stable requirement, binding, and desired spec identifiers', async () => {
7
21
  const requirement = {
8
22
  logicalName: 'Orders DB',
@@ -14,26 +28,27 @@ const index_js_1 = require("./index.js");
14
28
  },
15
29
  extensions: ['pgcrypto', 'uuid-ossp']
16
30
  };
17
- (0, vitest_1.expect)((0, index_js_1.computeRequirementKey)(requirement)).toBe('orders-db~Orders%20DB:postgres');
18
- (0, vitest_1.expect)((0, index_js_1.computeRequirementKey)({ logicalName: 'orders/db', engine: 'postgres' })).toBe('orders-db~orders%2Fdb:postgres');
19
- (0, vitest_1.expect)((0, index_js_1.computeRequirementKey)({ logicalName: 'orders-db', engine: 'postgres' })).toBe('orders-db~orders-db:postgres');
31
+ (0, vitest_1.expect)((0, index_js_2.computeRequirementKey)(requirement)).toBe('orders-db~Orders%20DB:postgres');
32
+ (0, vitest_1.expect)((0, index_js_2.computeRequirementKey)({ logicalName: 'orders/db', engine: 'postgres' })).toBe('orders-db~orders%2Fdb:postgres');
33
+ (0, vitest_1.expect)((0, index_js_2.computeRequirementKey)({ logicalName: 'orders-db', engine: 'postgres' })).toBe('orders-db~orders-db:postgres');
20
34
  // binding_key excludes the logical name on purpose: one database per
21
- // (organization, application, environment, profile). Two different logical
22
- // names under the same profile resolve to the same binding_key.
23
- (0, vitest_1.expect)((0, index_js_1.computeBindingKey)({
35
+ // (organization, application, profile). Two different logical names under
36
+ // the same profile resolve to the same binding_key.
37
+ (0, vitest_1.expect)((0, index_js_2.computeBindingKey)({
24
38
  organizationId: 'org-1',
25
39
  applicationId: 'app-1',
26
- environment: 'edit',
27
40
  profile: 'Staging EU'
28
- })).toBe('org-1:app-1:edit:staging-eu~Staging%20EU');
29
- (0, vitest_1.expect)((0, index_js_1.computeBindingKey)({
41
+ })).toBe('org-1:app-1:staging-eu~Staging%20EU');
42
+ (0, vitest_1.expect)((0, index_js_2.computeBindingKey)({
30
43
  organizationId: 'org-1',
31
44
  applicationId: 'app-1',
32
- environment: 'edit',
33
45
  profile: 'staging'
34
- })).toBe('org-1:app-1:edit:staging~staging');
35
- await (0, vitest_1.expect)((0, index_js_1.computeDesiredSpecHash)(requirement)).resolves.toBe(await (0, index_js_1.computeDesiredSpecHash)({ ...requirement, extensions: ['uuid-ossp', 'pgcrypto'] }));
36
- await (0, vitest_1.expect)((0, index_js_1.computeDesiredSpecHash)(requirement)).resolves.toBe('QsCl6RVzJVEwf4Nuk0D27rRtycYe2vQZMxcXLt9WUkQ=');
46
+ })).toBe('org-1:app-1:staging~staging');
47
+ await (0, vitest_1.expect)((0, index_js_2.computeDesiredSpecHash)(requirement)).resolves.toBe(await (0, index_js_2.computeDesiredSpecHash)({
48
+ ...requirement,
49
+ extensions: ['uuid-ossp', 'pgcrypto']
50
+ }));
51
+ await (0, vitest_1.expect)((0, index_js_2.computeDesiredSpecHash)(requirement)).resolves.toBe('QsCl6RVzJVEwf4Nuk0D27rRtycYe2vQZMxcXLt9WUkQ=');
37
52
  });
38
53
  (0, vitest_1.test)('ignores migrationDirectory when hashing the desired spec', async () => {
39
54
  const infrastructureSpec = {
@@ -43,29 +58,35 @@ const index_js_1 = require("./index.js");
43
58
  sizing: { storageGb: 20, tier: 'shared' },
44
59
  extensions: ['pgcrypto', 'uuid-ossp']
45
60
  };
46
- const withoutDirectory = await (0, index_js_1.computeDesiredSpecHash)(infrastructureSpec);
47
- const withDirectory = await (0, index_js_1.computeDesiredSpecHash)({ ...infrastructureSpec, migrationDirectory: 'db/migrations' });
48
- const withOtherDirectory = await (0, index_js_1.computeDesiredSpecHash)({ ...infrastructureSpec, migrationDirectory: 'db/other-migrations' });
61
+ const withoutDirectory = await (0, index_js_2.computeDesiredSpecHash)(infrastructureSpec);
62
+ const withDirectory = await (0, index_js_2.computeDesiredSpecHash)({
63
+ ...infrastructureSpec,
64
+ migrationDirectory: 'db/migrations'
65
+ });
66
+ const withOtherDirectory = await (0, index_js_2.computeDesiredSpecHash)({
67
+ ...infrastructureSpec,
68
+ migrationDirectory: 'db/other-migrations'
69
+ });
49
70
  // migrationDirectory only says where the SQL files live, not what
50
71
  // infrastructure to provision, so changing it must not look like drift.
51
72
  (0, vitest_1.expect)(withDirectory).toBe(withoutDirectory);
52
73
  (0, vitest_1.expect)(withOtherDirectory).toBe(withoutDirectory);
53
74
  });
54
75
  (0, vitest_1.test)('hashes desired specs with locale-invariant ordering', async () => {
55
- const first = await (0, index_js_1.computeDesiredSpecHash)({
76
+ const first = await (0, index_js_2.computeDesiredSpecHash)({
56
77
  logicalName: 'Éclair DB',
57
78
  engine: 'postgres',
58
79
  extensions: ['ä', 'z', 'a']
59
80
  });
60
- const second = await (0, index_js_1.computeDesiredSpecHash)({
81
+ const second = await (0, index_js_2.computeDesiredSpecHash)({
61
82
  logicalName: 'Éclair DB',
62
83
  engine: 'postgres',
63
84
  extensions: ['z', 'a', 'ä']
64
85
  });
65
86
  (0, vitest_1.expect)(first).toBe(second);
66
87
  });
67
- (0, vitest_1.test)('redacts raw credential material while preserving credential refs', () => {
68
- const redacted = (0, index_js_1.redactLifecycleSecrets)({
88
+ (0, vitest_1.test)('redacts raw credential material and generic credential refs while preserving physical masterCredentialRef', () => {
89
+ const redacted = (0, index_js_2.redactLifecycleSecrets)({
69
90
  host: 'db.internal',
70
91
  password: 'raw-password',
71
92
  nested: {
@@ -81,6 +102,11 @@ const index_js_1 = require("./index.js");
81
102
  ref: 'database/orders',
82
103
  field: 'password'
83
104
  }
105
+ },
106
+ masterCredentialRef: {
107
+ resolver: 'aws_secrets_manager',
108
+ ref: 'physical-instance/master',
109
+ field: 'password'
84
110
  }
85
111
  });
86
112
  (0, vitest_1.expect)(redacted).toEqual({
@@ -94,149 +120,166 @@ const index_js_1 = require("./index.js");
94
120
  }
95
121
  },
96
122
  credential_refs: {
97
- password: {
98
- resolver: 'vault',
99
- ref: 'database/orders',
100
- field: 'password'
101
- }
123
+ password: '[REDACTED]'
124
+ },
125
+ masterCredentialRef: {
126
+ resolver: 'aws_secrets_manager',
127
+ ref: 'physical-instance/master',
128
+ field: 'password'
102
129
  }
103
130
  });
104
131
  });
105
132
  (0, vitest_1.test)('recognizes terminal lifecycle states', () => {
106
- (0, vitest_1.expect)((0, index_js_1.isTerminalLifecycleState)('ready')).toBe(true);
107
- (0, vitest_1.expect)((0, index_js_1.isTerminalLifecycleState)('failed')).toBe(true);
108
- (0, vitest_1.expect)((0, index_js_1.isTerminalLifecycleState)('provisioning')).toBe(false);
133
+ (0, vitest_1.expect)((0, index_js_2.isTerminalLifecycleState)('ready')).toBe(true);
134
+ (0, vitest_1.expect)((0, index_js_2.isTerminalLifecycleState)('failed')).toBe(true);
135
+ (0, vitest_1.expect)((0, index_js_2.isTerminalLifecycleState)('provisioning')).toBe(false);
109
136
  });
110
137
  (0, vitest_1.test)('flags secret-shaped keys', () => {
111
138
  for (const key of ['password', 'PASSWORD', 'api_token', 'private_key', 'private-key', 'dsn']) {
112
- (0, vitest_1.expect)((0, index_js_1.isSecretKey)(key)).toBe(true);
139
+ (0, vitest_1.expect)((0, index_js_2.isSecretKey)(key)).toBe(true);
113
140
  }
114
141
  for (const key of ['host', 'port', 'database', 'username']) {
115
- (0, vitest_1.expect)((0, index_js_1.isSecretKey)(key)).toBe(false);
142
+ (0, vitest_1.expect)((0, index_js_2.isSecretKey)(key)).toBe(false);
116
143
  }
117
144
  });
118
145
  (0, vitest_1.test)('flags secret-shaped value content', () => {
119
- (0, vitest_1.expect)((0, index_js_1.containsCredentialMaterial)('postgres://user:pass@db.internal:5432/orders')).toBe(true);
120
- (0, vitest_1.expect)((0, index_js_1.containsCredentialMaterial)('mongodb+srv://app:secret@cluster0.example.net/db')).toBe(true);
121
- (0, vitest_1.expect)((0, index_js_1.containsCredentialMaterial)('password=hunter2;host=db.internal')).toBe(true);
122
- (0, vitest_1.expect)((0, index_js_1.containsCredentialMaterial)('{"password":"hunter2"}')).toBe(true);
123
- (0, vitest_1.expect)((0, index_js_1.containsCredentialMaterial)('host=db.internal port=5432')).toBe(false);
124
- (0, vitest_1.expect)((0, index_js_1.containsCredentialMaterial)('arn:aws:secretsmanager:us-east-1:123:secret:orders')).toBe(false);
146
+ (0, vitest_1.expect)((0, index_js_2.containsCredentialMaterial)('postgres://user:pass@db.internal:5432/orders')).toBe(true);
147
+ (0, vitest_1.expect)((0, index_js_2.containsCredentialMaterial)('mongodb+srv://app:secret@cluster0.example.net/db')).toBe(true);
148
+ (0, vitest_1.expect)((0, index_js_2.containsCredentialMaterial)('password=hunter2;host=db.internal')).toBe(true);
149
+ (0, vitest_1.expect)((0, index_js_2.containsCredentialMaterial)('{"password":"hunter2"}')).toBe(true);
150
+ (0, vitest_1.expect)((0, index_js_2.containsCredentialMaterial)('host=db.internal port=5432')).toBe(false);
151
+ (0, vitest_1.expect)((0, index_js_2.containsCredentialMaterial)('arn:aws:secretsmanager:us-east-1:123:secret:orders')).toBe(false);
125
152
  });
126
153
  (0, vitest_1.test)('builds a canonical session policy from a valid managed Postgres IAM descriptor', () => {
127
- const descriptor = (0, index_js_1.parseNativeDbIamDescriptor)({
154
+ const descriptor = (0, index_js_2.parseNativeDbIamDescriptor)({
128
155
  application_id: 'application-id',
129
- auth_descriptor_version: 1,
156
+ auth_descriptor_version: 3,
130
157
  auth_mode: 'aws_iam_role',
131
158
  aws_account_id: '123456789012',
132
159
  binding_id: 'binding-id',
133
160
  cluster_resource_id: 'cluster-ABC123DEF456EXAMPLE',
134
161
  connector_role_arn: 'arn:aws:iam::123456789012:role/superblocks-native-db-connector-prod',
135
- database: 'sbndb_abcdef123456_0123456789abcdef01234567',
162
+ database: 'sbndb_abcdef1234567890_0123456789abcdef01234567',
136
163
  host: 'native-db.cluster-example.us-west-2.rds.amazonaws.com',
137
164
  port: 5432,
138
165
  region: 'us-west-2',
139
- username: 'sbndb_abcdef123456_7bfeae1170db923274f1943f_runtime'
166
+ username: 'sbndb_abcdef1234567890_0123456789abcdef01234567_runtime'
140
167
  });
141
168
  (0, vitest_1.expect)(descriptor).toBeDefined();
142
169
  if (!descriptor) {
143
170
  throw new Error('Expected a valid IAM descriptor');
144
171
  }
145
- (0, vitest_1.expect)((0, index_js_1.nativeDbIamSessionPolicy)(descriptor)).toBe('{"Version":"2012-10-17","Statement":[{"Sid":"ConnectToThisNativeDatabaseUser","Effect":"Allow","Action":"rds-db:connect","Resource":"arn:aws:rds-db:us-west-2:123456789012:dbuser:cluster-ABC123DEF456EXAMPLE/sbndb_abcdef123456_7bfeae1170db923274f1943f_runtime"}]}');
172
+ (0, vitest_1.expect)((0, index_js_2.nativeDbIamSessionPolicy)(descriptor)).toBe('{"Version":"2012-10-17","Statement":[{"Sid":"ConnectToThisNativeDatabaseUser","Effect":"Allow","Action":"rds-db:connect","Resource":"arn:aws:rds-db:us-west-2:123456789012:dbuser:cluster-ABC123DEF456EXAMPLE/sbndb_abcdef1234567890_0123456789abcdef01234567_runtime"}]}');
146
173
  });
147
- (0, vitest_1.test)('reads binding-scoped v2 managed Postgres IAM descriptors', () => {
148
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({
174
+ (0, vitest_1.test)('reads managed Postgres IAM descriptors with auth_descriptor_version 3', () => {
175
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
149
176
  application_id: 'application-id',
150
- auth_descriptor_version: 2,
177
+ auth_descriptor_version: 3,
151
178
  auth_mode: 'aws_iam_role',
152
179
  aws_account_id: '123456789012',
153
180
  binding_id: 'binding-id',
154
181
  cluster_resource_id: 'cluster-ABC123DEF456EXAMPLE',
155
182
  connector_role_arn: 'arn:aws:iam::123456789012:role/superblocks-native-db-connector-prod',
156
- database: 'sbndb_abcdef123456_0123456789abcdef01234567',
183
+ database: 'sbndb_abcdef1234567890_0123456789abcdef01234567',
157
184
  host: 'native-db.cluster-example.us-west-2.rds.amazonaws.com',
158
185
  port: 5432,
159
186
  region: 'us-west-2',
160
- username: 'sbndb_abcdef123456_0123456789abcdef01234567_runtime'
187
+ username: 'sbndb_abcdef1234567890_0123456789abcdef01234567_runtime'
161
188
  })).toEqual({
162
189
  application_id: 'application-id',
163
- auth_descriptor_version: 2,
190
+ auth_descriptor_version: 3,
164
191
  auth_mode: 'aws_iam_role',
165
192
  aws_account_id: '123456789012',
166
193
  binding_id: 'binding-id',
167
194
  cluster_resource_id: 'cluster-ABC123DEF456EXAMPLE',
168
195
  connector_role_arn: 'arn:aws:iam::123456789012:role/superblocks-native-db-connector-prod',
169
- database: 'sbndb_abcdef123456_0123456789abcdef01234567',
196
+ database: 'sbndb_abcdef1234567890_0123456789abcdef01234567',
170
197
  host: 'native-db.cluster-example.us-west-2.rds.amazonaws.com',
171
198
  port: 5432,
172
199
  region: 'us-west-2',
173
- username: 'sbndb_abcdef123456_0123456789abcdef01234567_runtime'
200
+ username: 'sbndb_abcdef1234567890_0123456789abcdef01234567_runtime'
174
201
  });
175
202
  });
176
- (0, vitest_1.test)('rejects v2 descriptors when database and runtime username use different binding tokens', () => {
177
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({
203
+ (0, vitest_1.test)('rejects descriptors when database and runtime username do not match', () => {
204
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
178
205
  application_id: 'application-id',
179
- auth_descriptor_version: 2,
206
+ auth_descriptor_version: 3,
180
207
  auth_mode: 'aws_iam_role',
181
208
  aws_account_id: '123456789012',
182
209
  binding_id: 'binding-id',
183
210
  cluster_resource_id: 'cluster-ABC123DEF456EXAMPLE',
184
211
  connector_role_arn: 'arn:aws:iam::123456789012:role/superblocks-native-db-connector-prod',
185
- database: 'sbndb_abcdef123456_0123456789abcdef01234567',
212
+ database: 'sbndb_abcdef1234567890_0123456789abcdef01234567',
186
213
  host: 'native-db.cluster-example.us-west-2.rds.amazonaws.com',
187
214
  port: 5432,
188
215
  region: 'us-west-2',
189
- username: 'sbndb_abcdef123456_fedcba9876543210fedcba98_runtime'
216
+ username: 'sbndb_abcdef1234567890_fedcba9876543210fedcba98_runtime'
190
217
  })).toBeUndefined();
191
218
  });
192
219
  (0, vitest_1.test)('rejects malformed or non-commercial managed Postgres IAM descriptors', () => {
193
220
  const descriptor = {
194
221
  application_id: 'application-id',
195
- auth_descriptor_version: 1,
222
+ auth_descriptor_version: 3,
196
223
  auth_mode: 'aws_iam_role',
197
224
  aws_account_id: '123456789012',
198
225
  binding_id: 'binding-id',
199
226
  cluster_resource_id: 'cluster-ABC123DEF456EXAMPLE',
200
227
  connector_role_arn: 'arn:aws:iam::123456789012:role/superblocks-native-db-connector-prod',
201
- database: 'sbndb_abcdef123456_0123456789abcdef01234567',
228
+ database: 'sbndb_abcdef1234567890_0123456789abcdef01234567',
202
229
  host: 'native-db.cluster-example.us-west-2.rds.amazonaws.com',
203
230
  port: 5432,
204
231
  region: 'us-west-2',
205
- username: 'sbndb_abcdef123456_7bfeae1170db923274f1943f_runtime'
232
+ username: 'sbndb_abcdef1234567890_0123456789abcdef01234567_runtime'
206
233
  };
207
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, auth_descriptor_version: 3 })).toBeUndefined();
208
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, cluster_resource_id: 'not-an-rds-resource' })).toBeUndefined();
209
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, connector_role_arn: 'arn:aws:iam::210987654321:role/other' })).toBeUndefined();
210
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, database: 'orders' })).toBeUndefined();
211
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, host: descriptor.host.toUpperCase() })).toBeUndefined();
212
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, host: 'native-db.cluster-example.us-east-1.rds.amazonaws.com' })).toBeUndefined();
213
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, port: 0 })).toBeUndefined();
214
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, region: 'cn-north-1' })).toBeUndefined();
215
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, region: 'us-gov-west-1' })).toBeUndefined();
216
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({ ...descriptor, username: 'sbndb_000000000000_7bfeae1170db923274f1943f_runtime' })).toBeUndefined();
234
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({ ...descriptor, auth_descriptor_version: 1 })).toBeUndefined();
235
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({ ...descriptor, auth_descriptor_version: 2 })).toBeUndefined();
236
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
237
+ ...descriptor,
238
+ cluster_resource_id: 'not-an-rds-resource'
239
+ })).toBeUndefined();
240
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
241
+ ...descriptor,
242
+ connector_role_arn: 'arn:aws:iam::210987654321:role/other'
243
+ })).toBeUndefined();
244
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({ ...descriptor, database: 'orders' })).toBeUndefined();
245
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
246
+ ...descriptor,
247
+ host: descriptor.host.toUpperCase()
248
+ })).toBeUndefined();
249
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
250
+ ...descriptor,
251
+ host: 'native-db.cluster-example.us-east-1.rds.amazonaws.com'
252
+ })).toBeUndefined();
253
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({ ...descriptor, port: 0 })).toBeUndefined();
254
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({ ...descriptor, region: 'cn-north-1' })).toBeUndefined();
255
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({ ...descriptor, region: 'us-gov-west-1' })).toBeUndefined();
256
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
257
+ ...descriptor,
258
+ username: 'sbndb_0000000000000000_7bfeae1170db923274f1943f_runtime'
259
+ })).toBeUndefined();
217
260
  });
218
261
  (0, vitest_1.test)('accepts standalone RDS IAM resource IDs', () => {
219
- (0, vitest_1.expect)((0, index_js_1.parseNativeDbIamDescriptor)({
262
+ (0, vitest_1.expect)((0, index_js_2.parseNativeDbIamDescriptor)({
220
263
  application_id: 'application-id',
221
- auth_descriptor_version: 1,
264
+ auth_descriptor_version: 3,
222
265
  auth_mode: 'aws_iam_role',
223
266
  aws_account_id: '123456789012',
224
267
  binding_id: 'binding-id',
225
268
  cluster_resource_id: 'db-ABCDEF0123456789-1',
226
269
  connector_role_arn: 'arn:aws:iam::123456789012:role/superblocks-native-db-connector-prod',
227
- database: 'sbndb_abcdef123456_0123456789abcdef01234567',
270
+ database: 'sbndb_abcdef1234567890_0123456789abcdef01234567',
228
271
  host: 'native-db.example.us-west-2.rds.amazonaws.com',
229
272
  port: 5432,
230
273
  region: 'us-west-2',
231
- username: 'sbndb_abcdef123456_7bfeae1170db923274f1943f_runtime'
274
+ username: 'sbndb_abcdef1234567890_0123456789abcdef01234567_runtime'
232
275
  })).toBeDefined();
233
276
  });
234
- (0, vitest_1.test)('derives canonical IAM database and runtime-user identity tokens', async () => {
235
- await (0, vitest_1.expect)((0, index_js_1.computeNativeDbApplicationToken)('application-id')).resolves.toBe('7bfeae1170db923274f1943f');
236
- await (0, vitest_1.expect)((0, index_js_1.computeNativeDbDatabaseName)('abcdef123456', 'database-id')).resolves.toBe('sbndb_abcdef123456_dad72612f7a80580b028178f');
277
+ (0, vitest_1.test)('derives canonical IAM application token', async () => {
278
+ await (0, vitest_1.expect)((0, index_js_2.computeNativeDbApplicationToken)('application-id')).resolves.toBe('7bfeae1170db923274f1943f');
237
279
  });
238
- (0, vitest_1.test)('derives a stable binding identity token for v2 database and runtime-user names', async () => {
239
- await (0, vitest_1.expect)((0, index_js_1.computeNativeDbBindingToken)('binding-id')).resolves.toBe('927968fc37b7b41be7e14cf9');
280
+ (0, vitest_1.test)('derives canonical IAM profile token', async () => {
281
+ await (0, vitest_1.expect)((0, index_js_2.computeNativeDbProfileToken)('production')).resolves.toHaveLength(16);
282
+ await (0, vitest_1.expect)((0, index_js_2.computeNativeDbProfileToken)('Production')).resolves.toBe(await (0, index_js_2.computeNativeDbProfileToken)('production'));
240
283
  });
241
284
  });
242
285
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/index.test.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAEhD,oDAAuD;AACvD,yCAeoB;AAEpB,IAAA,iBAAQ,EAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,wBAAwB;IACxB,IAAA,aAAI,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,IAAA,eAAM,EAAC,+BAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mCAAmC,CAAC,CAAC,CAAC;IACtI,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,GAAG,EAAE;QAC1E,IAAA,eAAM,EAAC,IAAA,4DAAiD,EAAC,yBAAc,CAAC,EAAE,EAAE,wCAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvH,IAAA,eAAM,EAAC,IAAA,4DAAiD,EAAC,yBAAc,CAAC,QAAQ,EAAE,wCAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9H,IAAA,eAAM,EAAC,IAAA,4DAAiD,EAAC,yBAAc,CAAC,QAAQ,EAAE,wCAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9H,IAAA,eAAM,EAAC,IAAA,4DAAiD,EAAC,yBAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,WAAW,GAAG;YAClB,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE;gBACN,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,QAAQ;aACf;YACD,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;SAC7B,CAAC;QAEX,IAAA,eAAM,EAAC,IAAA,gCAAqB,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAClF,IAAA,eAAM,EAAC,IAAA,gCAAqB,EAAC,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACvH,IAAA,eAAM,EAAC,IAAA,gCAAqB,EAAC,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACrH,qEAAqE;QACrE,0EAA0E;QAC1E,oDAAoD;QACpD,IAAA,eAAM,EACJ,IAAA,4BAAiB,EAAC;YAChB,cAAc,EAAE,OAAO;YACvB,aAAa,EAAE,OAAO;YACtB,OAAO,EAAE,YAAY;SACtB,CAAC,CACH,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC9C,IAAA,eAAM,EACJ,IAAA,4BAAiB,EAAC;YAChB,cAAc,EAAE,OAAO;YACvB,aAAa,EAAE,OAAO;YACtB,OAAO,EAAE,SAAS;SACnB,CAAC,CACH,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAEtC,MAAM,IAAA,eAAM,EAAC,IAAA,iCAAsB,EAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAC7D,MAAM,IAAA,iCAAsB,EAAC;YAC3B,GAAG,WAAW;YACd,UAAU,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;SACtC,CAAC,CACH,CAAC;QACF,MAAM,IAAA,eAAM,EAAC,IAAA,iCAAsB,EAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,kBAAkB,GAAG;YACzB,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzC,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;SAC7B,CAAC;QAEX,MAAM,gBAAgB,GAAG,MAAM,IAAA,iCAAsB,EAAC,kBAAkB,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,IAAA,iCAAsB,EAAC;YACjD,GAAG,kBAAkB;YACrB,kBAAkB,EAAE,eAAe;SACpC,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,IAAA,iCAAsB,EAAC;YACtD,GAAG,kBAAkB;YACrB,kBAAkB,EAAE,qBAAqB;SAC1C,CAAC,CAAC;QAEH,kEAAkE;QAClE,wEAAwE;QACxE,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,KAAK,GAAG,MAAM,IAAA,iCAAsB,EAAC;YACzC,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAsB,EAAC;YAC1C,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SAC5B,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,2GAA2G,EAAE,GAAG,EAAE;QACrH,MAAM,QAAQ,GAAG,IAAA,iCAAsB,EAAC;YACtC,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE;gBACN,KAAK,EAAE,WAAW;gBAClB,aAAa,EAAE;oBACb,QAAQ,EAAE,qBAAqB;oBAC/B,GAAG,EAAE,oDAAoD;iBAC1D;aACF;YACD,eAAe,EAAE;gBACf,QAAQ,EAAE;oBACR,QAAQ,EAAE,OAAO;oBACjB,GAAG,EAAE,iBAAiB;oBACtB,KAAK,EAAE,UAAU;iBAClB;aACF;YACD,mBAAmB,EAAE;gBACnB,QAAQ,EAAE,qBAAqB;gBAC/B,GAAG,EAAE,0BAA0B;gBAC/B,KAAK,EAAE,UAAU;aAClB;SACF,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,aAAa,EAAE;oBACb,QAAQ,EAAE,qBAAqB;oBAC/B,GAAG,EAAE,oDAAoD;iBAC1D;aACF;YACD,eAAe,EAAE;gBACf,QAAQ,EAAE,YAAY;aACvB;YACD,mBAAmB,EAAE;gBACnB,QAAQ,EAAE,qBAAqB;gBAC/B,GAAG,EAAE,0BAA0B;gBAC/B,KAAK,EAAE,UAAU;aAClB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,IAAA,eAAM,EAAC,IAAA,mCAAwB,EAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAA,eAAM,EAAC,IAAA,mCAAwB,EAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAA,eAAM,EAAC,IAAA,mCAAwB,EAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7F,IAAA,eAAM,EAAC,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;YAC3D,IAAA,eAAM,EAAC,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,8CAA8C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9F,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,kDAAkD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClG,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,mCAAmC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,oDAAoD,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,gFAAgF,EAAE,GAAG,EAAE;QAC1F,MAAM,UAAU,GAAG,IAAA,qCAA0B,EAAC;YAC5C,cAAc,EAAE,gBAAgB;YAChC,uBAAuB,EAAE,CAAC;YAC1B,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,6BAA6B;YAClD,kBAAkB,EAAE,qEAAqE;YACzF,QAAQ,EAAE,iDAAiD;YAC3D,IAAI,EAAE,uDAAuD;YAC7D,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,yDAAyD;SACpE,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAA,eAAM,EAAC,IAAA,mCAAwB,EAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAC/C,2QAA2Q,CAC5Q,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,uEAAuE,EAAE,GAAG,EAAE;QACjF,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,cAAc,EAAE,gBAAgB;YAChC,uBAAuB,EAAE,CAAC;YAC1B,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,6BAA6B;YAClD,kBAAkB,EAAE,qEAAqE;YACzF,QAAQ,EAAE,iDAAiD;YAC3D,IAAI,EAAE,uDAAuD;YAC7D,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,yDAAyD;SACpE,CAAC,CACH,CAAC,OAAO,CAAC;YACR,cAAc,EAAE,gBAAgB;YAChC,uBAAuB,EAAE,CAAC;YAC1B,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,6BAA6B;YAClD,kBAAkB,EAAE,qEAAqE;YACzF,QAAQ,EAAE,iDAAiD;YAC3D,IAAI,EAAE,uDAAuD;YAC7D,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,yDAAyD;SACpE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC/E,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,cAAc,EAAE,gBAAgB;YAChC,uBAAuB,EAAE,CAAC;YAC1B,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,6BAA6B;YAClD,kBAAkB,EAAE,qEAAqE;YACzF,QAAQ,EAAE,iDAAiD;YAC3D,IAAI,EAAE,uDAAuD;YAC7D,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,yDAAyD;SACpE,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,sEAAsE,EAAE,GAAG,EAAE;QAChF,MAAM,UAAU,GAAG;YACjB,cAAc,EAAE,gBAAgB;YAChC,uBAAuB,EAAE,CAAC;YAC1B,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,6BAA6B;YAClD,kBAAkB,EAAE,qEAAqE;YACzF,QAAQ,EAAE,iDAAiD;YAC3D,IAAI,EAAE,uDAAuD;YAC7D,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,yDAAyD;SACpE,CAAC;QAEF,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,EAAE,GAAG,UAAU,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAClG,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,EAAE,GAAG,UAAU,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAClG,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,GAAG,UAAU;YACb,mBAAmB,EAAE,qBAAqB;SAC3C,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;QAClB,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,GAAG,UAAU;YACb,kBAAkB,EAAE,sCAAsC;SAC3D,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;QAClB,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1F,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,GAAG,UAAU;YACb,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE;SACpC,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;QAClB,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,GAAG,UAAU;YACb,IAAI,EAAE,uDAAuD;SAC9D,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;QAClB,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/E,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5F,IAAA,eAAM,EAAC,IAAA,qCAA0B,EAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/F,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,GAAG,UAAU;YACb,QAAQ,EAAE,yDAAyD;SACpE,CAAC,CACH,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,IAAA,eAAM,EACJ,IAAA,qCAA0B,EAAC;YACzB,cAAc,EAAE,gBAAgB;YAChC,uBAAuB,EAAE,CAAC;YAC1B,SAAS,EAAE,cAAc;YACzB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,uBAAuB;YAC5C,kBAAkB,EAAE,qEAAqE;YACzF,QAAQ,EAAE,iDAAiD;YAC3D,IAAI,EAAE,+CAA+C;YACrD,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,yDAAyD;SACpE,CAAC,CACH,CAAC,WAAW,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAA,eAAM,EAAC,IAAA,0CAA+B,EAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAA,eAAM,EAAC,IAAA,sCAA2B,EAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,IAAA,eAAM,EAAC,IAAA,sCAA2B,EAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAA,sCAA2B,EAAC,YAAY,CAAC,CAAC,CAAC;IACzH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { PhysicalDatabaseCapacityPolicy } from './capacityPolicy.js';
2
+ /**
3
+ * Agent tag key for the customer-managed deployment name that identifies a
4
+ * worker's physical database pool, `(organizationId, agentName, engine)`.
5
+ *
6
+ * Published on its own rather than read out of
7
+ * `databaseLifecycle:capacityPolicies`, so a customer who wants no proactive
8
+ * scaling still gets a resolvable pool. One value, e.g. `customer-opa`.
9
+ */
10
+ export declare const DATABASE_LIFECYCLE_TAG_AGENT_NAME = "databaseLifecycle:agentName";
11
+ export declare class PhysicalPoolIdentityError extends Error {
12
+ readonly code = "physical_pool_identity_invalid";
13
+ constructor(message: string);
14
+ }
15
+ /**
16
+ * The single physical pool a worker's registration names, or undefined when it
17
+ * published none.
18
+ *
19
+ * Throws {@link PhysicalPoolIdentityError} when the registration names more
20
+ * than one pool. Guessing between them would provision infrastructure under
21
+ * one deployment's Terraform state and hand it to another, so callers must
22
+ * either refuse the registration or withhold the identity.
23
+ *
24
+ * Falls back to the capacity policy's name when the tag is absent, for a
25
+ * worker predating {@link DATABASE_LIFECYCLE_TAG_AGENT_NAME} that is still
26
+ * rolling: the policy names the same pool, so identity stays unambiguous.
27
+ */
28
+ export declare function parsePhysicalPoolAgentNameTag(published: string[] | undefined, capacityPolicies?: readonly PhysicalDatabaseCapacityPolicy[]): string | undefined;
29
+ //# sourceMappingURL=physicalPoolIdentity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalPoolIdentity.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/physicalPoolIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,oCAAoC;gBAErC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,gBAAgB,GAAE,SAAS,8BAA8B,EAAO,GAC/D,MAAM,GAAG,SAAS,CAqCpB"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhysicalPoolIdentityError = exports.DATABASE_LIFECYCLE_TAG_AGENT_NAME = void 0;
4
+ exports.parsePhysicalPoolAgentNameTag = parsePhysicalPoolAgentNameTag;
5
+ /**
6
+ * Agent tag key for the customer-managed deployment name that identifies a
7
+ * worker's physical database pool, `(organizationId, agentName, engine)`.
8
+ *
9
+ * Published on its own rather than read out of
10
+ * `databaseLifecycle:capacityPolicies`, so a customer who wants no proactive
11
+ * scaling still gets a resolvable pool. One value, e.g. `customer-opa`.
12
+ */
13
+ exports.DATABASE_LIFECYCLE_TAG_AGENT_NAME = 'databaseLifecycle:agentName';
14
+ class PhysicalPoolIdentityError extends Error {
15
+ code = 'physical_pool_identity_invalid';
16
+ constructor(message) {
17
+ super(message);
18
+ this.name = 'PhysicalPoolIdentityError';
19
+ }
20
+ }
21
+ exports.PhysicalPoolIdentityError = PhysicalPoolIdentityError;
22
+ /**
23
+ * The single physical pool a worker's registration names, or undefined when it
24
+ * published none.
25
+ *
26
+ * Throws {@link PhysicalPoolIdentityError} when the registration names more
27
+ * than one pool. Guessing between them would provision infrastructure under
28
+ * one deployment's Terraform state and hand it to another, so callers must
29
+ * either refuse the registration or withhold the identity.
30
+ *
31
+ * Falls back to the capacity policy's name when the tag is absent, for a
32
+ * worker predating {@link DATABASE_LIFECYCLE_TAG_AGENT_NAME} that is still
33
+ * rolling: the policy names the same pool, so identity stays unambiguous.
34
+ */
35
+ function parsePhysicalPoolAgentNameTag(published, capacityPolicies = []) {
36
+ if (published !== undefined && !Array.isArray(published)) {
37
+ throw new PhysicalPoolIdentityError(`${exports.DATABASE_LIFECYCLE_TAG_AGENT_NAME} must be an array holding one deployment name.`);
38
+ }
39
+ const values = published ?? [];
40
+ if (values.some((value) => typeof value !== 'string' || value.trim() === '')) {
41
+ throw new PhysicalPoolIdentityError(`${exports.DATABASE_LIFECYCLE_TAG_AGENT_NAME} must be a non-empty string when provided.`);
42
+ }
43
+ const declared = new Set(values.map((value) => value.trim()));
44
+ if (declared.size > 1) {
45
+ throw new PhysicalPoolIdentityError(`${exports.DATABASE_LIFECYCLE_TAG_AGENT_NAME} names ${declared.size} pools (${[...declared].sort().join(', ')}); it must name exactly one.`);
46
+ }
47
+ const policyNames = new Set(capacityPolicies.map((policy) => policy.agentName));
48
+ const [declaredName] = declared;
49
+ if (declaredName !== undefined) {
50
+ // Every policy has to be for the pool this deployment owns. A policy for
51
+ // another pool would have proactive evaluation scaling something the
52
+ // deployment cannot provision into.
53
+ if ([...policyNames].some((policyName) => policyName !== declaredName)) {
54
+ throw new PhysicalPoolIdentityError(`${exports.DATABASE_LIFECYCLE_TAG_AGENT_NAME} is ${declaredName} but databaseLifecycle:capacityPolicies names ${[...policyNames].sort().join(', ')}; they must name the same pool.`);
55
+ }
56
+ return declaredName;
57
+ }
58
+ if (policyNames.size > 1) {
59
+ throw new PhysicalPoolIdentityError(`databaseLifecycle:capacityPolicies names ${policyNames.size} pools; publish ${exports.DATABASE_LIFECYCLE_TAG_AGENT_NAME} to say which one this deployment owns.`);
60
+ }
61
+ const [policyName] = policyNames;
62
+ return policyName;
63
+ }
64
+ //# sourceMappingURL=physicalPoolIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalPoolIdentity.js","sourceRoot":"","sources":["../../src/database-lifecycle/physicalPoolIdentity.ts"],"names":[],"mappings":";;;AAkCA,sEAwCC;AAxED;;;;;;;GAOG;AACU,QAAA,iCAAiC,GAAG,6BAA6B,CAAC;AAE/E,MAAa,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,gCAAgC,CAAC;IAEjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAPD,8DAOC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CAC3C,SAA+B,EAC/B,mBAA8D,EAAE;IAEhE,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,yBAAyB,CAAC,GAAG,yCAAiC,gDAAgD,CAAC,CAAC;IAC5H,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,IAAI,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,yBAAyB,CAAC,GAAG,yCAAiC,4CAA4C,CAAC,CAAC;IACxH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,yBAAyB,CACjC,GAAG,yCAAiC,UAAU,QAAQ,CAAC,IAAI,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CACpI,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;IAChC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,yEAAyE;QACzE,qEAAqE;QACrE,oCAAoC;QACpC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,YAAY,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,yBAAyB,CACjC,GAAG,yCAAiC,OAAO,YAAY,iDAAiD,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAC5K,CAAC;QACJ,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,yBAAyB,CACjC,4CAA4C,WAAW,CAAC,IAAI,mBAAmB,yCAAiC,yCAAyC,CAC1J,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;IACjC,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=physicalPoolIdentity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalPoolIdentity.test.d.ts","sourceRoot":"","sources":["../../src/database-lifecycle/physicalPoolIdentity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const physicalPoolIdentity_js_1 = require("./physicalPoolIdentity.js");
5
+ const policy = (agentName) => ({
6
+ agentName,
7
+ engine: 'postgres',
8
+ thresholdType: 'minAvailableCapacityPercent',
9
+ thresholdValue: 20
10
+ });
11
+ (0, vitest_1.describe)('parsePhysicalPoolAgentNameTag', () => {
12
+ (0, vitest_1.test)('reads the pool a deployment named', () => {
13
+ (0, vitest_1.expect)((0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(['customer-opa'])).toBe('customer-opa');
14
+ (0, vitest_1.expect)((0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)([' customer-opa '])).toBe('customer-opa');
15
+ });
16
+ (0, vitest_1.test)('reports no identity for a deployment that named no pool', () => {
17
+ (0, vitest_1.expect)((0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(undefined)).toBeUndefined();
18
+ (0, vitest_1.expect)((0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)([])).toBeUndefined();
19
+ });
20
+ (0, vitest_1.test)('rejects a tag that is not one non-empty name', () => {
21
+ (0, vitest_1.expect)(() => (0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)([''])).toThrow(physicalPoolIdentity_js_1.PhysicalPoolIdentityError);
22
+ (0, vitest_1.expect)(() => (0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)([' '])).toThrow(physicalPoolIdentity_js_1.PhysicalPoolIdentityError);
23
+ (0, vitest_1.expect)(() => (0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(['customer-opa', 'other-opa'])).toThrow(/must name exactly one/);
24
+ });
25
+ // Replicas of one deployment publish the same registration.
26
+ (0, vitest_1.test)('accepts a name repeated across replicas', () => {
27
+ (0, vitest_1.expect)((0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(['customer-opa', 'customer-opa'])).toBe('customer-opa');
28
+ });
29
+ (0, vitest_1.describe)('agreement with capacity policies', () => {
30
+ (0, vitest_1.test)('accepts a policy for the pool the deployment named', () => {
31
+ (0, vitest_1.expect)((0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(['customer-opa'], [policy('customer-opa')])).toBe('customer-opa');
32
+ });
33
+ (0, vitest_1.test)('rejects a policy for a pool the deployment does not own', () => {
34
+ (0, vitest_1.expect)(() => (0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(['customer-opa'], [policy('other-opa')])).toThrow(/must name the same pool/);
35
+ });
36
+ // A deployment scales the pool it owns and nothing else. Accepting a
37
+ // foreign policy alongside a matching one would let proactive evaluation
38
+ // key off a pool the wizard would never resolve to.
39
+ (0, vitest_1.test)('rejects a foreign policy published alongside the deployments own', () => {
40
+ (0, vitest_1.expect)(() => (0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(['customer-opa'], [policy('customer-opa'), policy('other-opa')])).toThrow(/must name the same pool/);
41
+ });
42
+ // Older workers publish identity only inside the policy.
43
+ (0, vitest_1.test)('falls back to the policy name when the deployment published no tag', () => {
44
+ (0, vitest_1.expect)((0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(undefined, [policy('customer-opa')])).toBe('customer-opa');
45
+ });
46
+ (0, vitest_1.test)('refuses to guess when policies alone name two pools', () => {
47
+ (0, vitest_1.expect)(() => (0, physicalPoolIdentity_js_1.parsePhysicalPoolAgentNameTag)(undefined, [policy('customer-opa'), policy('other-opa')])).toThrow(/publish databaseLifecycle:agentName/);
48
+ });
49
+ });
50
+ });
51
+ //# sourceMappingURL=physicalPoolIdentity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physicalPoolIdentity.test.js","sourceRoot":"","sources":["../../src/database-lifecycle/physicalPoolIdentity.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -27,4 +27,5 @@ export * from './tracing/errorSanitizer.js';
27
27
  export * from './jwt/index.js';
28
28
  export * from './org-features/index.js';
29
29
  export * from './database-lifecycle/index.js';
30
+ export * from './database-lifecycle/edit-lifecycle-capability.js';
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mDAAmD,CAAC"}
package/dist/index.js CHANGED
@@ -43,4 +43,5 @@ __exportStar(require("./tracing/errorSanitizer.js"), exports);
43
43
  __exportStar(require("./jwt/index.js"), exports);
44
44
  __exportStar(require("./org-features/index.js"), exports);
45
45
  __exportStar(require("./database-lifecycle/index.js"), exports);
46
+ __exportStar(require("./database-lifecycle/edit-lifecycle-capability.js"), exports);
46
47
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,qDAAmC;AACnC,iDAA+B;AAC/B,2DAAyC;AACzC,iDAA+B;AAC/B,4DAA0C;AAC1C,oDAAkC;AAClC,mEAAiD;AACjD,gEAA8C;AAC9C,6DAA2C;AAC3C,6DAA2C;AAC3C,mDAAiC;AACjC,kDAAgC;AAChC,0DAAwC;AACxC,oDAAkC;AAClC,qDAAmC;AACnC,sDAAoC;AACpC,yDAAuC;AACvC,kDAAgC;AAChC,gEAA8C;AAC9C,yDAAuC;AACvC,6DAA2C;AAC3C,8DAA4C;AAC5C,iDAA+B;AAC/B,0DAAwC;AACxC,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,qDAAmC;AACnC,iDAA+B;AAC/B,2DAAyC;AACzC,iDAA+B;AAC/B,4DAA0C;AAC1C,oDAAkC;AAClC,mEAAiD;AACjD,gEAA8C;AAC9C,6DAA2C;AAC3C,6DAA2C;AAC3C,mDAAiC;AACjC,kDAAgC;AAChC,0DAAwC;AACxC,oDAAkC;AAClC,qDAAmC;AACnC,sDAAoC;AACpC,yDAAuC;AACvC,kDAAgC;AAChC,gEAA8C;AAC9C,yDAAuC;AACvC,6DAA2C;AAC3C,8DAA4C;AAC5C,iDAA+B;AAC/B,0DAAwC;AACxC,gEAA8C;AAC9C,oFAAkE"}