@tailor-platform/sdk 1.57.0 → 1.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/{application-CdkoGX27.mjs → application-B59TaTk_.mjs} +4 -3
- package/dist/{application-CdkoGX27.mjs.map → application-B59TaTk_.mjs.map} +1 -1
- package/dist/application-gO_pa5BO.mjs +4 -0
- package/dist/cli/index.mjs +164 -13
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/lib.d.mts +581 -2
- package/dist/cli/lib.mjs +3 -3
- package/dist/{client-DLPEPJ_s.mjs → client-62B-r3MN.mjs} +39 -10
- package/dist/client-62B-r3MN.mjs.map +1 -0
- package/dist/{client-DrzwCD1W.mjs → client-BWl3f1XS.mjs} +1 -1
- package/dist/configure/index.d.mts +2 -2
- package/dist/{crashreport-Bm2mN5tg.mjs → crashreport-CCGpLUlP.mjs} +2 -2
- package/dist/{crashreport-Bm2mN5tg.mjs.map → crashreport-CCGpLUlP.mjs.map} +1 -1
- package/dist/{crashreport-C5oHvHUC.mjs → crashreport-CXD_Kjk-.mjs} +1 -1
- package/dist/{index-B61gFI9a.d.mts → index-BWoHfE-i.d.mts} +3 -2
- package/dist/{runtime-1YuaoNr8.mjs → runtime-BC-FbQkg.mjs} +149 -133
- package/dist/runtime-BC-FbQkg.mjs.map +1 -0
- package/dist/utils/test/index.d.mts +2 -2
- package/dist/{workflow.generated-Kz-nQrTf.d.mts → workflow.generated-CV77NlFp.d.mts} +3 -2
- package/docs/cli/application.md +5 -5
- package/docs/cli/auth.md +55 -6
- package/docs/cli/function.md +2 -2
- package/docs/cli/staticwebsite.md +137 -0
- package/docs/cli-reference.md +17 -14
- package/docs/generator/builtin.md +1 -1
- package/docs/services/auth.md +0 -11
- package/docs/services/staticwebsite.md +13 -0
- package/package.json +4 -4
- package/dist/application-x_mURdR0.mjs +0 -4
- package/dist/client-DLPEPJ_s.mjs.map +0 -1
- package/dist/runtime-1YuaoNr8.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
import { t as db } from "./schema-DKsNhbav.mjs";
|
|
3
|
-
import { $ as
|
|
3
|
+
import { $ as Condition_Operator, A as IdPPermissionPermit, B as AuthOAuth2Client_ClientType, C as TailorDBType_Permission_Operator, D as PipelineResolver_OperationType, F as ExecutorTriggerType, G as AuthSCIMConfig_AuthorizationType, H as AuthSCIMAttribute_Mutability, I as AuthConnection_Type, J as UserProfileProviderConfig_UserProfileProviderType, L as AuthHookPoint, N as ExecutorJobStatus, O as IdPLang, P as ExecutorTargetType, Q as ConditionSchema, R as AuthIDPConfig_AuthType, S as TailorDBGQLPermission_Permit, T as TailorDBType_PermitAction, U as AuthSCIMAttribute_Type, V as AuthOAuth2Client_GrantType, W as AuthSCIMAttribute_Uniqueness, X as ApplicationSchemaUpdateAttemptStatus, Y as GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatus, Z as Subgraph_ServiceType, _ as WorkspacePlatformUserRole, a as fetchMachineUserToken, b as TailorDBGQLPermission_Action, d as initOperatorClient, et as FilterSchema, g as OperatorService, h as userAgent, i as fetchAll, j as FunctionExecution_Status, k as IdPPermissionOperator, m as resolveStaticWebsiteUrls, o as fetchPaged, p as platformBaseUrl, q as TenantProviderConfig_TenantProviderType, tt as PageDirection, v as WorkflowExecution_Status, w as TailorDBType_Permission_Permit, x as TailorDBGQLPermission_Operator, y as WorkflowJobExecution_Status, z as AuthInvokerSchema } from "./client-62B-r3MN.mjs";
|
|
4
4
|
import { a as parseBoolean, i as symbols, n as logger, r as styles, t as CIPromptError } from "./logger-DpJyJvNz.mjs";
|
|
5
|
-
import { C as loadConfig, D as loadConfigPath, E as loadAccessToken, M as writePlatformConfig, O as loadWorkspaceId, S as hashFile, b as getDistDir, c as createExecutorService, d as buildExecutorArgsExpr, f as buildResolverOperationHookExpr, h as loadFilesWithIgnores, k as readPlatformConfig, m as stringifyFunction, n as generatePluginFilesIfNeeded, p as TailorDBTypeSchema, r as loadApplication, s as HTTP_METHODS, t as defineApplication, y as createBundleCache } from "./application-
|
|
5
|
+
import { C as loadConfig, D as loadConfigPath, E as loadAccessToken, M as writePlatformConfig, O as loadWorkspaceId, S as hashFile, b as getDistDir, c as createExecutorService, d as buildExecutorArgsExpr, f as buildResolverOperationHookExpr, h as loadFilesWithIgnores, k as readPlatformConfig, m as stringifyFunction, n as generatePluginFilesIfNeeded, p as TailorDBTypeSchema, r as loadApplication, s as HTTP_METHODS, t as defineApplication, y as createBundleCache } from "./application-B59TaTk_.mjs";
|
|
6
6
|
import { t as multiline } from "./multiline-Cf9ODpr1.mjs";
|
|
7
7
|
import { t as readPackageJson } from "./package-json-DcQApfPQ.mjs";
|
|
8
8
|
import { n as isCLIError, t as createCLIError } from "./errors-EsY4XO6O.mjs";
|
|
@@ -636,7 +636,7 @@ const inspectCommand = defineAppCommand({
|
|
|
636
636
|
const listCommand$10 = defineAppCommand({
|
|
637
637
|
name: "list",
|
|
638
638
|
description: "List all invocable OperatorService methods.",
|
|
639
|
-
notes: "Only
|
|
639
|
+
notes: "Only single-request (non-streaming) methods are listed, because the CLI issues a single JSON request and reads one JSON response.",
|
|
640
640
|
args: z.object({}).strict(),
|
|
641
641
|
run: () => {
|
|
642
642
|
const names = listMethodNames();
|
|
@@ -793,7 +793,7 @@ const apiCommand = defineAppCommand({
|
|
|
793
793
|
description: "Call Tailor Platform API endpoints directly.",
|
|
794
794
|
notes: `Use \`tailor-sdk api list\` to enumerate invocable methods and \`tailor-sdk api inspect <endpoint>\` to print an endpoint's input message tree (combine with \`--json\` for machine-readable output).
|
|
795
795
|
|
|
796
|
-
The request body is inferred from the
|
|
796
|
+
The request body is inferred from the target endpoint's request schema, and commonly required fields are auto-injected so they can be omitted from \`--body\`:
|
|
797
797
|
|
|
798
798
|
- \`workspaceId\` — resolved from \`-w\` / \`TAILOR_PLATFORM_WORKSPACE_ID\` / the selected profile.
|
|
799
799
|
- \`namespaceName\` — resolved from \`tailor.config.ts\` based on the endpoint's service:
|
|
@@ -802,7 +802,7 @@ The request body is inferred from the proto definition of the target endpoint, a
|
|
|
802
802
|
|
|
803
803
|
Values already present in \`--body\` are never overridden. If a value cannot be resolved (e.g. no config found), injection is silently skipped and the server-side validation error takes precedence.
|
|
804
804
|
|
|
805
|
-
Use \`--field key=value\` (repeatable) to set request body fields without writing JSON. Dotted keys (e.g. \`application.name=foo\`) build nested objects. \`--field\` overrides matching fields in \`--body\` and tab-completes from the endpoint's
|
|
805
|
+
Use \`--field key=value\` (repeatable) to set request body fields without writing JSON. Dotted keys (e.g. \`application.name=foo\`) build nested objects. \`--field\` overrides matching fields in \`--body\` and tab-completes from the endpoint's request schema.`,
|
|
806
806
|
examples: [
|
|
807
807
|
{
|
|
808
808
|
cmd: "GetApplication -b '{\"applicationName\":\"app-1\"}'",
|
|
@@ -1735,6 +1735,16 @@ function areNormalizedEqual(left, right) {
|
|
|
1735
1735
|
function trnPrefix(workspaceId) {
|
|
1736
1736
|
return `trn:v1:workspace:${workspaceId}`;
|
|
1737
1737
|
}
|
|
1738
|
+
/**
|
|
1739
|
+
* Build the TRN for a workspace resource.
|
|
1740
|
+
* @param workspaceId - Workspace ID
|
|
1741
|
+
* @param kind - Resource kind segment
|
|
1742
|
+
* @param name - Resource name
|
|
1743
|
+
* @returns Fully-qualified TRN string
|
|
1744
|
+
*/
|
|
1745
|
+
function resourceTrn(workspaceId, kind, name) {
|
|
1746
|
+
return `${trnPrefix(workspaceId)}:${kind}:${name}`;
|
|
1747
|
+
}
|
|
1738
1748
|
const sdkNameLabelKey = "sdk-name";
|
|
1739
1749
|
const sdkVersionLabelKey = "sdk-version";
|
|
1740
1750
|
const sdkAppIdLabelKey = "sdk-app-id";
|
|
@@ -1817,9 +1827,6 @@ async function applyApplication(client, changeSet, phase = "create-update") {
|
|
|
1817
1827
|
await client.deleteApplication(del.request);
|
|
1818
1828
|
}));
|
|
1819
1829
|
}
|
|
1820
|
-
function trn$6(workspaceId, name) {
|
|
1821
|
-
return `trn:v1:workspace:${workspaceId}:application:${name}`;
|
|
1822
|
-
}
|
|
1823
1830
|
function sortStrings(values) {
|
|
1824
1831
|
return [...values ?? []].sort();
|
|
1825
1832
|
}
|
|
@@ -1944,7 +1951,7 @@ async function planApplication(context, httpAdapterBuildResult) {
|
|
|
1944
1951
|
if (idpConfigs.length > 0) authIdpConfigName = idpConfigs[0].name;
|
|
1945
1952
|
}
|
|
1946
1953
|
const metaRequest = await buildMetaRequest({
|
|
1947
|
-
trn:
|
|
1954
|
+
trn: resourceTrn(workspaceId, "application", application.name),
|
|
1948
1955
|
appName: application.name,
|
|
1949
1956
|
appId: application.id
|
|
1950
1957
|
});
|
|
@@ -2003,7 +2010,7 @@ async function planApplication(context, httpAdapterBuildResult) {
|
|
|
2003
2010
|
}
|
|
2004
2011
|
async function fetchAppLabels(client, workspaceId, appName) {
|
|
2005
2012
|
try {
|
|
2006
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
2013
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "application", appName) });
|
|
2007
2014
|
return metadata?.labels;
|
|
2008
2015
|
} catch (error) {
|
|
2009
2016
|
if (error instanceof ConnectError && error.code === Code.NotFound) return;
|
|
@@ -2133,9 +2140,6 @@ function hashValue(value) {
|
|
|
2133
2140
|
|
|
2134
2141
|
//#endregion
|
|
2135
2142
|
//#region src/cli/commands/deploy/auth-connection.ts
|
|
2136
|
-
function connectionTrn(workspaceId, name) {
|
|
2137
|
-
return `${trnPrefix(workspaceId)}:auth_connection:${name}`;
|
|
2138
|
-
}
|
|
2139
2143
|
function buildConnectionRequest(workspaceId, name, config) {
|
|
2140
2144
|
return {
|
|
2141
2145
|
workspaceId,
|
|
@@ -2203,7 +2207,7 @@ async function planAuthConnections(client, workspaceId, appName, appId, auths) {
|
|
|
2203
2207
|
});
|
|
2204
2208
|
const existingConnections = {};
|
|
2205
2209
|
await Promise.all(existingList.map(async (resource) => {
|
|
2206
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
2210
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "auth_connection", resource.name) });
|
|
2207
2211
|
existingConnections[resource.name] = {
|
|
2208
2212
|
resource,
|
|
2209
2213
|
label: metadata?.labels[sdkNameLabelKey],
|
|
@@ -2214,7 +2218,7 @@ async function planAuthConnections(client, workspaceId, appName, appId, auths) {
|
|
|
2214
2218
|
for (const [name, config] of Object.entries(desiredConnections)) {
|
|
2215
2219
|
const existing = existingConnections[name];
|
|
2216
2220
|
const metaRequest = await buildMetaRequest({
|
|
2217
|
-
trn:
|
|
2221
|
+
trn: resourceTrn(workspaceId, "auth_connection", name),
|
|
2218
2222
|
appName,
|
|
2219
2223
|
appId
|
|
2220
2224
|
});
|
|
@@ -2232,7 +2236,7 @@ async function planAuthConnections(client, workspaceId, appName, appId, auths) {
|
|
|
2232
2236
|
const storedHash = state.connections?.[name];
|
|
2233
2237
|
if (hasNonSecretFieldChanged(existing.resource, config) || currentHash !== storedHash) changeSet.replaces.push({
|
|
2234
2238
|
name,
|
|
2235
|
-
|
|
2239
|
+
deleteRequest: {
|
|
2236
2240
|
workspaceId,
|
|
2237
2241
|
connectionName: name
|
|
2238
2242
|
},
|
|
@@ -2302,7 +2306,7 @@ async function applyAuthConnections(client, result, phase) {
|
|
|
2302
2306
|
await client.setMetadata(create.metaRequest);
|
|
2303
2307
|
}));
|
|
2304
2308
|
for (const replace of changeSet.replaces) {
|
|
2305
|
-
await client.
|
|
2309
|
+
await client.deleteAuthConnection(replace.deleteRequest);
|
|
2306
2310
|
await client.createAuthConnection(replace.createRequest);
|
|
2307
2311
|
await client.setMetadata(replace.metaRequest);
|
|
2308
2312
|
}
|
|
@@ -2322,7 +2326,7 @@ async function applyAuthConnections(client, result, phase) {
|
|
|
2322
2326
|
saveSecretsState(state);
|
|
2323
2327
|
} else if (phase === "delete-resources" || phase === "delete") {
|
|
2324
2328
|
await Promise.all(changeSet.deletes.map(async (del) => {
|
|
2325
|
-
await client.
|
|
2329
|
+
await client.deleteAuthConnection(del.request);
|
|
2326
2330
|
}));
|
|
2327
2331
|
if (changeSet.deletes.length > 0) {
|
|
2328
2332
|
const state = loadSecretsState();
|
|
@@ -2345,9 +2349,6 @@ const CHUNK_SIZE = 64 * 1024;
|
|
|
2345
2349
|
function computeContentHash(content) {
|
|
2346
2350
|
return crypto$1.createHash("sha256").update(content, "utf-8").digest("hex");
|
|
2347
2351
|
}
|
|
2348
|
-
function functionRegistryTrn$1(workspaceId, name) {
|
|
2349
|
-
return `trn:v1:workspace:${workspaceId}:function_registry:${name}`;
|
|
2350
|
-
}
|
|
2351
2352
|
const RESOLVER_PREFIX = "resolver--";
|
|
2352
2353
|
const EXECUTOR_PREFIX = "executor--";
|
|
2353
2354
|
const WORKFLOW_PREFIX = "workflow--";
|
|
@@ -2539,7 +2540,7 @@ async function planFunctionRegistry(client, workspaceId, appName, appId, entries
|
|
|
2539
2540
|
});
|
|
2540
2541
|
const existingMap = {};
|
|
2541
2542
|
await Promise.all(existingFunctions.map(async (func) => {
|
|
2542
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
2543
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "function_registry", func.name) });
|
|
2543
2544
|
existingMap[func.name] = {
|
|
2544
2545
|
resource: func,
|
|
2545
2546
|
label: metadata?.labels[sdkNameLabelKey],
|
|
@@ -2549,7 +2550,7 @@ async function planFunctionRegistry(client, workspaceId, appName, appId, entries
|
|
|
2549
2550
|
for (const entry of entries) {
|
|
2550
2551
|
const existing = existingMap[entry.name];
|
|
2551
2552
|
const metaRequest = await buildMetaRequest({
|
|
2552
|
-
trn:
|
|
2553
|
+
trn: resourceTrn(workspaceId, "function_registry", entry.name),
|
|
2553
2554
|
appName,
|
|
2554
2555
|
appId
|
|
2555
2556
|
});
|
|
@@ -3104,9 +3105,6 @@ async function planIdP(context) {
|
|
|
3104
3105
|
resourceOwners
|
|
3105
3106
|
};
|
|
3106
3107
|
}
|
|
3107
|
-
function trn$5(workspaceId, name) {
|
|
3108
|
-
return `trn:v1:workspace:${workspaceId}:idp:${name}`;
|
|
3109
|
-
}
|
|
3110
3108
|
function normalizeComparableUserAuthPolicy(policy) {
|
|
3111
3109
|
return {
|
|
3112
3110
|
useNonEmailIdentifier: policy?.useNonEmailIdentifier ?? false,
|
|
@@ -3201,7 +3199,7 @@ async function planServices$3(client, workspaceId, appName, appId, idps, idpUser
|
|
|
3201
3199
|
const existingServices = {};
|
|
3202
3200
|
await Promise.all(withoutLabel.map(async (resource) => {
|
|
3203
3201
|
if (!resource.namespace?.name) return;
|
|
3204
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
3202
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "idp", resource.namespace.name) });
|
|
3205
3203
|
existingServices[resource.namespace.name] = {
|
|
3206
3204
|
resource,
|
|
3207
3205
|
label: metadata?.labels[sdkNameLabelKey],
|
|
@@ -3212,7 +3210,7 @@ async function planServices$3(client, workspaceId, appName, appId, idps, idpUser
|
|
|
3212
3210
|
const namespaceName = idp.name;
|
|
3213
3211
|
const existing = existingServices[namespaceName];
|
|
3214
3212
|
const metaRequest = await buildMetaRequest({
|
|
3215
|
-
trn:
|
|
3213
|
+
trn: resourceTrn(workspaceId, "idp", namespaceName),
|
|
3216
3214
|
appName,
|
|
3217
3215
|
appId
|
|
3218
3216
|
});
|
|
@@ -3571,9 +3569,6 @@ async function planAuth(context) {
|
|
|
3571
3569
|
resourceOwners: new Set([...resourceOwners, ...connectionResult.resourceOwners])
|
|
3572
3570
|
};
|
|
3573
3571
|
}
|
|
3574
|
-
function trn$4(workspaceId, name) {
|
|
3575
|
-
return `trn:v1:workspace:${workspaceId}:auth:${name}`;
|
|
3576
|
-
}
|
|
3577
3572
|
async function planServices$2(client, workspaceId, appName, appId, auths, forceApplyAll = false) {
|
|
3578
3573
|
const changeSet = createChangeSet("Auth services");
|
|
3579
3574
|
const conflicts = [];
|
|
@@ -3595,7 +3590,7 @@ async function planServices$2(client, workspaceId, appName, appId, auths, forceA
|
|
|
3595
3590
|
const existingServices = {};
|
|
3596
3591
|
await Promise.all(withoutLabel.map(async (resource) => {
|
|
3597
3592
|
if (!resource.namespace?.name) return;
|
|
3598
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
3593
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "auth", resource.namespace.name) });
|
|
3599
3594
|
existingServices[resource.namespace.name] = {
|
|
3600
3595
|
resource,
|
|
3601
3596
|
label: metadata?.labels[sdkNameLabelKey],
|
|
@@ -3606,7 +3601,7 @@ async function planServices$2(client, workspaceId, appName, appId, auths, forceA
|
|
|
3606
3601
|
const { config } = auth;
|
|
3607
3602
|
const existing = existingServices[config.name];
|
|
3608
3603
|
const metaRequest = await buildMetaRequest({
|
|
3609
|
-
trn:
|
|
3604
|
+
trn: resourceTrn(workspaceId, "auth", config.name),
|
|
3610
3605
|
appName,
|
|
3611
3606
|
appId
|
|
3612
3607
|
});
|
|
@@ -4934,9 +4929,6 @@ async function applyExecutor(client, result, phase = "create-update") {
|
|
|
4934
4929
|
})]);
|
|
4935
4930
|
else if (phase === "delete") await Promise.all(changeSet.deletes.map((del) => client.deleteExecutorExecutor(del.request)));
|
|
4936
4931
|
}
|
|
4937
|
-
function trn$3(workspaceId, name) {
|
|
4938
|
-
return `trn:v1:workspace:${workspaceId}:executor:${name}`;
|
|
4939
|
-
}
|
|
4940
4932
|
/**
|
|
4941
4933
|
* Plan executor-related changes based on current and desired state.
|
|
4942
4934
|
* @param context - Planning context
|
|
@@ -4960,13 +4952,13 @@ async function planExecutor(context) {
|
|
|
4960
4952
|
return [executors, nextPageToken];
|
|
4961
4953
|
},
|
|
4962
4954
|
getName: (resource) => resource.name,
|
|
4963
|
-
getTrn:
|
|
4955
|
+
getTrn: (workspaceId, name) => resourceTrn(workspaceId, "executor", name)
|
|
4964
4956
|
});
|
|
4965
4957
|
const executors = forRemoval ? {} : await application.executorService?.loadExecutors() ?? {};
|
|
4966
4958
|
for (const executor of Object.values(executors)) {
|
|
4967
4959
|
const existing = existingExecutors[executor.name];
|
|
4968
4960
|
const metaRequest = await buildMetaRequest({
|
|
4969
|
-
trn:
|
|
4961
|
+
trn: resourceTrn(workspaceId, "executor", executor.name),
|
|
4970
4962
|
appName: application.name,
|
|
4971
4963
|
appId: application.id
|
|
4972
4964
|
});
|
|
@@ -5380,9 +5372,6 @@ async function planPipeline(context) {
|
|
|
5380
5372
|
resourceOwners
|
|
5381
5373
|
};
|
|
5382
5374
|
}
|
|
5383
|
-
function trn$2(workspaceId, name) {
|
|
5384
|
-
return `trn:v1:workspace:${workspaceId}:pipeline:${name}`;
|
|
5385
|
-
}
|
|
5386
5375
|
async function planServices$1(client, workspaceId, appName, appId, pipelines) {
|
|
5387
5376
|
const changeSet = createChangeSet("Pipeline services");
|
|
5388
5377
|
const conflicts = [];
|
|
@@ -5404,7 +5393,7 @@ async function planServices$1(client, workspaceId, appName, appId, pipelines) {
|
|
|
5404
5393
|
const existingServices = {};
|
|
5405
5394
|
await Promise.all(withoutLabel.map(async (resource) => {
|
|
5406
5395
|
if (!resource.namespace?.name) return;
|
|
5407
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
5396
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "pipeline", resource.namespace.name) });
|
|
5408
5397
|
existingServices[resource.namespace.name] = {
|
|
5409
5398
|
resource,
|
|
5410
5399
|
label: metadata?.labels[sdkNameLabelKey],
|
|
@@ -5414,7 +5403,7 @@ async function planServices$1(client, workspaceId, appName, appId, pipelines) {
|
|
|
5414
5403
|
for (const pipeline of pipelines) {
|
|
5415
5404
|
const existing = existingServices[pipeline.namespace];
|
|
5416
5405
|
const metaRequest = await buildMetaRequest({
|
|
5417
|
-
trn:
|
|
5406
|
+
trn: resourceTrn(workspaceId, "pipeline", pipeline.namespace),
|
|
5418
5407
|
appName,
|
|
5419
5408
|
appId
|
|
5420
5409
|
});
|
|
@@ -5702,7 +5691,7 @@ async function planSecretManager(context) {
|
|
|
5702
5691
|
});
|
|
5703
5692
|
const existingVaults = {};
|
|
5704
5693
|
await Promise.all(existingVaultList.map(async (resource) => {
|
|
5705
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
5694
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "vault", resource.name) });
|
|
5706
5695
|
existingVaults[resource.name] = {
|
|
5707
5696
|
resource,
|
|
5708
5697
|
label: metadata?.labels[sdkNameLabelKey],
|
|
@@ -5716,7 +5705,7 @@ async function planSecretManager(context) {
|
|
|
5716
5705
|
const existing = existingVaults[vaultName];
|
|
5717
5706
|
if (existing) {
|
|
5718
5707
|
const metaRequest = await buildMetaRequest({
|
|
5719
|
-
trn:
|
|
5708
|
+
trn: resourceTrn(workspaceId, "vault", vaultName),
|
|
5720
5709
|
appName: application.name,
|
|
5721
5710
|
appId: application.id
|
|
5722
5711
|
});
|
|
@@ -5829,9 +5818,6 @@ async function planSecretManager(context) {
|
|
|
5829
5818
|
resourceOwners
|
|
5830
5819
|
};
|
|
5831
5820
|
}
|
|
5832
|
-
function vaultTrn$1(workspaceId, name) {
|
|
5833
|
-
return `trn:v1:workspace:${workspaceId}:vault:${name}`;
|
|
5834
|
-
}
|
|
5835
5821
|
/**
|
|
5836
5822
|
* Apply secret manager changes for the given phase.
|
|
5837
5823
|
* @param client - Operator client instance
|
|
@@ -5850,7 +5836,7 @@ async function applySecretManager(client, result, phase = "create-update", appli
|
|
|
5850
5836
|
});
|
|
5851
5837
|
if (application) {
|
|
5852
5838
|
const metaRequest = await buildMetaRequest({
|
|
5853
|
-
trn:
|
|
5839
|
+
trn: resourceTrn(create.workspaceId, "vault", create.name),
|
|
5854
5840
|
appName: application.name,
|
|
5855
5841
|
appId: application.id
|
|
5856
5842
|
});
|
|
@@ -5859,7 +5845,7 @@ async function applySecretManager(client, result, phase = "create-update", appli
|
|
|
5859
5845
|
}));
|
|
5860
5846
|
if (application) await Promise.all(vaultChangeSet.updates.map(async (update) => {
|
|
5861
5847
|
const metaRequest = await buildMetaRequest({
|
|
5862
|
-
trn:
|
|
5848
|
+
trn: resourceTrn(update.workspaceId, "vault", update.name),
|
|
5863
5849
|
appName: application.name,
|
|
5864
5850
|
appId: application.id
|
|
5865
5851
|
});
|
|
@@ -5917,18 +5903,23 @@ async function applySecretManager(client, result, phase = "create-update", appli
|
|
|
5917
5903
|
* @returns Promise that resolves when static websites are applied
|
|
5918
5904
|
*/
|
|
5919
5905
|
async function applyStaticWebsite(client, result, phase = "create-update") {
|
|
5920
|
-
const { changeSet } = result;
|
|
5921
|
-
if (phase === "create-update")
|
|
5922
|
-
await
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
|
|
5906
|
+
const { changeSet, customDomainChangeSet } = result;
|
|
5907
|
+
if (phase === "create-update") {
|
|
5908
|
+
await Promise.all([...changeSet.creates.map(async (create) => {
|
|
5909
|
+
await client.createStaticWebsite(create.request);
|
|
5910
|
+
await client.setMetadata(create.metaRequest);
|
|
5911
|
+
}), ...changeSet.updates.map(async (update) => {
|
|
5912
|
+
await client.updateStaticWebsite(update.request);
|
|
5913
|
+
await client.setMetadata(update.metaRequest);
|
|
5914
|
+
})]);
|
|
5915
|
+
await Promise.all([...customDomainChangeSet.creates.map(async (add) => {
|
|
5916
|
+
await client.addCustomDomain(add.request);
|
|
5917
|
+
await client.setMetadata(add.metaRequest);
|
|
5918
|
+
}), ...customDomainChangeSet.deletes.map((del) => client.removeCustomDomain(del.request))]);
|
|
5919
|
+
} else if (phase === "delete") await Promise.all(changeSet.deletes.map((del) => client.deleteStaticWebsite(del.request)));
|
|
5929
5920
|
}
|
|
5930
|
-
function
|
|
5931
|
-
return `trn:v1:workspace:${workspaceId}:staticwebsite:${
|
|
5921
|
+
function customDomainTrn(workspaceId, websiteName, domain) {
|
|
5922
|
+
return `trn:v1:workspace:${workspaceId}:staticwebsite:${websiteName}:custom_domain:${domain}`;
|
|
5932
5923
|
}
|
|
5933
5924
|
function normalizeComparableStaticWebsiteShape(input) {
|
|
5934
5925
|
return {
|
|
@@ -5953,6 +5944,7 @@ function areStaticWebsitesEqual(existing, desired) {
|
|
|
5953
5944
|
async function planStaticWebsite(context) {
|
|
5954
5945
|
const { client, workspaceId, application, forRemoval } = context;
|
|
5955
5946
|
const changeSet = createChangeSet("StaticWebsites");
|
|
5947
|
+
const customDomainChangeSet = createChangeSet("CustomDomains");
|
|
5956
5948
|
const conflicts = [];
|
|
5957
5949
|
const unmanaged = [];
|
|
5958
5950
|
const resourceOwners = /* @__PURE__ */ new Set();
|
|
@@ -5968,15 +5960,16 @@ async function planStaticWebsite(context) {
|
|
|
5968
5960
|
return [staticwebsites, nextPageToken];
|
|
5969
5961
|
},
|
|
5970
5962
|
getName: (resource) => resource.name,
|
|
5971
|
-
getTrn:
|
|
5963
|
+
getTrn: (workspaceId, name) => resourceTrn(workspaceId, "staticwebsite", name)
|
|
5972
5964
|
});
|
|
5965
|
+
const ownedWebsiteNames = /* @__PURE__ */ new Set();
|
|
5973
5966
|
const staticWebsiteServices = forRemoval ? [] : application.staticWebsiteServices;
|
|
5974
5967
|
for (const websiteService of staticWebsiteServices) {
|
|
5975
5968
|
const config = websiteService;
|
|
5976
5969
|
const name = websiteService.name;
|
|
5977
5970
|
const existing = existingWebsites[name];
|
|
5978
5971
|
const metaRequest = await buildMetaRequest({
|
|
5979
|
-
trn:
|
|
5972
|
+
trn: resourceTrn(workspaceId, "staticwebsite", name),
|
|
5980
5973
|
appName: application.name,
|
|
5981
5974
|
appId: application.id
|
|
5982
5975
|
});
|
|
@@ -5990,7 +5983,7 @@ async function planStaticWebsite(context) {
|
|
|
5990
5983
|
}
|
|
5991
5984
|
};
|
|
5992
5985
|
if (existing) {
|
|
5993
|
-
|
|
5986
|
+
const owned = trackDesiredResourceOwnership({
|
|
5994
5987
|
labels: existing.allLabels,
|
|
5995
5988
|
ownerLabel: existing.label,
|
|
5996
5989
|
appName: application.name,
|
|
@@ -5999,18 +5992,23 @@ async function planStaticWebsite(context) {
|
|
|
5999
5992
|
resourceName: name,
|
|
6000
5993
|
conflicts,
|
|
6001
5994
|
unmanaged
|
|
6002
|
-
})
|
|
5995
|
+
});
|
|
5996
|
+
if (owned && hasMatchingSdkVersion(existing.allLabels, metaRequest.labels) && areStaticWebsitesEqual(existing.resource, desired)) changeSet.unchanged.push({ name });
|
|
6003
5997
|
else changeSet.updates.push({
|
|
6004
5998
|
name,
|
|
6005
5999
|
request,
|
|
6006
6000
|
metaRequest
|
|
6007
6001
|
});
|
|
6002
|
+
if (owned) ownedWebsiteNames.add(name);
|
|
6008
6003
|
delete existingWebsites[name];
|
|
6009
|
-
} else
|
|
6010
|
-
|
|
6011
|
-
|
|
6012
|
-
|
|
6013
|
-
|
|
6004
|
+
} else {
|
|
6005
|
+
changeSet.creates.push({
|
|
6006
|
+
name,
|
|
6007
|
+
request,
|
|
6008
|
+
metaRequest
|
|
6009
|
+
});
|
|
6010
|
+
ownedWebsiteNames.add(name);
|
|
6011
|
+
}
|
|
6014
6012
|
}
|
|
6015
6013
|
Object.entries(existingWebsites).forEach(([name]) => {
|
|
6016
6014
|
const entry = existingWebsites[name];
|
|
@@ -6029,8 +6027,63 @@ async function planStaticWebsite(context) {
|
|
|
6029
6027
|
}
|
|
6030
6028
|
});
|
|
6031
6029
|
});
|
|
6030
|
+
const desiredDomainsByWebsite = /* @__PURE__ */ new Map();
|
|
6031
|
+
for (const service of staticWebsiteServices) if (service.customDomains !== void 0 && ownedWebsiteNames.has(service.name)) desiredDomainsByWebsite.set(service.name, service.customDomains);
|
|
6032
|
+
const existingDomainsByWebsite = /* @__PURE__ */ new Map();
|
|
6033
|
+
const websitesToFetchDomains = [...ownedWebsiteNames].filter((name) => !changeSet.creates.some((c) => c.name === name));
|
|
6034
|
+
await Promise.all(websitesToFetchDomains.map(async (name) => {
|
|
6035
|
+
try {
|
|
6036
|
+
const { customDomains } = await client.listCustomDomains({
|
|
6037
|
+
workspaceId,
|
|
6038
|
+
staticWebsiteName: name
|
|
6039
|
+
});
|
|
6040
|
+
const domainsWithLabels = await Promise.all(customDomains.map(async (d) => {
|
|
6041
|
+
const { metadata } = await client.getMetadata({ trn: customDomainTrn(workspaceId, name, d.domain) });
|
|
6042
|
+
return {
|
|
6043
|
+
domain: d.domain,
|
|
6044
|
+
allLabels: metadata?.labels
|
|
6045
|
+
};
|
|
6046
|
+
}));
|
|
6047
|
+
existingDomainsByWebsite.set(name, domainsWithLabels);
|
|
6048
|
+
} catch (error) {
|
|
6049
|
+
if (error instanceof ConnectError && error.code === Code.NotFound) return;
|
|
6050
|
+
throw error;
|
|
6051
|
+
}
|
|
6052
|
+
}));
|
|
6053
|
+
for (const name of ownedWebsiteNames) {
|
|
6054
|
+
const desired = new Set(desiredDomainsByWebsite.get(name) ?? []);
|
|
6055
|
+
const existingDomains = existingDomainsByWebsite.get(name) ?? [];
|
|
6056
|
+
const existingSet = new Set(existingDomains.map((d) => d.domain));
|
|
6057
|
+
const sdkOwnedDomains = new Set(existingDomains.filter((d) => isOwnedByApp(d.allLabels, application.name, application.id)).map((d) => d.domain));
|
|
6058
|
+
for (const domain of desired) if (!existingSet.has(domain)) {
|
|
6059
|
+
const metaRequest = await buildMetaRequest({
|
|
6060
|
+
trn: customDomainTrn(workspaceId, name, domain),
|
|
6061
|
+
appName: application.name,
|
|
6062
|
+
appId: application.id
|
|
6063
|
+
});
|
|
6064
|
+
customDomainChangeSet.creates.push({
|
|
6065
|
+
name: domain,
|
|
6066
|
+
request: {
|
|
6067
|
+
workspaceId,
|
|
6068
|
+
staticWebsiteName: name,
|
|
6069
|
+
domain
|
|
6070
|
+
},
|
|
6071
|
+
metaRequest
|
|
6072
|
+
});
|
|
6073
|
+
} else customDomainChangeSet.unchanged.push({ name: domain });
|
|
6074
|
+
if (desiredDomainsByWebsite.has(name)) {
|
|
6075
|
+
for (const domain of sdkOwnedDomains) if (!desired.has(domain)) customDomainChangeSet.deletes.push({
|
|
6076
|
+
name: domain,
|
|
6077
|
+
request: {
|
|
6078
|
+
workspaceId,
|
|
6079
|
+
domain
|
|
6080
|
+
}
|
|
6081
|
+
});
|
|
6082
|
+
}
|
|
6083
|
+
}
|
|
6032
6084
|
return {
|
|
6033
6085
|
changeSet,
|
|
6086
|
+
customDomainChangeSet,
|
|
6034
6087
|
conflicts,
|
|
6035
6088
|
unmanaged,
|
|
6036
6089
|
resourceOwners
|
|
@@ -7952,7 +8005,7 @@ function spinner(options) {
|
|
|
7952
8005
|
*/
|
|
7953
8006
|
async function getCurrentMigrationNumber(client, workspaceId, namespace) {
|
|
7954
8007
|
try {
|
|
7955
|
-
const trn =
|
|
8008
|
+
const trn = resourceTrn(workspaceId, "tailordb", namespace);
|
|
7956
8009
|
const { metadata } = await client.getMetadata({ trn });
|
|
7957
8010
|
const label = metadata?.labels[MIGRATION_LABEL_KEY];
|
|
7958
8011
|
if (!label) return 0;
|
|
@@ -8033,7 +8086,7 @@ async function executeSingleMigration(options, migration) {
|
|
|
8033
8086
|
* @returns {Promise<void>}
|
|
8034
8087
|
*/
|
|
8035
8088
|
async function updateMigrationLabel(client, workspaceId, namespace, migrationNumber) {
|
|
8036
|
-
const trn =
|
|
8089
|
+
const trn = resourceTrn(workspaceId, "tailordb", namespace);
|
|
8037
8090
|
const { metadata } = await client.getMetadata({ trn });
|
|
8038
8091
|
const existingLabels = metadata?.labels ?? {};
|
|
8039
8092
|
const newLabel = `m${formatMigrationNumber(migrationNumber)}`;
|
|
@@ -8148,7 +8201,7 @@ async function fetchRemoteTypes(client, workspaceId, namespace) {
|
|
|
8148
8201
|
*/
|
|
8149
8202
|
async function getRemoteMigrationNumber(client, workspaceId, namespace) {
|
|
8150
8203
|
try {
|
|
8151
|
-
const trn =
|
|
8204
|
+
const trn = resourceTrn(workspaceId, "tailordb", namespace);
|
|
8152
8205
|
const { metadata } = await client.getMetadata({ trn });
|
|
8153
8206
|
const label = metadata?.labels?.["sdk-migration"];
|
|
8154
8207
|
if (!label) return null;
|
|
@@ -8702,9 +8755,6 @@ function formatTailorDBResourceChangeEntries(typeChangeSet, gqlPermissionChangeS
|
|
|
8702
8755
|
...collectTailorDBDisplayEntries("replace", typeChangeSet.replaces, gqlPermissionChangeSet.replaces)
|
|
8703
8756
|
];
|
|
8704
8757
|
}
|
|
8705
|
-
function trn(workspaceId, name) {
|
|
8706
|
-
return `${trnPrefix(workspaceId)}:tailordb:${name}`;
|
|
8707
|
-
}
|
|
8708
8758
|
function normalizeComparableTailorDBService(service) {
|
|
8709
8759
|
return normalizeProtoConfig({
|
|
8710
8760
|
namespace: service.namespace,
|
|
@@ -8741,7 +8791,7 @@ async function planServices(client, workspaceId, appName, appId, tailordbs) {
|
|
|
8741
8791
|
const existingServices = {};
|
|
8742
8792
|
await Promise.all(withoutLabel.map(async (resource) => {
|
|
8743
8793
|
if (!resource.namespace?.name) return;
|
|
8744
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
8794
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "tailordb", resource.namespace.name) });
|
|
8745
8795
|
existingServices[resource.namespace.name] = {
|
|
8746
8796
|
resource,
|
|
8747
8797
|
label: metadata?.labels[sdkNameLabelKey],
|
|
@@ -8751,7 +8801,7 @@ async function planServices(client, workspaceId, appName, appId, tailordbs) {
|
|
|
8751
8801
|
for (const tailordb of tailordbs) {
|
|
8752
8802
|
const existing = existingServices[tailordb.namespace];
|
|
8753
8803
|
const metaRequest = await buildMetaRequest({
|
|
8754
|
-
trn:
|
|
8804
|
+
trn: resourceTrn(workspaceId, "tailordb", tailordb.namespace),
|
|
8755
8805
|
appName,
|
|
8756
8806
|
appId,
|
|
8757
8807
|
existingLabels: existing?.allLabels
|
|
@@ -9518,7 +9568,7 @@ async function registerJobFunctions(client, changeSet, appName, appId, unchanged
|
|
|
9518
9568
|
scriptRef: workflowJobFunctionName(jobName)
|
|
9519
9569
|
});
|
|
9520
9570
|
await client.setMetadata(await buildMetaRequest({
|
|
9521
|
-
trn:
|
|
9571
|
+
trn: resourceTrn(workspaceId, "workflow_job_function", jobName),
|
|
9522
9572
|
appName,
|
|
9523
9573
|
appId
|
|
9524
9574
|
}));
|
|
@@ -9531,9 +9581,9 @@ async function registerJobFunctions(client, changeSet, appName, appId, unchanged
|
|
|
9531
9581
|
}
|
|
9532
9582
|
const unusedJobFunctions = existingJobFunctions.filter((jobName) => !allUsedJobNames.has(jobName));
|
|
9533
9583
|
await Promise.all(unusedJobFunctions.map(async (jobName) => {
|
|
9534
|
-
const { metadata } = await client.getMetadata({ trn:
|
|
9584
|
+
const { metadata } = await client.getMetadata({ trn: resourceTrn(workspaceId, "workflow_job_function", jobName) });
|
|
9535
9585
|
if (isOwnedByApp(metadata?.labels, appName, appId)) await client.setMetadata({
|
|
9536
|
-
trn:
|
|
9586
|
+
trn: resourceTrn(workspaceId, "workflow_job_function", jobName),
|
|
9537
9587
|
labels: { [sdkNameLabelKey]: "" }
|
|
9538
9588
|
});
|
|
9539
9589
|
}));
|
|
@@ -9559,12 +9609,6 @@ function toRetryPolicy(policy) {
|
|
|
9559
9609
|
function toConcurrencyPolicy(policy) {
|
|
9560
9610
|
return { maxConcurrentExecutions: policy.maxConcurrentExecutions };
|
|
9561
9611
|
}
|
|
9562
|
-
function workflowTrn$1(workspaceId, name) {
|
|
9563
|
-
return `trn:v1:workspace:${workspaceId}:workflow:${name}`;
|
|
9564
|
-
}
|
|
9565
|
-
function jobFunctionTrn(workspaceId, name) {
|
|
9566
|
-
return `trn:v1:workspace:${workspaceId}:workflow_job_function:${name}`;
|
|
9567
|
-
}
|
|
9568
9612
|
/**
|
|
9569
9613
|
* Plan workflow changes and job functions based on current and desired state.
|
|
9570
9614
|
* @param client - Operator client instance
|
|
@@ -9594,12 +9638,12 @@ async function planWorkflow(client, workspaceId, appName, appId, workflows, main
|
|
|
9594
9638
|
return [response.workflows, response.nextPageToken];
|
|
9595
9639
|
},
|
|
9596
9640
|
getName: (resource) => resource.name,
|
|
9597
|
-
getTrn:
|
|
9641
|
+
getTrn: (workspaceId, name) => resourceTrn(workspaceId, "workflow", name)
|
|
9598
9642
|
});
|
|
9599
9643
|
for (const workflow of Object.values(workflows)) {
|
|
9600
9644
|
const existing = existingWorkflows[workflow.name];
|
|
9601
9645
|
const metaRequest = await buildMetaRequest({
|
|
9602
|
-
trn:
|
|
9646
|
+
trn: resourceTrn(workspaceId, "workflow", workflow.name),
|
|
9603
9647
|
appName,
|
|
9604
9648
|
appId
|
|
9605
9649
|
});
|
|
@@ -9728,36 +9772,6 @@ function normalizeRetryPolicyForCompare(policy) {
|
|
|
9728
9772
|
|
|
9729
9773
|
//#endregion
|
|
9730
9774
|
//#region src/cli/commands/deploy/deploy.ts
|
|
9731
|
-
function applicationTrn(workspaceId, name) {
|
|
9732
|
-
return `trn:v1:workspace:${workspaceId}:application:${name}`;
|
|
9733
|
-
}
|
|
9734
|
-
function functionRegistryTrn(workspaceId, name) {
|
|
9735
|
-
return `trn:v1:workspace:${workspaceId}:function_registry:${name}`;
|
|
9736
|
-
}
|
|
9737
|
-
function pipelineTrn(workspaceId, name) {
|
|
9738
|
-
return `trn:v1:workspace:${workspaceId}:pipeline:${name}`;
|
|
9739
|
-
}
|
|
9740
|
-
function idpTrn(workspaceId, name) {
|
|
9741
|
-
return `trn:v1:workspace:${workspaceId}:idp:${name}`;
|
|
9742
|
-
}
|
|
9743
|
-
function authTrn(workspaceId, name) {
|
|
9744
|
-
return `trn:v1:workspace:${workspaceId}:auth:${name}`;
|
|
9745
|
-
}
|
|
9746
|
-
function executorTrn(workspaceId, name) {
|
|
9747
|
-
return `trn:v1:workspace:${workspaceId}:executor:${name}`;
|
|
9748
|
-
}
|
|
9749
|
-
function workflowTrn(workspaceId, name) {
|
|
9750
|
-
return `trn:v1:workspace:${workspaceId}:workflow:${name}`;
|
|
9751
|
-
}
|
|
9752
|
-
function staticWebsiteTrn(workspaceId, name) {
|
|
9753
|
-
return `trn:v1:workspace:${workspaceId}:staticwebsite:${name}`;
|
|
9754
|
-
}
|
|
9755
|
-
function tailorDBTrn(workspaceId, name) {
|
|
9756
|
-
return `trn:v1:workspace:${workspaceId}:tailordb:${name}`;
|
|
9757
|
-
}
|
|
9758
|
-
function vaultTrn(workspaceId, name) {
|
|
9759
|
-
return `trn:v1:workspace:${workspaceId}:vault:${name}`;
|
|
9760
|
-
}
|
|
9761
9775
|
/**
|
|
9762
9776
|
* Resolve the set of IdP names that have at least one executor subscribed to
|
|
9763
9777
|
* their user events. When an executor's idpUser trigger omits the `idp` option
|
|
@@ -9779,36 +9793,36 @@ function collectIdpUserTriggerTargets(application) {
|
|
|
9779
9793
|
}
|
|
9780
9794
|
async function shouldForceApplyAll(client, workspaceId, application, functionEntries) {
|
|
9781
9795
|
const desiredLabels = (await buildMetaRequest({
|
|
9782
|
-
trn:
|
|
9796
|
+
trn: resourceTrn(workspaceId, "application", application.name),
|
|
9783
9797
|
appName: application.name,
|
|
9784
9798
|
appId: application.id
|
|
9785
9799
|
})).labels;
|
|
9786
9800
|
const candidateTrns = /* @__PURE__ */ new Set();
|
|
9787
|
-
if (application.subgraphs.length > 0) candidateTrns.add(
|
|
9801
|
+
if (application.subgraphs.length > 0) candidateTrns.add(resourceTrn(workspaceId, "application", application.name));
|
|
9788
9802
|
application.staticWebsiteServices.forEach((website) => {
|
|
9789
|
-
candidateTrns.add(
|
|
9803
|
+
candidateTrns.add(resourceTrn(workspaceId, "staticwebsite", website.name));
|
|
9790
9804
|
});
|
|
9791
9805
|
application.resolverServices.forEach((pipeline) => {
|
|
9792
|
-
candidateTrns.add(
|
|
9806
|
+
candidateTrns.add(resourceTrn(workspaceId, "pipeline", pipeline.namespace));
|
|
9793
9807
|
});
|
|
9794
9808
|
application.idpServices.forEach((idp) => {
|
|
9795
|
-
candidateTrns.add(
|
|
9809
|
+
candidateTrns.add(resourceTrn(workspaceId, "idp", idp.name));
|
|
9796
9810
|
});
|
|
9797
|
-
if (application.authService) candidateTrns.add(
|
|
9811
|
+
if (application.authService) candidateTrns.add(resourceTrn(workspaceId, "auth", application.authService.config.name));
|
|
9798
9812
|
Object.values(application.executorService?.executors ?? {}).forEach((executor) => {
|
|
9799
|
-
candidateTrns.add(
|
|
9813
|
+
candidateTrns.add(resourceTrn(workspaceId, "executor", executor.name));
|
|
9800
9814
|
});
|
|
9801
9815
|
Object.values(application.workflowService?.workflows ?? {}).forEach((workflow) => {
|
|
9802
|
-
candidateTrns.add(
|
|
9816
|
+
candidateTrns.add(resourceTrn(workspaceId, "workflow", workflow.name));
|
|
9803
9817
|
});
|
|
9804
9818
|
application.tailorDBServices.forEach((service) => {
|
|
9805
|
-
candidateTrns.add(
|
|
9819
|
+
candidateTrns.add(resourceTrn(workspaceId, "tailordb", service.namespace));
|
|
9806
9820
|
});
|
|
9807
9821
|
application.secrets.forEach((vault) => {
|
|
9808
|
-
candidateTrns.add(
|
|
9822
|
+
candidateTrns.add(resourceTrn(workspaceId, "vault", vault.vaultName));
|
|
9809
9823
|
});
|
|
9810
9824
|
functionEntries.forEach((entry) => {
|
|
9811
|
-
candidateTrns.add(
|
|
9825
|
+
candidateTrns.add(resourceTrn(workspaceId, "function_registry", entry.name));
|
|
9812
9826
|
});
|
|
9813
9827
|
for (const trn of candidateTrns) try {
|
|
9814
9828
|
const { metadata } = await client.getMetadata({ trn });
|
|
@@ -9865,6 +9879,7 @@ function printPlanResults(results) {
|
|
|
9865
9879
|
const idpServiceActions = extractServiceActions(results.idp.changeSet.service);
|
|
9866
9880
|
const authServiceActions = extractServiceActions(results.auth.changeSet.service);
|
|
9867
9881
|
results.staticWebsite.changeSet.print();
|
|
9882
|
+
results.staticWebsite.customDomainChangeSet.print();
|
|
9868
9883
|
results.app.print();
|
|
9869
9884
|
printGroupedDisplaySection("TailorDB", tailorDBEntries, tailorDBServiceActions);
|
|
9870
9885
|
printGroupedDisplaySection("Resolver", pipelineEntries, pipelineServiceActions);
|
|
@@ -9914,6 +9929,7 @@ function summarizePlanResults(results, displayEntries, serviceActions) {
|
|
|
9914
9929
|
const nonGrouped = summarizeChangeSets([
|
|
9915
9930
|
otherChanges,
|
|
9916
9931
|
results.staticWebsite.changeSet,
|
|
9932
|
+
results.staticWebsite.customDomainChangeSet,
|
|
9917
9933
|
results.app,
|
|
9918
9934
|
results.secretManager.vaultChangeSet,
|
|
9919
9935
|
results.secretManager.secretChangeSet
|
|
@@ -14488,7 +14504,7 @@ async function generate(options) {
|
|
|
14488
14504
|
if (options.init) await handleInitOption(namespacesWithMigrations, options.yes);
|
|
14489
14505
|
let pluginManager;
|
|
14490
14506
|
if (plugins.length > 0) pluginManager = new PluginManager(plugins);
|
|
14491
|
-
const { defineApplication } = await import("./application-
|
|
14507
|
+
const { defineApplication } = await import("./application-gO_pa5BO.mjs");
|
|
14492
14508
|
const application = defineApplication({
|
|
14493
14509
|
config,
|
|
14494
14510
|
pluginManager
|
|
@@ -16680,5 +16696,5 @@ function isDeno() {
|
|
|
16680
16696
|
}
|
|
16681
16697
|
|
|
16682
16698
|
//#endregion
|
|
16683
|
-
export { listCommand$5 as $, compareSnapshots as $t, truncate as A, toPageDirection as An, startCommand as At, logBetaWarning as B, getExecutor as Bt, listCommand$2 as C, commonArgs as Cn, triggerExecutor as Ct, resumeWorkflow as D, isVerbose as Dn, jobsCommand as Dt, resumeCommand as E, deploymentArgs as En, getExecutorJob as Et, writeDbTypesFile as F, getWorkflowExecution as Ft, organizationTree as G, parseMigrationLabelNumber as Gt, removeCommand$1 as H, executeScript as Ht, getConfiguredEditorCommand as I, listWorkflowExecutions as It, listOrganizations as J, DIFF_FILE_NAME as Jt, treeCommand as K, bundleMigrationScript as Kt, openInConfiguredEditor as L, functionExecutionStatusToString as Lt, generate as M, getCommand$5 as Mt, generateCommand as N, getWorkflow as Nt, listCommand$3 as O, pagedLogArgs as On, listExecutorJobs as Ot, generateMigrationScript as P, executionsCommand as Pt, updateFolder as Q, compareLocalTypesWithSnapshot as Qt, show as R, formatKeyValueTable as Rt, listApps as S, defineAppCommand as Sn, triggerCommand as St, healthCommand as T, confirmationArgs as Tn, listExecutors as Tt, updateCommand$1 as U, waitForExecution$1 as Ut, remove as V, deploy as Vt, updateOrganization as W, MIGRATION_LABEL_KEY as Wt, getOrganization as X, MIGRATE_FILE_NAME as Xt, getCommand$1 as Y, INITIAL_SCHEMA_NUMBER as Yt, updateCommand$2 as Z, SCHEMA_FILE_NAME as Zt, getWorkspace as _, generateUserTypes as _n, listFunctionRegistries as _t, updateUser as a, getNextMigrationNumber as an, createCommand$1 as at, createCommand as b, apiCall as bn, listWebhookExecutors as bt, listCommand as c, reconstructSnapshotFromMigrations as cn, listOAuth2Clients as ct, inviteUser as d, formatMigrationDiff as dn, getMachineUserToken as dt, createSnapshotFromLocalTypes as en, listFolders as et, restoreCommand as f, hasChanges as fn, tokenCommand as ft, getCommand as g, PluginManager as gn, listCommand$8 as gt, listWorkspaces as h,
|
|
16684
|
-
//# sourceMappingURL=runtime-
|
|
16699
|
+
export { listCommand$5 as $, compareSnapshots as $t, truncate as A, toPageDirection as An, startCommand as At, logBetaWarning as B, getExecutor as Bt, listCommand$2 as C, commonArgs as Cn, triggerExecutor as Ct, resumeWorkflow as D, isVerbose as Dn, jobsCommand as Dt, resumeCommand as E, deploymentArgs as En, getExecutorJob as Et, writeDbTypesFile as F, getWorkflowExecution as Ft, organizationTree as G, parseMigrationLabelNumber as Gt, removeCommand$1 as H, executeScript as Ht, getConfiguredEditorCommand as I, listWorkflowExecutions as It, listOrganizations as J, DIFF_FILE_NAME as Jt, treeCommand as K, bundleMigrationScript as Kt, openInConfiguredEditor as L, functionExecutionStatusToString as Lt, generate as M, getCommand$5 as Mt, generateCommand as N, getWorkflow as Nt, listCommand$3 as O, pagedLogArgs as On, listExecutorJobs as Ot, generateMigrationScript as P, executionsCommand as Pt, updateFolder as Q, compareLocalTypesWithSnapshot as Qt, show as R, formatKeyValueTable as Rt, listApps as S, defineAppCommand as Sn, triggerCommand as St, healthCommand as T, confirmationArgs as Tn, listExecutors as Tt, updateCommand$1 as U, waitForExecution$1 as Ut, remove as V, deploy as Vt, updateOrganization as W, MIGRATION_LABEL_KEY as Wt, getOrganization as X, MIGRATE_FILE_NAME as Xt, getCommand$1 as Y, INITIAL_SCHEMA_NUMBER as Yt, updateCommand$2 as Z, SCHEMA_FILE_NAME as Zt, getWorkspace as _, generateUserTypes as _n, listFunctionRegistries as _t, updateUser as a, getNextMigrationNumber as an, createCommand$1 as at, createCommand as b, apiCall as bn, listWebhookExecutors as bt, listCommand as c, reconstructSnapshotFromMigrations as cn, listOAuth2Clients as ct, inviteUser as d, formatMigrationDiff as dn, getMachineUserToken as dt, createSnapshotFromLocalTypes as en, listFolders as et, restoreCommand as f, hasChanges as fn, tokenCommand as ft, getCommand as g, PluginManager as gn, listCommand$8 as gt, listWorkspaces as h, sdkNameLabelKey as hn, generate$1 as ht, updateCommand as i, getMigrationFiles as in, deleteFolder as it, truncateCommand as j, workspaceArgs as jn, startWorkflow as jt, listWorkflows as k, paginationArgs as kn, watchExecutorJob as kt, listUsers as l, formatMigrationNumber as ln, getCommand$3 as lt, listCommand$1 as m, resourceTrn as mn, listMachineUsers as mt, query as n, getMigrationDirPath as nn, getFolder as nt, removeCommand as o, isValidMigrationNumber as on, createFolder as ot, restoreWorkspace as p, getNamespacesWithMigrations as pn, listCommand$7 as pt, listCommand$4 as q, DB_TYPES_FILE_NAME as qt, queryCommand as r, getMigrationFilePath as rn, deleteCommand$1 as rt, removeUser as s, loadDiff as sn, listCommand$6 as st, isNativeTypeScriptRuntime as t, getLatestMigrationNumber as tn, getCommand$2 as tt, inviteCommand as u, formatDiffSummary as un, getOAuth2Client as ut, deleteCommand as v, prompt as vn, getCommand$4 as vt, getAppHealth as w, configArg as wn, listCommand$9 as wt, createWorkspace as x, assertWritable as xn, webhookCommand as xt, deleteWorkspace as y, apiCommand as yn, getFunctionRegistry as yt, showCommand as z, getCommand$6 as zt };
|
|
16700
|
+
//# sourceMappingURL=runtime-BC-FbQkg.mjs.map
|