{"id":25553902,"url":"https://github.com/docusign/connect-node-listener-gcloud","last_synced_at":"2025-10-04T14:17:30.057Z","repository":{"id":46186563,"uuid":"188797414","full_name":"docusign/connect-node-listener-gcloud","owner":"docusign","description":"Connect listener example for Google Cloud: a Node.js listener","archived":false,"fork":false,"pushed_at":"2021-11-08T17:52:09.000Z","size":1801,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-04-11T22:55:40.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/docusign.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-27T07:54:01.000Z","updated_at":"2022-09-25T17:36:01.000Z","dependencies_parsed_at":"2022-08-26T19:50:22.028Z","dependency_job_id":null,"html_url":"https://github.com/docusign/connect-node-listener-gcloud","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docusign%2Fconnect-node-listener-gcloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docusign%2Fconnect-node-listener-gcloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docusign%2Fconnect-node-listener-gcloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docusign%2Fconnect-node-listener-gcloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/docusign","download_url":"https://codeload.github.com/docusign/connect-node-listener-gcloud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239833544,"owners_count":19704629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-20T12:03:13.779Z","updated_at":"2025-10-04T14:17:25.025Z","avatar_url":"https://github.com/docusign.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Connect Node Listener for Google Cloud\n\nThis application is a microservice for use with \n[Google Cloud Functions](https://cloud.google.com/functions/).\n\nIt acts as a server (a **listener**) for DocuSign\nConnect notification messages. After checking the \nmessage's Basic Authentication and HMAC values,\nthe software enqueues the message onto a\n[Google Cloud Pub/Sub](https://cloud.google.com/pubsub/)\nqueue for processing by other software apps.\n\nThe repo \n[connect-node-worker-gcloud](../../../connect-node-worker-gcloud)\nis an example worker application.\nIt receives messages from the queue\nvia a \n[Pub/Sub Subscription](https://cloud.google.com/pubsub/docs/subscriber),\nand then processes\nthem. See the repo for more information.\n\n## Architecture\n![Connect listener architecture](docs/connect_listener_architecture.png)\n\nThis figure shows the solution's architecture. \nThis application is written in Node.js. \nThe example worker app is also written in Node.js but \ncould be written in a different language.\n\n## Infrastructure\n\nTo deploy the needed infra using the Serverless framework follow [these instructions](connectListener/INFRA.md) below. \n\n## Installation\n\nShort form instructions are below. \n[Long form](INSTALLATION.md) instructions are also available.\n\n### Google Cloud Pub/Sub\n1. Provision a \n   [Google Cloud Pub/Sub](https://cloud.google.com/pubsub/) **Topic**.\n\n   The `Topic name` is used as a setting for the listener function. \n1. Create a **Subscription** for the topic. \n   The subscription will use **Pull** delivery.\n\n   The `Subscription Name` is used as a setting for\n   the worker application.\n\n### Google Cloud Function\n1. Provision a Cloud Function with an `HTTP` trigger. \n   Runtime: `Node.js 8`.\n1. Deploy the connectListener/index.js and\n   connectListener/package.json files to\n   the function.\n1. Note the URL for the cloud function.\n   The Connect subscription will be configured with this URL.\n1. Set the environment variables for the function:\n   1. **BASIC_AUTH_NAME** optional. The Basic Authentication\n      name set in the Connect subscription.\n   1. **BASIC_AUTH_PW** optional. The Basic Authentication\n      password set in the Connect subscription.\n   1. **HMAC_1** optional. The HMAC secret used by the\n      Connect subscription.\n   1. **TOPIC** required. The Pub/Sub topic name. It will be\n      similar to: `projects/xxx/topics/xxxxx`\n\n   The topic's subscription name is used by the \n   worker application.\n\n   The environment values can be set via the \n   Google Cloud console or by using a `.env.yaml` file.\n   See the \n   [Environment Variables](https://cloud.google.com/functions/docs/env-var)\n   documentation.\n\n## Testing\nConfigure a DocuSign Connect subscription to send notifications to\nthe Cloud Function. Create / complete a DocuSign envelope.\nCheck the Connect logs for feedback.\n\n### Test messages feature\nThis application and the worker application enable test\nmessages to be sent via the queuing system. The test\nmessages do not include XML Connect notification\nmessages. \n\nTo send a test message, use query parameter `test` set to\na test value, with the function's URL. \n\n## Usage\n**Do not include documents in the notification messages**\nThe Pub/Sub queuing system will not support messages that\ninclude documents. Check that your Connect subscription\nis configured to not include envelope documents nor the\nenvelope's Certificate of Completion.\n\n## License and Pull Requests\n\n### License\nThis repository uses the MIT License. See the LICENSE file for more information.\n\n### Pull Requests\nPull requests are welcomed. Pull requests will only be considered if their content\nuses the MIT License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocusign%2Fconnect-node-listener-gcloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdocusign%2Fconnect-node-listener-gcloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocusign%2Fconnect-node-listener-gcloud/lists"}