@justworkflowit/cdk-constructs 0.0.320 → 0.0.321
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/package.json +4 -3
- package/resource-contract.json +129 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justworkflowit/cdk-constructs",
|
|
3
3
|
"description": "AWS CDK construct for integrating with the JustWorkflowIt platform",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.321",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/justworkflowit/JustWorkflowItCDKConstructs"
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"files": [
|
|
21
21
|
"dist",
|
|
22
|
-
"README.md"
|
|
22
|
+
"README.md",
|
|
23
|
+
"resource-contract.json"
|
|
23
24
|
],
|
|
24
25
|
"keywords": [],
|
|
25
26
|
"author": "",
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
"@aws-sdk/client-s3": "^3.842.0",
|
|
30
31
|
"@aws-sdk/client-secrets-manager": "^3.985.0",
|
|
31
32
|
"@justworkflowit/api-client": "*",
|
|
32
|
-
"@justworkflowit/engine": "^0.0.
|
|
33
|
+
"@justworkflowit/engine": "^0.0.82",
|
|
33
34
|
"@smithy/types": "^4.0.0",
|
|
34
35
|
"aws-cdk-lib": "^2.0.0",
|
|
35
36
|
"constructs": "^10.0.0",
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"description": "Defines the cloud-agnostic resource contract that all JustWorkflowIt infrastructure modules must satisfy. The CDK constructs package is the source of truth.",
|
|
4
|
+
"inputs": {
|
|
5
|
+
"disambiguator": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"required": true,
|
|
8
|
+
"description": "Unique identifier to differentiate multiple module instances in the same account/project"
|
|
9
|
+
},
|
|
10
|
+
"organization_id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"required": true,
|
|
13
|
+
"description": "JustWorkflowIt organization ID (UUID)"
|
|
14
|
+
},
|
|
15
|
+
"workflow_definitions": {
|
|
16
|
+
"type": "list(string)",
|
|
17
|
+
"required": true,
|
|
18
|
+
"description": "Array of JSON-stringified workflow definitions to deploy"
|
|
19
|
+
},
|
|
20
|
+
"ignore_deployer_failures": {
|
|
21
|
+
"type": "bool",
|
|
22
|
+
"required": false,
|
|
23
|
+
"default": false,
|
|
24
|
+
"description": "If true, module deployment won't fail if workflow registration errors"
|
|
25
|
+
},
|
|
26
|
+
"lambda_arns": {
|
|
27
|
+
"type": "list(string)",
|
|
28
|
+
"required": false,
|
|
29
|
+
"default": [],
|
|
30
|
+
"cloud": "aws",
|
|
31
|
+
"description": "AWS Lambda function ARNs to grant invoke permissions to"
|
|
32
|
+
},
|
|
33
|
+
"sns_topic_arns": {
|
|
34
|
+
"type": "list(string)",
|
|
35
|
+
"required": false,
|
|
36
|
+
"default": [],
|
|
37
|
+
"cloud": "aws",
|
|
38
|
+
"description": "AWS SNS topic ARNs to grant publish permissions to"
|
|
39
|
+
},
|
|
40
|
+
"sqs_queue_arns": {
|
|
41
|
+
"type": "list(string)",
|
|
42
|
+
"required": false,
|
|
43
|
+
"default": [],
|
|
44
|
+
"cloud": "aws",
|
|
45
|
+
"description": "AWS SQS queue ARNs to grant send message permissions to"
|
|
46
|
+
},
|
|
47
|
+
"cloud_function_urls": {
|
|
48
|
+
"type": "list(string)",
|
|
49
|
+
"required": false,
|
|
50
|
+
"default": [],
|
|
51
|
+
"cloud": "gcp",
|
|
52
|
+
"description": "GCP Cloud Function URLs to grant invoke permissions to"
|
|
53
|
+
},
|
|
54
|
+
"pubsub_topic_ids": {
|
|
55
|
+
"type": "list(string)",
|
|
56
|
+
"required": false,
|
|
57
|
+
"default": [],
|
|
58
|
+
"cloud": "gcp",
|
|
59
|
+
"description": "GCP Pub/Sub topic IDs to grant publish permissions to"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"outputs": {
|
|
63
|
+
"execution_role_arn_or_id": {
|
|
64
|
+
"description": "ARN (AWS) or email (GCP) of the role/service account for JustWorkflowIt to assume"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"resources": {
|
|
68
|
+
"auth_secret": {
|
|
69
|
+
"description": "Secret storing the JustWorkflowIt API auth token",
|
|
70
|
+
"properties": {
|
|
71
|
+
"path": "/justworkflowit/api/authToken",
|
|
72
|
+
"initial_value": "REPLACE_ME_WITH_JUST_WORKFLOW_IT_AUTH_TOKEN"
|
|
73
|
+
},
|
|
74
|
+
"terraform_resource_types": {
|
|
75
|
+
"aws": "aws_secretsmanager_secret",
|
|
76
|
+
"gcp": "google_secret_manager_secret"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"definition_storage": {
|
|
80
|
+
"description": "Object storage bucket for workflow definition JSON files",
|
|
81
|
+
"properties": {
|
|
82
|
+
"encryption": true,
|
|
83
|
+
"no_public_access": true,
|
|
84
|
+
"auto_cleanup_on_destroy": true,
|
|
85
|
+
"enforce_ssl": true
|
|
86
|
+
},
|
|
87
|
+
"terraform_resource_types": {
|
|
88
|
+
"aws": "aws_s3_bucket",
|
|
89
|
+
"gcp": "google_storage_bucket"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"definition_deployer": {
|
|
93
|
+
"description": "Serverless function that registers workflows via the JustWorkflowIt API on deployment",
|
|
94
|
+
"properties": {
|
|
95
|
+
"runtime": "nodejs24",
|
|
96
|
+
"timeout_seconds": 300,
|
|
97
|
+
"triggered_on_deploy": true,
|
|
98
|
+
"env_vars": [
|
|
99
|
+
"AUTH_SECRET_NAME",
|
|
100
|
+
"ORGANIZATION_ID",
|
|
101
|
+
"API_BASE_URL",
|
|
102
|
+
"DEFINITION_BUCKET",
|
|
103
|
+
"DEFINITION_KEYS_JSON",
|
|
104
|
+
"IGNORE_FAILURES"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"terraform_resource_types": {
|
|
108
|
+
"aws": "aws_lambda_function",
|
|
109
|
+
"gcp": "google_cloudfunctions2_function"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"execution_role": {
|
|
113
|
+
"description": "Cross-account/project role for JustWorkflowIt backend to assume when executing workflow steps",
|
|
114
|
+
"properties": {
|
|
115
|
+
"trusted_principal": "JustWorkflowIt production environment",
|
|
116
|
+
"external_id": "organization_id",
|
|
117
|
+
"conditional_permissions": [
|
|
118
|
+
"invoke_function",
|
|
119
|
+
"publish_message",
|
|
120
|
+
"send_queue_message"
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"terraform_resource_types": {
|
|
124
|
+
"aws": "aws_iam_role",
|
|
125
|
+
"gcp": "google_service_account"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|