@substrat-run/contracts 0.139.0 → 0.140.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.
Files changed (83) hide show
  1. package/dist/connections.d.ts +131 -0
  2. package/dist/connections.d.ts.map +1 -1
  3. package/dist/connections.js +90 -1
  4. package/dist/connections.js.map +1 -1
  5. package/dist/control-plane.d.ts +251 -10
  6. package/dist/control-plane.d.ts.map +1 -1
  7. package/dist/control-plane.js +173 -14
  8. package/dist/control-plane.js.map +1 -1
  9. package/dist/deploy.d.ts +71 -3
  10. package/dist/deploy.d.ts.map +1 -1
  11. package/dist/deploy.js +109 -3
  12. package/dist/deploy.js.map +1 -1
  13. package/dist/email-intent.d.ts +106 -0
  14. package/dist/email-intent.d.ts.map +1 -0
  15. package/dist/email-intent.js +111 -0
  16. package/dist/email-intent.js.map +1 -0
  17. package/dist/entity-state.d.ts +1 -0
  18. package/dist/entity-state.d.ts.map +1 -1
  19. package/dist/entity-state.js +6 -0
  20. package/dist/entity-state.js.map +1 -1
  21. package/dist/ids.d.ts +13 -0
  22. package/dist/ids.d.ts.map +1 -1
  23. package/dist/ids.js +30 -0
  24. package/dist/ids.js.map +1 -1
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/introspection.d.ts +22 -0
  30. package/dist/introspection.d.ts.map +1 -1
  31. package/dist/introspection.js +1 -1
  32. package/dist/introspection.js.map +1 -1
  33. package/dist/kernel-events.d.ts.map +1 -1
  34. package/dist/kernel-events.js +7 -1
  35. package/dist/kernel-events.js.map +1 -1
  36. package/dist/manifest.d.ts +46 -0
  37. package/dist/manifest.d.ts.map +1 -1
  38. package/dist/manifest.js +33 -2
  39. package/dist/manifest.js.map +1 -1
  40. package/dist/model.d.ts +68 -1
  41. package/dist/model.d.ts.map +1 -1
  42. package/dist/model.js +110 -2
  43. package/dist/model.js.map +1 -1
  44. package/dist/operations.d.ts +117 -1
  45. package/dist/operations.d.ts.map +1 -1
  46. package/dist/operations.js +159 -1
  47. package/dist/operations.js.map +1 -1
  48. package/dist/pagination.d.ts +0 -0
  49. package/dist/pagination.d.ts.map +1 -1
  50. package/dist/pagination.js +0 -0
  51. package/dist/pagination.js.map +1 -1
  52. package/dist/peer.d.ts +34 -0
  53. package/dist/peer.d.ts.map +1 -1
  54. package/dist/peer.js +17 -2
  55. package/dist/peer.js.map +1 -1
  56. package/dist/permission.d.ts +50 -0
  57. package/dist/permission.d.ts.map +1 -1
  58. package/dist/permission.js +52 -3
  59. package/dist/permission.js.map +1 -1
  60. package/dist/registry-diff.d.ts +18 -1
  61. package/dist/registry-diff.d.ts.map +1 -1
  62. package/dist/registry-diff.js +24 -7
  63. package/dist/registry-diff.js.map +1 -1
  64. package/dist/registry.d.ts +6 -0
  65. package/dist/registry.d.ts.map +1 -1
  66. package/dist/registry.js +8 -2
  67. package/dist/registry.js.map +1 -1
  68. package/dist/relay-caller.d.ts +28 -0
  69. package/dist/relay-caller.d.ts.map +1 -0
  70. package/dist/relay-caller.js +28 -0
  71. package/dist/relay-caller.js.map +1 -0
  72. package/dist/subject-erasure.d.ts +109 -0
  73. package/dist/subject-erasure.d.ts.map +1 -0
  74. package/dist/subject-erasure.js +93 -0
  75. package/dist/subject-erasure.js.map +1 -0
  76. package/dist/vertical-events.d.ts +1 -0
  77. package/dist/vertical-events.d.ts.map +1 -1
  78. package/dist/vertical-events.js +6 -0
  79. package/dist/vertical-events.js.map +1 -1
  80. package/dist/wire-headers.d.ts +6 -1
  81. package/dist/wire-headers.d.ts.map +1 -1
  82. package/dist/wire-headers.js.map +1 -1
  83. package/package.json +1 -1
@@ -95,6 +95,125 @@ export interface OpenConnection {
95
95
  secret: ConnectionSecret;
96
96
  expiresAt: string | null;
97
97
  }
98
+ /**
99
+ * A connect LINK held by the platform (connections.md §3.5.4) — a provider consent round a
100
+ * vertical minted to be mailed: opened days later by someone else (a client company's
101
+ * Fortnox administrator, for a bookkeeping bureau), so it is a row rather than a signature
102
+ * alone. Single-use, revocable, expiring. The signed state names the row; the row decides
103
+ * whether the round still stands.
104
+ *
105
+ * Keyed by its SCOPE as well as its tenant: every read and write names both, and a link of
106
+ * another scope answers exactly as an absent one does. Nothing here is a secret — the
107
+ * credential only exists after a round is consumed, and it lands in the connection store.
108
+ */
109
+ export declare const connectLinkId: z.core.$ZodBranded<z.ZodString, "ConnectLinkId", "out">;
110
+ export type ConnectLinkId = z.infer<typeof connectLinkId>;
111
+ export declare const connectLinkStatus: z.ZodEnum<{
112
+ outstanding: "outstanding";
113
+ revoked: "revoked";
114
+ used: "used";
115
+ }>;
116
+ export type ConnectLinkStatus = z.infer<typeof connectLinkStatus>;
117
+ export declare const connectLink: z.ZodObject<{
118
+ id: z.core.$ZodBranded<z.ZodString, "ConnectLinkId", "out">;
119
+ tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
120
+ scopeId: z.core.$ZodBranded<z.ZodString, "ScopeId", "out">;
121
+ vertical: z.ZodString;
122
+ provider: z.ZodString;
123
+ status: z.ZodEnum<{
124
+ outstanding: "outstanding";
125
+ revoked: "revoked";
126
+ used: "used";
127
+ }>;
128
+ createdBy: z.ZodString;
129
+ subjectRef: z.ZodNullable<z.ZodString>;
130
+ returnUrl: z.ZodNullable<z.ZodString>;
131
+ createdAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
132
+ expiresAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
133
+ usedAt: z.ZodNullable<z.core.$ZodBranded<z.ZodString, "Instant", "out">>;
134
+ accountRef: z.ZodNullable<z.ZodString>;
135
+ accountLabel: z.ZodNullable<z.ZodString>;
136
+ }, z.core.$strip>;
137
+ export type ConnectLink = z.infer<typeof connectLink>;
138
+ export declare const mintConnectLinkInput: z.ZodObject<{
139
+ tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
140
+ scopeId: z.core.$ZodBranded<z.ZodString, "ScopeId", "out">;
141
+ vertical: z.ZodString;
142
+ provider: z.ZodString;
143
+ createdBy: z.ZodString;
144
+ subjectRef: z.ZodOptional<z.ZodString>;
145
+ returnUrl: z.ZodOptional<z.ZodString>;
146
+ expiresAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
147
+ }, z.core.$strip>;
148
+ export type MintConnectLinkInput = z.input<typeof mintConnectLinkInput>;
149
+ /** Which link — always within one tenant AND one scope. */
150
+ export declare const connectLinkKey: z.ZodObject<{
151
+ tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
152
+ scopeId: z.core.$ZodBranded<z.ZodString, "ScopeId", "out">;
153
+ id: z.core.$ZodBranded<z.ZodString, "ConnectLinkId", "out">;
154
+ }, z.core.$strip>;
155
+ export type ConnectLinkKey = z.input<typeof connectLinkKey>;
156
+ export declare const connectLinkFilter: z.ZodObject<{
157
+ tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
158
+ scopeId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "ScopeId", "out">>;
159
+ ids: z.ZodOptional<z.ZodArray<z.core.$ZodBranded<z.ZodString, "ConnectLinkId", "out">>>;
160
+ provider: z.ZodOptional<z.ZodString>;
161
+ outstandingOnly: z.ZodOptional<z.ZodBoolean>;
162
+ }, z.core.$strip>;
163
+ export type ConnectLinkFilter = z.input<typeof connectLinkFilter>;
164
+ export declare const consumeConnectLinkInput: z.ZodObject<{
165
+ tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
166
+ scopeId: z.core.$ZodBranded<z.ZodString, "ScopeId", "out">;
167
+ id: z.core.$ZodBranded<z.ZodString, "ConnectLinkId", "out">;
168
+ provider: z.ZodString;
169
+ accountRef: z.ZodOptional<z.ZodString>;
170
+ accountLabel: z.ZodOptional<z.ZodString>;
171
+ }, z.core.$strip>;
172
+ export type ConsumeConnectLinkInput = z.input<typeof consumeConnectLinkInput>;
173
+ /**
174
+ * Why a consume was refused, as a value: the callback answers differently for each, and
175
+ * telling them apart by error text is how a wording change becomes a wrong screen.
176
+ * `unknown` covers another scope's or tenant's link too — no oracle for which exist.
177
+ */
178
+ export declare const connectLinkRefusal: z.ZodEnum<{
179
+ expired: "expired";
180
+ revoked: "revoked";
181
+ unknown: "unknown";
182
+ used: "used";
183
+ }>;
184
+ export type ConnectLinkRefusal = z.infer<typeof connectLinkRefusal>;
185
+ export declare const connectLinkConsume: z.ZodDiscriminatedUnion<[z.ZodObject<{
186
+ ok: z.ZodLiteral<true>;
187
+ link: z.ZodObject<{
188
+ id: z.core.$ZodBranded<z.ZodString, "ConnectLinkId", "out">;
189
+ tenantId: z.core.$ZodBranded<z.ZodString, "TenantId", "out">;
190
+ scopeId: z.core.$ZodBranded<z.ZodString, "ScopeId", "out">;
191
+ vertical: z.ZodString;
192
+ provider: z.ZodString;
193
+ status: z.ZodEnum<{
194
+ outstanding: "outstanding";
195
+ revoked: "revoked";
196
+ used: "used";
197
+ }>;
198
+ createdBy: z.ZodString;
199
+ subjectRef: z.ZodNullable<z.ZodString>;
200
+ returnUrl: z.ZodNullable<z.ZodString>;
201
+ createdAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
202
+ expiresAt: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
203
+ usedAt: z.ZodNullable<z.core.$ZodBranded<z.ZodString, "Instant", "out">>;
204
+ accountRef: z.ZodNullable<z.ZodString>;
205
+ accountLabel: z.ZodNullable<z.ZodString>;
206
+ }, z.core.$strip>;
207
+ }, z.core.$strip>, z.ZodObject<{
208
+ ok: z.ZodLiteral<false>;
209
+ reason: z.ZodEnum<{
210
+ expired: "expired";
211
+ revoked: "revoked";
212
+ unknown: "unknown";
213
+ used: "used";
214
+ }>;
215
+ }, z.core.$strip>], "ok">;
216
+ export type ConnectLinkConsume = z.infer<typeof connectLinkConsume>;
98
217
  /**
99
218
  * One provider-named fact about a connection — the readable half of a probe or an
100
219
  * activity row. A pair, not a typed union, deliberately: the platform must be able to
@@ -224,6 +343,18 @@ export declare const connectionCredential: z.ZodObject<{
224
343
  }, z.core.$strip>>;
225
344
  }, z.core.$strip>;
226
345
  export type ConnectionCredential = z.infer<typeof connectionCredential>;
346
+ /**
347
+ * The PUBLIC certificate a connection authenticates with, for a provider where the platform
348
+ * generates the keypair and the tenant registers the certificate on its side (#2100,
349
+ * Microsoft 365). Nothing here is secret: the private key stays sealed with the credential,
350
+ * and this is what the tenant downloads and uploads to the provider.
351
+ */
352
+ export declare const connectionCertificate: z.ZodObject<{
353
+ pem: z.ZodString;
354
+ thumbprint: z.ZodString;
355
+ notAfter: z.core.$ZodBranded<z.ZodString, "Instant", "out">;
356
+ }, z.core.$strip>;
357
+ export type ConnectionCertificate = z.infer<typeof connectionCertificate>;
227
358
  /**
228
359
  * A cell sealed to a recipient's public key (#687) — the shape a
229
360
  * `SealedSecret` takes when it travels as DATA rather than as a kernel type.
@@ -1 +1 @@
1
- {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { instant, tenantId } from './ids.js';
2
+ import { instant, scopeId, tenantId } from './ids.js';
3
3
  /**
4
4
  * The integrations hub's connection store (#101, design/connections.md §3).
5
5
  *
@@ -107,6 +107,81 @@ export const connectionFilter = z.object({
107
107
  /** Revoked connections are evidence, not roster — excluded unless asked for. */
108
108
  includeRevoked: z.boolean().optional(),
109
109
  });
110
+ /**
111
+ * A connect LINK held by the platform (connections.md §3.5.4) — a provider consent round a
112
+ * vertical minted to be mailed: opened days later by someone else (a client company's
113
+ * Fortnox administrator, for a bookkeeping bureau), so it is a row rather than a signature
114
+ * alone. Single-use, revocable, expiring. The signed state names the row; the row decides
115
+ * whether the round still stands.
116
+ *
117
+ * Keyed by its SCOPE as well as its tenant: every read and write names both, and a link of
118
+ * another scope answers exactly as an absent one does. Nothing here is a secret — the
119
+ * credential only exists after a round is consumed, and it lands in the connection store.
120
+ */
121
+ export const connectLinkId = z.string().regex(ULID).brand();
122
+ export const connectLinkStatus = z.enum(['outstanding', 'used', 'revoked']);
123
+ export const connectLink = z.object({
124
+ id: connectLinkId,
125
+ tenantId,
126
+ /** The vertical's scope — where the connection lands, and the link's own key. */
127
+ scopeId,
128
+ /** The vertical the directory had for the scope at mint. Carried for the log. */
129
+ vertical: z.string().min(1),
130
+ provider: connectionProvider,
131
+ /** `used` and `revoked` are terminal, except that a failed store restores `used`. */
132
+ status: connectLinkStatus,
133
+ /** The tenant principal whose in-scope check authorized the mint (§3.5.1). */
134
+ createdBy: z.string().min(1),
135
+ /** The vertical's own opaque reference for what is being connected — echoed, never parsed. */
136
+ subjectRef: z.string().nullable(),
137
+ /** Where the round returns; checked against the scope's hostnames at mint. */
138
+ returnUrl: z.string().nullable(),
139
+ createdAt: instant,
140
+ expiresAt: instant,
141
+ usedAt: instant.nullable(),
142
+ /** What the consent attached (Fortnox: the DatabaseNumber) — recorded at consume. */
143
+ accountRef: z.string().nullable(),
144
+ /** The provider's name for that account (a company name) — recorded at consume. */
145
+ accountLabel: z.string().nullable(),
146
+ });
147
+ export const mintConnectLinkInput = z.object({
148
+ tenantId,
149
+ scopeId,
150
+ vertical: z.string().min(1),
151
+ provider: connectionProvider,
152
+ createdBy: z.string().min(1),
153
+ subjectRef: z.string().min(1).max(256).optional(),
154
+ returnUrl: z.string().url().optional(),
155
+ /** Decided by the caller (the relay's TTL), not judged by the store. */
156
+ expiresAt: instant,
157
+ });
158
+ /** Which link — always within one tenant AND one scope. */
159
+ export const connectLinkKey = z.object({ tenantId, scopeId, id: connectLinkId });
160
+ export const connectLinkFilter = z.object({
161
+ tenantId,
162
+ scopeId: scopeId.optional(),
163
+ /** Only these links. An empty list matches nothing; ids outside the tenant/scope are omitted. */
164
+ ids: z.array(connectLinkId).optional(),
165
+ provider: connectionProvider.optional(),
166
+ /** Outstanding AND unexpired only — the links that can still be opened. */
167
+ outstandingOnly: z.boolean().optional(),
168
+ });
169
+ export const consumeConnectLinkInput = connectLinkKey.extend({
170
+ /** A link minted for one provider never settles a round for another. */
171
+ provider: connectionProvider,
172
+ accountRef: z.string().max(256).optional(),
173
+ accountLabel: z.string().max(256).optional(),
174
+ });
175
+ /**
176
+ * Why a consume was refused, as a value: the callback answers differently for each, and
177
+ * telling them apart by error text is how a wording change becomes a wrong screen.
178
+ * `unknown` covers another scope's or tenant's link too — no oracle for which exist.
179
+ */
180
+ export const connectLinkRefusal = z.enum(['unknown', 'used', 'revoked', 'expired']);
181
+ export const connectLinkConsume = z.discriminatedUnion('ok', [
182
+ z.object({ ok: z.literal(true), link: connectLink }),
183
+ z.object({ ok: z.literal(false), reason: connectLinkRefusal }),
184
+ ]);
110
185
  /**
111
186
  * One provider-named fact about a connection — the readable half of a probe or an
112
187
  * activity row. A pair, not a typed union, deliberately: the platform must be able to
@@ -241,6 +316,20 @@ export const connectionCredentialField = z.object({
241
316
  masked: z.boolean(),
242
317
  });
243
318
  export const connectionCredential = z.object({ fields: z.array(connectionCredentialField).max(16) });
319
+ /**
320
+ * The PUBLIC certificate a connection authenticates with, for a provider where the platform
321
+ * generates the keypair and the tenant registers the certificate on its side (#2100,
322
+ * Microsoft 365). Nothing here is secret: the private key stays sealed with the credential,
323
+ * and this is what the tenant downloads and uploads to the provider.
324
+ */
325
+ export const connectionCertificate = z.object({
326
+ /** The certificate, PEM. */
327
+ pem: z.string().min(1).max(8192),
328
+ /** The thumbprint as the provider's own console shows it, so the two can be compared. */
329
+ thumbprint: z.string().min(1).max(128),
330
+ /** When the certificate stops working — the connection's `expiresAt`. */
331
+ notAfter: instant,
332
+ });
244
333
  /**
245
334
  * A cell sealed to a recipient's public key (#687) — the shape a
246
335
  * `SealedSecret` takes when it travels as DATA rather than as a kernel type.
@@ -1 +1 @@
1
- {"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}