@pipedream/trello 0.4.0 → 0.4.1

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 (65) hide show
  1. package/actions/add-attachment-to-card/add-attachment-to-card.mjs +34 -27
  2. package/actions/add-checklist/add-checklist.mjs +9 -19
  3. package/actions/add-comment/add-comment.mjs +4 -5
  4. package/actions/add-existing-label-to-card/add-existing-label-to-card.mjs +9 -19
  5. package/actions/add-member-to-card/add-member-to-card.mjs +9 -19
  6. package/actions/archive-card/archive-card.mjs +5 -6
  7. package/actions/{common.mjs → common/common.mjs} +1 -1
  8. package/actions/complete-checklist-item/complete-checklist-item.mjs +4 -14
  9. package/actions/create-board/create-board.mjs +10 -47
  10. package/actions/create-card/create-card.mjs +52 -47
  11. package/actions/create-checklist-item/create-checklist-item.mjs +4 -14
  12. package/actions/create-label/create-label.mjs +5 -18
  13. package/actions/create-list/create-list.mjs +4 -12
  14. package/actions/delete-checklist/delete-checklist.mjs +8 -18
  15. package/actions/find-labels/find-labels.mjs +2 -3
  16. package/actions/find-list/find-list.mjs +2 -2
  17. package/actions/get-card/get-card.mjs +2 -2
  18. package/actions/get-list/get-list.mjs +1 -1
  19. package/actions/move-card-to-list/move-card-to-list.mjs +2 -2
  20. package/actions/remove-label-from-card/remove-label-from-card.mjs +9 -18
  21. package/actions/rename-list/rename-list.mjs +2 -2
  22. package/actions/search-boards/search-boards.mjs +10 -8
  23. package/actions/search-cards/search-cards.mjs +11 -8
  24. package/actions/search-checklists/search-checklists.mjs +56 -75
  25. package/actions/search-members/search-members.mjs +13 -23
  26. package/actions/update-card/update-card.mjs +22 -21
  27. package/common/constants.mjs +128 -0
  28. package/common/fields.mjs +1 -0
  29. package/package.json +2 -1
  30. package/sources/card-archived/card-archived.mjs +16 -28
  31. package/sources/card-archived/test-event.mjs +64 -0
  32. package/sources/card-due-date-reminder/card-due-date-reminder.mjs +111 -33
  33. package/sources/card-due-date-reminder/test-event.mjs +75 -0
  34. package/sources/card-moved/card-moved.mjs +20 -23
  35. package/sources/card-moved/test-event.mjs +78 -0
  36. package/sources/card-updates/card-updates.mjs +20 -27
  37. package/sources/card-updates/test-event.mjs +86 -0
  38. package/sources/common/actions.mjs +206 -0
  39. package/sources/common/common-board-based.mjs +12 -7
  40. package/sources/common/common-webhook.mjs +27 -16
  41. package/sources/common/common.mjs +5 -2
  42. package/sources/custom-webhook-events/custom-webhook-events.mjs +17 -48
  43. package/sources/new-activity/new-activity.mjs +22 -31
  44. package/sources/new-attachment/new-attachment.mjs +40 -49
  45. package/sources/new-attachment/test-event.mjs +69 -0
  46. package/sources/new-board/new-board.mjs +18 -11
  47. package/sources/new-board/test-event.mjs +100 -0
  48. package/sources/new-card/new-card.mjs +20 -27
  49. package/sources/new-card/test-event.mjs +79 -0
  50. package/sources/new-checklist/new-checklist.mjs +39 -22
  51. package/sources/new-checklist/test-event.mjs +22 -0
  52. package/sources/new-comment-added-to-card/new-comment-added-to-card.mjs +38 -44
  53. package/sources/new-comment-added-to-card/test-event.mjs +298 -0
  54. package/sources/new-label/new-label.mjs +13 -14
  55. package/sources/new-label/test-event.mjs +7 -0
  56. package/sources/new-label-added-to-card/new-label-added-to-card.mjs +23 -24
  57. package/sources/new-label-added-to-card/test-event.mjs +85 -0
  58. package/sources/new-member-on-card/new-member-on-card.mjs +17 -26
  59. package/sources/new-member-on-card/test-event.mjs +83 -0
  60. package/sources/new-notification/new-notification.mjs +3 -12
  61. package/trello.app.mjs +211 -33
  62. package/actions/close-board/close-board.mjs +0 -31
  63. package/actions/create-checklist/create-checklist.mjs +0 -78
  64. package/actions/create-comment-on-card/create-comment-on-card.mjs +0 -59
  65. package/sources/new-list/new-list.mjs +0 -33
@@ -1,26 +1,26 @@
1
+ import app from "../../trello.app.mjs";
1
2
  import fs from "fs";
2
3
  import FormData from "form-data";
3
4
  import { ConfigurationError } from "@pipedream/platform";
4
- import common from "../common.mjs";
5
+ import constants from "../../common/constants.mjs";
5
6
 
6
7
  export default {
7
- ...common,
8
8
  key: "trello-create-card",
9
9
  name: "Create Card",
10
10
  description: "Creates a new card. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-post).",
11
- version: "0.1.0",
11
+ version: "0.1.1",
12
12
  type: "action",
13
13
  props: {
14
- ...common.props,
14
+ app,
15
15
  board: {
16
16
  propDefinition: [
17
- common.props.app,
17
+ app,
18
18
  "board",
19
19
  ],
20
20
  },
21
21
  name: {
22
22
  propDefinition: [
23
- common.props.app,
23
+ app,
24
24
  "name",
25
25
  ],
26
26
  description: "The name of the card.",
@@ -28,31 +28,32 @@ export default {
28
28
  },
29
29
  desc: {
30
30
  propDefinition: [
31
- common.props.app,
31
+ app,
32
32
  "desc",
33
33
  ],
34
34
  },
35
35
  pos: {
36
36
  propDefinition: [
37
- common.props.app,
37
+ app,
38
38
  "pos",
39
39
  ],
40
+ description: "The position of the new card. `top`, `bottom`, or a positive float",
40
41
  },
41
42
  due: {
42
43
  propDefinition: [
43
- common.props.app,
44
+ app,
44
45
  "due",
45
46
  ],
46
47
  },
47
48
  dueComplete: {
48
49
  propDefinition: [
49
- common.props.app,
50
+ app,
50
51
  "dueComplete",
51
52
  ],
52
53
  },
53
54
  idList: {
54
55
  propDefinition: [
55
- common.props.app,
56
+ app,
56
57
  "lists",
57
58
  (c) => ({
58
59
  board: c.board,
@@ -65,7 +66,7 @@ export default {
65
66
  },
66
67
  idMembers: {
67
68
  propDefinition: [
68
- common.props.app,
69
+ app,
69
70
  "member",
70
71
  (c) => ({
71
72
  board: c.board,
@@ -78,7 +79,7 @@ export default {
78
79
  },
79
80
  idLabels: {
80
81
  propDefinition: [
81
- common.props.app,
82
+ app,
82
83
  "label",
83
84
  (c) => ({
84
85
  board: c.board,
@@ -89,27 +90,38 @@ export default {
89
90
  description: "Array of labelIDs to add to the card",
90
91
  optional: true,
91
92
  },
92
- urlSource: {
93
+ fileType: {
93
94
  propDefinition: [
94
- common.props.app,
95
- "url",
95
+ app,
96
+ "fileType",
96
97
  ],
98
+ optional: true,
99
+ reloadProps: true,
97
100
  },
98
- mimeType: {
101
+ urlSource: {
99
102
  propDefinition: [
100
- common.props.app,
101
- "mimeType",
103
+ app,
104
+ "url",
102
105
  ],
106
+ hidden: true,
103
107
  },
104
108
  file: {
105
109
  propDefinition: [
106
- common.props.app,
110
+ app,
107
111
  "file",
108
112
  ],
113
+ hidden: true,
114
+ },
115
+ mimeType: {
116
+ propDefinition: [
117
+ app,
118
+ "mimeType",
119
+ ],
120
+ hidden: true,
109
121
  },
110
122
  idCardSource: {
111
123
  propDefinition: [
112
- common.props.app,
124
+ app,
113
125
  "cards",
114
126
  (c) => ({
115
127
  board: c.board,
@@ -118,44 +130,37 @@ export default {
118
130
  type: "string",
119
131
  label: "Copy Card",
120
132
  description: "Specify an existing card to copy contents from. Keep in mind that if you copy a card, the **File Attachment Path**, **File Attachment URL** and **File Attachment Type** fields will be ignored.",
133
+ reloadProps: true,
121
134
  },
122
135
  keepFromSource: {
123
136
  type: "string[]",
124
137
  label: "Copy From Source",
125
138
  description: "Specify which properties to copy from the source card",
126
- options: [
127
- "all",
128
- "attachments",
129
- "checklists",
130
- "comments",
131
- "due",
132
- "labels",
133
- "members",
134
- "stickers",
135
- ],
139
+ options: constants.CARD_KEEP_FROM_SOURCE_PROPERTIES,
136
140
  optional: true,
141
+ hidden: true,
137
142
  },
138
143
  address: {
139
144
  propDefinition: [
140
- common.props.app,
145
+ app,
141
146
  "address",
142
147
  ],
143
148
  },
144
149
  locationName: {
145
150
  propDefinition: [
146
- common.props.app,
151
+ app,
147
152
  "locationName",
148
153
  ],
149
154
  },
150
155
  coordinates: {
151
156
  propDefinition: [
152
- common.props.app,
157
+ app,
153
158
  "coordinates",
154
159
  ],
155
160
  },
156
161
  customFieldIds: {
157
162
  propDefinition: [
158
- common.props.app,
163
+ app,
159
164
  "customFieldIds",
160
165
  (c) => ({
161
166
  boardId: c.board,
@@ -164,8 +169,17 @@ export default {
164
169
  reloadProps: true,
165
170
  },
166
171
  },
167
- async additionalProps() {
172
+ async additionalProps(existingProps) {
168
173
  const props = {};
174
+
175
+ const attachmentIsPath = this.fileType === "path";
176
+ const attachmentIsUrl = this.fileType === "url";
177
+ existingProps.file.hidden = !attachmentIsPath;
178
+ existingProps.mimeType.hidden = !attachmentIsPath;
179
+ existingProps.urlSource.hidden = !attachmentIsUrl;
180
+
181
+ existingProps.keepFromSource.hidden = !this.idCardSource;
182
+
169
183
  if (!this.customFieldIds?.length) {
170
184
  return props;
171
185
  }
@@ -187,7 +201,6 @@ export default {
187
201
  return props;
188
202
  },
189
203
  methods: {
190
- ...common.methods,
191
204
  async getCustomFieldItems($) {
192
205
  const customFieldItems = [];
193
206
  for (const customFieldId of this.customFieldIds) {
@@ -213,16 +226,9 @@ export default {
213
226
  }
214
227
  return customFieldItems;
215
228
  },
216
- createCard(args = {}) {
217
- return this.app.post({
218
- path: "/cards",
219
- ...args,
220
- });
221
- },
222
229
  },
223
230
  async run({ $ }) {
224
231
  const {
225
- createCard,
226
232
  name,
227
233
  desc,
228
234
  pos,
@@ -268,15 +274,14 @@ export default {
268
274
  const form = new FormData();
269
275
  form.append("fileSource", fs.createReadStream(file));
270
276
 
271
- response = await createCard({
277
+ response = await this.app.createCard({
272
278
  $,
273
279
  params,
274
280
  headers: form.getHeaders(),
275
281
  data: form,
276
282
  });
277
-
278
283
  } else {
279
- response = await createCard({
284
+ response = await this.app.createCard({
280
285
  $,
281
286
  params: {
282
287
  ...params,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "trello-create-checklist-item",
5
5
  name: "Create a Checklist Item",
6
6
  description: "Creates a new checklist item in a card. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-checklists/#api-checklists-id-checkitems-post).",
7
- version: "0.2.0",
7
+ version: "0.2.1",
8
8
  type: "action",
9
9
  props: {
10
10
  app,
@@ -20,6 +20,7 @@ export default {
20
20
  "cards",
21
21
  ({ board }) => ({
22
22
  board,
23
+ checklistCardsOnly: true,
23
24
  }),
24
25
  ],
25
26
  type: "string",
@@ -56,26 +57,15 @@ export default {
56
57
  optional: true,
57
58
  },
58
59
  },
59
- methods: {
60
- createChecklistItem({
61
- checklistId, ...args
62
- } = {}) {
63
- return this.app.post({
64
- path: `/checklists/${checklistId}/checkItems`,
65
- ...args,
66
- });
67
- },
68
- },
69
60
  async run({ $ }) {
70
61
  const {
71
- createChecklistItem,
72
62
  checklistId,
73
63
  name,
74
64
  pos,
75
65
  checked,
76
66
  } = this;
77
67
 
78
- const response = await createChecklistItem({
68
+ const response = await this.app.createChecklistItem({
79
69
  $,
80
70
  checklistId,
81
71
  params: {
@@ -85,7 +75,7 @@ export default {
85
75
  },
86
76
  });
87
77
 
88
- $.export("$summary", "Successfully created a checklist item");
78
+ $.export("$summary", `Successfully created a checklist item with ID: ${response.id}`);
89
79
 
90
80
  return response;
91
81
  },
@@ -1,10 +1,11 @@
1
1
  import app from "../../trello.app.mjs";
2
+ import constants from "../../common/constants.mjs";
2
3
 
3
4
  export default {
4
5
  key: "trello-create-label",
5
6
  name: "Create Label",
6
7
  description: "Creates a new label on the specified board. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-labels/#api-labels-post).",
7
- version: "0.2.0",
8
+ version: "0.2.1",
8
9
  type: "action",
9
10
  props: {
10
11
  app,
@@ -26,19 +27,7 @@ export default {
26
27
  type: "string",
27
28
  label: "Color",
28
29
  description: "The color for the label. One of: yellow, purple, blue, red, green, orange, black, sky, pink, lime, null (null means no color, and the label will not show on the front of cards)",
29
- options: [
30
- "yellow",
31
- "purple",
32
- "blue",
33
- "red",
34
- "green",
35
- "orange",
36
- "black",
37
- "sky",
38
- "pink",
39
- "lime",
40
- "null",
41
- ],
30
+ options: constants.LABEL_COLORS,
42
31
  },
43
32
  },
44
33
  methods: {
@@ -50,15 +39,13 @@ export default {
50
39
  },
51
40
  },
52
41
  async run({ $ }) {
53
-
54
42
  const {
55
- createLabel,
56
43
  idBoard,
57
44
  name,
58
45
  color,
59
46
  } = this;
60
47
 
61
- const response = await createLabel({
48
+ const response = await this.app.createLabel({
62
49
  $,
63
50
  params: {
64
51
  idBoard,
@@ -67,7 +54,7 @@ export default {
67
54
  },
68
55
  });
69
56
 
70
- $.export("$summary", "Successfully created a label");
57
+ $.export("$summary", `Successfully created label ${this.name}`);
71
58
 
72
59
  return response;
73
60
  },
@@ -4,7 +4,7 @@ export default {
4
4
  key: "trello-create-list",
5
5
  name: "Create a List",
6
6
  description: "Creates a new list. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-lists/#api-lists-post).",
7
- version: "0.2.0",
7
+ version: "0.2.1",
8
8
  type: "action",
9
9
  props: {
10
10
  app,
@@ -40,26 +40,18 @@ export default {
40
40
  app,
41
41
  "pos",
42
42
  ],
43
- },
44
- },
45
- methods: {
46
- createList(args = {}) {
47
- return this.app.post({
48
- path: "/lists",
49
- ...args,
50
- });
43
+ description: "Position of the list. `top`, `bottom`, or a positive floating point number",
51
44
  },
52
45
  },
53
46
  async run({ $ }) {
54
47
  const {
55
- createList,
56
48
  name,
57
49
  idBoard,
58
50
  idListSource,
59
51
  pos,
60
52
  } = this;
61
53
 
62
- const response = await createList({
54
+ const response = await this.app.createList({
63
55
  $,
64
56
  params: {
65
57
  name,
@@ -69,7 +61,7 @@ export default {
69
61
  },
70
62
  });
71
63
 
72
- $.export("$summary", "Successfully created list.");
64
+ $.export("$summary", `Successfully created list ${this.name}`);
73
65
 
74
66
  return response;
75
67
  },
@@ -1,26 +1,26 @@
1
- import common from "../common.mjs";
1
+ import app from "../../trello.app.mjs";
2
2
 
3
3
  export default {
4
- ...common,
5
4
  key: "trello-delete-checklist",
6
5
  name: "Delete Checklist",
7
6
  description: "Deletes the specified checklist. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-checklists/#api-checklists-id-delete).",
8
- version: "0.2.0",
7
+ version: "0.2.1",
9
8
  type: "action",
10
9
  props: {
11
- ...common.props,
10
+ app,
12
11
  board: {
13
12
  propDefinition: [
14
- common.props.app,
13
+ app,
15
14
  "board",
16
15
  ],
17
16
  },
18
17
  carId: {
19
18
  propDefinition: [
20
- common.props.app,
19
+ app,
21
20
  "cards",
22
21
  (c) => ({
23
22
  board: c.board,
23
+ checklistCardsOnly: true,
24
24
  }),
25
25
  ],
26
26
  type: "string",
@@ -30,7 +30,7 @@ export default {
30
30
  },
31
31
  checklistId: {
32
32
  propDefinition: [
33
- common.props.app,
33
+ app,
34
34
  "checklist",
35
35
  ({ carId }) => ({
36
36
  card: carId,
@@ -39,18 +39,8 @@ export default {
39
39
  description: "The ID of the checklist to delete",
40
40
  },
41
41
  },
42
- methods: {
43
- deleteChecklist({
44
- checklistId, ...args
45
- } = {}) {
46
- return this.app.delete({
47
- path: `/checklists/${checklistId}`,
48
- ...args,
49
- });
50
- },
51
- },
52
42
  async run({ $ }) {
53
- await this.deleteChecklist({
43
+ await this.app.deleteChecklist({
54
44
  $,
55
45
  checklistId: this.checklistId,
56
46
  });
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-find-labels",
6
6
  name: "Find a Label",
7
7
  description: "Finds a label on a specific board by name. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-boards/#api-boards-id-labels-get)",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -23,7 +23,6 @@ export default {
23
23
  ],
24
24
  label: "Label Name",
25
25
  description: "Name of the label to find.",
26
- optional: false,
27
26
  },
28
27
  limit: {
29
28
  type: "integer",
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-find-list",
6
6
  name: "Find a List",
7
7
  description: "Finds a list on a specific board by name. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-boards/#api-boards-id-lists-get).",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-get-card",
6
6
  name: "Get Card",
7
7
  description: "Gets a card by its ID. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-get).",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "trello-get-list",
5
5
  name: "Get List",
6
6
  description: "Get information about a List. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-lists/#api-lists-id-get).",
7
- version: "0.1.0",
7
+ version: "0.1.1",
8
8
  type: "action",
9
9
  props: {
10
10
  app,
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-move-card-to-list",
6
6
  name: "Move Card to List",
7
7
  description: "Moves a card to the specified board/list pair. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-put).",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -1,23 +1,22 @@
1
- import common from "../common.mjs";
1
+ import app from "../../trello.app.mjs";
2
2
 
3
3
  export default {
4
- ...common,
5
4
  key: "trello-remove-label-from-card",
6
5
  name: "Remove Card Label",
7
6
  description: "Removes label from card. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-idlabels-idlabel-delete).",
8
- version: "0.2.0",
7
+ version: "0.2.1",
9
8
  type: "action",
10
9
  props: {
11
- ...common.props,
10
+ app,
12
11
  board: {
13
12
  propDefinition: [
14
- common.props.app,
13
+ app,
15
14
  "board",
16
15
  ],
17
16
  },
18
17
  cardId: {
19
18
  propDefinition: [
20
- common.props.app,
19
+ app,
21
20
  "cards",
22
21
  (c) => ({
23
22
  board: c.board,
@@ -30,27 +29,19 @@ export default {
30
29
  },
31
30
  labelId: {
32
31
  propDefinition: [
33
- common.props.app,
32
+ app,
34
33
  "label",
35
34
  (c) => ({
36
35
  board: c.board,
36
+ card: c.cardId,
37
+ cardLabelsOnly: true,
37
38
  }),
38
39
  ],
39
40
  description: "The ID of the Label to be removed from the card.",
40
41
  },
41
42
  },
42
- methods: {
43
- removeLabelFromCard({
44
- cardId, labelId, ...args
45
- } = {}) {
46
- return this.app.delete({
47
- path: `/cards/${cardId}/idLabels/${labelId}`,
48
- ...args,
49
- });
50
- },
51
- },
52
43
  async run({ $ }) {
53
- await this.removeLabelFromCard({
44
+ await this.app.removeLabelFromCard({
54
45
  $,
55
46
  cardId: this.cardId,
56
47
  labelId: this.labelId,
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-rename-list",
6
6
  name: "Rename List",
7
7
  description: "Renames an existing list. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-lists/#api-lists-id-put).",
8
- version: "0.1.0",
8
+ version: "0.1.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -1,44 +1,46 @@
1
- import common from "../common.mjs";
1
+ import app from "../../trello.app.mjs";
2
2
 
3
3
  export default {
4
- ...common,
5
4
  key: "trello-search-boards",
6
5
  name: "Search Boards",
7
6
  description: "Searches for boards matching the specified query. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-search/#api-search-get).",
8
- version: "0.3.0",
7
+ version: "0.3.1",
9
8
  type: "action",
10
9
  props: {
11
- ...common.props,
10
+ app,
12
11
  query: {
13
12
  propDefinition: [
14
- common.props.app,
13
+ app,
15
14
  "query",
16
15
  ],
17
16
  },
18
17
  idOrganizations: {
19
18
  propDefinition: [
20
- common.props.app,
19
+ app,
21
20
  "idOrganizations",
22
21
  ],
23
22
  description: "Specify the organizations to search for boards in",
24
23
  },
25
24
  partial: {
26
25
  propDefinition: [
27
- common.props.app,
26
+ app,
28
27
  "partial",
29
28
  ],
29
+ optional: true,
30
30
  },
31
31
  boardFields: {
32
32
  propDefinition: [
33
- common.props.app,
33
+ app,
34
34
  "boardFields",
35
35
  ],
36
+ optional: true,
36
37
  },
37
38
  boardsLimit: {
38
39
  type: "integer",
39
40
  label: "Boards Limit",
40
41
  description: "The maximum number of boards to return.",
41
42
  default: 10,
43
+ optional: true,
42
44
  },
43
45
  },
44
46
  async run({ $ }) {