@substrat-run/control-plane-api 0.92.1 → 0.95.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/dist/api.d.ts +18 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +81 -15
- package/dist/api.js.map +1 -1
- package/dist/deploy.d.ts +4 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/mask.d.ts +7 -5
- package/dist/mask.d.ts.map +1 -1
- package/dist/mask.js +63 -37
- package/dist/mask.js.map +1 -1
- package/dist/platform-drain.d.ts +12 -0
- package/dist/platform-drain.d.ts.map +1 -1
- package/dist/platform-drain.js +34 -1
- package/dist/platform-drain.js.map +1 -1
- package/dist/pseudonymize.d.ts +69 -0
- package/dist/pseudonymize.d.ts.map +1 -0
- package/dist/pseudonymize.js +222 -0
- package/dist/pseudonymize.js.map +1 -0
- package/dist/wfp.d.ts +21 -0
- package/dist/wfp.d.ts.map +1 -1
- package/dist/wfp.js +6 -1
- package/dist/wfp.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The value generator behind the masked scope export (#1034).
|
|
3
|
+
*
|
|
4
|
+
* A masked pull used to write the literal `[masked]` into every PII cell, which made
|
|
5
|
+
* the copy structurally valid and factually useless: every screen in a pulled scope
|
|
6
|
+
* read `[masked]`, so a preview, a demo or a local repro could not be driven from
|
|
7
|
+
* one. This turns the same cells into **plausible, deterministic, fake** values —
|
|
8
|
+
* still no real personal data leaves the governed environment, but the copy reads
|
|
9
|
+
* like a tenant.
|
|
10
|
+
*
|
|
11
|
+
* Three properties, and the whole design follows from them:
|
|
12
|
+
*
|
|
13
|
+
* 1. **Deterministic.** The same real value becomes the same fake value everywhere it
|
|
14
|
+
* appears — its own row, every fat event payload that quoted it, the invoice that
|
|
15
|
+
* snapshotted it. Otherwise joins and timelines stop lining up and the copy stops
|
|
16
|
+
* reading as real. The seed is `HMAC-SHA-256(salt, value)`, keyed on the ORIGINAL
|
|
17
|
+
* VALUE ONLY: the column's kind picks the *rendering*, so one email rendered as an
|
|
18
|
+
* `email` and as an `external_id` still agrees with itself.
|
|
19
|
+
* 2. **Irreversible.** A keyed hash, and the salt is never written into the dump. No
|
|
20
|
+
* mapping is stored anywhere; nothing in the output can be walked back.
|
|
21
|
+
* 3. **Still shaped like what it replaced.** An email stays `.email()`-parseable, a
|
|
22
|
+
* phone keeps its country prefix and its digit layout, a postal code keeps its
|
|
23
|
+
* length. A pulled scope whose every read throws a seam `.parse` failure is no
|
|
24
|
+
* better than `[masked]`.
|
|
25
|
+
*
|
|
26
|
+
* Uniqueness comes from the hash rather than from a collision pass: every generated
|
|
27
|
+
* value carries hash-derived characters, so two distinct inputs practically never land
|
|
28
|
+
* on one output and a natural key on `email` survives `importScope`. "Practically
|
|
29
|
+
* never" is sized, not hoped for — an address carries a 48-bit tag, so a scope holding
|
|
30
|
+
* a million distinct addresses collides with probability ~1e-7.
|
|
31
|
+
*
|
|
32
|
+
* **This is pseudonymization, not anonymization.** Rare combinations, amounts and
|
|
33
|
+
* dates can still re-identify a subject, so nothing about §6's gate relaxes because
|
|
34
|
+
* the output looks fake — the pull stays staff-only, audited and jurisdiction-checked.
|
|
35
|
+
*
|
|
36
|
+
* Deliberately NOT faked, stated rather than hidden:
|
|
37
|
+
* - **Free text** (`note`, `description`, `body`, `comment`, `message`, `subject`)
|
|
38
|
+
* stays `[masked]`. Lorem would be a lie about the content; a real sentence cannot
|
|
39
|
+
* be generated from a hash without inventing meaning.
|
|
40
|
+
* - **National identifiers** (`ssn`, `personnummer`) stay `[masked]`. A generated
|
|
41
|
+
* checksum-valid number may belong to a real person; the correct source is
|
|
42
|
+
* Skatteverket's published test range, which is not in this repo. Part of #1034.
|
|
43
|
+
* - **Locale** is one neutral value list. Following the tenant's locale needs a
|
|
44
|
+
* tenant-locale field that does not exist yet — inventing one here would be a
|
|
45
|
+
* guess dressed as a feature.
|
|
46
|
+
*
|
|
47
|
+
* Generated values are drawn from RFC 2606 reserved domains (`example.com`, …), so a
|
|
48
|
+
* pseudonymized address is guaranteed not to reach anyone.
|
|
49
|
+
*/
|
|
50
|
+
/** The literal a cell keeps when there is nothing honest to generate for it. */
|
|
51
|
+
export const MASKED = '[masked]';
|
|
52
|
+
// Small, deliberately boring value lists. Sized to a power of two so an index is a
|
|
53
|
+
// plain mask over a hash byte pair and every entry is equally likely.
|
|
54
|
+
const GIVEN = [
|
|
55
|
+
'Alex', 'Robin', 'Sam', 'Nora', 'Iris', 'Milo', 'Elin', 'Otto',
|
|
56
|
+
'Vera', 'Hugo', 'Maja', 'Leo', 'Signe', 'Kai', 'Freja', 'Arvid',
|
|
57
|
+
'Tova', 'Emil', 'Saga', 'Noel', 'Lova', 'Vidar', 'Ida', 'Rune',
|
|
58
|
+
'Astrid', 'Nils', 'Ebba', 'Loke', 'Ines', 'Alve', 'Tilda', 'Ove',
|
|
59
|
+
];
|
|
60
|
+
const FAMILY = [
|
|
61
|
+
'Lindqvist', 'Holm', 'Berg', 'Sandell', 'Norup', 'Vikner', 'Palm', 'Ekstrand',
|
|
62
|
+
'Rydell', 'Almquist', 'Sjolin', 'Hedman', 'Falk', 'Bruun', 'Lager', 'Nystrom',
|
|
63
|
+
'Ravn', 'Solberg', 'Wik', 'Dahl', 'Frost', 'Gran', 'Hovda', 'Iversen',
|
|
64
|
+
'Kollen', 'Lyng', 'Moen', 'Rask', 'Stang', 'Tveit', 'Ulven', 'Vinge',
|
|
65
|
+
];
|
|
66
|
+
const STREET = [
|
|
67
|
+
'Almgatan', 'Bruksvagen', 'Cedervagen', 'Dalgatan', 'Ekbacken', 'Fyrgrand', 'Granstigen', 'Hamnvagen',
|
|
68
|
+
'Idrottsgatan', 'Jarnvagsgatan', 'Kvarngatan', 'Lindvagen', 'Munkgatan', 'Norrtull', 'Osterled', 'Parkgatan',
|
|
69
|
+
];
|
|
70
|
+
const CITY = [
|
|
71
|
+
'Alvesta', 'Borlange', 'Enkoping', 'Falkoping', 'Gavle', 'Harnosand', 'Karlshamn', 'Lidkoping',
|
|
72
|
+
'Motala', 'Nykoping', 'Oskarshamn', 'Pitea', 'Ronneby', 'Skovde', 'Trelleborg', 'Vasteras',
|
|
73
|
+
];
|
|
74
|
+
const DOMAIN = ['example.com', 'example.org', 'example.net', 'example.edu'];
|
|
75
|
+
// The alphabet `reshape` draws a replacement letter from (an alphanumeric postal code).
|
|
76
|
+
const LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
77
|
+
/**
|
|
78
|
+
* The column-name → kind heuristic. Order matters: the most specific pattern wins, and
|
|
79
|
+
* the free-text catch-all is last so `note` never reads as a person's name.
|
|
80
|
+
*
|
|
81
|
+
* Names arrive snake_case from SQL columns and camelCase from JSON payload keys, so
|
|
82
|
+
* callers normalize before asking.
|
|
83
|
+
*/
|
|
84
|
+
const KIND_PATTERNS = [
|
|
85
|
+
[/(^|_)(e?mail|e?mail_address)($|_)/i, 'email'],
|
|
86
|
+
[/(^|_)(phone|mobile|tel)($|_)/i, 'phone'],
|
|
87
|
+
[/(^|_)(postal|zip)($|_)/i, 'postal'],
|
|
88
|
+
[/(^|_)(street|address)($|_)/i, 'street'],
|
|
89
|
+
[/(^|_)city($|_)/i, 'city'],
|
|
90
|
+
[/(^|_)(first_name|given_name)($|_)/i, 'given'],
|
|
91
|
+
[/(^|_)(last_name|family_name|surname)($|_)/i, 'family'],
|
|
92
|
+
[/(^|_)external_id($|_)/i, 'external_id'],
|
|
93
|
+
// Free text and national identifiers: nothing honest to generate (see the header).
|
|
94
|
+
[/(^|_)(ssn|personnummer|note|notes|comment|comments|message|subject|body|description)($|_)/i, 'redact'],
|
|
95
|
+
[/(^|_)(name|full_name|contact)($|_)/i, 'person'],
|
|
96
|
+
];
|
|
97
|
+
/** Which kind a column or JSON key is, or `undefined` when it is not PII at all. */
|
|
98
|
+
export function kindOf(name) {
|
|
99
|
+
const snake = name.replace(/([a-z0-9])([A-Z])/g, '$1_$2');
|
|
100
|
+
for (const [pattern, kind] of KIND_PATTERNS)
|
|
101
|
+
if (pattern.test(snake))
|
|
102
|
+
return kind;
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const pick = (list, seed, at) => list[((seed.bytes[at] << 8) | seed.bytes[at + 1]) % list.length];
|
|
106
|
+
/**
|
|
107
|
+
* Replace every digit AND letter of `original` with a hash-derived one, keeping every
|
|
108
|
+
* other character exactly where it was — so `+46 70-123 45 67` stays a Swedish mobile,
|
|
109
|
+
* `114 51` stays a Swedish postal code, and `K1A 0B1` stays a Canadian one without
|
|
110
|
+
* keeping any of its original characters. Letters matter: a postal code is alphanumeric
|
|
111
|
+
* in half the world, and copying its letters through would leave real fragments of a
|
|
112
|
+
* real address in a file whose whole promise is that it holds none.
|
|
113
|
+
*
|
|
114
|
+
* Case and layout survive; the character CLASS is what is preserved, not the character.
|
|
115
|
+
* Only ASCII letters are substituted — the formats this is applied to (phone numbers,
|
|
116
|
+
* postal codes) are ASCII by specification, and a stray `ö` is layout, not identity.
|
|
117
|
+
*
|
|
118
|
+
* The leading country code (the first `keepLeadingDigits` digits, used for the two after
|
|
119
|
+
* a `+`) is preserved: it is a fact about the country, not about the person, and a
|
|
120
|
+
* validator that checks it must still pass.
|
|
121
|
+
*/
|
|
122
|
+
function reshape(original, seed, keepLeadingDigits) {
|
|
123
|
+
let out = '';
|
|
124
|
+
let seen = 0;
|
|
125
|
+
let at = 0;
|
|
126
|
+
const next = () => seed.bytes[at++ % seed.bytes.length];
|
|
127
|
+
for (const ch of original) {
|
|
128
|
+
if (/[0-9]/.test(ch)) {
|
|
129
|
+
seen += 1;
|
|
130
|
+
if (seen <= keepLeadingDigits)
|
|
131
|
+
out += ch;
|
|
132
|
+
else
|
|
133
|
+
out += String(next() % 10);
|
|
134
|
+
}
|
|
135
|
+
else if (/[A-Za-z]/.test(ch)) {
|
|
136
|
+
const letter = LETTERS[next() % LETTERS.length];
|
|
137
|
+
out += ch === ch.toUpperCase() ? letter : letter.toLowerCase();
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
out += ch;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return out;
|
|
144
|
+
}
|
|
145
|
+
const looksLikeEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
|
146
|
+
const slug = (value) => value.toLowerCase().replace(/[^a-z0-9]+/g, '');
|
|
147
|
+
/** `2n` hex characters from the digest, starting at byte `at`. */
|
|
148
|
+
const hex = (seed, at, n) => [...seed.bytes.slice(at, at + n)].map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
149
|
+
/** Render one value of one kind from its digest. */
|
|
150
|
+
function render(kind, original, seed) {
|
|
151
|
+
const given = pick(GIVEN, seed, 0);
|
|
152
|
+
const family = pick(FAMILY, seed, 2);
|
|
153
|
+
switch (kind) {
|
|
154
|
+
case 'email':
|
|
155
|
+
// `.email()`-parseable, at a reserved domain, with a 48-bit hash tag so two people
|
|
156
|
+
// who share a name do not share an address. The tag is what makes the no-collision
|
|
157
|
+
// claim true at a real scope's cardinality rather than a test's: name+domain alone
|
|
158
|
+
// is 4,096 combinations, and three digits on top of that collide with ~11%
|
|
159
|
+
// probability across a mere 1,000 addresses — which is a UNIQUE violation at
|
|
160
|
+
// `importScope`, not a cosmetic clash. It reads machine-generated because it is;
|
|
161
|
+
// that is the honest trade against a round trip that fails. The tag's bytes start
|
|
162
|
+
// past the ones the name and domain use, so it adds entropy instead of echoing it.
|
|
163
|
+
return `${slug(given)}.${slug(family)}.${hex(seed, 16, 6)}@${pick(DOMAIN, seed, 8)}`;
|
|
164
|
+
case 'phone':
|
|
165
|
+
// Keep the shape: a `+46 70-…` stays that, and a bare 10-digit string stays ten
|
|
166
|
+
// digits, so a length or prefix check on the way back in still passes.
|
|
167
|
+
return reshape(original, seed, original.trimStart().startsWith('+') ? 2 : 0);
|
|
168
|
+
case 'postal':
|
|
169
|
+
return reshape(original, seed, 0);
|
|
170
|
+
case 'street':
|
|
171
|
+
return `${pick(STREET, seed, 10)} ${(((seed.bytes[12] << 8) | seed.bytes[13]) % 199) + 1}`;
|
|
172
|
+
case 'city':
|
|
173
|
+
return pick(CITY, seed, 14);
|
|
174
|
+
case 'given':
|
|
175
|
+
return given;
|
|
176
|
+
case 'family':
|
|
177
|
+
return family;
|
|
178
|
+
case 'person':
|
|
179
|
+
return `${given} ${family}`;
|
|
180
|
+
case 'external_id':
|
|
181
|
+
// An identity link's external id is usually the provider's subject, which in
|
|
182
|
+
// practice is very often an email — so render it as one when it looks like one,
|
|
183
|
+
// and as an opaque token when it does not.
|
|
184
|
+
return looksLikeEmail(original)
|
|
185
|
+
? render('email', original, seed)
|
|
186
|
+
: `pseudo-${hex(seed, 0, 8)}`;
|
|
187
|
+
case 'redact':
|
|
188
|
+
return MASKED;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
export async function createPseudonymizer(salt) {
|
|
192
|
+
const key = await globalThis.crypto.subtle.importKey('raw', new TextEncoder().encode(salt), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
|
|
193
|
+
const seeds = new Map();
|
|
194
|
+
return {
|
|
195
|
+
async prepare(values) {
|
|
196
|
+
const pending = [];
|
|
197
|
+
for (const value of values) {
|
|
198
|
+
if (seeds.has(value))
|
|
199
|
+
continue;
|
|
200
|
+
seeds.set(value, { bytes: new Uint8Array(32) }); // placeholder: claims the slot
|
|
201
|
+
pending.push(globalThis.crypto.subtle
|
|
202
|
+
.sign('HMAC', key, new TextEncoder().encode(value))
|
|
203
|
+
.then((sig) => {
|
|
204
|
+
seeds.set(value, { bytes: new Uint8Array(sig) });
|
|
205
|
+
}));
|
|
206
|
+
}
|
|
207
|
+
await Promise.all(pending);
|
|
208
|
+
},
|
|
209
|
+
valueFor(kind, original) {
|
|
210
|
+
if (kind === 'redact')
|
|
211
|
+
return MASKED;
|
|
212
|
+
const seed = seeds.get(original);
|
|
213
|
+
// Not prepared — refuse rather than emit an unkeyed value. A caller that skips
|
|
214
|
+
// `prepare` would otherwise leak the real cell, which is the one outcome this
|
|
215
|
+
// module exists to prevent.
|
|
216
|
+
if (!seed)
|
|
217
|
+
return MASKED;
|
|
218
|
+
return render(kind, original, seed);
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=pseudonymize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pseudonymize.js","sourceRoot":"","sources":["../src/pseudonymize.ts"],"names":[],"mappings":"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"}
|
package/dist/wfp.d.ts
CHANGED
|
@@ -30,6 +30,27 @@ export interface WfpUploaderOptions {
|
|
|
30
30
|
* Names with an undefined/empty value are skipped.
|
|
31
31
|
*/
|
|
32
32
|
injectSecrets?: Record<string, string | undefined>;
|
|
33
|
+
/**
|
|
34
|
+
* Bind Workers AI (`env.AI`) on every pushed script (#1054).
|
|
35
|
+
*
|
|
36
|
+
* Deliberately a BINDING and not a credential. The alternative was injecting a Workers
|
|
37
|
+
* AI token as one more `secret_text`, and a pushed vertical can read those: the push
|
|
38
|
+
* gate checks DECLARED bindings, never the code, so R2's ban on `cloudflare:workers`
|
|
39
|
+
* — what stops module code reaching ambient `env` — is not enforced here (#862). A
|
|
40
|
+
* spending credential under that hole is not something to ship; a binding leaves
|
|
41
|
+
* nothing to read, and Workers AI bills the account owning the script, which is ours.
|
|
42
|
+
*
|
|
43
|
+
* Verified on TEST rather than inferred (D-58's discipline): a throwaway
|
|
44
|
+
* dispatch-namespace script accepted `{type:'ai',name:'AI'}`, read back as
|
|
45
|
+
* `{name:'AI',project:'<catalog>',type:'ai'}`, and ran inference through it — with and
|
|
46
|
+
* without a gateway id, reporting real prompt/completion token counts.
|
|
47
|
+
*
|
|
48
|
+
* The honest limit: this is a CAPABILITY the vertical holds, so a vertical can call
|
|
49
|
+
* `env.AI.run()` on our account without passing our gateway id, unattributed. Bounded
|
|
50
|
+
* to Workers AI and cheaper to bound further (gateway spend limits); the durable fix is
|
|
51
|
+
* running inference platform-side, which is what BYOK needs anyway.
|
|
52
|
+
*/
|
|
53
|
+
bindAi?: boolean;
|
|
33
54
|
/**
|
|
34
55
|
* Head sampling rate (0–1) for Workers **automatic tracing** on pushed scripts (#858).
|
|
35
56
|
* Absent ⇒ no `traces` block, which is what every push has sent until now.
|
package/dist/wfp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wfp.d.ts","sourceRoot":"","sources":["../src/wfp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAO,GAAG,MAAM,CAErD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkJD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"wfp.d.ts","sourceRoot":"","sources":["../src/wfp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAO,GAAG,MAAM,CAErD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkJD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,gBAAgB,CAmG5E;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;wEACwE;AACxE,MAAM,MAAM,iBAAiB,GACzB,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,aAAa,CAAC,GAChC,CAAC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EAAE,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AASnB;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,GACrE,qBAAqB,CA+CvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,GACrE,sBAAsB,CA8DxB"}
|
package/dist/wfp.js
CHANGED
|
@@ -129,6 +129,11 @@ export function createWfpUploader(opts) {
|
|
|
129
129
|
.filter(([, text]) => text)
|
|
130
130
|
.map(([name, text]) => ({ type: 'secret_text', name, text: text }));
|
|
131
131
|
return async (deploymentRef, bundle, inPlace) => {
|
|
132
|
+
// The model runtime needs BOTH halves: the platform willing to grant it at all
|
|
133
|
+
// (`bindAi`, a fleet kill-switch) and THIS version having declared it
|
|
134
|
+
// (`substrat.usesModels`). A vertical that never asked never holds the capability,
|
|
135
|
+
// and asking is a manifest diff a human reads at admit.
|
|
136
|
+
const bindings = [...injected, ...(opts.bindAi && bundle.usesModels ? [{ type: 'ai', name: 'AI' }] : [])];
|
|
132
137
|
// A fresh script declares every DO class under the first tag. An in-place update
|
|
133
138
|
// of the serving script (#286) may only declare classes the script does not
|
|
134
139
|
// already have — re-declaring a live class errors — so send the delta under a
|
|
@@ -161,7 +166,7 @@ export function createWfpUploader(opts) {
|
|
|
161
166
|
// The vertical's own bindings, plus the platform's injected secrets (added here,
|
|
162
167
|
// AFTER the §4 sandbox check on the declared set — the platform is granting the
|
|
163
168
|
// vertical verification secrets, not the vertical reaching for a platform binding).
|
|
164
|
-
bindings: [...bundle.bindings, ...
|
|
169
|
+
bindings: [...bundle.bindings, ...bindings],
|
|
165
170
|
...(migrations ? { migrations } : {}),
|
|
166
171
|
// On the serving script, secrets put by hand or by an earlier deploy survive the
|
|
167
172
|
// re-upload — this is what deletes the "re-put every secret on every new script"
|
package/dist/wfp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wfp.js","sourceRoot":"","sources":["../src/wfp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wfp.js","sourceRoot":"","sources":["../src/wfp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/control-plane-api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.95.0",
|
|
4
4
|
"description": "HTTP surface over HostAdmin — the audited control-plane transport (control-plane.md §4.5)",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"hono": "^4.6.0",
|
|
26
|
-
"@substrat-run/contracts": "^0.
|
|
27
|
-
"@substrat-run/
|
|
28
|
-
"@substrat-run/
|
|
26
|
+
"@substrat-run/contracts": "^0.95.0",
|
|
27
|
+
"@substrat-run/psl": "^0.2.4",
|
|
28
|
+
"@substrat-run/kernel": "^0.95.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@hono/node-server": "^1.13.0",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"tsx": "^4.19.0",
|
|
37
37
|
"typescript": "^7.0.0",
|
|
38
38
|
"vitest": "^3.2.7",
|
|
39
|
-
"@substrat-run/adapter-sqlite": "^0.
|
|
40
|
-
"@substrat-run/vertical-host": "^0.
|
|
39
|
+
"@substrat-run/adapter-sqlite": "^0.95.0",
|
|
40
|
+
"@substrat-run/vertical-host": "^0.95.0"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "public"
|