@fourier-labs/harbour-contracts 0.91.0 → 0.92.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/contract-release.json +12 -10
- package/dist/gen-ts/contract-release.d.ts +6 -6
- package/dist/gen-ts/contract-release.js +6 -6
- package/dist/gen-ts/deployment-app-registration.d.ts +20 -0
- package/dist/gen-ts/index.d.ts +1 -0
- package/dist/gen-ts/index.js +1 -0
- package/dist/gen-ts/mail-arrival-event.d.ts +17 -0
- package/dist/gen-ts/mail-arrival-event.js +3 -0
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/deployment-app-registration.ts +20 -0
- package/gen-ts/index.ts +1 -0
- package/gen-ts/mail-arrival-event.ts +20 -0
- package/package.json +1 -1
- package/schema/deployment-app-registration.schema.json +199 -17
- package/schema/mail-arrival-event.schema.json +75 -0
package/contract-release.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "harbour.contract-release/1.0",
|
|
3
|
-
"repositoryVersion": "0.
|
|
4
|
-
"publishVersion": "0.
|
|
5
|
-
"publishTag": "v0.
|
|
6
|
-
"schemasDigest": "sha256:
|
|
3
|
+
"repositoryVersion": "0.92.0.0",
|
|
4
|
+
"publishVersion": "0.92.0",
|
|
5
|
+
"publishTag": "v0.92.0",
|
|
6
|
+
"schemasDigest": "sha256:5b6aede1f569d02bf976d5331c9e8eb1e657b062be28fb89565ff50acd105c5a",
|
|
7
7
|
"aiFixturesDigest": "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6",
|
|
8
|
-
"generatedGoDigest": "sha256:
|
|
9
|
-
"generatedTypeScriptDigest": "sha256:
|
|
8
|
+
"generatedGoDigest": "sha256:64d78d9952ac08558ad956eb4c923677a0691e6260743c0dbc367b57e59ea822",
|
|
9
|
+
"generatedTypeScriptDigest": "sha256:a99c149dbeb2b081bd460b95df4d44e29cc95e2fe2c737f4b012b7449c0c94d3",
|
|
10
10
|
"generatedExclusions": {
|
|
11
11
|
"gen-go/contract_release.go": "contains the generated aggregate digests (self-reference)",
|
|
12
12
|
"gen-ts/contract-release.ts": "contains the generated aggregate digests (self-reference)"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"schema/data-source.schema.json": "sha256:f32b2b4312bc06e023f4e1da60eed52ddfade59b74c1a1cc8e4b740a6f9c930b",
|
|
43
43
|
"schema/deploy-request.schema.json": "sha256:c978406c273fa430db262888f0a8646b14e3057f64b0633780fcd6cfa646bc67",
|
|
44
44
|
"schema/deploy-response.schema.json": "sha256:09064948abdbba7022738285d802ed44648a16ddc2a5b8c2eeb170ae19a66aeb",
|
|
45
|
-
"schema/deployment-app-registration.schema.json": "sha256:
|
|
45
|
+
"schema/deployment-app-registration.schema.json": "sha256:4386dfd6f5ac2604214ab161cbb37146245baf7e70b63773c9702bd3270c3ca5",
|
|
46
46
|
"schema/deployment-continuation.schema.json": "sha256:55b6945439f2c91cd851dfe4bc9484e67a64091b7763b2d8267354b4a8bfae8c",
|
|
47
47
|
"schema/deployment-environment.schema.json": "sha256:35b26cae07da9ee375a842b5e87c4570c8eca06775e9fd6dd46eb9eb8aa0df6c",
|
|
48
48
|
"schema/deployment-preview-retirement.schema.json": "sha256:ccf6b971b7853ca98530272f280fe62cd3aab5425b10b81ae6b717cc949e014f",
|
|
@@ -63,6 +63,7 @@
|
|
|
63
63
|
"schema/kit-bundle-manifest.schema.json": "sha256:d8fc6ca9c30d791e785b021687e084e9171c0ea1a3a176d0f1582fcccf2c0e19",
|
|
64
64
|
"schema/kit-lock.schema.json": "sha256:a48154d9471e49a893d928f7b0e1e0bc77708a4a7edce4fdf14073203e0e8987",
|
|
65
65
|
"schema/kvs-routing-entry.schema.json": "sha256:b75f3a5dfa93a428b2764e03222b66b6ef2bed980f8bac8ffac54afdf3526bc5",
|
|
66
|
+
"schema/mail-arrival-event.schema.json": "sha256:b4fee8777a7e09ee223919330ca772e35b0e617ecfb3d5a197bfe0ee1effe4f5",
|
|
66
67
|
"schema/promotion-request.schema.json": "sha256:00e96dfd8ddbdba88ea222941d43f3609ff6c815a79e34f6705cab458101c969",
|
|
67
68
|
"schema/promotion-response.schema.json": "sha256:4129712d2e29d6ef21d93d4bd0bacfd60ada3f2ee0ade852824e64346b817634",
|
|
68
69
|
"schema/resolved-app-serving.schema.json": "sha256:3b49268e189429310c2a5dcfd45e9d2187c80b6dbb9d329a0177e96e065c31c0",
|
|
@@ -116,7 +117,7 @@
|
|
|
116
117
|
"gen-go/integration_execute_input_rules_test.go": "sha256:6db850bbdfc31f60ac7ce6ec5cade4f5260b1836e56b2727efbfeee56db7a706",
|
|
117
118
|
"gen-go/integration_operations.go": "sha256:1ba7ea4e118a2c4c8dd735b460b18d8658fbd7fd74e601ae372aff2844322f35",
|
|
118
119
|
"gen-go/schema_documents.go": "sha256:c19c0d540f602ee997a84b90e20702d9bc63ed7d27aec267e76c04655fc182e0",
|
|
119
|
-
"gen-go/types.go": "sha256:
|
|
120
|
+
"gen-go/types.go": "sha256:ee3e0ff2fc983f2cd2110d6d5169599c4fdad1ec5d9fb676a541a9b2e68f3198",
|
|
120
121
|
"gen-go/version_state.go": "sha256:4ef8abb126414c0025cf2c59bc9c79a74ef4a2ff89e8f316cbf05acc872371c1"
|
|
121
122
|
},
|
|
122
123
|
"generatedTypeScript": {
|
|
@@ -153,7 +154,7 @@
|
|
|
153
154
|
"gen-ts/data-source.ts": "sha256:2566f0d5c72e44278869f55211cf3d433aeb3552e57ae0ace0ff0b85e769dde6",
|
|
154
155
|
"gen-ts/deploy-request.ts": "sha256:913245577a95354849d3a8cb43fbaedbf895efe7b653c8502d25edfa22b7a864",
|
|
155
156
|
"gen-ts/deploy-response.ts": "sha256:364d9f1acf32e491498237cdd3f402d5f8e102f208db7748034f4ec68c6a6137",
|
|
156
|
-
"gen-ts/deployment-app-registration.ts": "sha256:
|
|
157
|
+
"gen-ts/deployment-app-registration.ts": "sha256:cb02a7e54a1733fb0865802215235c0f9d532229fffca2dc26677bee5e5e950e",
|
|
157
158
|
"gen-ts/deployment-continuation.ts": "sha256:cc9f63af4d0da5086a79103789e4f043783b75b4ed11c6512f044439a551a79c",
|
|
158
159
|
"gen-ts/deployment-environment.ts": "sha256:fc08cabe2e52ebb93cfe84d2019994260f71734c33d0e50e7c63e40ef5b17cef",
|
|
159
160
|
"gen-ts/deployment-preview-retirement.ts": "sha256:309421d08daf0ade163b6457ed0e5410ec6573c40a59423a6cce14780d9c38db",
|
|
@@ -167,7 +168,7 @@
|
|
|
167
168
|
"gen-ts/error-envelope.ts": "sha256:4457309be794f9d4fc0cf62530cc2d442c007bac9ae84aff66df099cc9e40310",
|
|
168
169
|
"gen-ts/external-sign-in.ts": "sha256:393ef74d72e37d33e374e3226f34ab3e854fdb0c1129a367997cbb690bf253a6",
|
|
169
170
|
"gen-ts/identity-context.ts": "sha256:4b8151a321e224229250d214ef3e17f2ac986bb54ff0aadbb4509481724f6883",
|
|
170
|
-
"gen-ts/index.ts": "sha256:
|
|
171
|
+
"gen-ts/index.ts": "sha256:258bdcaa0d8d26dd2bb996d3ddb0b4bf4533db83d1b7f0d35a2a2af85c728117",
|
|
171
172
|
"gen-ts/integration-connect-result.ts": "sha256:4b10f169b6e1af364e9b418de21caa9fadbfb77b43cbff77d741cfae0b52180c",
|
|
172
173
|
"gen-ts/integration-error-details.ts": "sha256:e73cb5942373ef88b2d8e03a1de56d5a69e71069ecd14e68396f7edba1f60780",
|
|
173
174
|
"gen-ts/integration-execute-input-rules.ts": "sha256:40e59de0d0977071e6438ad2149dc0513395adf7201aad95ab3d61e25a6c4e1d",
|
|
@@ -178,6 +179,7 @@
|
|
|
178
179
|
"gen-ts/kit-bundle-manifest.ts": "sha256:73f5271d2eb3b5ce91e28933c5ab6883615c72a3808aa386f860f58f6df8edf6",
|
|
179
180
|
"gen-ts/kit-lock.ts": "sha256:06bddeaf1e2c449c9cc0dbbc696210355a9005349c604d4050eb22385fb4c22e",
|
|
180
181
|
"gen-ts/kvs-routing-entry.ts": "sha256:d92e85ee9f257d77850d1d3aac9438e2055f38084ff84a48fcedae239d47d4ca",
|
|
182
|
+
"gen-ts/mail-arrival-event.ts": "sha256:deb342c7f930a2c7bf66a46e4c0973e3b9047cd9725e714ccaeab8c64a89d25f",
|
|
181
183
|
"gen-ts/promotion-request.ts": "sha256:9db88cef67f777a16bac628039ec3f582acb9e8cfff6fb592b30d0a0e55abc68",
|
|
182
184
|
"gen-ts/promotion-response.ts": "sha256:f1c9cafac96faeb02a443a31786f67714e818f38d90108e7af41958396524d6f",
|
|
183
185
|
"gen-ts/resolved-app-serving.ts": "sha256:3264e85827be47bf391781cb13a1e58318d356f7bee8c2ff3e5b00a062253b23",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const ContractRepositoryVersion: "0.
|
|
2
|
-
export declare const ContractPublishVersion: "0.
|
|
3
|
-
export declare const ContractPublishTag: "v0.
|
|
4
|
-
export declare const ContractSchemasDigest: "sha256:
|
|
1
|
+
export declare const ContractRepositoryVersion: "0.92.0.0";
|
|
2
|
+
export declare const ContractPublishVersion: "0.92.0";
|
|
3
|
+
export declare const ContractPublishTag: "v0.92.0";
|
|
4
|
+
export declare const ContractSchemasDigest: "sha256:5b6aede1f569d02bf976d5331c9e8eb1e657b062be28fb89565ff50acd105c5a";
|
|
5
5
|
export declare const ContractAiFixturesDigest: "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
6
|
-
export declare const ContractGeneratedGoDigest: "sha256:
|
|
7
|
-
export declare const ContractGeneratedTypeScriptDigest: "sha256:
|
|
6
|
+
export declare const ContractGeneratedGoDigest: "sha256:64d78d9952ac08558ad956eb4c923677a0691e6260743c0dbc367b57e59ea822";
|
|
7
|
+
export declare const ContractGeneratedTypeScriptDigest: "sha256:a99c149dbeb2b081bd460b95df4d44e29cc95e2fe2c737f4b012b7449c0c94d3";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
|
-
export const ContractRepositoryVersion = "0.
|
|
4
|
-
export const ContractPublishVersion = "0.
|
|
5
|
-
export const ContractPublishTag = "v0.
|
|
6
|
-
export const ContractSchemasDigest = "sha256:
|
|
3
|
+
export const ContractRepositoryVersion = "0.92.0.0";
|
|
4
|
+
export const ContractPublishVersion = "0.92.0";
|
|
5
|
+
export const ContractPublishTag = "v0.92.0";
|
|
6
|
+
export const ContractSchemasDigest = "sha256:5b6aede1f569d02bf976d5331c9e8eb1e657b062be28fb89565ff50acd105c5a";
|
|
7
7
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6";
|
|
8
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
9
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
8
|
+
export const ContractGeneratedGoDigest = "sha256:64d78d9952ac08558ad956eb4c923677a0691e6260743c0dbc367b57e59ea822";
|
|
9
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:a99c149dbeb2b081bd460b95df4d44e29cc95e2fe2c737f4b012b7449c0c94d3";
|
|
@@ -21,4 +21,24 @@ export type DeploymentAppRegistration = {
|
|
|
21
21
|
* @maxItems 1
|
|
22
22
|
*/
|
|
23
23
|
signInMethods?: ('phone' | 'email')[];
|
|
24
|
+
mailArrivalTarget?: {
|
|
25
|
+
functionArn: string;
|
|
26
|
+
versionId: string;
|
|
27
|
+
/**
|
|
28
|
+
* @minItems 1
|
|
29
|
+
* @maxItems 100
|
|
30
|
+
*/
|
|
31
|
+
jobs: {
|
|
32
|
+
name: string;
|
|
33
|
+
trigger: {
|
|
34
|
+
type: 'email.arrived';
|
|
35
|
+
connection: string;
|
|
36
|
+
resource: 'inbox';
|
|
37
|
+
filter?: {
|
|
38
|
+
from?: string;
|
|
39
|
+
subjectContains?: string;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
}[];
|
|
43
|
+
};
|
|
24
44
|
};
|
package/dist/gen-ts/index.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export * from './internal-configuration-request.js';
|
|
|
56
56
|
export * from './kit-bundle-manifest.js';
|
|
57
57
|
export * from './kit-lock.js';
|
|
58
58
|
export * from './kvs-routing-entry.js';
|
|
59
|
+
export * from './mail-arrival-event.js';
|
|
59
60
|
export * from './promotion-request.js';
|
|
60
61
|
export * from './promotion-response.js';
|
|
61
62
|
export * from './resolved-app-serving.js';
|
package/dist/gen-ts/index.js
CHANGED
|
@@ -58,6 +58,7 @@ export * from './internal-configuration-request.js';
|
|
|
58
58
|
export * from './kit-bundle-manifest.js';
|
|
59
59
|
export * from './kit-lock.js';
|
|
60
60
|
export * from './kvs-routing-entry.js';
|
|
61
|
+
export * from './mail-arrival-event.js';
|
|
61
62
|
export * from './promotion-request.js';
|
|
62
63
|
export * from './promotion-response.js';
|
|
63
64
|
export * from './resolved-app-serving.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IAM-authorized invocation of a deployed app Event Function. The delivery ID is stable across notification retries; runtime deduplicates before running the declared job. No tokens or message bodies.
|
|
3
|
+
*/
|
|
4
|
+
export interface MailArrivalEvent {
|
|
5
|
+
mailArrival: {
|
|
6
|
+
deliveryId: string;
|
|
7
|
+
job: string;
|
|
8
|
+
owner: string;
|
|
9
|
+
input: {
|
|
10
|
+
provider: 'gmail' | 'outlook';
|
|
11
|
+
sourceId: string;
|
|
12
|
+
messageId: string;
|
|
13
|
+
threadId: string;
|
|
14
|
+
receivedAt: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
3
|
|
|
4
|
-
export const ContractRepositoryVersion = "0.
|
|
5
|
-
export const ContractPublishVersion = "0.
|
|
6
|
-
export const ContractPublishTag = "v0.
|
|
7
|
-
export const ContractSchemasDigest = "sha256:
|
|
4
|
+
export const ContractRepositoryVersion = "0.92.0.0" as const;
|
|
5
|
+
export const ContractPublishVersion = "0.92.0" as const;
|
|
6
|
+
export const ContractPublishTag = "v0.92.0" as const;
|
|
7
|
+
export const ContractSchemasDigest = "sha256:5b6aede1f569d02bf976d5331c9e8eb1e657b062be28fb89565ff50acd105c5a" as const;
|
|
8
8
|
export const ContractAiFixturesDigest = "sha256:edac31c92e146ca1c40130f2fb5649db82e24b8cd1ac758153b90612052fddb6" as const;
|
|
9
|
-
export const ContractGeneratedGoDigest = "sha256:
|
|
10
|
-
export const ContractGeneratedTypeScriptDigest = "sha256:
|
|
9
|
+
export const ContractGeneratedGoDigest = "sha256:64d78d9952ac08558ad956eb4c923677a0691e6260743c0dbc367b57e59ea822" as const;
|
|
10
|
+
export const ContractGeneratedTypeScriptDigest = "sha256:a99c149dbeb2b081bd460b95df4d44e29cc95e2fe2c737f4b012b7449c0c94d3" as const;
|
|
@@ -24,4 +24,24 @@ export type DeploymentAppRegistration = {
|
|
|
24
24
|
* @maxItems 1
|
|
25
25
|
*/
|
|
26
26
|
signInMethods?: ('phone' | 'email')[];
|
|
27
|
+
mailArrivalTarget?: {
|
|
28
|
+
functionArn: string;
|
|
29
|
+
versionId: string;
|
|
30
|
+
/**
|
|
31
|
+
* @minItems 1
|
|
32
|
+
* @maxItems 100
|
|
33
|
+
*/
|
|
34
|
+
jobs: {
|
|
35
|
+
name: string;
|
|
36
|
+
trigger: {
|
|
37
|
+
type: 'email.arrived';
|
|
38
|
+
connection: string;
|
|
39
|
+
resource: 'inbox';
|
|
40
|
+
filter?: {
|
|
41
|
+
from?: string;
|
|
42
|
+
subjectContains?: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
}[];
|
|
46
|
+
};
|
|
27
47
|
};
|
package/gen-ts/index.ts
CHANGED
|
@@ -59,6 +59,7 @@ export * from './internal-configuration-request.js';
|
|
|
59
59
|
export * from './kit-bundle-manifest.js';
|
|
60
60
|
export * from './kit-lock.js';
|
|
61
61
|
export * from './kvs-routing-entry.js';
|
|
62
|
+
export * from './mail-arrival-event.js';
|
|
62
63
|
export * from './promotion-request.js';
|
|
63
64
|
export * from './promotion-response.js';
|
|
64
65
|
export * from './resolved-app-serving.js';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// Code generated by tools/gen/gen.mjs from schema/*.json. DO NOT EDIT.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* IAM-authorized invocation of a deployed app Event Function. The delivery ID is stable across notification retries; runtime deduplicates before running the declared job. No tokens or message bodies.
|
|
6
|
+
*/
|
|
7
|
+
export interface MailArrivalEvent {
|
|
8
|
+
mailArrival: {
|
|
9
|
+
deliveryId: string;
|
|
10
|
+
job: string;
|
|
11
|
+
owner: string;
|
|
12
|
+
input: {
|
|
13
|
+
provider: 'gmail' | 'outlook';
|
|
14
|
+
sourceId: string;
|
|
15
|
+
messageId: string;
|
|
16
|
+
threadId: string;
|
|
17
|
+
receivedAt: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
package/package.json
CHANGED
|
@@ -5,23 +5,205 @@
|
|
|
5
5
|
"description": "IAM/SigV4 POST /v1/internal/deployment/apps/{appId}/register (Internal API) or POST /v1/deployment/apps/register body. Governance derives tenant identity-provider configuration; no identity secrets are supplied. apiHostnames explicitly identifies API hosts among backendHostnames; runtime validates that subset. Omission preserves legacy .api. inference during the coordinated V2 auth migration.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
|
-
"required": [
|
|
8
|
+
"required": [
|
|
9
|
+
"tenantId",
|
|
10
|
+
"appId",
|
|
11
|
+
"origin"
|
|
12
|
+
],
|
|
9
13
|
"properties": {
|
|
10
|
-
"tenantId": {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
"tenantId": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1
|
|
17
|
+
},
|
|
18
|
+
"appId": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 1
|
|
21
|
+
},
|
|
22
|
+
"origin": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"format": "uri"
|
|
25
|
+
},
|
|
26
|
+
"publicHostname": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"format": "hostname"
|
|
29
|
+
},
|
|
30
|
+
"backendHostnames": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"uniqueItems": true,
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"format": "hostname"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"apiHostnames": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"uniqueItems": true,
|
|
41
|
+
"items": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"format": "hostname"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"pathPrefix": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"pattern": "^/"
|
|
49
|
+
},
|
|
50
|
+
"environment": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"enum": [
|
|
53
|
+
"preview",
|
|
54
|
+
"production"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"allowedDomains": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"items": {
|
|
60
|
+
"type": "string"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"allowedUsers": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"items": {
|
|
66
|
+
"type": "string"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"allowedGroups": {
|
|
70
|
+
"type": "array",
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "string"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"enabled": {
|
|
76
|
+
"type": "boolean"
|
|
77
|
+
},
|
|
78
|
+
"workloadPrincipalArn": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"pattern": "^arn:aws:(iam|sts)::[0-9]+:"
|
|
81
|
+
},
|
|
82
|
+
"signIn": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"enum": [
|
|
85
|
+
"company",
|
|
86
|
+
"external"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"signInMethods": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"items": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"enum": [
|
|
94
|
+
"phone",
|
|
95
|
+
"email"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"minItems": 1,
|
|
99
|
+
"maxItems": 1
|
|
100
|
+
},
|
|
101
|
+
"mailArrivalTarget": {
|
|
102
|
+
"type": "object",
|
|
103
|
+
"additionalProperties": false,
|
|
104
|
+
"required": [
|
|
105
|
+
"functionArn",
|
|
106
|
+
"versionId",
|
|
107
|
+
"jobs"
|
|
108
|
+
],
|
|
109
|
+
"properties": {
|
|
110
|
+
"functionArn": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"pattern": "^arn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:[A-Za-z0-9-_]+$"
|
|
113
|
+
},
|
|
114
|
+
"versionId": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"minLength": 1
|
|
117
|
+
},
|
|
118
|
+
"jobs": {
|
|
119
|
+
"type": "array",
|
|
120
|
+
"minItems": 1,
|
|
121
|
+
"maxItems": 100,
|
|
122
|
+
"items": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"additionalProperties": false,
|
|
125
|
+
"required": [
|
|
126
|
+
"name",
|
|
127
|
+
"trigger"
|
|
128
|
+
],
|
|
129
|
+
"properties": {
|
|
130
|
+
"name": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
133
|
+
},
|
|
134
|
+
"trigger": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"additionalProperties": false,
|
|
137
|
+
"required": [
|
|
138
|
+
"type",
|
|
139
|
+
"connection",
|
|
140
|
+
"resource"
|
|
141
|
+
],
|
|
142
|
+
"properties": {
|
|
143
|
+
"type": {
|
|
144
|
+
"const": "email.arrived"
|
|
145
|
+
},
|
|
146
|
+
"connection": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
149
|
+
},
|
|
150
|
+
"resource": {
|
|
151
|
+
"const": "inbox"
|
|
152
|
+
},
|
|
153
|
+
"filter": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"additionalProperties": false,
|
|
156
|
+
"properties": {
|
|
157
|
+
"from": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"minLength": 1,
|
|
160
|
+
"maxLength": 320
|
|
161
|
+
},
|
|
162
|
+
"subjectContains": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"minLength": 1,
|
|
165
|
+
"maxLength": 320
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
25
176
|
},
|
|
26
|
-
"allOf": [
|
|
177
|
+
"allOf": [
|
|
178
|
+
{
|
|
179
|
+
"if": {
|
|
180
|
+
"properties": {
|
|
181
|
+
"signIn": {
|
|
182
|
+
"const": "external"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"required": [
|
|
186
|
+
"signIn"
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
"then": {
|
|
190
|
+
"required": [
|
|
191
|
+
"signInMethods"
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"if": {
|
|
197
|
+
"required": [
|
|
198
|
+
"mailArrivalTarget"
|
|
199
|
+
]
|
|
200
|
+
},
|
|
201
|
+
"then": {
|
|
202
|
+
"required": [
|
|
203
|
+
"environment",
|
|
204
|
+
"workloadPrincipalArn"
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
]
|
|
27
209
|
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://contracts.harbour.dev/mail-arrival-event.schema.json",
|
|
4
|
+
"title": "MailArrivalEvent",
|
|
5
|
+
"description": "IAM-authorized invocation of a deployed app Event Function. The delivery ID is stable across notification retries; runtime deduplicates before running the declared job. No tokens or message bodies.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"mailArrival"
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"mailArrival": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"required": [
|
|
16
|
+
"deliveryId",
|
|
17
|
+
"job",
|
|
18
|
+
"owner",
|
|
19
|
+
"input"
|
|
20
|
+
],
|
|
21
|
+
"properties": {
|
|
22
|
+
"deliveryId": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
25
|
+
},
|
|
26
|
+
"job": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
29
|
+
},
|
|
30
|
+
"owner": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1,
|
|
33
|
+
"maxLength": 320
|
|
34
|
+
},
|
|
35
|
+
"input": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"required": [
|
|
39
|
+
"provider",
|
|
40
|
+
"sourceId",
|
|
41
|
+
"messageId",
|
|
42
|
+
"threadId",
|
|
43
|
+
"receivedAt"
|
|
44
|
+
],
|
|
45
|
+
"properties": {
|
|
46
|
+
"provider": {
|
|
47
|
+
"enum": [
|
|
48
|
+
"gmail",
|
|
49
|
+
"outlook"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"sourceId": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"minLength": 1,
|
|
55
|
+
"maxLength": 64
|
|
56
|
+
},
|
|
57
|
+
"messageId": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1,
|
|
60
|
+
"maxLength": 2048
|
|
61
|
+
},
|
|
62
|
+
"threadId": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"maxLength": 2048
|
|
65
|
+
},
|
|
66
|
+
"receivedAt": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"format": "date-time"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|