You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Welcome to the MyMaestro sample app! MyMaestro is written using Node.js (server) and React (client), and showcase the new Maestro API. Docusign Maestro is a core platform service powering the Docusign. Easily build and deploy customized workflows that automate and accelerate your agreement processes without writing any code. Maestro connects all the tools and activities in your workflow so agreement processes are more efficient, more uniform, and have better visibility.
5
+
Welcome to the MyMaestro sample app! MyMaestro is written using Node.js and React. Docusign Maestro lets you easily build and deploy customized workflows that automate and accelerate your agreement processes without writing any code. Maestro connects all the tools and activities in your workflow so that agreement processes are more efficient, more uniform, and have better visibility.
8
6
9
-
With Docusign Maestro, you can combine workflow steps for Docusign apps like ID Verification, Web Forms, and eSignature, and third-party extensions to automate your agreement process end-to-end.
7
+
With Docusign Maestro, you can combine Docusign features such as ID Verification, Web Forms, and eSignature with third-party extensions to automate your workflows from end to end.
10
8
11
9
## Configuring your integration
12
10
13
-
Before you can run this sample app on your local machine, you must first create a new integration with a Docusign developer account.
11
+
Before you can run this sample app on your local machine, you must first create a new integration key in your Docusign developer account.
14
12
15
13
### Create a new integration
16
14
17
-
1. If you don't already have one, create a [free developer account](https://go.docusign.com/sandbox/productshot/).
18
-
2. Log into your developer account, and navigate to [My Apps & Keys](https://admindemo.docusign.com/apps-and-keys).
15
+
1. If you don't already have one, create a [free developer account](https://go.docusign.com/o/sandbox/).
16
+
2. Log in to your developer account and navigate to [My Apps & Keys](https://admindemo.docusign.com/apps-and-keys).
19
17
3. Select **Add App and Integration Key**.
20
18
4. Create a new integration that is configured to use **JSON Web Token (JWT) Grant** and **Authorization Code Grant (ACG)**.
21
-
You will need the **integration key** itself and its **RSA key pair**. To use this application, you must add your application's **Redirect URI** to your integration key. See our video, [**Creating an Integration Key for JWT Authentication**](https://www.youtube.com/watch?v=GgDqa7-L0yo) for a demonstration of how to create an integration key (client ID) for a user application like this example.
22
-
- Save the **integration key** and **private RSA key pair** somewhere safe as you will need these later.
19
+
You will need the **integration key** itself and its **RSA key pair**. To use this application, you must add your application’s **Redirect URI** to your integration key. See our video, [**Creating an Integration Key for JWT Authentication**](https://www.youtube.com/watch?v=GgDqa7-L0yo) for a demonstration of how to create an integration key (client ID) for a user application like this example.
20
+
- Save the **integration key** and **private RSA key pair** somewhere safe as you will need these later.
23
21
5. Add redirect URIs for your app. There are several variables from the **.env** file that are used in the code and configured for redirect urls. Find variables below in the **.env** file and add the values of these variables in the Docusign account settings in the appropriate **Redirect URIs** section:
Please pay attention that if you run the project in docker using the **docker-compose.local.yml** file, the variable FRONTEND_DEV_HOST there changes to the value **http://localhost:80**. Keep in mind that in this case this value will also have to be added to **Redirect URIs** section.
26
+
If you run this project in Docker using the **docker-compose.local.yml** file, the variable FRONTEND_DEV_HOST there changes to the value **http://localhost:80**. Keep in mind that in this case this value will also have to be added to the**Redirect URIs** section.
29
27
30
28
### Prerequisites
31
29
@@ -44,24 +42,24 @@ Please pay attention that if you run the project in docker using the **docker-co
44
42
5. Navigate to the **server** folder: **`cd ../server`**
45
43
6. Install dependencies: **`npm install`**
46
44
7. Rename the **.env.example** file in the root directory to **.env**, and update the file with the integration key and other settings.
47
-
> **Note:** Protect your integration key and client secret. You should make sure that the **.env** file will not be stored in your source code repository.
48
-
8. Rename the **example_private.key** file to **private.key**, and paste your complete private RSA key into this file (including the header and footer of the key). Private RSA you should get when created Docusign account.
45
+
> **Note:** Protect your integration key and client secret. You should make sure that the **.env** file will not be stored in your source code repository.
46
+
8. Rename the **example_private.key** file to **private.key**, and paste your complete private RSA key into this file (including the header and footer of the key). This should be the private RSA you should have gotten when you created your Docusign account.
49
47
50
48
## Running MyMaestro in development mode
51
49
52
50
1. Navigate to the application folder: **`cd sample-app-mymaestro-node`**
53
51
2. To start the server and client at the same time: **`npm run concurrently:dev`**
54
52
3.**Or,** to run the server and client separately:
55
-
- In one terminal, run **`npm run client:dev`**
56
-
- In a separate terminal, run **`npm run server:dev`**
53
+
- In one terminal, run **`npm run client:dev`**
54
+
- In a separate terminal, run **`npm run server:dev`**
57
55
4. Open a browser to **http://localhost:3000**
58
56
59
-
## Running MyMaestro in docker
57
+
## Running MyMaestro in Docker
60
58
61
-
You can run application in docker locally like in production mode
59
+
You can run the application in Docker locally in production mode:
62
60
63
61
1. Navigate to the application folder: **`cd sample-app-mymaestro-node`**
64
-
2. Make sure that you configured **.env** file and saved **private.key** in the root of the folder. Make sure that you have docker installed.
62
+
2. Make sure that you configured **.env** file and saved your **private.key** in the root of the folder. Make sure that you have Docker installed.
65
63
3. Run **`docker-compose -f docker-compose.local.yaml up -d`**
66
-
4.In order to stop containers run **`docker compose -f docker-compose.local.yaml down`**
67
-
5. Open a browser to **http://localhost:80**
64
+
4.To stop containers, run **`docker compose -f docker-compose.local.yaml down`**
"acgDescription": "This authentication type provides functionality of creating, triggering and managing workflows.",
17
+
"acgDescription": "This authentication type lets you create, trigger, and manage workflows in your own account.",
18
18
"jwt": "JSON Web Token",
19
-
"jwtDescription": "This authentication type provides functionality of only triggering and managing workflows."
19
+
"jwtDescription": "This authentication type lets you trigger and manage workflows in our preconfigured account."
20
20
},
21
21
"triggerForm": {
22
22
"formTitle": "Fill in details",
23
23
"formName": "Participant Information",
24
24
"fieldsI9": {
25
-
"field1": "Preparer Name",
26
-
"field2": "Preparer Email",
27
-
"field3": "Employee Name",
28
-
"field4": "Employee Email",
29
-
"field5": "HR Approver Name",
30
-
"field6": "HR Approver Email"
25
+
"field1": "Preparer name",
26
+
"field2": "Preparer email",
27
+
"field3": "Employee name",
28
+
"field4": "Employee email",
29
+
"field5": "HR Approver name",
30
+
"field6": "HR Approver email"
31
31
},
32
32
"fieldsOffer": {
33
-
"field1": "HR Manager Name",
34
-
"field2": "HR Manager Email",
33
+
"field1": "HR manager name",
34
+
"field2": "HR manager email",
35
35
"field3": "Company"
36
36
},
37
37
"fieldsNda": {
38
-
"field1": "HR Manager Name",
39
-
"field2": "HR Manager Email"
38
+
"field1": "HR manager name",
39
+
"field2": "HR manager email"
40
40
}
41
41
},
42
42
"home": {
43
43
"card1": {
44
44
"title": "Create a workflow",
45
-
"description": "Create workflow definitions from the dropdown list below"
45
+
"description": "Create a new workflow definition"
46
46
},
47
47
"card2": {
48
48
"title": "Trigger a workflow",
49
-
"description": "Get list of workflow definitions created and trigger workflows"
49
+
"description": "Get a list of workflow definitions and trigger a workflow instance"
50
50
},
51
51
"card3": {
52
-
"title": "Manage a workflow",
53
-
"description": "Get list of workflow instances, update their status and cancel them"
52
+
"title": "Manage workflows",
53
+
"description": "Get the status of existing workflow instancesand cancel instances"
54
54
}
55
55
},
56
56
"loader": {
57
57
"title": "Waiting for log in"
58
58
},
59
59
"behindTheScenes": {
60
60
"titles": {
61
-
"main": "This sample features",
61
+
"main": "Scenario overview",
62
62
"code": "Code flow",
63
63
"step1": "Step 1",
64
64
"step2": "Step 2",
@@ -68,25 +68,25 @@
68
68
"codeDescription": "See the source code: "
69
69
},
70
70
"createWorkflow": {
71
-
"mainDescription": "- Creation of 1-9 workflow\n - Creation of Offer Letter workflow\n - Creation of NDA workflow",
72
-
"step1Description": "Using the Envelopes:list API method, check that template is imported to the account, otherwise give an ability to download needed template.",
73
-
"step2Description": "Using the WorkflowManagement:create API method, create a workflow definition with all the data from the template.",
74
-
"step3Description": "Using the WorkflowManagement:publish API method, publish the created workflow definition to the account to make it visible and usable."
71
+
"mainDescription": "This scenario creates a new workflow definition in the user's account. These workflows depend on eSignature templates that need to exist in the user's account before the workflows can be created. If the necessary templates do not exist in the user's account, the sample app will prompt them to download the relevant template definitions and create them in their account.",
72
+
"step1Description": "The WorkflowManagement: createWorkflowDefinition method is used to create a new workflow definition in the user's account. The steps for this workflow are defined in the sample app's source code.",
73
+
"step2Description": "After the new workflow definition has been created it needs to be published using the WorkflowManagement: publishOrUnPublishWorkflow method. Once the workflow has been published, new instances of that workflow can be triggered through the Trigger a workflow scenario."
75
74
},
76
75
"triggerWorkflow": {
77
-
"mainDescription": "- Gets published workflow definitions from the account\n - Gets last run status of workflow definition used in this sample app\n - Triggers workflow definition",
78
-
"step1Description": "Using the WorkflowManagement:getWorkflowDefinitions API method, gets workflow definitions created on user account and filters last published definitions used in this app.",
79
-
"step2Description": "Using the WorkflowTrigger:triggerWorkflow API method, triggers chosen workflow definition with data parsed from the form"
76
+
"mainDescription": "This scenario gets a list of published workflow definitions, gets the status of the last workflow instance triggered from each workflow definition, and triggers a new workflow instance.",
77
+
"step1Description": "Display all of the workflow definitions in the user's account by calling the WorkflowManagment: getWorkflowDefinitions endpoint. Each row on this page represents a workflow definition.",
78
+
"step2Description": "After the user chooses a workflow to trigger, the next step is to get the workflow definition by calling the WorkflowMangement: getWorkflowDefinition endpoint. The response for this API call includes a triggerURL property that will be used in the next step.",
79
+
"step3Description": "Finally, call the WorkflowTrigger: triggerWorkflow endpoint to trigger the workflow instance. The response of this call includes the workflowInstanceUrl where the workflow participant can complete the workflow steps."
80
80
},
81
81
"manageWorkflow": {
82
-
"mainDescription": "- Gets triggered workflow instances of sample app workflow definitions\n - Gets status of workflow instances created using Trigger Workflow functionality\n - Cancels chosen workflow instance",
83
-
"step1Description": "Using the WorkflowInstanceManagement:getWorkflowInstances API method, gets workflow instances triggered from workflow definition used for this sample app and filters only created in this user session4.",
84
-
"step2Description": "Using the WorkflowInstanceManagement:getWorkflowInstance API method, gets the status of the chosen workflow instance.",
85
-
"step3Description": "Using the WorkflowInstanceManagement:cancelWorkflowInstance API method, cancels the chosen workflow instance."
82
+
"mainDescription": "This scenario displays a list of workflow instances, the status of those instances, and the option to cancel them.",
83
+
"step1Description": "The WorkflowInstanceManagement:getWorkflowInstances endpoint is called to get a list of the workflow instances that have been triggered by the sample app.",
84
+
"step2Description": "To get the status of a given workflow instance, the WorkflowInstanceManagement: getWorkflowInstance method is called.",
85
+
"step3Description": "If a user chooses to cancel a workflow instance, the WorkflowInstanceManagement: cancelWorkflowInstance method is called."
86
86
}
87
87
},
88
88
"workflowList": {
89
-
"doNotHaveWorkflow": "You don't have any workflows",
89
+
"doNotHaveWorkflow": "You do not have any workflows in your account",
90
90
"columns": {
91
91
"lastRunStatus": "Status of last run",
92
92
"workflowName": "Workflow name",
@@ -95,25 +95,25 @@
95
95
},
96
96
"pageTitles": {
97
97
"manageWorkflow": "Manage workflows",
98
-
"triggerWorkflow": "Trigger a workflow"
98
+
"triggerWorkflow": "Trigger a workflow instance"
99
99
},
100
100
"popups": {
101
101
"workflowTriggered": {
102
-
"title": "Workflow Triggered",
103
-
"description": "To complete the workflow steps click the button below"
102
+
"title": "Workflow triggered",
103
+
"description": "To complete the workflow steps, select Continue"
104
104
},
105
105
"workflowDefinitionCreated": {
106
106
"publish": {
107
-
"description": "To publish the workflow, proceed with the button below",
108
-
"button": "Publish the workflow"
107
+
"description": "To publish the workflow, proceed with the Publish button",
108
+
"button": "Publish"
109
109
},
110
110
"published": {
111
111
"title": "Done",
112
112
"description": "Workflow successfully published"
113
113
},
114
114
"error": {
115
-
"title": "Workflow creation was unsuccessful",
116
-
"button": "Download Template"
115
+
"title": "Workflow creation was unsuccessful; your account is missing the required workflow template",
0 commit comments