@sponson/adapters 0.5.0 → 0.6.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.
- package/dist/cloud_run.d.ts +12 -0
- package/dist/cloud_run.js +469 -0
- package/dist/cloud_run.js.map +1 -0
- package/dist/http-adapter-auth.d.ts +8 -2
- package/dist/http-adapter-auth.js +13 -10
- package/dist/http-adapter-auth.js.map +1 -1
- package/dist/http-adapter-client.d.ts +12 -6
- package/dist/http-adapter-client.js +12 -5
- package/dist/http-adapter-client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/providers.d.ts +2 -0
- package/dist/providers.js +15 -10
- package/dist/providers.js.map +1 -1
- package/package.json +3 -3
- package/recipes/github.yaml +3 -2
- package/recipes/cloud_run.yaml +0 -97
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ResourceAdapter } from "@sponson/core";
|
|
2
|
+
import { type AuthDeps } from "./http-adapter-auth.js";
|
|
3
|
+
/** The Cloud Run Admin API's origin (CR1); requests go to `/v2/…`. `CLOUD_RUN_API_URL` overrides it (tests: the sim). */
|
|
4
|
+
export declare const CLOUD_RUN_DEFAULT_API_URL = "https://run.googleapis.com";
|
|
5
|
+
/** The Cloud Run adapter with how its gcloud command runs injected (tests); the registered one runs gcloud from PATH. */
|
|
6
|
+
export declare function createCloudRunAdapter(deps?: Partial<AuthDeps>): ResourceAdapter;
|
|
7
|
+
/**
|
|
8
|
+
* The Cloud Run adapter (`adapter: cloud_run` in a plan): op `revision`, a tagged revision per scope with the plan's
|
|
9
|
+
* image and variables and no traffic. Registered in `createRegistry()`; needs `providers.cloud_run.project` and
|
|
10
|
+
* `.region`, and `gcloud` on PATH logged in to an account allowed to update the service.
|
|
11
|
+
*/
|
|
12
|
+
export declare const cloudRunAdapter: ResourceAdapter;
|
|
@@ -0,0 +1,469 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Cloud Run adapter: op `revision`, a revision of an existing service per scope, made from the service's
|
|
3
|
+
* template with the plan's image and environment variables, reachable at its own tag URL and given no traffic. This
|
|
4
|
+
* is what `gcloud run deploy --no-traffic --tag pr-42 --update-env-vars …` does, as a line Sponson can re-apply, check
|
|
5
|
+
* for drift and destroy. The API assumptions it relies on are numbered CR1… at the top of
|
|
6
|
+
* packages/sim/src/routes/cloud_run.ts.
|
|
7
|
+
*
|
|
8
|
+
* - Key: `revision:<service>:<tag>`. Id: the revision's name, `<service>-<tag>-<hash>`: a new image or variable value
|
|
9
|
+
* makes a new revision (revisions are immutable, CR4), and the same values find the same one again.
|
|
10
|
+
* - Hash: the tagged revision's image and the values of the variables the line declares (others come from the
|
|
11
|
+
* service's template and are not the plan's). A console redeploy under the tag with another value, or the tag moved
|
|
12
|
+
* to another revision, is `changed` drift; the tag removed is `missing`.
|
|
13
|
+
* - Writes: `PATCH` of the service with an `updateMask` and its `etag` (CR3, CR8), each waited for until its operation
|
|
14
|
+
* is done (CR9): the template with the new revision's name (traffic on LATEST pinned to the revision it serves, so
|
|
15
|
+
* no traffic moves, CR5), then the traffic list with the tag on the new revision. Destroy removes the tag; the
|
|
16
|
+
* revision is left for Cloud Run to delete (CR12).
|
|
17
|
+
*/
|
|
18
|
+
import { setTimeout as sleep } from "node:timers/promises";
|
|
19
|
+
import { SponsonError, canonicalJson, markerKind, sha256 } from "@sponson/core";
|
|
20
|
+
import { assertNoPending, desiredSide, optionalEnv, paramError, requireProvider, stringParam } from "./common.js";
|
|
21
|
+
import { ShapeError, isObject, isProviderError } from "./http.js";
|
|
22
|
+
import { DEFAULT_AUTH_DEPS } from "./http-adapter-auth.js";
|
|
23
|
+
import { httpClient, withDeps } from "./http-adapter-client.js";
|
|
24
|
+
const ADAPTER = "cloud_run";
|
|
25
|
+
/** The command the adapter takes its access token from (CR1): the active gcloud account's. */
|
|
26
|
+
const TOKEN_COMMAND = ["gcloud", "auth", "print-access-token"];
|
|
27
|
+
/** What a user configures, declared once: used below and by the generated docs and `sponson init` (`about`). */
|
|
28
|
+
const ABOUT = {
|
|
29
|
+
credentialEnv: TOKEN_COMMAND.join(" "),
|
|
30
|
+
credentialCommand: TOKEN_COMMAND,
|
|
31
|
+
baseUrlEnv: "CLOUD_RUN_API_URL",
|
|
32
|
+
title: "Google Cloud Run",
|
|
33
|
+
category: "deploy",
|
|
34
|
+
detect: { deps: ["@google-cloud/run"], env: ["CLOUD_RUN_*", "K_SERVICE"] },
|
|
35
|
+
};
|
|
36
|
+
/** The Cloud Run Admin API's origin (CR1); requests go to `/v2/…`. `CLOUD_RUN_API_URL` overrides it (tests: the sim). */
|
|
37
|
+
export const CLOUD_RUN_DEFAULT_API_URL = "https://run.googleapis.com";
|
|
38
|
+
/** How often an operation or a revision is polled, and for how long (milliseconds; overridable for tests). */
|
|
39
|
+
const POLL_MS = { env: "SPONSON_CLOUD_RUN_POLL_MS", fallback: 2000 };
|
|
40
|
+
const TIMEOUT_MS = { env: "SPONSON_CLOUD_RUN_TIMEOUT_MS", fallback: 10 * 60 * 1000 };
|
|
41
|
+
/** A patch refused because the service changed since it was read (CR8) is read and tried again this often. */
|
|
42
|
+
const ATTEMPTS = 3;
|
|
43
|
+
const LATEST = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST";
|
|
44
|
+
const BY_REVISION = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION";
|
|
45
|
+
/** A revision name's limit (CR4). */
|
|
46
|
+
const MAX_REVISION_NAME = 63;
|
|
47
|
+
const TAG = /^[a-z]([a-z0-9-]*[a-z0-9])?$/;
|
|
48
|
+
function msFromEnv(env, s) {
|
|
49
|
+
const raw = optionalEnv(env, s.env);
|
|
50
|
+
const n = Number(raw);
|
|
51
|
+
return raw !== undefined && Number.isFinite(n) && n >= 0 ? n : s.fallback;
|
|
52
|
+
}
|
|
53
|
+
/** The client: the shared HTTP client with the `command` credential the generic adapter uses for gcloud tokens. */
|
|
54
|
+
function client(actx) {
|
|
55
|
+
const block = { base_url: CLOUD_RUN_DEFAULT_API_URL, base_url_env: ABOUT.baseUrlEnv, auth: { command: [...TOKEN_COMMAND] } };
|
|
56
|
+
return httpClient(actx, {}, { block, where: "providers.cloud_run", adapter: ADAPTER, credentialWhere: "the Cloud Run credential: gcloud on PATH, logged in" });
|
|
57
|
+
}
|
|
58
|
+
function placeOf(actx) {
|
|
59
|
+
return { project: requireProvider(actx, "project", ADAPTER), region: requireProvider(actx, "region", ADAPTER) };
|
|
60
|
+
}
|
|
61
|
+
function envParam(v) {
|
|
62
|
+
if (v === undefined || v === null)
|
|
63
|
+
return {};
|
|
64
|
+
if (!isObject(v))
|
|
65
|
+
throw paramError(ADAPTER, "param `env` must be a map of NAME → value", "env");
|
|
66
|
+
for (const [name, value] of Object.entries(v)) {
|
|
67
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name))
|
|
68
|
+
throw paramError(ADAPTER, `\`env\`: ${JSON.stringify(name)} is not a variable name`, "env");
|
|
69
|
+
if (markerKind(value) === "keep")
|
|
70
|
+
throw paramError(ADAPTER, `\`env.${name}\`: \`{ keep: true }\` cannot be kept: a revision is made whole from the plan; give the value`, "env");
|
|
71
|
+
if (markerKind(value) === null && typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean")
|
|
72
|
+
throw paramError(ADAPTER, `\`env.${name}\` must be a string, number or boolean`, "env");
|
|
73
|
+
}
|
|
74
|
+
return v;
|
|
75
|
+
}
|
|
76
|
+
function tagParam(params) {
|
|
77
|
+
const tag = stringParam(params, "tag", ADAPTER);
|
|
78
|
+
if (markerKind(tag) === null && !TAG.test(tag))
|
|
79
|
+
throw paramError(ADAPTER, `\`tag\` ${JSON.stringify(tag)} must be lowercase letters, digits and -, starting with a letter and not ending with -`, "tag");
|
|
80
|
+
return tag;
|
|
81
|
+
}
|
|
82
|
+
function containerParam(params) {
|
|
83
|
+
return params.container === undefined ? undefined : stringParam(params, "container", ADAPTER);
|
|
84
|
+
}
|
|
85
|
+
function specOf(params) {
|
|
86
|
+
const env = Object.fromEntries(Object.entries(envParam(params.env)).map(([k, v]) => [k, String(v)]));
|
|
87
|
+
return { service: stringParam(params, "service", ADAPTER), tag: tagParam(params), image: stringParam(params, "image", ADAPTER), env, container: containerParam(params), pinLatest: pinLatestParam(params) };
|
|
88
|
+
}
|
|
89
|
+
function keyOf(service, tag) {
|
|
90
|
+
return `revision:${service}:${tag}`;
|
|
91
|
+
}
|
|
92
|
+
/** Inverse of keyOf: a service name and a tag never contain `:`. */
|
|
93
|
+
function parseKey(key) {
|
|
94
|
+
const [kind, service, tag, extra] = key.split(":");
|
|
95
|
+
if (kind !== "revision" || !service || !tag || extra !== undefined)
|
|
96
|
+
throw new SponsonError("INTERNAL", `${ADAPTER}: \`${key}\` is not a revision key`, { adapter: ADAPTER, key });
|
|
97
|
+
return { service, tag };
|
|
98
|
+
}
|
|
99
|
+
/** What the hash covers: the image and the declared variables' values (null: not set to a plain value). */
|
|
100
|
+
function contentHash(image, env) {
|
|
101
|
+
return sha256(canonicalJson({ image: image ?? null, env }));
|
|
102
|
+
}
|
|
103
|
+
/** `<service>-<tag>-<first 8 of the hash>`: the same contents name the same revision (CR4's rules). */
|
|
104
|
+
function revisionName(s, hash) {
|
|
105
|
+
const name = `${s.service}-${s.tag}-${hash.slice(0, 8)}`;
|
|
106
|
+
if (name.length > MAX_REVISION_NAME)
|
|
107
|
+
throw paramError(ADAPTER, `the revision name ${name} would be longer than ${MAX_REVISION_NAME} characters; give a shorter \`tag\``, "tag");
|
|
108
|
+
return name;
|
|
109
|
+
}
|
|
110
|
+
/** The last path segment: a revision may be named in full or short (CR7). */
|
|
111
|
+
function shortName(name) {
|
|
112
|
+
return name.slice(name.lastIndexOf("/") + 1);
|
|
113
|
+
}
|
|
114
|
+
function parseService(body) {
|
|
115
|
+
if (!isObject(body) || !isObject(body.template))
|
|
116
|
+
throw new ShapeError("expected a Service with a `template`");
|
|
117
|
+
const list = (v, what) => {
|
|
118
|
+
if (v === undefined)
|
|
119
|
+
return [];
|
|
120
|
+
if (!Array.isArray(v) || !v.every(isObject))
|
|
121
|
+
throw new ShapeError(`expected \`${what}\` to be a list of objects`);
|
|
122
|
+
return v;
|
|
123
|
+
};
|
|
124
|
+
return {
|
|
125
|
+
etag: typeof body.etag === "string" ? body.etag : undefined,
|
|
126
|
+
template: body.template,
|
|
127
|
+
traffic: list(body.traffic, "traffic"),
|
|
128
|
+
statuses: list(body.trafficStatuses, "trafficStatuses"),
|
|
129
|
+
latestReady: typeof body.latestReadyRevision === "string" && body.latestReadyRevision !== "" ? shortName(body.latestReadyRevision) : undefined,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
const OPERATION_NAME = /^projects\/[^/]+\/locations\/[^/]+\/operations\/[^/]+$/;
|
|
133
|
+
function parseOperation(body) {
|
|
134
|
+
if (!isObject(body) || typeof body.name !== "string" || !OPERATION_NAME.test(body.name))
|
|
135
|
+
throw new ShapeError("expected an Operation with a `name` projects/…/locations/…/operations/…");
|
|
136
|
+
const err = isObject(body.error) ? `${typeof body.error.message === "string" ? body.error.message : "failed"} (code ${String(body.error.code)})` : undefined;
|
|
137
|
+
return { name: body.name, done: body.done === true, ...(err !== undefined ? { error: err } : {}) };
|
|
138
|
+
}
|
|
139
|
+
function parseRevision(body) {
|
|
140
|
+
if (!isObject(body) || !Array.isArray(body.containers) || !body.containers.every(isObject))
|
|
141
|
+
throw new ShapeError("expected a Revision with `containers`");
|
|
142
|
+
const conditions = Array.isArray(body.conditions) ? body.conditions.filter(isObject) : [];
|
|
143
|
+
const state = conditions.find((c) => c.type === "Ready")?.state;
|
|
144
|
+
return { containers: body.containers, ready: state === "CONDITION_SUCCEEDED" ? "yes" : state === "CONDITION_FAILED" ? "failed" : "no" };
|
|
145
|
+
}
|
|
146
|
+
/** The container the line sets: the one it names, the only one, or the one that takes requests (has `ports`). */
|
|
147
|
+
function containerIn(containers, name, service) {
|
|
148
|
+
const pick = name !== undefined ? containers.find((c) => c.name === name) : containers.length === 1 ? containers[0] : containers.find((c) => Array.isArray(c.ports) && c.ports.length > 0);
|
|
149
|
+
if (pick)
|
|
150
|
+
return pick;
|
|
151
|
+
throw paramError(ADAPTER, name !== undefined ? `service ${service} has no container named ${name}` : `service ${service} has several containers and none takes requests; name one with \`container\``, "container");
|
|
152
|
+
}
|
|
153
|
+
/** The declared variables' live values: a plain `value`, else null (unset, or a `valueSource` such as a secret, CR10). */
|
|
154
|
+
function liveEnv(container, names) {
|
|
155
|
+
const env = Array.isArray(container.env) ? container.env.filter(isObject) : [];
|
|
156
|
+
return Object.fromEntries(names.map((n) => [n, ((v) => (typeof v === "string" ? v : null))(env.find((e) => e.name === n)?.value)]));
|
|
157
|
+
}
|
|
158
|
+
/** A revision's hash as the line sees it: its container's image and the line's variables. */
|
|
159
|
+
function revisionHash(rev, service, container, names) {
|
|
160
|
+
const c = containerIn(rev.containers, container, service);
|
|
161
|
+
return contentHash(c.image, liveEnv(c, names));
|
|
162
|
+
}
|
|
163
|
+
// ---------------------------------------------------------------------------
|
|
164
|
+
// Requests
|
|
165
|
+
// ---------------------------------------------------------------------------
|
|
166
|
+
function servicePath(p, service) {
|
|
167
|
+
return `/v2/projects/${encodeURIComponent(p.project)}/locations/${encodeURIComponent(p.region)}/services/${encodeURIComponent(service)}`;
|
|
168
|
+
}
|
|
169
|
+
async function getService(api, p, service) {
|
|
170
|
+
try {
|
|
171
|
+
return await api.get(servicePath(p, service), parseService);
|
|
172
|
+
}
|
|
173
|
+
catch (e) {
|
|
174
|
+
if (isProviderError(e, "PROVIDER_NOT_FOUND"))
|
|
175
|
+
return null;
|
|
176
|
+
throw e;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async function requireService(api, p, service) {
|
|
180
|
+
const svc = await getService(api, p, service);
|
|
181
|
+
if (svc)
|
|
182
|
+
return svc;
|
|
183
|
+
throw paramError(ADAPTER, `service ${service} does not exist in ${p.project}/${p.region}: Sponson makes revisions of an existing service (deploy it once first)`, "service");
|
|
184
|
+
}
|
|
185
|
+
async function getRevision(api, p, service, name) {
|
|
186
|
+
try {
|
|
187
|
+
return await api.get(`${servicePath(p, service)}/revisions/${encodeURIComponent(name)}`, parseRevision);
|
|
188
|
+
}
|
|
189
|
+
catch (e) {
|
|
190
|
+
if (isProviderError(e, "PROVIDER_NOT_FOUND"))
|
|
191
|
+
return null;
|
|
192
|
+
throw e;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function timeout(actx, what) {
|
|
196
|
+
return new SponsonError("WAIT_TIMEOUT", `${ADAPTER}: ${what} after ${msFromEnv(actx.env, TIMEOUT_MS)}ms (${TIMEOUT_MS.env}); run again to keep waiting`, { adapter: ADAPTER });
|
|
197
|
+
}
|
|
198
|
+
/** Poll an operation until it is done (CR9); an `error` fails the line with the provider's message. */
|
|
199
|
+
async function waitOperation(actx, api, first, what) {
|
|
200
|
+
const deadline = Date.now() + msFromEnv(actx.env, TIMEOUT_MS);
|
|
201
|
+
let op = first;
|
|
202
|
+
while (!op.done) {
|
|
203
|
+
if (Date.now() > deadline)
|
|
204
|
+
throw timeout(actx, `${what} is not done`);
|
|
205
|
+
actx.log(`${what}: waiting for ${op.name}`);
|
|
206
|
+
await sleep(msFromEnv(actx.env, POLL_MS));
|
|
207
|
+
op = await api.get(`/v2/${op.name}`, parseOperation);
|
|
208
|
+
}
|
|
209
|
+
if (op.error !== undefined)
|
|
210
|
+
throw new SponsonError("PROVIDER_INVALID", `${ADAPTER}: ${what} failed: ${actx.redact(op.error).slice(0, 500)}`, { adapter: ADAPTER, operation: op.name });
|
|
211
|
+
}
|
|
212
|
+
/** Poll the revision until its Ready condition holds (CR10): one found after a lost answer may still be coming up. */
|
|
213
|
+
async function waitReady(actx, api, p, s, name) {
|
|
214
|
+
const deadline = Date.now() + msFromEnv(actx.env, TIMEOUT_MS);
|
|
215
|
+
for (;;) {
|
|
216
|
+
const rev = await getRevision(api, p, s.service, name);
|
|
217
|
+
if (rev?.ready === "yes")
|
|
218
|
+
return;
|
|
219
|
+
if (rev?.ready === "failed")
|
|
220
|
+
throw new SponsonError("PROVIDER_INVALID", `${ADAPTER}: revision ${name} failed to become ready; see its logs in the Cloud Run console`, { adapter: ADAPTER, revision: name });
|
|
221
|
+
if (Date.now() > deadline)
|
|
222
|
+
throw timeout(actx, `revision ${name} is not ready`);
|
|
223
|
+
await sleep(msFromEnv(actx.env, POLL_MS));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/** PATCH the service with `fields` and its etag (CR3, CR8), and wait for the operation. */
|
|
227
|
+
async function patch(actx, api, p, service, svc, fields, what) {
|
|
228
|
+
const path = `${servicePath(p, service)}?updateMask=${Object.keys(fields).join(",")}`;
|
|
229
|
+
actx.log(what);
|
|
230
|
+
// Safe to send twice: a repeat carries the old etag and is refused (CR8), then read again.
|
|
231
|
+
const op = await api.patch(path, { ...fields, ...(svc.etag !== undefined ? { etag: svc.etag } : {}) }, parseOperation, { idempotent: true });
|
|
232
|
+
await waitOperation(actx, api, op, what);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* `traffic` with every LATEST target bound to the revision it serves now, or null when there is none: a template
|
|
236
|
+
* change then gives the new revision no traffic (CR5). Empty traffic means 100% to LATEST.
|
|
237
|
+
*/
|
|
238
|
+
function pinned(svc, service, allowed) {
|
|
239
|
+
const traffic = svc.traffic.length > 0 ? svc.traffic : [{ type: LATEST, percent: 100 }];
|
|
240
|
+
if (!followsLatest(svc))
|
|
241
|
+
return null;
|
|
242
|
+
if (!allowed)
|
|
243
|
+
throw latestRefusal(svc, service);
|
|
244
|
+
if (!svc.latestReady)
|
|
245
|
+
throw new SponsonError("PROVIDER_INVALID", `${ADAPTER}: service ${service} sends traffic to its latest revision but has no ready revision to keep it on`, { adapter: ADAPTER, service });
|
|
246
|
+
return traffic.map((t) => (t.type === LATEST ? { ...t, type: BY_REVISION, revision: svc.latestReady } : t));
|
|
247
|
+
}
|
|
248
|
+
/** Whether a share of the service's traffic goes to LATEST (empty traffic does, CR5): a new revision would take it. */
|
|
249
|
+
function followsLatest(svc) {
|
|
250
|
+
return svc.traffic.length === 0 || svc.traffic.some((t) => t.type === LATEST);
|
|
251
|
+
}
|
|
252
|
+
/** Why a line without `pin_latest: true` may not make a revision of a service whose traffic follows LATEST. */
|
|
253
|
+
function latestRefusal(svc, service) {
|
|
254
|
+
const serving = svc.latestReady ?? "the revision serving it now";
|
|
255
|
+
return paramError(ADAPTER, `service ${service} sends traffic to LATEST (its latest ready revision), so a new revision would take that traffic. ` +
|
|
256
|
+
`To make one without moving traffic, Sponson must pin LATEST's share to ${serving}, as \`gcloud run deploy --no-traffic\` does; ` +
|
|
257
|
+
`after that, production deploys of ${service} no longer receive traffic by themselves until you run ` +
|
|
258
|
+
`\`gcloud run services update-traffic ${service} --to-latest\`. Set \`pin_latest: true\` on this line to allow it, ` +
|
|
259
|
+
`or pin the traffic yourself first (\`gcloud run services update-traffic ${service} --to-revisions=${svc.latestReady ?? "<revision>"}=100\`).`, "pin_latest");
|
|
260
|
+
}
|
|
261
|
+
/** `pin_latest`: the line may pin traffic on LATEST (a permission, not state: not hashed). */
|
|
262
|
+
function pinLatestParam(params) {
|
|
263
|
+
const v = params.pin_latest;
|
|
264
|
+
if (v !== undefined && typeof v !== "boolean")
|
|
265
|
+
throw paramError(ADAPTER, "param `pin_latest` must be true or false", "pin_latest");
|
|
266
|
+
return v === true;
|
|
267
|
+
}
|
|
268
|
+
/** The service's template with the new revision's name, image and variables; everything else as it is (CR4). */
|
|
269
|
+
function templateFor(svc, s, name) {
|
|
270
|
+
const t = structuredClone(svc.template);
|
|
271
|
+
const containers = Array.isArray(t.containers) ? t.containers.filter(isObject) : [];
|
|
272
|
+
const c = containerIn(containers, s.container, s.service);
|
|
273
|
+
c.image = s.image;
|
|
274
|
+
const env = (Array.isArray(c.env) ? c.env.filter(isObject) : []).map((e) => (typeof e.name === "string" && e.name in s.env ? { name: e.name, value: s.env[e.name] } : e));
|
|
275
|
+
const missing = Object.keys(s.env).filter((n) => !env.some((e) => e.name === n));
|
|
276
|
+
c.env = [...env, ...missing.map((n) => ({ name: n, value: s.env[n] }))];
|
|
277
|
+
return { ...t, revision: name };
|
|
278
|
+
}
|
|
279
|
+
/** Make the revision: the template patched, traffic on LATEST pinned so none moves. */
|
|
280
|
+
async function createRevision(actx, api, p, s, name) {
|
|
281
|
+
const svc = await requireService(api, p, s.service);
|
|
282
|
+
const traffic = pinned(svc, s.service, s.pinLatest);
|
|
283
|
+
await patch(actx, api, p, s.service, svc, { template: templateFor(svc, s, name), ...(traffic ? { traffic } : {}) }, `create revision ${name} of ${s.service} (no traffic)`);
|
|
284
|
+
}
|
|
285
|
+
/** `traffic` without `tag`: a target that had only the tag goes, one with a share keeps it. */
|
|
286
|
+
function withoutTag(traffic, tag) {
|
|
287
|
+
return traffic.flatMap((t) => {
|
|
288
|
+
if (t.tag !== tag)
|
|
289
|
+
return [t];
|
|
290
|
+
if (!t.percent)
|
|
291
|
+
return [];
|
|
292
|
+
const { tag: _tag, ...rest } = t;
|
|
293
|
+
return [rest];
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
/** The tag's URL, as the service answers it (CR6); never built. */
|
|
297
|
+
function tagUri(svc, tag) {
|
|
298
|
+
const uri = svc.statuses.find((t) => t.tag === tag)?.uri;
|
|
299
|
+
return typeof uri === "string" && uri !== "" ? uri : undefined;
|
|
300
|
+
}
|
|
301
|
+
/** Put the tag on the revision (moving it off any other), then read its URL. */
|
|
302
|
+
async function tagRevision(actx, api, p, s, name) {
|
|
303
|
+
let svc = await requireService(api, p, s.service);
|
|
304
|
+
const current = svc.traffic.find((t) => t.tag === s.tag);
|
|
305
|
+
if (current?.type !== BY_REVISION || shortName(current.revision ?? "") !== name) {
|
|
306
|
+
const traffic = [...withoutTag(svc.traffic, s.tag), { type: BY_REVISION, revision: name, tag: s.tag }];
|
|
307
|
+
await patch(actx, api, p, s.service, svc, { traffic }, `tag revision ${name} as ${s.tag}`);
|
|
308
|
+
svc = await requireService(api, p, s.service);
|
|
309
|
+
}
|
|
310
|
+
const uri = tagUri(svc, s.tag);
|
|
311
|
+
if (uri)
|
|
312
|
+
return uri;
|
|
313
|
+
throw new SponsonError("PROVIDER_RESPONSE", `${ADAPTER}: service ${s.service} lists no URL for tag ${s.tag} in \`trafficStatuses\` after tagging`, { adapter: ADAPTER, tag: s.tag });
|
|
314
|
+
}
|
|
315
|
+
/** One pass: the revision made (or found, with these contents), ready, and tagged. */
|
|
316
|
+
async function converge(actx, api, p, s, hash) {
|
|
317
|
+
const name = revisionName(s, hash);
|
|
318
|
+
const existing = await getRevision(api, p, s.service, name);
|
|
319
|
+
if (!existing)
|
|
320
|
+
await createRevision(actx, api, p, s, name);
|
|
321
|
+
else if (revisionHash(existing, s.service, s.container, Object.keys(s.env)) !== hash) {
|
|
322
|
+
// Not a conflict to retry: the name is taken for good.
|
|
323
|
+
throw new SponsonError("PROVIDER_INVALID", `${ADAPTER}: revision ${name} exists with other contents; it was not made by this line`, { adapter: ADAPTER, revision: name });
|
|
324
|
+
}
|
|
325
|
+
await waitReady(actx, api, p, s, name);
|
|
326
|
+
return { name, uri: await tagRevision(actx, api, p, s, name) };
|
|
327
|
+
}
|
|
328
|
+
/** A patch refused because someone changed the service since it was read (CR8): read again and retry. */
|
|
329
|
+
async function retryingConflicts(actx, what, run) {
|
|
330
|
+
for (let attempt = 1;; attempt++) {
|
|
331
|
+
try {
|
|
332
|
+
return await run();
|
|
333
|
+
}
|
|
334
|
+
catch (e) {
|
|
335
|
+
if (!isProviderError(e, "PROVIDER_CONFLICT") || attempt >= ATTEMPTS)
|
|
336
|
+
throw e;
|
|
337
|
+
actx.log(`${what}: the service changed meanwhile; reading it again`);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
// ---------------------------------------------------------------------------
|
|
342
|
+
// The op
|
|
343
|
+
// ---------------------------------------------------------------------------
|
|
344
|
+
/** What the tag points at, as the line sees it; null when the tag is absent. */
|
|
345
|
+
async function tagged(api, p, svc, service, tag, params) {
|
|
346
|
+
const target = svc.traffic.find((t) => t.tag === tag);
|
|
347
|
+
if (!target)
|
|
348
|
+
return null;
|
|
349
|
+
const name = target.type === LATEST ? (svc.latestReady ?? "") : shortName(target.revision ?? "");
|
|
350
|
+
const rev = name ? await getRevision(api, p, service, name) : null;
|
|
351
|
+
if (!rev)
|
|
352
|
+
return null;
|
|
353
|
+
// A tag on LATEST follows every deploy: never the plan's revision, so it reads as changed.
|
|
354
|
+
const hash = target.type === LATEST ? sha256(`latest:${name}`) : revisionHash(rev, service, containerParam(params), Object.keys(envParam(params.env)));
|
|
355
|
+
const uri = tagUri(svc, tag);
|
|
356
|
+
return { resources: [record(service, tag, name, hash)], outputs: { revision: name, ...(uri ? { url: uri } : {}) } };
|
|
357
|
+
}
|
|
358
|
+
/** Whether applying would write nothing: the tag is on a revision with exactly the plan's contents. */
|
|
359
|
+
function unchanged(live, params) {
|
|
360
|
+
if (!live || firstMarker(params) !== undefined)
|
|
361
|
+
return false;
|
|
362
|
+
const s = specOf(params);
|
|
363
|
+
return live.resources[0]?.hash === contentHash(s.image, s.env);
|
|
364
|
+
}
|
|
365
|
+
/** The first pending or secret marker among the values that decide the revision's contents. */
|
|
366
|
+
function firstMarker(params) {
|
|
367
|
+
const values = [params.service, params.tag, params.image, ...Object.values(isObject(params.env) ? params.env : {})];
|
|
368
|
+
return values.find((v) => markerKind(v) === "pending" || markerKind(v) === "secret");
|
|
369
|
+
}
|
|
370
|
+
function record(service, tag, name, hash) {
|
|
371
|
+
return { key: keyOf(service, tag), id: name, hash, label: `Cloud Run revision ${name} (tag ${tag})` };
|
|
372
|
+
}
|
|
373
|
+
function nameSide(name) {
|
|
374
|
+
return { state: "literal", value: name };
|
|
375
|
+
}
|
|
376
|
+
const revision = {
|
|
377
|
+
outputs: { url: { available: "immediate" }, revision: { available: "immediate" } },
|
|
378
|
+
/** The tag defaults to the scope (`pr-42`). */
|
|
379
|
+
defaults(params, ctx) {
|
|
380
|
+
return { tag: ctx.scope, ...params };
|
|
381
|
+
},
|
|
382
|
+
/** Traffic is never moved, so a line writes no environment unless its provider block says the service is production. */
|
|
383
|
+
writesEnvironment(_params, _ctx, provider = {}) {
|
|
384
|
+
if (provider.production !== undefined && typeof provider.production !== "boolean") {
|
|
385
|
+
throw new SponsonError("PLAN_INVALID", `${ADAPTER}: providers.cloud_run.production must be true or false`, { adapter: ADAPTER, key: "providers.cloud_run.production" });
|
|
386
|
+
}
|
|
387
|
+
return provider.production === true ? "production" : null;
|
|
388
|
+
},
|
|
389
|
+
/** Every line of a service writes its one `traffic` list (ADR 0019). */
|
|
390
|
+
lockOn(params, provider) {
|
|
391
|
+
const { project, region } = provider;
|
|
392
|
+
const service = params.service;
|
|
393
|
+
if (typeof project !== "string" || typeof region !== "string" || typeof service !== "string" || markerKind(service) !== null)
|
|
394
|
+
return null;
|
|
395
|
+
return `${ADAPTER}:${project}/${region}:service:${service}`;
|
|
396
|
+
},
|
|
397
|
+
async read(actx, params) {
|
|
398
|
+
if (markerKind(params.service) !== null || markerKind(params.tag) !== null)
|
|
399
|
+
return null;
|
|
400
|
+
const service = stringParam(params, "service", ADAPTER);
|
|
401
|
+
const tag = tagParam(params);
|
|
402
|
+
const p = placeOf(actx);
|
|
403
|
+
const api = client(actx);
|
|
404
|
+
const svc = await requireService(api, p, service);
|
|
405
|
+
const live = await tagged(api, p, svc, service, tag, params);
|
|
406
|
+
// Refused at plan time, before any write: making a revision would pin traffic on LATEST (unless allowed).
|
|
407
|
+
if (followsLatest(svc) && !pinLatestParam(params) && !unchanged(live, params))
|
|
408
|
+
throw latestRefusal(svc, service);
|
|
409
|
+
return live;
|
|
410
|
+
},
|
|
411
|
+
diff(live, params) {
|
|
412
|
+
const service = String(params.service);
|
|
413
|
+
const tag = String(params.tag);
|
|
414
|
+
const key = keyOf(service, tag);
|
|
415
|
+
const label = `Cloud Run revision of ${service} (tag ${tag})`;
|
|
416
|
+
const current = live?.resources.find((r) => r.key === key);
|
|
417
|
+
const before = current ? nameSide(current.id) : { state: "absent" };
|
|
418
|
+
const kind = current ? "update" : "create";
|
|
419
|
+
const marker = firstMarker(params);
|
|
420
|
+
if (marker !== undefined)
|
|
421
|
+
return [{ key, kind, label, before, after: desiredSide(marker, false) }];
|
|
422
|
+
const s = specOf(params);
|
|
423
|
+
const hash = contentHash(s.image, s.env);
|
|
424
|
+
if (current?.hash === hash)
|
|
425
|
+
return [{ key, kind: "unchanged", label }];
|
|
426
|
+
return [{ key, kind, label, before, after: nameSide(revisionName(s, hash)) }];
|
|
427
|
+
},
|
|
428
|
+
async apply(actx, params, live) {
|
|
429
|
+
assertNoPending(params, ADAPTER);
|
|
430
|
+
const s = specOf(params);
|
|
431
|
+
const hash = contentHash(s.image, s.env);
|
|
432
|
+
const key = keyOf(s.service, s.tag);
|
|
433
|
+
const current = live?.resources.find((r) => r.key === key);
|
|
434
|
+
if (current?.hash === hash && live)
|
|
435
|
+
return { resources: live.resources, outputs: live.outputs, created: [] };
|
|
436
|
+
if (!current)
|
|
437
|
+
await actx.intend([key]);
|
|
438
|
+
const p = placeOf(actx);
|
|
439
|
+
const api = client(actx);
|
|
440
|
+
const done = await retryingConflicts(actx, `revision of ${s.service}`, () => converge(actx, api, p, s, hash));
|
|
441
|
+
const outputs = { url: done.uri, revision: done.name };
|
|
442
|
+
return { resources: [record(s.service, s.tag, done.name, hash)], outputs, created: current ? [] : [key] };
|
|
443
|
+
},
|
|
444
|
+
/** Removes the tag (only the tag: traffic shares stay); the revision is left for Cloud Run to delete (CR12). */
|
|
445
|
+
async destroy(actx, resources) {
|
|
446
|
+
const p = placeOf(actx);
|
|
447
|
+
const api = client(actx);
|
|
448
|
+
for (const r of resources) {
|
|
449
|
+
const { service, tag } = parseKey(r.key);
|
|
450
|
+
await retryingConflicts(actx, `untag ${tag}`, async () => {
|
|
451
|
+
const svc = await getService(api, p, service);
|
|
452
|
+
if (!svc?.traffic.some((t) => t.tag === tag))
|
|
453
|
+
return;
|
|
454
|
+
await patch(actx, api, p, service, svc, { traffic: withoutTag(svc.traffic, tag) }, `remove tag ${tag} from ${service}`);
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
},
|
|
458
|
+
};
|
|
459
|
+
/** The Cloud Run adapter with how its gcloud command runs injected (tests); the registered one runs gcloud from PATH. */
|
|
460
|
+
export function createCloudRunAdapter(deps = {}) {
|
|
461
|
+
return { name: ADAPTER, ops: { revision: withDeps(revision, { ...DEFAULT_AUTH_DEPS, ...deps }) }, about: ABOUT };
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* The Cloud Run adapter (`adapter: cloud_run` in a plan): op `revision`, a tagged revision per scope with the plan's
|
|
465
|
+
* image and variables and no traffic. Registered in `createRegistry()`; needs `providers.cloud_run.project` and
|
|
466
|
+
* `.region`, and `gcloud` on PATH logged in to an account allowed to update the service.
|
|
467
|
+
*/
|
|
468
|
+
export const cloudRunAdapter = createCloudRunAdapter();
|
|
469
|
+
//# sourceMappingURL=cloud_run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud_run.js","sourceRoot":"","sources":["../src/cloud_run.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,11 +78,17 @@ export interface Credential {
|
|
|
78
78
|
/** Values this adapter masks in its own error text, besides what the engine masks. */
|
|
79
79
|
masks: () => string[];
|
|
80
80
|
}
|
|
81
|
+
/** Who a credential belongs to, for its errors: the adapter, and where its command is configured. */
|
|
82
|
+
export interface CredentialOwner {
|
|
83
|
+
adapter: string;
|
|
84
|
+
where: string;
|
|
85
|
+
}
|
|
81
86
|
/** How long a command's token is used before the command runs again (CLIs print tokens valid for 5–60 minutes). */
|
|
82
87
|
export declare const COMMAND_TOKEN_TTL_MS: number;
|
|
83
88
|
/**
|
|
84
89
|
* The credential of an API block for this call; `line`, a line's own `credential`, replaces the variable of a bearer
|
|
85
90
|
* or header form (ADR 0017, "Line credentials"). Static forms read their variables now (PROVIDER_AUTH when one is
|
|
86
|
-
* unset); dynamic ones fetch or sign per request, through the run's cache.
|
|
91
|
+
* unset); dynamic ones fetch or sign per request, through the run's cache. `who` names the adapter and where its
|
|
92
|
+
* command is configured in a failed command's error (a first-class adapter built on this client, such as `cloud_run`).
|
|
87
93
|
*/
|
|
88
|
-
export declare function credentialFor(actx: AdapterContext, auth: Auth, deps: AuthDeps, redact: (t: string) => string, line?: string): Credential;
|
|
94
|
+
export declare function credentialFor(actx: AdapterContext, auth: Auth, deps: AuthDeps, redact: (t: string) => string, line?: string, who?: CredentialOwner): Credential;
|
|
@@ -277,8 +277,8 @@ function bearerSigner(actx, entry, deps, fetch) {
|
|
|
277
277
|
const EXPIRY_MARGIN_S = 60;
|
|
278
278
|
/** How long a command's token is used before the command runs again (CLIs print tokens valid for 5–60 minutes). */
|
|
279
279
|
export const COMMAND_TOKEN_TTL_MS = 5 * 60_000;
|
|
280
|
-
function authError(message, details = {}) {
|
|
281
|
-
return new SponsonError("PROVIDER_AUTH", `${
|
|
280
|
+
function authError(message, details = {}, adapter = ADAPTER) {
|
|
281
|
+
return new SponsonError("PROVIDER_AUTH", `${adapter}: ${message}`, { adapter, ...details });
|
|
282
282
|
}
|
|
283
283
|
/** The answer of a token endpoint: an access token of type Bearer, and when it expires. */
|
|
284
284
|
function tokenShape(body) {
|
|
@@ -329,9 +329,11 @@ async function fetchOauth2(actx, auth, deps, redact) {
|
|
|
329
329
|
return { value: body.access_token, expiresAt: deps.now() + lifetime };
|
|
330
330
|
}
|
|
331
331
|
/** Run the command (no shell) and take its stdout, trimmed, as the token. */
|
|
332
|
-
async function fetchCommand(actx, argv, deps, redact) {
|
|
332
|
+
async function fetchCommand(actx, argv, deps, redact, who) {
|
|
333
333
|
const [file, ...args] = argv;
|
|
334
334
|
const shown = argv.join(" ");
|
|
335
|
+
const { adapter } = who;
|
|
336
|
+
const where = ` (${who.where})`;
|
|
335
337
|
let out;
|
|
336
338
|
try {
|
|
337
339
|
out = await deps.exec(file, args, actx.env);
|
|
@@ -339,14 +341,14 @@ async function fetchCommand(actx, argv, deps, redact) {
|
|
|
339
341
|
catch (e) {
|
|
340
342
|
const code = e.code;
|
|
341
343
|
if (code === "ENOENT")
|
|
342
|
-
throw authError(`\`${file}\` is not installed or not on PATH
|
|
344
|
+
throw authError(`\`${file}\` is not installed or not on PATH${where}`, { command: shown }, adapter);
|
|
343
345
|
if (code === "EACCES")
|
|
344
|
-
throw authError(`\`${file}\` on PATH is not executable
|
|
345
|
-
throw authError(`\`${shown}\` failed: ${redact(e.message).slice(0, 500)}`, { command: shown });
|
|
346
|
+
throw authError(`\`${file}\` on PATH is not executable${where}`, { command: shown }, adapter);
|
|
347
|
+
throw authError(`\`${shown}\` failed: ${redact(e.message).slice(0, 500)}`, { command: shown }, adapter);
|
|
346
348
|
}
|
|
347
349
|
const token = out.trim();
|
|
348
350
|
if (token === "" || /\s/.test(token))
|
|
349
|
-
throw authError(`\`${shown}\` printed ${token === "" ? "nothing" : "more than one word"}; it must print the access token alone`, { command: shown });
|
|
351
|
+
throw authError(`\`${shown}\` printed ${token === "" ? "nothing" : "more than one word"}; it must print the access token alone`, { command: shown }, adapter);
|
|
350
352
|
return { value: token, expiresAt: deps.now() + COMMAND_TOKEN_TTL_MS };
|
|
351
353
|
}
|
|
352
354
|
/** Signs every request with SigV4; S3 also gets the `Content-MD5` its configuration writes require. */
|
|
@@ -399,9 +401,10 @@ function lineCredential(auth, line) {
|
|
|
399
401
|
/**
|
|
400
402
|
* The credential of an API block for this call; `line`, a line's own `credential`, replaces the variable of a bearer
|
|
401
403
|
* or header form (ADR 0017, "Line credentials"). Static forms read their variables now (PROVIDER_AUTH when one is
|
|
402
|
-
* unset); dynamic ones fetch or sign per request, through the run's cache.
|
|
404
|
+
* unset); dynamic ones fetch or sign per request, through the run's cache. `who` names the adapter and where its
|
|
405
|
+
* command is configured in a failed command's error (a first-class adapter built on this client, such as `cloud_run`).
|
|
403
406
|
*/
|
|
404
|
-
export function credentialFor(actx, auth, deps, redact, line) {
|
|
407
|
+
export function credentialFor(actx, auth, deps, redact, line, who = { adapter: ADAPTER, where: "auth.command" }) {
|
|
405
408
|
if (line !== undefined)
|
|
406
409
|
return lineCredential(auth, line);
|
|
407
410
|
const env = actx.env;
|
|
@@ -426,7 +429,7 @@ export function credentialFor(actx, auth, deps, redact, line) {
|
|
|
426
429
|
}
|
|
427
430
|
case "command": {
|
|
428
431
|
const entry = entryFor(actx, auth, "");
|
|
429
|
-
return { token: "", authHeader: "bearer", signer: bearerSigner(actx, entry, deps, () => fetchCommand(actx, auth.argv, deps, redact)), masks: () => entry.issued };
|
|
432
|
+
return { token: "", authHeader: "bearer", signer: bearerSigner(actx, entry, deps, () => fetchCommand(actx, auth.argv, deps, redact, who)), masks: () => entry.issued };
|
|
430
433
|
}
|
|
431
434
|
case "sigv4":
|
|
432
435
|
return { token: "", authHeader: "bearer", signer: sigv4Signer(actx, auth, deps), masks: () => [] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-adapter-auth.js","sourceRoot":"","sources":["../src/http-adapter-auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-adapter-auth.js","sourceRoot":"","sources":["../src/http-adapter-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,17 +24,23 @@ export declare function withDeps(op: OpSpec, deps: AuthDeps): OpSpec;
|
|
|
24
24
|
* sensitive outputs and secrets already; this covers an engine without the hook). Without one, `actx` itself.
|
|
25
25
|
*/
|
|
26
26
|
export declare function withLineCredential(actx: AdapterContext, value: unknown): AdapterContext;
|
|
27
|
+
/** What `httpClient` takes besides the request options (see there). */
|
|
28
|
+
export interface ClientOptions {
|
|
29
|
+
where?: string;
|
|
30
|
+
authOptional?: boolean;
|
|
31
|
+
adapter?: string;
|
|
32
|
+
credentialWhere?: string;
|
|
33
|
+
block?: Record<string, unknown>;
|
|
34
|
+
}
|
|
27
35
|
/**
|
|
28
36
|
* The client for the line's API. The credential (a static header, or a signer for the forms obtained or computed
|
|
29
37
|
* per request) comes from http-adapter-auth.ts; everything it holds or obtains is masked in this client's error text
|
|
30
38
|
* too, whatever the engine already masks. `opts`: where the block is, for messages; whether a block without `auth`
|
|
31
|
-
* sends no credential (a manual step's verify request); the adapter named in errors
|
|
39
|
+
* sends no credential (a manual step's verify request); the adapter named in errors; for an adapter whose credential
|
|
40
|
+
* is fixed rather than the block's `auth` (Cloud Run's gcloud token), what a failed command's error points at, and the
|
|
41
|
+
* API block itself when it is the adapter's rather than `actx.provider`.
|
|
32
42
|
*/
|
|
33
|
-
export declare function httpClient(actx: AdapterContext, req?: RequestOptions, opts?:
|
|
34
|
-
where?: string;
|
|
35
|
-
authOptional?: boolean;
|
|
36
|
-
adapter?: string;
|
|
37
|
-
}): ApiClient;
|
|
43
|
+
export declare function httpClient(actx: AdapterContext, req?: RequestOptions, opts?: ClientOptions): ApiClient;
|
|
38
44
|
/**
|
|
39
45
|
* A write that sets state. PUT is idempotent by method; a PATCH or POST that sets fields (or replaces a whole
|
|
40
46
|
* list) may safely be sent twice, so a dropped connection is retried like a read. `idempotent: false` is for a
|
|
@@ -86,20 +86,27 @@ function refuseCredentials(cfg, env, line) {
|
|
|
86
86
|
`Use a test-mode credential, or set ${cfg.refuse.unlessEnv}=1 if this run really is meant to use it.`, { adapter: ADAPTER, env: name });
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
+
/** The credential of this call: the line's own (checked against the block's refusals), else the block's. */
|
|
90
|
+
function credentialOf(actx, cfg, redact, opts) {
|
|
91
|
+
const line = LINE_CREDENTIAL.get(actx);
|
|
92
|
+
refuseCredentials(cfg, actx.env, line);
|
|
93
|
+
const who = opts.credentialWhere ? { adapter: opts.adapter ?? ADAPTER, where: opts.credentialWhere } : undefined;
|
|
94
|
+
return credentialFor(actx, cfg.auth, DEPS.get(actx) ?? DEFAULT_AUTH_DEPS, redact, line, who);
|
|
95
|
+
}
|
|
89
96
|
/**
|
|
90
97
|
* The client for the line's API. The credential (a static header, or a signer for the forms obtained or computed
|
|
91
98
|
* per request) comes from http-adapter-auth.ts; everything it holds or obtains is masked in this client's error text
|
|
92
99
|
* too, whatever the engine already masks. `opts`: where the block is, for messages; whether a block without `auth`
|
|
93
|
-
* sends no credential (a manual step's verify request); the adapter named in errors
|
|
100
|
+
* sends no credential (a manual step's verify request); the adapter named in errors; for an adapter whose credential
|
|
101
|
+
* is fixed rather than the block's `auth` (Cloud Run's gcloud token), what a failed command's error points at, and the
|
|
102
|
+
* API block itself when it is the adapter's rather than `actx.provider`.
|
|
94
103
|
*/
|
|
95
104
|
export function httpClient(actx, req = {}, opts = {}) {
|
|
96
|
-
const cfg = parseApi(actx.provider, opts.where ?? "providers.http.<api>", opts);
|
|
105
|
+
const cfg = parseApi(opts.block ?? actx.provider, opts.where ?? "providers.http.<api>", opts);
|
|
97
106
|
const baseUrl = (cfg.baseUrlEnv ? optionalEnv(actx.env, cfg.baseUrlEnv) : undefined) ?? cfg.baseUrl;
|
|
98
107
|
let hidden = () => [];
|
|
99
108
|
const redact = (t) => hidden().reduce((s, h) => (h.length >= 4 ? s.split(h).join("****") : s), actx.redact(t));
|
|
100
|
-
const
|
|
101
|
-
refuseCredentials(cfg, actx.env, line);
|
|
102
|
-
const cred = credentialFor(actx, cfg.auth, DEPS.get(actx) ?? DEFAULT_AUTH_DEPS, redact, line);
|
|
109
|
+
const cred = credentialOf(actx, cfg, redact, opts);
|
|
103
110
|
hidden = () => [cred.token, ...cred.masks()];
|
|
104
111
|
const contentType = req.contentType ?? cfg.mediaType;
|
|
105
112
|
return clientFor({ ...actx, redact }, opts.adapter ?? ADAPTER, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-adapter-client.js","sourceRoot":"","sources":["../src/http-adapter-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAkD,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAkB,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"http-adapter-client.js","sourceRoot":"","sources":["../src/http-adapter-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,5 +24,6 @@ export * from "./cloudflare.js";
|
|
|
24
24
|
export * from "./algolia.js";
|
|
25
25
|
export * from "./xata.js";
|
|
26
26
|
export * from "./digitalocean.js";
|
|
27
|
+
export * from "./cloud_run.js";
|
|
27
28
|
/** Every built-in adapter and secret source. The CLI uses this; tests build narrower registries. */
|
|
28
29
|
export declare function createRegistry(): Registry;
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ import { cloudflareAdapter } from "./cloudflare.js";
|
|
|
13
13
|
import { algoliaAdapter } from "./algolia.js";
|
|
14
14
|
import { xataAdapter } from "./xata.js";
|
|
15
15
|
import { digitaloceanAdapter } from "./digitalocean.js";
|
|
16
|
+
import { cloudRunAdapter } from "./cloud_run.js";
|
|
16
17
|
/**
|
|
17
18
|
* The stable adapter authoring API: what templates/adapter (`pnpm new:adapter`) uses, and what an out-of-tree
|
|
18
19
|
* adapter may rely on across minor releases. From common.ts: the helpers below (see the comment at its top).
|
|
@@ -38,8 +39,9 @@ export * from "./cloudflare.js";
|
|
|
38
39
|
export * from "./algolia.js";
|
|
39
40
|
export * from "./xata.js";
|
|
40
41
|
export * from "./digitalocean.js";
|
|
42
|
+
export * from "./cloud_run.js";
|
|
41
43
|
/** Every built-in adapter and secret source. The CLI uses this; tests build narrower registries. */
|
|
42
44
|
export function createRegistry() {
|
|
43
|
-
return new Registry().addAdapter(neonAdapter).addAdapter(vercelAdapter).addAdapter(clerkAdapter).addAdapter(planetscaleAdapter).addAdapter(launchdarklyAdapter).addAdapter(httpAdapter).addAdapter(supabaseAdapter).addAdapter(netlifyAdapter).addAdapter(cloudflareAdapter).addAdapter(manualAdapter).addAdapter(algoliaAdapter).addAdapter(xataAdapter).addAdapter(digitaloceanAdapter).addSecretSource(envSecretSource).addSecretSource(dopplerSecretSource()).addSecretSource(opSecretSource()).addSecretSource(awsSecretsManagerSource()).addSecretSource(gcpSecretManagerSource()).addSecretSource(vaultSecretSource).addSecretSource(infisicalSecretSource()).addSecretSource(azureKeyVaultSource()).addSecretSource(opConnectSecretSource).addSecretSource(bitwardenSecretsManagerSource());
|
|
45
|
+
return new Registry().addAdapter(neonAdapter).addAdapter(vercelAdapter).addAdapter(clerkAdapter).addAdapter(planetscaleAdapter).addAdapter(launchdarklyAdapter).addAdapter(httpAdapter).addAdapter(supabaseAdapter).addAdapter(netlifyAdapter).addAdapter(cloudflareAdapter).addAdapter(manualAdapter).addAdapter(algoliaAdapter).addAdapter(xataAdapter).addAdapter(digitaloceanAdapter).addAdapter(cloudRunAdapter).addSecretSource(envSecretSource).addSecretSource(dopplerSecretSource()).addSecretSource(opSecretSource()).addSecretSource(awsSecretsManagerSource()).addSecretSource(gcpSecretManagerSource()).addSecretSource(vaultSecretSource).addSecretSource(infisicalSecretSource()).addSecretSource(azureKeyVaultSource()).addSecretSource(opConnectSecretSource).addSecretSource(bitwardenSecretsManagerSource());
|
|
44
46
|
}
|
|
45
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,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1P,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1P,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,sBAAsB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5K,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAyJ,MAAM,cAAc,CAAC;AAC7R,OAAO,EAAE,mBAAmB,EAA2B,MAAM,gBAAgB,CAAC;AAC9E,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,oGAAoG;AACpG,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,QAAQ,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,eAAe,CAAC,6BAA6B,EAAE,CAAC,CAAC;AAClyB,CAAC"}
|
package/dist/providers.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface DetectableProvider {
|
|
|
19
19
|
detect: ProviderDetect;
|
|
20
20
|
/** The variables its credential is read from when Sponson runs (never written into a plan). */
|
|
21
21
|
credentials: string[];
|
|
22
|
+
/** The command whose output is its credential, when it takes a CLI's token instead (`gcloud auth print-access-token`). */
|
|
23
|
+
credentialCommand?: readonly string[];
|
|
22
24
|
/** For a recipe provider, its recipe. */
|
|
23
25
|
recipe?: Recipe;
|
|
24
26
|
}
|
package/dist/providers.js
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { loadRecipes, recipeCredentialEnv } from "./recipes.js";
|
|
2
|
+
/** A first-class adapter as a detectable provider; one that takes a CLI's token reads no credential variable. */
|
|
3
|
+
function adapterProvider(name, about, detect) {
|
|
4
|
+
const command = about.credentialCommand;
|
|
5
|
+
return {
|
|
6
|
+
id: name,
|
|
7
|
+
title: about.title ?? name,
|
|
8
|
+
category: about.category ?? "other",
|
|
9
|
+
via: "adapter",
|
|
10
|
+
detect,
|
|
11
|
+
credentials: [...(about.extraCredentialEnv ?? []), ...(command ? [] : [about.credentialEnv])],
|
|
12
|
+
...(command ? { credentialCommand: command } : {}),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
2
15
|
/** The detectable providers: the registry's adapters in registration order, then the recipes by provider. */
|
|
3
16
|
export function detectableProviders(registry, recipes = loadRecipes()) {
|
|
4
17
|
const out = [];
|
|
5
18
|
for (const name of registry.adapterNames()) {
|
|
6
19
|
const about = registry.adapter(name).about;
|
|
7
|
-
if (
|
|
8
|
-
|
|
9
|
-
out.push({
|
|
10
|
-
id: name,
|
|
11
|
-
title: about.title ?? name,
|
|
12
|
-
category: about.category ?? "other",
|
|
13
|
-
via: "adapter",
|
|
14
|
-
detect: about.detect,
|
|
15
|
-
credentials: [...(about.extraCredentialEnv ?? []), about.credentialEnv],
|
|
16
|
-
});
|
|
20
|
+
if (about?.detect)
|
|
21
|
+
out.push(adapterProvider(name, about, about.detect));
|
|
17
22
|
}
|
|
18
23
|
const taken = new Set(out.map((p) => p.id));
|
|
19
24
|
for (const recipe of recipes) {
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;AAqB7E,iHAAiH;AACjH,SAAS,eAAe,CAAC,IAAY,EAAE,KAAmB,EAAE,MAAsB;IAChF,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACxC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO;QACnC,GAAG,EAAE,SAAS;QACd,MAAM;QACN,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7F,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,mBAAmB,CAAC,QAAkB,EAAE,UAAoB,WAAW,EAAE;IACvF,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAC3C,IAAI,KAAK,EAAE,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,gHAAgH;QAChH,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC/C,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,MAAM,CAAC,QAAQ;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YACzK,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC;YACxC,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sponson/adapters",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "The built-in resource adapters and secret sources for Sponson.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sponson",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"yaml": "^2.8.1",
|
|
38
|
-
"@sponson/core": "0.
|
|
38
|
+
"@sponson/core": "0.6.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@sponson/sim": "0.
|
|
41
|
+
"@sponson/sim": "0.6.1"
|
|
42
42
|
},
|
|
43
43
|
"files": [
|
|
44
44
|
"dist",
|
package/recipes/github.yaml
CHANGED
|
@@ -51,8 +51,9 @@ assumptions:
|
|
|
51
51
|
verified: false
|
|
52
52
|
text: "A repository has at most 100 hooks for this purpose (GitHub limits hooks per event), so the first page of `?per_page=100` holds the one `find` looks for."
|
|
53
53
|
- id: GH8
|
|
54
|
-
verified:
|
|
55
|
-
text: "`config.content_type` and `config.insecure_ssl` are answered as sent (`json`/`form`, the strings `\"0\"`/`\"1\"`), and `Accept: application/json` is served like `application/vnd.github+json`."
|
|
54
|
+
verified: true
|
|
55
|
+
text: "`config.content_type` and `config.insecure_ssl` are answered as sent (`json`/`form`, the strings `\"0\"`/`\"1\"`), and `Accept: application/json` is served like `application/vnd.github+json`. Verified live 2026-10-11: create, then a re-apply that wrote nothing, then destroy, against api.github.com."
|
|
56
|
+
source: https://docs.github.com/en/rest/repos/webhooks
|
|
56
57
|
- id: GH9
|
|
57
58
|
verified: false
|
|
58
59
|
text: "The token needs the repository permission Webhooks (write) or the classic `admin:repo_hook` scope; the `GITHUB_TOKEN` of GitHub Actions does not have it, so use a GitHub App token or a fine-grained token. `GITHUB_API_URL` (set by Actions) points at GitHub Enterprise Server where that is the host."
|
package/recipes/cloud_run.yaml
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# yaml-language-server: $schema=../../../schema/recipe.schema.json
|
|
2
|
-
# Google Cloud Run Admin API v2 recipes. Format and checklist: docs/adr/0020-recipes.md, CONTRIBUTING.md "Adding a recipe".
|
|
3
|
-
provider: cloud_run
|
|
4
|
-
title: Google Cloud Run
|
|
5
|
-
category: deploy
|
|
6
|
-
verified_on: "2026-10-11"
|
|
7
|
-
docs:
|
|
8
|
-
- title: "REST Resource: projects.locations.services (Service, TrafficTarget)"
|
|
9
|
-
url: https://docs.cloud.google.com/run/docs/reference/rest/v2/projects.locations.services
|
|
10
|
-
- title: "Method: projects.locations.services.patch"
|
|
11
|
-
url: https://docs.cloud.google.com/run/docs/reference/rest/v2/projects.locations.services/patch
|
|
12
|
-
- title: "Method: projects.locations.services.get"
|
|
13
|
-
url: https://docs.cloud.google.com/run/docs/reference/rest/v2/projects.locations.services/get
|
|
14
|
-
- title: Rollbacks, gradual rollouts, and traffic migration (tags)
|
|
15
|
-
url: https://cloud.google.com/run/docs/rollouts-rollbacks-traffic-migration
|
|
16
|
-
- title: gcloud auth print-access-token
|
|
17
|
-
url: https://cloud.google.com/sdk/gcloud/reference/auth/print-access-token
|
|
18
|
-
api:
|
|
19
|
-
base_url: https://run.googleapis.com/v2
|
|
20
|
-
base_url_env: CLOUD_RUN_API_URL
|
|
21
|
-
auth: { command: [gcloud, auth, print-access-token] }
|
|
22
|
-
assumptions:
|
|
23
|
-
- id: CR1
|
|
24
|
-
verified: true
|
|
25
|
-
text: "`GET https://run.googleapis.com/v2/projects/{project}/locations/{location}/services/{service}` answers the Service with its `traffic` list and an `etag`, 'a system-generated fingerprint for this version of the resource' that 'may be used to detect modification conflict during updates'."
|
|
26
|
-
source: https://docs.cloud.google.com/run/docs/reference/rest/v2/projects.locations.services
|
|
27
|
-
- id: CR2
|
|
28
|
-
verified: true
|
|
29
|
-
text: "`PATCH https://run.googleapis.com/v2/{service.name}` takes a Service and an optional `updateMask` (fields to update), answers a long-running Operation, and needs the `cloud-platform` scope; the recipe sends `?updateMask=traffic` with `{ traffic, etag }` only, so the revision template is never written."
|
|
30
|
-
source: https://docs.cloud.google.com/run/docs/reference/rest/v2/projects.locations.services/patch
|
|
31
|
-
- id: CR3
|
|
32
|
-
verified: true
|
|
33
|
-
text: "A TrafficTarget is `{ type, revision, percent, tag }`; `type: TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION` sends traffic to the named `revision`, `percent` defaults to zero, and `tag` is 'a string to be part of the URI to exclusively reference this target', which is the per-PR URL."
|
|
34
|
-
source: https://docs.cloud.google.com/run/docs/reference/rest/v2/projects.locations.services
|
|
35
|
-
- id: CR4
|
|
36
|
-
verified: true
|
|
37
|
-
text: "`gcloud auth print-access-token` prints an OAuth access token for the active account, sent as a bearer token."
|
|
38
|
-
source: https://cloud.google.com/sdk/gcloud/reference/auth/print-access-token
|
|
39
|
-
- id: CR5
|
|
40
|
-
verified: false
|
|
41
|
-
text: "A patch whose `etag` no longer matches (a deploy changed the service after the read) is refused (409 ABORTED or 412) rather than applied: the line fails and the next apply reads again, so a concurrent `gcloud run deploy` is never overwritten. Sponson's own writers are serialised by the parent lock."
|
|
42
|
-
- id: CR6
|
|
43
|
-
verified: false
|
|
44
|
-
text: "The Service answered right after the patch's Operation is accepted already shows the new `traffic` (the desired state), so the re-read that confirms the write sees the tag; `percent` 0 is left out of the answer and `type` and `revision` are answered as sent."
|
|
45
|
-
- id: CR7
|
|
46
|
-
verified: false
|
|
47
|
-
text: "The revision a tag points to exists before the line applies: the PR's deploy creates it (`gcloud run deploy --no-traffic --revision-suffix <scope>` gives `<service>-<scope>`). Its environment variables are part of that revision, set by the deploy, not by this recipe; a deploy that tags (`--tag`) itself conflicts with this line's tag."
|
|
48
|
-
ops:
|
|
49
|
-
traffic_tag:
|
|
50
|
-
kind: list_item
|
|
51
|
-
title: Traffic tag of a revision
|
|
52
|
-
summary: "A tag (`pr-42`) in a service's `traffic` list pointing at the PR's revision with no traffic share, which gives the revision its own URL (`https://pr-42---<service>-<hash>.a.run.app`). Read-modify-write of `traffic` only (`updateMask=traffic`), sent with the service's `etag` so a concurrent deploy makes the write fail instead of being overwritten (CR5); other tags and the traffic split are left alone, and destroy removes only this tag. The revision itself, and its environment variables, are the deploy's (CR7)."
|
|
53
|
-
covers: []
|
|
54
|
-
params:
|
|
55
|
-
project:
|
|
56
|
-
type: string
|
|
57
|
-
required: true
|
|
58
|
-
description: The Google Cloud project id.
|
|
59
|
-
example: demo-project
|
|
60
|
-
region:
|
|
61
|
-
type: string
|
|
62
|
-
required: true
|
|
63
|
-
description: The service's region.
|
|
64
|
-
example: us-central1
|
|
65
|
-
service:
|
|
66
|
-
type: string
|
|
67
|
-
required: true
|
|
68
|
-
description: The Cloud Run service's name.
|
|
69
|
-
example: web
|
|
70
|
-
tag:
|
|
71
|
-
type: string
|
|
72
|
-
required: true
|
|
73
|
-
pattern: "^[a-z][a-z0-9-]*$"
|
|
74
|
-
description: The tag, the prefix of the revision's own URL.
|
|
75
|
-
example: "${ctx.scope}"
|
|
76
|
-
revision:
|
|
77
|
-
type: string
|
|
78
|
-
required: true
|
|
79
|
-
description: The revision the tag points to (made by the PR's deploy).
|
|
80
|
-
example: "web-${ctx.scope}"
|
|
81
|
-
http:
|
|
82
|
-
parent:
|
|
83
|
-
path: "/projects/{project}/locations/{region}/services/{service}?updateMask=traffic"
|
|
84
|
-
read_path: "/projects/{project}/locations/{region}/services/{service}"
|
|
85
|
-
method: PATCH
|
|
86
|
-
send: [etag]
|
|
87
|
-
list_path: /traffic
|
|
88
|
-
key_field: tag
|
|
89
|
-
item: { tag: { param: tag }, revision: { param: revision }, type: TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION }
|
|
90
|
-
sim:
|
|
91
|
-
objects:
|
|
92
|
-
"/projects/{project}/locations/{region}/services/{service}":
|
|
93
|
-
name: projects/demo-project/locations/us-central1/services/web
|
|
94
|
-
etag: '"sim-etag-1"'
|
|
95
|
-
traffic: [{ type: TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST, percent: 100 }]
|
|
96
|
-
live:
|
|
97
|
-
params: { project: SPONSON_LIVE_GCP_PROJECT, region: SPONSON_LIVE_CLOUD_RUN_REGION, service: SPONSON_LIVE_CLOUD_RUN_SERVICE, revision: SPONSON_LIVE_CLOUD_RUN_REVISION }
|