Skip to content

Commit f4dfd4c

Browse files
committed
WC-5168 add preview base-config secrets commands
1 parent 609fd91 commit f4dfd4c

10 files changed

Lines changed: 1187 additions & 0 deletions

File tree

.changeset/base-config-secrets.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"wrangler": minor
3+
---
4+
5+
Add Preview base config secret commands
6+
7+
Wrangler now manages Worker Preview base config secrets with `wrangler preview base-config secret put`, `delete`, `list`, and `bulk`. These commands update the Worker's `previews_base_config.env`, keeping shared defaults scoped to all of that Worker's Previews. `wrangler preview base-config secret list` reads from the Worker's Preview base config and prints secret names with values masked. `wrangler preview base-config secret bulk` deletes a secret when its value is `null`, matching `wrangler secret bulk`.

packages/deploy-helpers/src/preview/api.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,24 @@ type WorkerPreviewDefaultsResource = {
145145
preview_defaults?: PreviewDefaults;
146146
};
147147

148+
export type PreviewBaseConfig = {
149+
observability?: Observability;
150+
logpush?: boolean;
151+
limits?: CfUserLimits;
152+
placement?: CfPlacement;
153+
cache?: CacheOptions;
154+
tail_consumers?: Array<{ name: string }>;
155+
env?: EnvBindings;
156+
};
157+
158+
export type PreviewBaseConfigPatch = Partial<Omit<PreviewBaseConfig, "env">> & {
159+
env?: Record<string, Binding | null>;
160+
};
161+
162+
type WorkerPreviewBaseConfigResource = {
163+
previews_base_config?: PreviewBaseConfig;
164+
};
165+
148166
export async function getPreview(
149167
config: Config,
150168
accountId: string,
@@ -321,3 +339,34 @@ export async function editWorkerPreviewDefaults(
321339

322340
return worker.preview_defaults ?? {};
323341
}
342+
343+
export async function getPreviewBaseConfig(
344+
config: Config,
345+
accountId: string,
346+
workerName: string
347+
): Promise<PreviewBaseConfig> {
348+
const worker = await fetchResult<WorkerPreviewBaseConfigResource>(
349+
config,
350+
`/accounts/${accountId}/workers/workers/${workerName}`
351+
);
352+
return worker.previews_base_config ?? {};
353+
}
354+
355+
export async function patchPreviewBaseConfig(
356+
config: Config,
357+
accountId: string,
358+
workerName: string,
359+
previewBaseConfig: PreviewBaseConfigPatch
360+
): Promise<PreviewBaseConfig> {
361+
const worker = await fetchResult<WorkerPreviewBaseConfigResource>(
362+
config,
363+
`/accounts/${accountId}/workers/workers/${workerName}`,
364+
{
365+
method: "PATCH",
366+
headers: { "Content-Type": "application/merge-patch+json" },
367+
body: JSON.stringify({ previews_base_config: previewBaseConfig }),
368+
}
369+
);
370+
371+
return worker.previews_base_config ?? {};
372+
}

0 commit comments

Comments
 (0)