Fix atualização funcionalidades - #16
Hidden character warning
Conversation
There was a problem hiding this comment.
Pull request overview
Expands the Clicksign n8n community node with additional Clicksign resources/operations (e.g., Webhook, User, Membership, WhatsApp Acceptance Term), plus several enhancements to existing resources (Envelope, Document, Event, Requirement, Watcher, Notification), and updates package/node versions and README to reflect the new surface area.
Changes:
- Add new resources and executors: Webhook, User, Membership, WhatsApp Acceptance Term
- Enhance existing resources: Document (duplicate), Event (custom event + filtering), Requirement (new auth types + rubric fields), Envelope (new deadline action + remind interval options), Notification (email customization), Watcher/Signer (new event/host fields)
- Bump versions and update documentation/ignore rules
Reviewed changes
Copilot reviewed 78 out of 79 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates supported resources/operations documentation. |
| package.json | Bumps package version to 1.1.0. |
| nodes/Clicksign/Clicksign.node.json | Bumps nodeVersion to 1.1. |
| .gitignore | Updates ignored folders/files list. |
| nodes/Clicksign/properties/index.ts | Registers new resource property groups (webhook/user/membership/whatsappAcceptance). |
| nodes/Clicksign/properties/resources.ts | Adds new resources to the resource selector. |
| nodes/Clicksign/properties/executors.ts | Wires new executors and new operations into the dispatcher. |
| nodes/Clicksign/properties/document/operations.ts | Adds “Create By Duplicate” document operation. |
| nodes/Clicksign/properties/document/index.ts | Registers duplicate-document fields in document resource. |
| nodes/Clicksign/properties/document/createByDuplicate/createByDuplicate.fields.ts | Adds UI fields for duplicating a document. |
| nodes/Clicksign/properties/document/createByDuplicate/createByDuplicate.execute.ts | Implements API call to create a duplicated document. |
| nodes/Clicksign/properties/event/operations.ts | Adds “Create Custom Event” operation. |
| nodes/Clicksign/properties/event/index.ts | Registers custom-event fields. |
| nodes/Clicksign/properties/event/fromDocument/fromDocument.fields.ts | Adds filter-by-name field for document events. |
| nodes/Clicksign/properties/event/fromDocument/fromDocument.execute.ts | Implements filter[name] query for document events. |
| nodes/Clicksign/properties/event/createCustom/createCustom.fields.ts | Adds fields to create token/image events. |
| nodes/Clicksign/properties/event/createCustom/createCustom.execute.ts | Implements custom event creation request body. |
| nodes/Clicksign/properties/envelope/create/create.fields.ts | Changes remind interval to options + adds deadline partial signature action. |
| nodes/Clicksign/properties/envelope/create/create.execute.ts | Sends remind interval + new deadline action attribute on create. |
| nodes/Clicksign/properties/envelope/update/update.fields.ts | Changes remind interval to options + adds deadline partial signature action. |
| nodes/Clicksign/properties/envelope/update/update.execute.ts | Sends new deadline action attribute on update. |
| nodes/Clicksign/properties/requirement/shared/auth.options.ts | Adds new authentication option values. |
| nodes/Clicksign/properties/requirement/shared/addRequirement/addRequirement.execute.ts | Broadens requirement attribute typing to allow non-string values. |
| nodes/Clicksign/properties/requirement/addRubric/addRubric.fields.ts | Adds rubric kind + rubric field inputs; makes pages optional. |
| nodes/Clicksign/properties/requirement/addRubric/addRubric.execute.ts | Sends kind/rubric_field in rubric requirement requests. |
| nodes/Clicksign/properties/requirement/bulk/bulk.fields.ts | Adds rubric kind/rubric field inputs to bulk requirement operations. |
| nodes/Clicksign/properties/requirement/bulk/bulk.execute.ts | Includes kind/rubric_field in bulk add-operation payloads. |
| nodes/Clicksign/properties/notification/shared/emailCustomization.fields.ts | Adds a reusable “Email Customization” collection for notification operations. |
| nodes/Clicksign/properties/notification/shared/emailCustomization.execute.ts | Builds API-shaped email_customization payload from node params. |
| nodes/Clicksign/properties/notification/notifyEnvelope/notifyEnvelope.fields.ts | Exposes email customization fields for notify-envelope. |
| nodes/Clicksign/properties/notification/notifyEnvelope/notifyEnvelope.execute.ts | Sends email_customization on notify-envelope requests. |
| nodes/Clicksign/properties/notification/notifySigner/notifySigner.fields.ts | Exposes email customization fields for notify-signer. |
| nodes/Clicksign/properties/notification/notifySigner/notifySigner.execute.ts | Sends email_customization on notify-signer requests. |
| nodes/Clicksign/properties/watcher/create/create.fields.ts | Adds event notification configuration to watcher create UI. |
| nodes/Clicksign/properties/watcher/create/create.execute.ts | Sends communicate_events for watcher creation. |
| nodes/Clicksign/properties/signer/create/create.fields.ts | Adds signature host configuration fields. |
| nodes/Clicksign/properties/signer/create/create.execute.ts | Sends signature_host payload when provided. |
| nodes/Clicksign/properties/webhook/operations.ts | Adds webhook operations list. |
| nodes/Clicksign/properties/webhook/index.ts | Registers webhook operation fields. |
| nodes/Clicksign/properties/webhook/shared/events.options.ts | Adds selectable webhook event options. |
| nodes/Clicksign/properties/webhook/create/create.fields.ts | Adds fields to create webhooks. |
| nodes/Clicksign/properties/webhook/create/create.execute.ts | Implements webhook creation request. |
| nodes/Clicksign/properties/webhook/getAll/getAll.fields.ts | Adds placeholder fields for list-all webhooks. |
| nodes/Clicksign/properties/webhook/getAll/getAll.execute.ts | Implements list-all webhooks request. |
| nodes/Clicksign/properties/webhook/getDetails/getDetails.fields.ts | Adds webhookId field for get-details. |
| nodes/Clicksign/properties/webhook/getDetails/getDetails.execute.ts | Implements get-details request. |
| nodes/Clicksign/properties/webhook/update/update.fields.ts | Adds webhook update fields (endpoint/status/events). |
| nodes/Clicksign/properties/webhook/update/update.execute.ts | Implements webhook update request. |
| nodes/Clicksign/properties/webhook/delete/delete.fields.ts | Adds webhookId field for delete. |
| nodes/Clicksign/properties/webhook/delete/delete.execute.ts | Implements webhook delete request. |
| nodes/Clicksign/properties/user/operations.ts | Adds user operations list. |
| nodes/Clicksign/properties/user/index.ts | Registers user operation fields. |
| nodes/Clicksign/properties/user/create/create.fields.ts | Adds user creation fields. |
| nodes/Clicksign/properties/user/create/create.execute.ts | Implements user creation request. |
| nodes/Clicksign/properties/user/getAll/getAll.fields.ts | Adds email filter field for list users. |
| nodes/Clicksign/properties/user/getAll/getAll.execute.ts | Implements user listing with optional email filter. |
| nodes/Clicksign/properties/user/getDetails/getDetails.fields.ts | Adds userId field for get-details. |
| nodes/Clicksign/properties/user/getDetails/getDetails.execute.ts | Implements user get-details request. |
| nodes/Clicksign/properties/membership/operations.ts | Adds membership operations list. |
| nodes/Clicksign/properties/membership/index.ts | Registers membership operation fields. |
| nodes/Clicksign/properties/membership/shared/role.options.ts | Adds membership role option list. |
| nodes/Clicksign/properties/membership/create/create.fields.ts | Adds membership creation fields. |
| nodes/Clicksign/properties/membership/create/create.execute.ts | Implements membership creation request. |
| nodes/Clicksign/properties/membership/getAll/getAll.fields.ts | Adds user-id filter for listing memberships. |
| nodes/Clicksign/properties/membership/getAll/getAll.execute.ts | Implements membership listing with optional user.id filter. |
| nodes/Clicksign/properties/membership/update/update.fields.ts | Adds membership update fields. |
| nodes/Clicksign/properties/membership/update/update.execute.ts | Implements membership update request. |
| nodes/Clicksign/properties/membership/delete/delete.fields.ts | Adds membershipId for delete. |
| nodes/Clicksign/properties/membership/delete/delete.execute.ts | Implements membership delete request. |
| nodes/Clicksign/properties/whatsappAcceptance/operations.ts | Adds WhatsApp acceptance term operations list. |
| nodes/Clicksign/properties/whatsappAcceptance/index.ts | Registers WhatsApp acceptance term operation fields. |
| nodes/Clicksign/properties/whatsappAcceptance/create/create.fields.ts | Adds WhatsApp acceptance term creation fields. |
| nodes/Clicksign/properties/whatsappAcceptance/create/create.execute.ts | Implements WhatsApp acceptance term creation request. |
| nodes/Clicksign/properties/whatsappAcceptance/getAll/getAll.fields.ts | Adds filters for listing WhatsApp acceptance terms. |
| nodes/Clicksign/properties/whatsappAcceptance/getAll/getAll.execute.ts | Implements WhatsApp acceptance term listing request. |
| nodes/Clicksign/properties/whatsappAcceptance/getDetails/getDetails.fields.ts | Adds include-messages option for get-details. |
| nodes/Clicksign/properties/whatsappAcceptance/getDetails/getDetails.execute.ts | Implements WhatsApp acceptance term get-details request. |
| nodes/Clicksign/properties/whatsappAcceptance/update/update.fields.ts | Adds update (cancel) fields for WhatsApp acceptance term. |
| nodes/Clicksign/properties/whatsappAcceptance/update/update.execute.ts | Implements WhatsApp acceptance term cancel/update request. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| auto_close: autoClose, | ||
| remind_interval: remindInterval, | ||
| remind_interval: remindInterval === '' ? null : remindInterval, | ||
| block_after_refusal: blockAfterRefusal, |
There was a problem hiding this comment.
Na API já aceita strings
| const pages = getNodeParameterTyped<string>(ef, 'pages'); | ||
| const kind = getNodeParameterTyped<string>(ef, 'kind'); | ||
| const rubricField = getNodeParameterTyped<string>(ef, 'rubricField'); | ||
|
|
||
| const undefinedIfFalsy = (value: any) => (value ? value : undefined); |
| const body = { | ||
| data: { | ||
| id: membershipId, | ||
| type: 'memberships', | ||
| attributes: { | ||
| role: role ? role : undefined, | ||
| consumption_accessible: consumptionAccessible, | ||
| tracking_accessible: trackingAccessible, | ||
| folder_management_accessible: folderManagementAccessible, | ||
| }, |
| }, | ||
| { name: 'Liveness Refused', value: 'liveness_refused' }, | ||
| { name: 'Facematch Refused', value: 'facematch_refused' }, | ||
| { name: 'Documentscopy Refused', value: 'documentscopy_refused' }, |
| displayName: 'Remind Interval', | ||
| name: 'remindInterval', | ||
| type: 'number', | ||
| default: null, | ||
| type: 'options', | ||
| default: '', | ||
| description: |
| const autoClose = getNodeParameterTyped<boolean>(ef, 'autoClose'); | ||
| const remindInterval = getNodeParameterTyped<number>(ef, 'remindInterval'); | ||
| const remindInterval = getNodeParameterTyped<string>(ef, 'remindInterval'); | ||
| const blockAfterRefusal = getNodeParameterTyped<boolean>( |
| { name: '1 Day', value: '1' }, | ||
| { name: '14 Days', value: '14' }, | ||
| { name: '2 Days', value: '2' }, | ||
| { name: '3 Days', value: '3' }, | ||
| { name: '7 Days', value: '7' }, | ||
| { name: 'None', value: '' }, |
There was a problem hiding this comment.
Corrigir a ordem da lista por aqui
| const locale = getNodeParameterTyped<string>(ef, 'locale'); | ||
| const autoClose = getNodeParameterTyped<boolean>(ef, 'autoClose'); | ||
| const remindInterval = getNodeParameterTyped<number>(ef, 'remindInterval'); | ||
| const remindInterval = getNodeParameterTyped<string>(ef, 'remindInterval'); |
There was a problem hiding this comment.
Nice catch! 👊
| auto_close: autoClose, | ||
| remind_interval: remindInterval, | ||
| remind_interval: remindInterval === '' ? null : remindInterval, | ||
| block_after_refusal: blockAfterRefusal, |
There was a problem hiding this comment.
Na API já aceita strings
| deadline_partial_signature_action: undefinedIfFalsy( | ||
| deadlinePartialSignatureAction, | ||
| ), |
There was a problem hiding this comment.
Eu manteria na mesma linha para manter o padrão se o linter não reclamar
| deadline_partial_signature_action: undefinedIfFalsy( | |
| deadlinePartialSignatureAction, | |
| ), | |
| deadline_partial_signature_action: undefinedIfFalsy(deadlinePartialSignatureAction), |
| { name: '1 Day', value: '1' }, | ||
| { name: '14 Days', value: '14' }, | ||
| { name: '2 Days', value: '2' }, | ||
| { name: '3 Days', value: '3' }, | ||
| { name: '7 Days', value: '7' }, | ||
| { name: 'Do Not Change', value: '' }, |
There was a problem hiding this comment.
Corrigir a ordem da lista por aqui
| documentId: string; | ||
| signerId: string; | ||
| attributes: Record<string, string>; | ||
| attributes: Record<string, unknown>; |
There was a problem hiding this comment.
Por que aqui o segundo argumento é um unknown ?
| @@ -0,0 +1,38 @@ | |||
| export const webhookEventOptions = [ | |||
| value: 'folder', | ||
| }, | ||
| { | ||
| name: 'Membership', |
There was a problem hiding this comment.
Precisamos que seja criado um novo card e que nele tenha essas informações das atualizações que realizou por aqui e dos novos recursos que criou. Além disso, é necessário vincular o card no corpo da descrição do PR e na descrição também adicionar essas alterações que fez no PR.
Por exemplo: https://github.com/clicksign/tavola/pull/15405
| @@ -1,13 +1,15 @@ | |||
| # Folders | |||
| .claude | |||
There was a problem hiding this comment.
Add o .cursor e o .agents aqui também, por favor
| This node supports the following Clicksign resources and operations: | ||
|
|
||
| - **Envelope**: Create, List All, Get Details, Update (and Activate, which moves an envelope from `draft` to `running`), Delete | ||
| - **Document**: Create By Base64, Create By Template, Create By Duplicate, List All, Get Details, Update, Delete | ||
| - **Signer**: Create, List All, Get Details, Delete, Create Auto Signature Term | ||
| - **Requirement**: Add Qualification, Add Authentication, Add Rubric, List All, Get Details, Delete, Bulk (add/remove multiple requirements in a single call) | ||
| - **Watcher** (Signature Watcher): Create, List All, Get Details, Delete | ||
| - **Notification**: Notify Envelope (all signers), Notify Signer | ||
| - **Event**: From Envelope, From Document, Create Custom Event (custom token event or image event) | ||
| - **Template**: Create, List All, Get Details, Update, Delete | ||
| - **Folder**: Create, List All, Get Details | ||
| - **Webhook**: Create, List All, Get Details, Update, Delete | ||
| - **User**: Create, List All, Get Details | ||
| - **Membership**: Create, List All, Update, Delete | ||
| - **WhatsApp Acceptance Term**: Create, List All, Get Details, Update (cancel) |
There was a problem hiding this comment.
Isso já ajuda bastante na descrição do PR e do card que vai criar 👀
| - **Create Envelope**: Create a new envelope for document signing | ||
| This node supports the following Clicksign resources and operations: | ||
|
|
||
| - **Envelope**: Create, List All, Get Details, Update (and Activate, which moves an envelope from `draft` to `running`), Delete |
There was a problem hiding this comment.
Também é importante seguir o contributing guide que está no corpo da descrição do PR, mestre!
Descrição
Adição de novas funcionalidades da clicksign no pacote do n8n.
Issue tracker
[Link para o card no Jira.]
Code Review
Como fazer o Code Review:
CONTRIBUTING.md
Screenshots (para mudanças de UI, se houver)
[Adicione alguns screenshots das mudanças de UI inclusas no seu PR, se houver. Isso ajuda o revisor a entender como o usuário utilizaria o código do PR.]
Links e observações
[Links úteis que podem contextualizar e ajudar o revisor, por exemplo para a página de uma dependência que escolheu adicionar, ou um código que se inspirou, ou documentação externa (docs de uma API, do Vue, do Rails, etc).]
Checklist para poder mergear