@intentius/terragucci 0.4.49 → 0.4.54
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/image-digests.json +6 -0
- package/dist/notify.schema.json +27 -1
- package/dist/terragucci.mjs +872 -987
- package/dist/terragucci.mjs.map +4 -4
- package/dist/terragucci.schema.json +22 -2
- package/dist/types.d.ts +19 -14
- package/package.json +7 -7
|
@@ -306,6 +306,10 @@
|
|
|
306
306
|
"relay": {
|
|
307
307
|
"type": "string",
|
|
308
308
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9 ._-]{0,63}$"
|
|
309
|
+
},
|
|
310
|
+
"relay_key": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
309
313
|
}
|
|
310
314
|
},
|
|
311
315
|
"additionalProperties": false,
|
|
@@ -316,6 +320,12 @@
|
|
|
316
320
|
],
|
|
317
321
|
"webhook_key": [
|
|
318
322
|
"webhook"
|
|
323
|
+
],
|
|
324
|
+
"relay": [
|
|
325
|
+
"relay_key"
|
|
326
|
+
],
|
|
327
|
+
"relay_key": [
|
|
328
|
+
"relay"
|
|
319
329
|
]
|
|
320
330
|
},
|
|
321
331
|
"if": {
|
|
@@ -337,7 +347,7 @@
|
|
|
337
347
|
}
|
|
338
348
|
]
|
|
339
349
|
},
|
|
340
|
-
"description": "The secrets holding Slack, Teams or webhook addresses,
|
|
350
|
+
"description": "The secrets holding Slack, Teams or webhook addresses, the relay's name, and the secret holding the key its buttons are signed with."
|
|
341
351
|
},
|
|
342
352
|
"cost": {
|
|
343
353
|
"anyOf": [
|
|
@@ -2259,6 +2269,10 @@
|
|
|
2259
2269
|
"relay": {
|
|
2260
2270
|
"type": "string",
|
|
2261
2271
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9 ._-]{0,63}$"
|
|
2272
|
+
},
|
|
2273
|
+
"relay_key": {
|
|
2274
|
+
"type": "string",
|
|
2275
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
2262
2276
|
}
|
|
2263
2277
|
},
|
|
2264
2278
|
"additionalProperties": false,
|
|
@@ -2269,6 +2283,12 @@
|
|
|
2269
2283
|
],
|
|
2270
2284
|
"webhook_key": [
|
|
2271
2285
|
"webhook"
|
|
2286
|
+
],
|
|
2287
|
+
"relay": [
|
|
2288
|
+
"relay_key"
|
|
2289
|
+
],
|
|
2290
|
+
"relay_key": [
|
|
2291
|
+
"relay"
|
|
2272
2292
|
]
|
|
2273
2293
|
},
|
|
2274
2294
|
"if": {
|
|
@@ -2290,7 +2310,7 @@
|
|
|
2290
2310
|
}
|
|
2291
2311
|
]
|
|
2292
2312
|
},
|
|
2293
|
-
"description": "The secrets holding Slack, Teams or webhook addresses,
|
|
2313
|
+
"description": "The secrets holding Slack, Teams or webhook addresses, the relay's name, and the secret holding the key its buttons are signed with."
|
|
2294
2314
|
},
|
|
2295
2315
|
"cost": {
|
|
2296
2316
|
"anyOf": [
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type GatePolicySource } from "@intentius/chant/policy-source";
|
|
1
2
|
import { type GenerateSettings } from "./generate-config";
|
|
2
3
|
export { ROOTS_NOT_ATMOS, ROOTS_NOT_TERRAGRUNT, SYNTH_DRIFT_PR, SYNTH_DRIFT_PR_SHORT, SYNTH_GENERATE, SYNTH_ROLLOUTS } from "./refusals";
|
|
3
4
|
export declare const BINARIES: readonly ["terraform", "tofu", "choudoufu"];
|
|
@@ -543,9 +544,11 @@ export interface ProjectSettings {
|
|
|
543
544
|
* incoming webhook, and a generic webhook's address with the key that
|
|
544
545
|
* signs its body. An apply job whose wave waits, is refused or fails posts
|
|
545
546
|
* to each (notify.ts), and the drift job posts drift to Slack and Teams.
|
|
546
|
-
* `relay` names the customer's relay (relay.ts)
|
|
547
|
-
*
|
|
548
|
-
*
|
|
547
|
+
* `relay` names the customer's relay (relay-host.ts) and `relay_key` the
|
|
548
|
+
* secret holding the key it checks buttons with: a waiting wave's Slack
|
|
549
|
+
* message gets chant's Approve and Decline buttons, its Teams card the
|
|
550
|
+
* reply `@<relay> approve <reference>`, each signed with that key
|
|
551
|
+
* (chant#4611).
|
|
549
552
|
*/
|
|
550
553
|
notify?: {
|
|
551
554
|
slack?: string;
|
|
@@ -553,6 +556,7 @@ export interface ProjectSettings {
|
|
|
553
556
|
webhook?: string;
|
|
554
557
|
webhook_key?: string;
|
|
555
558
|
relay?: string;
|
|
559
|
+
relay_key?: string;
|
|
556
560
|
};
|
|
557
561
|
/**
|
|
558
562
|
* Cost estimates per root in the plan note: Infracost on the customer's
|
|
@@ -1122,19 +1126,20 @@ export declare const TRUST_ROLE: RegExp;
|
|
|
1122
1126
|
export declare const LEDGER_PROVES_NOBODY = "approval: ledger does not prove who wrote an approval, so it cannot tell a role or the author; set approval to sealed or pr-review";
|
|
1123
1127
|
/** Why an override's role needs `approval: sealed`. */
|
|
1124
1128
|
export declare const OVERRIDE_ROLE_NEEDS_SEALED = "an override names whoever wrote it, and only approval: sealed proves who that was, so a role cannot be checked; set approval to sealed, or name the people in who";
|
|
1125
|
-
/** Where a shared policy is fetched from: the git URL and the ref. */
|
|
1126
|
-
export interface PolicySource {
|
|
1127
|
-
url: string;
|
|
1128
|
-
ref: string;
|
|
1129
|
-
}
|
|
1130
1129
|
/**
|
|
1131
|
-
*
|
|
1132
|
-
*
|
|
1133
|
-
*
|
|
1134
|
-
*
|
|
1135
|
-
*
|
|
1130
|
+
* `policy.source` and `policy.path` as chant's `ci.policy.source`
|
|
1131
|
+
* (`@intentius/chant/policy-source`, chant#4613), which fetches it. terragucci
|
|
1132
|
+
* writes the source as `git+<scheme>://<host>/<path>@<ref>`, with https, http
|
|
1133
|
+
* (a forge on a private network) or file (a repo on the job's disk); the ref
|
|
1134
|
+
* is what follows the last `@` after the host, so a user name in the URL
|
|
1135
|
+
* (`git+https://ci@host/...`) stays in the URL. chant's settings check decides
|
|
1136
|
+
* whether the repo and the ref are valid. Undefined when `policy.source` is
|
|
1137
|
+
* unset or not that shape.
|
|
1136
1138
|
*/
|
|
1137
|
-
export declare function
|
|
1139
|
+
export declare function policySourceOf(policy: {
|
|
1140
|
+
source?: string;
|
|
1141
|
+
path?: string;
|
|
1142
|
+
}): GatePolicySource | undefined;
|
|
1138
1143
|
export declare const SECRET_NAME: RegExp;
|
|
1139
1144
|
export declare const DECIDE_KEYS: string[];
|
|
1140
1145
|
export declare const DURATION: RegExp;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/terragucci",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.4.54",
|
|
4
|
+
"description": "Terraform ops and governance.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"build": "node ../../scripts/build-cli.mjs"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@intentius/chant": "0.124.
|
|
39
|
+
"@intentius/chant": "0.124.79"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@intentius/tsad-reference": "2.x",
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@cdktn/hcl2json": "0.24.0",
|
|
55
|
-
"@intentius/chant-lexicon-forgejo": "0.124.
|
|
56
|
-
"@intentius/chant-lexicon-github": "0.124.
|
|
57
|
-
"@intentius/chant-lexicon-gitlab": "0.124.
|
|
58
|
-
"@intentius/chant-lexicon-terraform": "0.124.
|
|
55
|
+
"@intentius/chant-lexicon-forgejo": "0.124.79",
|
|
56
|
+
"@intentius/chant-lexicon-github": "0.124.79",
|
|
57
|
+
"@intentius/chant-lexicon-gitlab": "0.124.79",
|
|
58
|
+
"@intentius/chant-lexicon-terraform": "0.124.79",
|
|
59
59
|
"@intentius/tsad-reference": "2.1.0",
|
|
60
60
|
"@modelcontextprotocol/sdk": "1.30.1"
|
|
61
61
|
}
|