@ductape/sdk 0.1.116 → 0.1.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cloud/cloud.service.js +5 -1
- package/dist/cloud/cloud.service.js.map +1 -1
- package/dist/products/services/products.service.js +75 -7
- package/dist/products/services/products.service.js.map +1 -1
- package/dist/secrets/secrets.types.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -207,7 +207,11 @@ class CloudService {
|
|
|
207
207
|
throw new CloudError(`Product builder does not support ${createMethod}`, 'UNSUPPORTED_COMPONENT');
|
|
208
208
|
}
|
|
209
209
|
try {
|
|
210
|
-
|
|
210
|
+
// throwErrorIfExists=true is required here: every create* method silently no-ops
|
|
211
|
+
// (resolves without error) when the tag already exists unless told otherwise, which
|
|
212
|
+
// would skip the updateMethod fallback below entirely and leave the caller believing
|
|
213
|
+
// a no-op succeeded as a real persist.
|
|
214
|
+
await b[createMethod](data, true);
|
|
211
215
|
}
|
|
212
216
|
catch (createErr) {
|
|
213
217
|
const createMsg = createErr instanceof Error ? createErr.message : String(createErr);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.service.js","sourceRoot":"","sources":["../../src/cloud/cloud.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cloud.service.js","sourceRoot":"","sources":["../../src/cloud/cloud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1556,6 +1556,12 @@ class ProductsBuilderService {
|
|
|
1556
1556
|
console.log(`${logPrefix} All product environments have broker configs`);
|
|
1557
1557
|
console.log(`${logPrefix} Sending create request to API...`);
|
|
1558
1558
|
await this.productApi.updateProduct(this.product_id, Object.assign(Object.assign({}, data), { component: enums_1.ProductComponents.MESSAGEBROKER, action: enums_1.RequestAction.CREATE }), this.getUserAccess());
|
|
1559
|
+
// brokerCache may have cached a `null` (not-found) result for this tag from an
|
|
1560
|
+
// earlier lookup on this same builder instance (proxy caches builder instances
|
|
1561
|
+
// per workspace, so this instance can outlive a single request). Without this,
|
|
1562
|
+
// every subsequent fetchMessageBroker(tag) call — including events topics
|
|
1563
|
+
// list/get/create — keeps returning the stale not-found result forever.
|
|
1564
|
+
await this.refreshProductState();
|
|
1559
1565
|
console.log(`${logPrefix} Message broker ${data.tag} created successfully`);
|
|
1560
1566
|
}
|
|
1561
1567
|
else {
|
|
@@ -1664,6 +1670,10 @@ class ProductsBuilderService {
|
|
|
1664
1670
|
console.log(`${logPrefix} Final env breakdown - Unchanged: ${unchanged.length}, Overwrite: ${overwrite.length}, New: ${newEnvs.length}`);
|
|
1665
1671
|
console.log(`${logPrefix} Sending update request to API...`);
|
|
1666
1672
|
await this.productApi.updateProduct(this.product_id, Object.assign(Object.assign(Object.assign({ _id }, messageBroker), data), { component: enums_1.ProductComponents.MESSAGEBROKER, action: enums_1.RequestAction.UPDATE }), this.getUserAccess());
|
|
1673
|
+
// See the matching comment in createMessageBroker: without this, a stale cached
|
|
1674
|
+
// entry (under either the old or new tag) survives the update indefinitely on a
|
|
1675
|
+
// proxy-cached builder instance.
|
|
1676
|
+
await this.refreshProductState();
|
|
1667
1677
|
console.log(`${logPrefix} Message broker ${tag} updated successfully`);
|
|
1668
1678
|
}
|
|
1669
1679
|
catch (e) {
|
|
@@ -1715,6 +1725,9 @@ class ProductsBuilderService {
|
|
|
1715
1725
|
component: enums_1.ProductComponents.MESSAGEBROKER,
|
|
1716
1726
|
action: enums_1.RequestAction.DELETE,
|
|
1717
1727
|
}, this.getUserAccess());
|
|
1728
|
+
// See the matching comment in createMessageBroker: without this, a stale cached
|
|
1729
|
+
// "found" entry survives the delete indefinitely on a proxy-cached builder instance.
|
|
1730
|
+
await this.refreshProductState();
|
|
1718
1731
|
}
|
|
1719
1732
|
catch (e) {
|
|
1720
1733
|
throw e;
|
|
@@ -1787,7 +1800,7 @@ class ProductsBuilderService {
|
|
|
1787
1800
|
}
|
|
1788
1801
|
else {
|
|
1789
1802
|
if (throwErrorIfExists)
|
|
1790
|
-
throw new Error(`
|
|
1803
|
+
throw new Error(`Storage ${data.tag} already exists`);
|
|
1791
1804
|
}
|
|
1792
1805
|
}
|
|
1793
1806
|
async updateStorage(tag, data) {
|
|
@@ -5107,16 +5120,47 @@ class ProductsBuilderService {
|
|
|
5107
5120
|
}
|
|
5108
5121
|
}
|
|
5109
5122
|
}
|
|
5110
|
-
|
|
5123
|
+
try {
|
|
5124
|
+
await this.productApi.updateProduct(this.product_id, Object.assign(Object.assign({}, data), { component: enums_1.ProductComponents.FEATURE, action: enums_1.RequestAction.CREATE }), this.getUserAccess());
|
|
5125
|
+
}
|
|
5126
|
+
catch (createErr) {
|
|
5127
|
+
// The by-tag existence check above (fetchFeature) is known to false-negative
|
|
5128
|
+
// under backend read lag -- confirmed by tags that unambiguously already exist
|
|
5129
|
+
// (verified via the always-consistent list-all endpoint) still failing this
|
|
5130
|
+
// check, especially under the ~30-way concurrent defineFeature() calls this SDK
|
|
5131
|
+
// makes on a typical app boot. If the backend now rejects this as a duplicate,
|
|
5132
|
+
// the feature was there all along and this is that false negative resolving
|
|
5133
|
+
// itself -- fall through to the read-back below instead of failing the caller.
|
|
5134
|
+
const isDuplicate = createErr instanceof Error && /already exists|duplicate|in use/i.test(createErr.message);
|
|
5135
|
+
if (!isDuplicate)
|
|
5136
|
+
throw createErr;
|
|
5137
|
+
}
|
|
5111
5138
|
// A successful mutation response is insufficient: execution and Workbench
|
|
5112
5139
|
// use the catalogue read API. Confirm that exact path can observe the write.
|
|
5113
|
-
|
|
5140
|
+
// Widened from the original 5x50-200ms budget (~500ms total): that was proven
|
|
5141
|
+
// too tight against real backend read lag, which is on the order of seconds
|
|
5142
|
+
// under concurrent boot-time load, not milliseconds.
|
|
5143
|
+
let delay = 100;
|
|
5144
|
+
for (let attempt = 0; attempt < 8; attempt += 1) {
|
|
5114
5145
|
const persisted = await this.fetchFeature(data.tag);
|
|
5115
5146
|
if (persisted)
|
|
5116
5147
|
return persisted;
|
|
5117
|
-
if (attempt <
|
|
5118
|
-
await new Promise((resolve) => setTimeout(resolve,
|
|
5148
|
+
if (attempt < 7) {
|
|
5149
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
5150
|
+
delay = Math.min(delay * 2, 3000);
|
|
5151
|
+
}
|
|
5119
5152
|
}
|
|
5153
|
+
// The by-tag read path is still lagging. Fall back to the list-all endpoint,
|
|
5154
|
+
// which every observed case shows is immediately consistent -- if the feature
|
|
5155
|
+
// shows up there, the write is real and the by-tag path is just slow, so don't
|
|
5156
|
+
// fail the caller (e.g. a boot-time feature registration) over that.
|
|
5157
|
+
const all = await this.fetchFeatures();
|
|
5158
|
+
const viaList = all.find((feature) => feature.tag === data.tag);
|
|
5159
|
+
if (viaList)
|
|
5160
|
+
return viaList;
|
|
5161
|
+
// Genuinely unconfirmed on every read path we have, including the always-reliable
|
|
5162
|
+
// list-all endpoint -- this is no longer just a lagging read, so fail loudly
|
|
5163
|
+
// instead of pretending the write succeeded.
|
|
5120
5164
|
throw new Error(`Feature catalogue write was acknowledged but ${data.tag} could not be read back`);
|
|
5121
5165
|
}
|
|
5122
5166
|
else {
|
|
@@ -5156,11 +5200,35 @@ class ProductsBuilderService {
|
|
|
5156
5200
|
}
|
|
5157
5201
|
async fetchFeatures() {
|
|
5158
5202
|
const components = await this.productApi.fetchProductComponents(this.product_id, 'feature', this.getUserAccess());
|
|
5159
|
-
|
|
5203
|
+
if (Array.isArray(components) && components.length > 0) {
|
|
5204
|
+
return components;
|
|
5205
|
+
}
|
|
5206
|
+
// Compatibility path for rolling backend deployments. The full-product
|
|
5207
|
+
// endpoint and Workbench read the canonical embedded `features` array,
|
|
5208
|
+
// while older /components/:id/feature handlers can incorrectly return an
|
|
5209
|
+
// empty list. Always perform a fresh product read before concluding that a
|
|
5210
|
+
// product has no features.
|
|
5211
|
+
const product = await this.productApi.fetchProduct(this.product_id, this.getUserAccess());
|
|
5212
|
+
const rawProduct = product;
|
|
5213
|
+
const byTag = new Map();
|
|
5214
|
+
for (const feature of [
|
|
5215
|
+
...(rawProduct.features || []),
|
|
5216
|
+
...(rawProduct.workflows || []),
|
|
5217
|
+
]) {
|
|
5218
|
+
if ((feature === null || feature === void 0 ? void 0 : feature.tag) && feature.deleted !== true && !byTag.has(feature.tag)) {
|
|
5219
|
+
byTag.set(feature.tag, feature);
|
|
5220
|
+
}
|
|
5221
|
+
}
|
|
5222
|
+
return Array.from(byTag.values());
|
|
5160
5223
|
}
|
|
5161
5224
|
async fetchFeature(tag) {
|
|
5162
5225
|
const component = await this.productApi.fetchProductComponentByTag(this.product_id, 'feature', tag, this.getUserAccess());
|
|
5163
|
-
|
|
5226
|
+
if (component)
|
|
5227
|
+
return component;
|
|
5228
|
+
// Keep tag lookup consistent with fetchFeatures()/Workbench when an older
|
|
5229
|
+
// feature-component endpoint is still serving traffic.
|
|
5230
|
+
const features = await this.fetchFeatures();
|
|
5231
|
+
return features.find((feature) => feature.tag === tag) || null;
|
|
5164
5232
|
}
|
|
5165
5233
|
async deleteFeature(tag) {
|
|
5166
5234
|
try {
|