{"id":25553903,"url":"https://github.com/docusign/connect-node-listener-azure","last_synced_at":"2025-04-11T22:51:04.570Z","repository":{"id":40292457,"uuid":"190247739","full_name":"docusign/connect-node-listener-azure","owner":"docusign","description":"Connect listener example for Azure: a Node.js listener","archived":false,"fork":false,"pushed_at":"2023-07-19T02:09:46.000Z","size":2210,"stargazers_count":3,"open_issues_count":2,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T18:45:42.493Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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-06-04T17:21:29.000Z","updated_at":"2023-04-26T08:35:57.000Z","dependencies_parsed_at":"2023-01-24T04:01:08.579Z","dependency_job_id":null,"html_url":"https://github.com/docusign/connect-node-listener-azure","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-azure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docusign%2Fconnect-node-listener-azure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docusign%2Fconnect-node-listener-azure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docusign%2Fconnect-node-listener-azure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/docusign","download_url":"https://codeload.github.com/docusign/connect-node-listener-azure/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248492986,"owners_count":21113161,"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.970Z","updated_at":"2025-04-11T22:51:04.551Z","avatar_url":"https://github.com/docusign.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Connect Node Listener for Azure\n\nThis application is a microservice for use with \n[Azure Functions](https://azure.microsoft.com/en-us/services/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 an\n[Azure Service Bus](https://azure.microsoft.com/en-us/services/service-bus)\nqueue for processing by other software apps.\n\nThe repo \n[connect-node-worker-azure](../../../connect-node-worker-azure)\nis an example worker application.\nIt receives messages from the queue\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## Installation\n\nShort form instructions are below. \n[Long form](INSTALLATION.md) instructions are also available.\n\n## Infrastructure\n\nTo deploy the needed infra using the Serverless framework follow [these instructions](connectMessage/INFRA.md) below. \n\n### Azure Service Bus Namespace\n1. Provision an \n   [Azure Service Bus](https://azure.microsoft.com/en-us/services/service-bus/) **Namespace**.\n\n1. Add a Shared access policy for the namespace. The policy will need\n   **Send** and **Listen** scopes.\n\n1. Record the **Primary Connection String** for the \n   Shared access policy.\n\n   The connection string is used \n   for the `SVC_BUS_CONNECTION_STRING` setting for\n   the listener function and the worker application. \n\n1. Create a **Queue** in the namespace. Record the \n   **Queue name**.\n\n   The queue name is used \n   for the `SVC_BUS_QUEUE_NAME` setting for \n   the listener function and the worker application. \n\n### Azure Function\n1. Provision an Azure Function.\n\n   **Runtime Stack**: `JavaScript`.\n\n   The OS can be either Windows or Linux.\n\n   Note the URL for the cloud function.\n   Your DocuSign Connect subscription will be \n   configured with this URL.\n\n1. Download/clone this repo to a local directory.\n1. Install Node.js version 8.x or later.\n1. Navigate to `ConnectMessage` folder and run `npm install`. \n\n   \u003e **Note**: If the `package-lock.json` contains references to packages that are inaccessible, delete this file and run command again.\n\n1. Use the VS Code or other tools suggested by \n   Azure to upload the directory to your Azure function.\n\n1. Set the environment (settings) 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. **SVC_BUS_CONNECTION_STRING**: required. \n      The connection string for a\n      Shared access policy to the queue. \n   1. **SVC_BUS_QUEUE_NAME**: required. \n\n   \u003e **Note:** Make sure Azure Authentication is disabled for your function app, otherwise it may not receive any messages.\n\n## Testing\nConfigure a DocuSign Connect subscription to send notifications to\nthe Azure 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 the function's URL with\nquery parameter `test` set to\na test value. A GET or POST request can be used. \n\n### Integration testing\nThe worker application includes the test tool `runTest.js` \n\nSee the worker application for information on running the\nintegration tests.\n\n## Usage\n**Do not include documents in the notification messages**\nThe Message Bus 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-azure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdocusign%2Fconnect-node-listener-azure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocusign%2Fconnect-node-listener-azure/lists"}