peak-sdk 1.5.0__py3-none-any.whl → 1.7.0__py3-none-any.whl

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 (69) hide show
  1. peak/_metadata.py +80 -5
  2. peak/_version.py +1 -1
  3. peak/cli/args.py +1 -0
  4. peak/cli/cli.py +3 -2
  5. peak/cli/helpers.py +1 -0
  6. peak/cli/press/apps/specs.py +2 -0
  7. peak/cli/press/blocks/specs.py +68 -24
  8. peak/cli/press/deployments.py +41 -0
  9. peak/cli/press/specs.py +4 -2
  10. peak/cli/resources/alerts/__init__.py +35 -0
  11. peak/cli/resources/alerts/emails.py +360 -0
  12. peak/cli/resources/images.py +19 -7
  13. peak/cli/resources/services.py +23 -0
  14. peak/cli/resources/tenants.py +4 -1
  15. peak/cli/resources/workflows.py +81 -19
  16. peak/cli/ruff.toml +5 -3
  17. peak/compression.py +2 -2
  18. peak/exceptions.py +4 -6
  19. peak/handler.py +3 -5
  20. peak/helpers.py +8 -9
  21. peak/output.py +2 -2
  22. peak/press/apps.py +18 -19
  23. peak/press/blocks.py +396 -155
  24. peak/press/deployments.py +30 -4
  25. peak/press/specs.py +12 -14
  26. peak/resources/__init__.py +3 -2
  27. peak/resources/alerts.py +309 -0
  28. peak/resources/artifacts.py +2 -4
  29. peak/resources/images.py +317 -100
  30. peak/resources/services.py +7 -6
  31. peak/resources/webapps.py +3 -5
  32. peak/resources/workflows.py +103 -13
  33. peak/sample_yaml/press/apps/specs/create_app_spec.yaml +2 -0
  34. peak/sample_yaml/press/apps/specs/create_app_spec_release.yaml +2 -0
  35. peak/sample_yaml/press/blocks/specs/service/api/create_block_spec.yaml +102 -0
  36. peak/sample_yaml/press/blocks/specs/service/api/create_block_spec_release.yaml +88 -0
  37. peak/sample_yaml/press/blocks/specs/service/webapp/create_block_spec.yaml +103 -0
  38. peak/sample_yaml/press/blocks/specs/service/webapp/create_block_spec_release.yaml +89 -0
  39. peak/sample_yaml/press/blocks/specs/{create_block_spec.yaml → workflow/create_block_spec.yaml} +20 -1
  40. peak/sample_yaml/press/blocks/specs/{create_block_spec_release.yaml → workflow/create_block_spec_release.yaml} +20 -1
  41. peak/sample_yaml/resources/emails/send_email.yaml +15 -0
  42. peak/sample_yaml/resources/images/dockerfile/create_image.yaml +3 -0
  43. peak/sample_yaml/resources/images/dockerfile/create_image_version.yaml +3 -0
  44. peak/sample_yaml/resources/images/dockerfile/update_version.yaml +3 -0
  45. peak/sample_yaml/resources/images/github/create_image.yaml +3 -0
  46. peak/sample_yaml/resources/images/github/create_image_version.yaml +3 -0
  47. peak/sample_yaml/resources/images/github/update_version.yaml +3 -0
  48. peak/sample_yaml/resources/images/upload/create_image.yaml +3 -0
  49. peak/sample_yaml/resources/images/upload/create_image_version.yaml +3 -0
  50. peak/sample_yaml/resources/images/upload/create_or_update_image.yaml +3 -0
  51. peak/sample_yaml/resources/images/upload/update_version.yaml +3 -0
  52. peak/sample_yaml/resources/services/create_or_update_service.yaml +1 -0
  53. peak/sample_yaml/resources/services/create_service.yaml +1 -0
  54. peak/sample_yaml/resources/services/update_service.yaml +1 -0
  55. peak/sample_yaml/resources/workflows/create_or_update_workflow.yaml +36 -0
  56. peak/sample_yaml/resources/workflows/create_workflow.yaml +19 -1
  57. peak/sample_yaml/resources/workflows/patch_workflow.yaml +36 -0
  58. peak/sample_yaml/resources/workflows/update_workflow.yaml +36 -0
  59. peak/session.py +1 -1
  60. peak/telemetry.py +1 -1
  61. peak/template.py +6 -4
  62. peak/tools/logging/__init__.py +26 -268
  63. peak/tools/logging/log_level.py +35 -3
  64. peak/tools/logging/logger.py +389 -0
  65. {peak_sdk-1.5.0.dist-info → peak_sdk-1.7.0.dist-info}/METADATA +19 -20
  66. {peak_sdk-1.5.0.dist-info → peak_sdk-1.7.0.dist-info}/RECORD +69 -60
  67. {peak_sdk-1.5.0.dist-info → peak_sdk-1.7.0.dist-info}/WHEEL +1 -1
  68. {peak_sdk-1.5.0.dist-info → peak_sdk-1.7.0.dist-info}/LICENSE +0 -0
  69. {peak_sdk-1.5.0.dist-info → peak_sdk-1.7.0.dist-info}/entry_points.txt +0 -0
@@ -19,6 +19,7 @@
19
19
  # # along with this program. If not, see <https://apache.org/licenses/LICENSE-2.0>
20
20
  #
21
21
  """Workflow client module."""
22
+
22
23
  from __future__ import annotations
23
24
 
24
25
  from typing import Any, Dict, Iterator, List, Literal, Optional, overload
@@ -51,8 +52,7 @@ class Workflow(BaseClient):
51
52
  name: Optional[str] = None,
52
53
  *,
53
54
  return_iterator: Literal[False],
54
- ) -> Dict[str, Any]:
55
- ...
55
+ ) -> Dict[str, Any]: ...
56
56
 
57
57
  @overload
58
58
  def list_workflows(
@@ -65,8 +65,7 @@ class Workflow(BaseClient):
65
65
  name: Optional[str] = None,
66
66
  *,
67
67
  return_iterator: Literal[True] = True,
68
- ) -> Iterator[Dict[str, Any]]:
69
- ...
68
+ ) -> Iterator[Dict[str, Any]]: ...
70
69
 
71
70
  def list_workflows(
72
71
  self: Workflow,
@@ -166,10 +165,30 @@ class Workflow(BaseClient):
166
165
  "runtimeExceeded": "number"
167
166
  },
168
167
  "user": "string",
168
+ },
169
+ {
170
+ "events": {
171
+ "success": "boolean",
172
+ "fail": "boolean",
173
+ "runtimeExceeded": "number"
174
+ },
169
175
  "webhook": {
170
176
  "name": "string(required)",
171
177
  "url": "string(required)",
172
- "payload": "string(required)",
178
+ "payload": "string(required)"
179
+ }
180
+ },
181
+ {
182
+ "events": {
183
+ "success": "boolean",
184
+ "fail": "boolean",
185
+ "runtimeExceeded": "number"
186
+ },
187
+ "email": {
188
+ "name": "string",
189
+ "recipients": {
190
+ "to": ["string"]
191
+ }
173
192
  }
174
193
  }
175
194
  ],
@@ -295,10 +314,30 @@ class Workflow(BaseClient):
295
314
  "runtimeExceeded": "number"
296
315
  },
297
316
  "user": "string",
317
+ },
318
+ {
319
+ "events": {
320
+ "success": "boolean",
321
+ "fail": "boolean",
322
+ "runtimeExceeded": "number"
323
+ },
298
324
  "webhook": {
299
325
  "name": "string(required)",
300
326
  "url": "string(required)",
301
- "payload": "string(required)",
327
+ "payload": "string(required)"
328
+ }
329
+ },
330
+ {
331
+ "events": {
332
+ "success": "boolean",
333
+ "fail": "boolean",
334
+ "runtimeExceeded": "number"
335
+ },
336
+ "email": {
337
+ "name": "string",
338
+ "recipients": {
339
+ "to": ["string"]
340
+ }
302
341
  }
303
342
  }
304
343
  ],
@@ -382,7 +421,7 @@ class Workflow(BaseClient):
382
421
  ForbiddenException: The user does not have permission to perform the operation.
383
422
  InternalServerErrorException: The server failed to process the request.
384
423
  """
385
- workflow_name = body["name"] if "name" in body else ""
424
+ workflow_name = body.get("name", "")
386
425
  response = (
387
426
  {}
388
427
  if not len(workflow_name)
@@ -463,10 +502,30 @@ class Workflow(BaseClient):
463
502
  "runtimeExceeded": "number"
464
503
  },
465
504
  "user": "string",
505
+ },
506
+ {
507
+ "events": {
508
+ "success": "boolean",
509
+ "fail": "boolean",
510
+ "runtimeExceeded": "number"
511
+ },
466
512
  "webhook": {
467
513
  "name": "string(required)",
468
514
  "url": "string(required)",
469
- "payload": "string(required)",
515
+ "payload": "string(required)"
516
+ }
517
+ },
518
+ {
519
+ "events": {
520
+ "success": "boolean",
521
+ "fail": "boolean",
522
+ "runtimeExceeded": "number"
523
+ },
524
+ "email": {
525
+ "name": "string",
526
+ "recipients": {
527
+ "to": ["string"]
528
+ }
470
529
  }
471
530
  }
472
531
  ],
@@ -624,10 +683,30 @@ class Workflow(BaseClient):
624
683
  "runtimeExceeded": "number"
625
684
  },
626
685
  "user": "string",
686
+ },
687
+ {
688
+ "events": {
689
+ "success": "boolean",
690
+ "fail": "boolean",
691
+ "runtimeExceeded": "number"
692
+ },
627
693
  "webhook": {
628
694
  "name": "string(required)",
629
695
  "url": "string(required)",
630
- "payload": "string(required)",
696
+ "payload": "string(required)"
697
+ }
698
+ },
699
+ {
700
+ "events": {
701
+ "success": "boolean",
702
+ "fail": "boolean",
703
+ "runtimeExceeded": "number"
704
+ },
705
+ "email": {
706
+ "name": "string",
707
+ "recipients": {
708
+ "to": ["string"]
709
+ }
631
710
  }
632
711
  }
633
712
  ],
@@ -961,12 +1040,13 @@ class Workflow(BaseClient):
961
1040
  workflow_id: int,
962
1041
  date_from: Optional[str] = None,
963
1042
  date_to: Optional[str] = None,
1043
+ status: Optional[List[str]] = None,
1044
+ count: Optional[int] = None,
964
1045
  page_size: Optional[int] = None,
965
1046
  page_number: Optional[int] = None,
966
1047
  *,
967
1048
  return_iterator: Literal[False],
968
- ) -> Dict[str, Any]:
969
- ...
1049
+ ) -> Dict[str, Any]: ...
970
1050
 
971
1051
  @overload
972
1052
  def list_executions(
@@ -974,18 +1054,21 @@ class Workflow(BaseClient):
974
1054
  workflow_id: int,
975
1055
  date_from: Optional[str] = None,
976
1056
  date_to: Optional[str] = None,
1057
+ status: Optional[List[str]] = None,
1058
+ count: Optional[int] = None,
977
1059
  page_size: Optional[int] = None,
978
1060
  page_number: Optional[int] = None,
979
1061
  *,
980
1062
  return_iterator: Literal[True] = True,
981
- ) -> Iterator[Dict[str, Any]]:
982
- ...
1063
+ ) -> Iterator[Dict[str, Any]]: ...
983
1064
 
984
1065
  def list_executions(
985
1066
  self: Workflow,
986
1067
  workflow_id: int,
987
1068
  date_from: Optional[str] = None,
988
1069
  date_to: Optional[str] = None,
1070
+ status: Optional[List[str]] = None,
1071
+ count: Optional[int] = None,
989
1072
  page_size: Optional[int] = None,
990
1073
  page_number: Optional[int] = None,
991
1074
  *,
@@ -1000,6 +1083,11 @@ class Workflow(BaseClient):
1000
1083
  workflow_id (int): ID of the workflow to fetch executions.
1001
1084
  date_from (str | None): The date after which the executions should be included (in ISO format). Defaults to None
1002
1085
  date_to (str | None): The date till which the executions should be included (in ISO format). Defaults to None
1086
+ status (List[str] | None): The status of the executions to filter by.
1087
+ Valid values are `Success`, `Running`, `Stopped`, `Stopping` and `Failed`.
1088
+ count (int | None): Number of executions required in the provided time range or 90 days (Ordered by latest to earliest).
1089
+ For example, if 5 is provided, it will return last 5 workflow executions.
1090
+ By default, it will return all the executions.
1003
1091
  page_size (int | None): Number of executions per page.
1004
1092
  page_number (int | None): Page number to fetch. Only used when return_iterator is False.
1005
1093
  return_iterator (bool): Whether to return an iterator object or list of executions for a specified page number, defaults to True.
@@ -1021,6 +1109,8 @@ class Workflow(BaseClient):
1021
1109
  method, endpoint = HttpMethods.GET, f"{self.BASE_ENDPOINT}/workflows/executions/{workflow_id}"
1022
1110
 
1023
1111
  params: Dict[str, Any] = {
1112
+ "count": count,
1113
+ "statuses": status,
1024
1114
  "dateTo": date_to,
1025
1115
  "dateFrom": date_from,
1026
1116
  "pageSize": page_size,
@@ -19,9 +19,11 @@ body:
19
19
  - id: existing_block_spec_id_1
20
20
  release:
21
21
  version: 1.0.0
22
+ autoRunOnDeploy: True
22
23
  - id: existing_block_spec_id_2
23
24
  release:
24
25
  version: 1.0.0
26
+ autoRunOnDeploy: False
25
27
  featured: true
26
28
  scope: shared
27
29
  tenants:
@@ -8,6 +8,8 @@ body:
8
8
  - id: existing_block_spec_id_1
9
9
  release:
10
10
  version: 2.0.0
11
+ autoRunOnDeploy: True
11
12
  - id: existing_block_spec_id_2
12
13
  release:
13
14
  version: 2.0.0
15
+ autoRunOnDeploy: False
@@ -0,0 +1,102 @@
1
+ body:
2
+ version: 1
3
+ kind: service
4
+ metadata:
5
+ name: api-service-block
6
+ title: API Service Block
7
+ summary: API Service Block
8
+ description: Creating a new service block spec of type api.
9
+ descriptionContentType: text/markdown
10
+ imageUrl: https://my-block-pics.com/image-0.jpg
11
+ tags:
12
+ - name: CLI
13
+ release:
14
+ version: 1.0.0
15
+ notes: This is the original release
16
+ config:
17
+ serviceType: api
18
+ image:
19
+ dockerfile: Dockerfile
20
+ context: "."
21
+ version: 0.0.1
22
+ parameters:
23
+ env:
24
+ param1: value1
25
+ param2: value2
26
+ secrets:
27
+ - secret1
28
+ - secret2
29
+ resources:
30
+ instanceTypeId: "@param:instance_type_id"
31
+ healthCheckURL: "@param:health_check_url"
32
+ entrypoint: |
33
+ python
34
+ app.py
35
+ minInstances: 1
36
+ parameters:
37
+ build:
38
+ - defaultValue: /health
39
+ description: Enter the health check URL
40
+ name: health_check_url
41
+ required: true
42
+ title: Health Check URL
43
+ type: string
44
+ hideValue: false
45
+ - defaultValue: 20
46
+ description: Select an instance type
47
+ name: instance_type_id
48
+ options:
49
+ - title: Pico (0.125CPU, 0.125GB RAM)
50
+ value: 20
51
+ - title: Nano (0.25CPU, 0.5GB RAM)
52
+ value: 21
53
+ - title: Micro (0.5CPU, 1GB RAM)
54
+ value: 22
55
+ required: true
56
+ title: Instance Type ID
57
+ type: number
58
+ run:
59
+ - defaultValue: AVG
60
+ description: Select an aggregation function (e.g., AVG, SUM, COUNT)
61
+ name: agg_type
62
+ required: false
63
+ title: Agg Type
64
+ type: string
65
+ hideValue: true
66
+ - defaultValue: false
67
+ description: Enable email notifications
68
+ name: email_notifications
69
+ required: false
70
+ title: Email Notifications
71
+ type: boolean
72
+ - defaultValue: 10
73
+ description: Select the number of iterations
74
+ name: num_iterations
75
+ options:
76
+ - title: Low
77
+ value: 10
78
+ - title: Medium
79
+ value: 50
80
+ - title: High
81
+ value: 100
82
+ required: false
83
+ title: Number of Iterations
84
+ type: number
85
+ - defaultValue:
86
+ - input.csv
87
+ - output.csv
88
+ description: Specify input and output file names
89
+ name: file_names
90
+ required: true
91
+ title: File Names
92
+ type: string_array
93
+ artifact:
94
+ path: "."
95
+ ignore_files:
96
+ - ".gitignore"
97
+ - ".dockerignore"
98
+ featured: true
99
+ scope: shared
100
+ tenants:
101
+ - tenant1
102
+ - tenant2
@@ -0,0 +1,88 @@
1
+ # block_spec_release.yaml
2
+
3
+ body:
4
+ release:
5
+ version: 2.0.0
6
+ notes: This is a new release
7
+ config:
8
+ serviceType: api
9
+ image:
10
+ dockerfile: Dockerfile
11
+ context: "."
12
+ version: 0.0.1
13
+ parameters:
14
+ env:
15
+ param1: value1
16
+ param2: value2
17
+ secrets:
18
+ - secret1
19
+ - secret2
20
+ resources:
21
+ instanceTypeId: "@param:instance_type_id"
22
+ healthCheckURL: "@param:health_check_url"
23
+ entrypoint: |
24
+ python
25
+ app.py
26
+ minInstances: 1
27
+ parameters:
28
+ build:
29
+ - defaultValue: /health
30
+ description: Enter the health check URL
31
+ name: health_check_url
32
+ required: true
33
+ title: Health Check URL
34
+ type: string
35
+ hideValue: false
36
+ - defaultValue: 20
37
+ description: Select an instance type
38
+ name: instance_type_id
39
+ options:
40
+ - title: Pico (0.125CPU, 0.125GB RAM)
41
+ value: 20
42
+ - title: Nano (0.25CPU, 0.5GB RAM)
43
+ value: 21
44
+ - title: Micro (0.5CPU, 1GB RAM)
45
+ value: 22
46
+ required: true
47
+ title: Instance Type ID
48
+ type: number
49
+ run:
50
+ - defaultValue: AVG
51
+ description: Select an aggregation function (e.g., AVG, SUM, COUNT)
52
+ name: agg_type
53
+ required: false
54
+ title: Agg Type
55
+ type: string
56
+ hideValue: true
57
+ - defaultValue: false
58
+ description: Enable email notifications
59
+ name: email_notifications
60
+ required: false
61
+ title: Email Notifications
62
+ type: boolean
63
+ - defaultValue: 10
64
+ description: Select the number of iterations
65
+ name: num_iterations
66
+ options:
67
+ - title: Low
68
+ value: 10
69
+ - title: Medium
70
+ value: 50
71
+ - title: High
72
+ value: 100
73
+ required: false
74
+ title: Number of Iterations
75
+ type: number
76
+ - defaultValue:
77
+ - input.csv
78
+ - output.csv
79
+ description: Specify input and output file names
80
+ name: file_names
81
+ required: true
82
+ title: File Names
83
+ type: string_array
84
+ artifact:
85
+ path: "."
86
+ ignore_files:
87
+ - ".gitignore"
88
+ - ".dockerignore"
@@ -0,0 +1,103 @@
1
+ body:
2
+ version: 1
3
+ kind: service
4
+ metadata:
5
+ name: webapp-service-block
6
+ title: Web App Service Block
7
+ summary: Web App Service Block
8
+ description: Creating a new service block spec of type web-app.
9
+ descriptionContentType: text/markdown
10
+ imageUrl: https://my-block-pics.com/image-0.jpg
11
+ tags:
12
+ - name: CLI
13
+ release:
14
+ version: 1.0.0
15
+ notes: This is the original release
16
+ config:
17
+ serviceType: web-app
18
+ image:
19
+ dockerfile: Dockerfile
20
+ context: "."
21
+ version: 0.0.1
22
+ parameters:
23
+ env:
24
+ param1: value1
25
+ param2: value2
26
+ secrets:
27
+ - secret1
28
+ - secret2
29
+ resources:
30
+ instanceTypeId: "@param:instance_type_id"
31
+ healthCheckURL: "@param:health_check_url"
32
+ sessionStickiness: false
33
+ entrypoint: |
34
+ python
35
+ app.py
36
+ minInstances: 1
37
+ parameters:
38
+ build:
39
+ - defaultValue: /health
40
+ description: Enter the health check URL
41
+ name: health_check_url
42
+ required: true
43
+ title: Health Check URL
44
+ type: string
45
+ hideValue: false
46
+ - defaultValue: 43
47
+ description: Select an instance type
48
+ name: instance_type_id
49
+ options:
50
+ - title: Pico (0.25CPU, 0.5GB RAM)
51
+ value: 43
52
+ - title: Nano (0.25CPU, 1GB RAM)
53
+ value: 44
54
+ - title: Micro (0.5CPU, 1GB RAM)
55
+ value: 45
56
+ required: true
57
+ title: Instance Type ID
58
+ type: number
59
+ run:
60
+ - defaultValue: AVG
61
+ description: Select an aggregation function (e.g., AVG, SUM, COUNT)
62
+ name: agg_type
63
+ required: false
64
+ title: Agg Type
65
+ type: string
66
+ hideValue: true
67
+ - defaultValue: false
68
+ description: Enable email notifications
69
+ name: email_notifications
70
+ required: false
71
+ title: Email Notifications
72
+ type: boolean
73
+ - defaultValue: 10
74
+ description: Select the number of iterations
75
+ name: num_iterations
76
+ options:
77
+ - title: Low
78
+ value: 10
79
+ - title: Medium
80
+ value: 50
81
+ - title: High
82
+ value: 100
83
+ required: false
84
+ title: Number of Iterations
85
+ type: number
86
+ - defaultValue:
87
+ - input.csv
88
+ - output.csv
89
+ description: Specify input and output file names
90
+ name: file_names
91
+ required: true
92
+ title: File Names
93
+ type: string_array
94
+ artifact:
95
+ path: "."
96
+ ignore_files:
97
+ - ".gitignore"
98
+ - ".dockerignore"
99
+ featured: true
100
+ scope: shared
101
+ tenants:
102
+ - tenant1
103
+ - tenant2
@@ -0,0 +1,89 @@
1
+ # block_spec_release.yaml
2
+
3
+ body:
4
+ release:
5
+ version: 2.0.0
6
+ notes: This is a new release
7
+ config:
8
+ serviceType: web-app
9
+ image:
10
+ dockerfile: Dockerfile
11
+ context: "."
12
+ version: 0.0.1
13
+ parameters:
14
+ env:
15
+ param1: value1
16
+ param2: value2
17
+ secrets:
18
+ - secret1
19
+ - secret2
20
+ resources:
21
+ instanceTypeId: "@param:instance_type_id"
22
+ healthCheckURL: "@param:health_check_url"
23
+ sessionStickiness: false
24
+ entrypoint: |
25
+ python
26
+ app.py
27
+ minInstances: 1
28
+ parameters:
29
+ build:
30
+ - defaultValue: /health
31
+ description: Enter the health check URL
32
+ name: health_check_url
33
+ required: true
34
+ title: Health Check URL
35
+ type: string
36
+ hideValue: false
37
+ - defaultValue: 43
38
+ description: Select an instance type
39
+ name: instance_type_id
40
+ options:
41
+ - title: Pico (0.25CPU, 0.5GB RAM)
42
+ value: 43
43
+ - title: Nano (0.25CPU, 1GB RAM)
44
+ value: 44
45
+ - title: Micro (0.5CPU, 1GB RAM)
46
+ value: 45
47
+ required: true
48
+ title: Instance Type ID
49
+ type: number
50
+ run:
51
+ - defaultValue: AVG
52
+ description: Select an aggregation function (e.g., AVG, SUM, COUNT)
53
+ name: agg_type
54
+ required: false
55
+ title: Agg Type
56
+ type: string
57
+ hideValue: true
58
+ - defaultValue: false
59
+ description: Enable email notifications
60
+ name: email_notifications
61
+ required: false
62
+ title: Email Notifications
63
+ type: boolean
64
+ - defaultValue: 10
65
+ description: Select the number of iterations
66
+ name: num_iterations
67
+ options:
68
+ - title: Low
69
+ value: 10
70
+ - title: Medium
71
+ value: 50
72
+ - title: High
73
+ value: 100
74
+ required: false
75
+ title: Number of Iterations
76
+ type: number
77
+ - defaultValue:
78
+ - input.csv
79
+ - output.csv
80
+ description: Specify input and output file names
81
+ name: file_names
82
+ required: true
83
+ title: File Names
84
+ type: string_array
85
+ artifact:
86
+ path: "."
87
+ ignore_files:
88
+ - ".gitignore"
89
+ - ".dockerignore"
@@ -38,7 +38,25 @@ body:
38
38
  - webhook:
39
39
  name: info
40
40
  url: https://abc.com/post
41
- payload: '{ "pingback-url": "https:/workflow/123" }'
41
+ payload: |
42
+ {
43
+ "system": "external_system",
44
+ "action": "update",
45
+ "data": {
46
+ "field": "value",
47
+ "timestamp": "2024-05-20T12:00:00Z"
48
+ }
49
+ }
50
+ events:
51
+ success: false
52
+ fail: true
53
+ runtimeExceeded: "@param:runtime_exceeded"
54
+ - email:
55
+ name: "email-watcher-1"
56
+ recipients:
57
+ to:
58
+ - "user1@peak.ai"
59
+ - "user2@peak.ai"
42
60
  events:
43
61
  success: false
44
62
  fail: true
@@ -112,6 +130,7 @@ artifact:
112
130
  - ".gitignore"
113
131
  - ".dockerignore"
114
132
  featured: true
133
+ autoRunOnDeploy: true
115
134
  scope: shared
116
135
  tenants:
117
136
  - tenant1
@@ -27,7 +27,25 @@ body:
27
27
  - webhook:
28
28
  name: info
29
29
  url: https://abc.com/post
30
- payload: '{ "pingback-url": "https:/workflow/123" }'
30
+ payload: |
31
+ {
32
+ "system": "external_system",
33
+ "action": "update",
34
+ "data": {
35
+ "field": "value",
36
+ "timestamp": "2024-05-20T12:00:00Z"
37
+ }
38
+ }
39
+ events:
40
+ success: false
41
+ fail: true
42
+ runtimeExceeded: "@param:runtime_exceeded"
43
+ - email:
44
+ name: "email-watcher-1"
45
+ recipients:
46
+ to:
47
+ - "user1@peak.ai"
48
+ - "user2@peak.ai"
31
49
  events:
32
50
  success: false
33
51
  fail: true
@@ -100,3 +118,4 @@ artifact:
100
118
  ignore_files:
101
119
  - ".gitignore"
102
120
  - ".dockerignore"
121
+ autoRunOnDeploy: true