Page Not Found | OpenSign™
-
+
diff --git a/assets/js/277a78f5.1244da80.js b/assets/js/277a78f5.1244da80.js
deleted file mode 100644
index 3123924e1..000000000
--- a/assets/js/277a78f5.1244da80.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[853],{26636:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var s=t(85893),i=t(11151);const r={sidebar_position:4,title:"Installation instructions"},o="INSTALLATION INSTRUCTIONS",c={id:"contribute/INSTALLATION",title:"Installation instructions",description:"You can use our app as a cloud version from OpenSignLabs",source:"@site/docs/contribute/INSTALLATION.md",sourceDirName:"contribute",slug:"/contribute/INSTALLATION",permalink:"/docs/contribute/INSTALLATION",draft:!1,unlisted:!1,editUrl:"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/contribute/INSTALLATION.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Installation instructions"},sidebar:"contributeSidebar",previous:{title:"Contributing to OpenSign",permalink:"/docs/contribute/intro"},next:{title:"Community at OpenSign\u2122",permalink:"/docs/contribute/COMMUNITY"}},l={},d=[{value:"Localhost(Frontend only)",id:"localhostfrontend-only",level:2},{value:"You will need to create an AWS S3 bucket or digital ocean space in order to store your uploaded documents",id:"you-will-need-to-create-an-aws-s3-bucket-or-digital-ocean-space-in-order-to-store-your-uploaded-documents",level:2},{value:"AWS S3 -",id:"aws-s3--",level:3},{value:"Localhost(Docker)",id:"localhostdocker",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"installation-instructions",children:"INSTALLATION INSTRUCTIONS"}),"\n",(0,s.jsxs)(n.p,{children:["You can use our app as a cloud version from ",(0,s.jsx)(n.a,{href:"https://www.opensignlabs.com",children:"OpenSignLabs"})]}),"\n",(0,s.jsx)(n.p,{children:"or follow below instructions to install it on your own infrastructure."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Localhost(Frontend only)"}),"\n",(0,s.jsx)(n.li,{children:"Localhost(Docker)"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"localhostfrontend-only",children:"Localhost(Frontend only)"}),"\n",(0,s.jsx)(n.p,{children:"This is the easiest way to run the frontend application for development or testing purpose without the hassle of installing backend & DB. All the features including document upload, signing, email notifications will work seamlessly from staging backend."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Warning:"})," All data, including user accounts and documents, is stored in the staging backend. This data will be erased every time there is a merge to the main branch. As a result, you may need to recreate user accounts repeatedly. If you find that login attempts are failing, it is likely because the data has been cleared due to a recent merge."]}),"\n",(0,s.jsx)(n.p,{children:"Below are the steps to follow -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://help.github.com/articles/cloning-a-repository/",children:"Clone the repository"})," to your local machine using below command -","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"git clone https://github.com/OpenSignLabs/OpenSign.git\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Copy the .env.frontend_dev file to apps/OpenSign/.env using below command(on mac & linux). For windows use COPY command instead.","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"cp .env.frontend_dev apps/OpenSign/.env\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Switch to OpenSign directory.","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"cd apps/OpenSign\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Install NPM packages using","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"npm install\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Run the project locally using","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"npm run start-dev\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You should be able to access the application from ",(0,s.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})," after this.\nCreate an account by signing-up and start contributing."]}),"\n",(0,s.jsx)(n.h2,{id:"you-will-need-to-create-an-aws-s3-bucket-or-digital-ocean-space-in-order-to-store-your-uploaded-documents",children:"You will need to create an AWS S3 bucket or digital ocean space in order to store your uploaded documents"}),"\n",(0,s.jsx)(n.h3,{id:"aws-s3--",children:"AWS S3 -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Step 1 : Create a S3 bucket","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Login to AWS console"}),"\n",(0,s.jsx)(n.li,{children:"Navigate to S3 under services"}),"\n",(0,s.jsx)(n.li,{children:'Hit "Create Bucket" button on upper right corner'}),"\n",(0,s.jsx)(n.li,{children:'Remove the check from "block all public access" checkbox(we need this in order to provide access to not-logged in users after OTP verification)'}),"\n",(0,s.jsx)(n.li,{children:"Set bucket versioning and tags as per your requirements"}),"\n",(0,s.jsx)(n.li,{children:'Hit "Create bucket" button'}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Step 2 : Create IAM user and provide access to AWS bucket","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Search for "IAM" on the search bar in AWS console'}),"\n",(0,s.jsx)(n.li,{children:"On IAM dashboard, click the number of users(count) under IAM resources table"}),"\n",(0,s.jsx)(n.li,{children:'Hit "create user" button on the upper right corner of the page'}),"\n",(0,s.jsx)(n.li,{children:"Enter the user name & click next"}),"\n",(0,s.jsx)(n.li,{children:"Click create policy, search for S3 and provide the Read, Write & list permissions"}),"\n",(0,s.jsx)(n.li,{children:'Click next and click "Create user"'}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Step 3 : Generate Credentials"}),"\n",(0,s.jsx)(n.li,{children:"Go to IAM/Users in AWS console"}),"\n",(0,s.jsx)(n.li,{children:"Hit the hyperlink for the user created in the previous step"}),"\n",(0,s.jsx)(n.li,{children:'Click the "Security credentials" tab'}),"\n",(0,s.jsx)(n.li,{children:'Scroll down to "Access keys" and hit "Create access key"'}),"\n",(0,s.jsx)(n.li,{children:'In the next step select "Application running outside AWS"'}),"\n",(0,s.jsx)(n.li,{children:'Add a description tag if needed & hit "Create access key"'}),"\n",(0,s.jsx)(n.li,{children:'In the next step you will see "Access key" and "Secret Access key". Copy both the values.'}),"\n",(0,s.jsx)(n.li,{children:'Set the value of "Access key" to "DO_ACCESS_KEY_ID" environment variable'}),"\n",(0,s.jsx)(n.li,{children:'Set the value of "Secret Access key" to "DO_SECRET_ACCESS_KEY" environment variable'}),"\n",(0,s.jsxs)(n.li,{children:["Step 3 : Copy bucket credentials","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Visit "Amazon S3 -> Buckets" in aws console'}),"\n",(0,s.jsx)(n.li,{children:"Click the bucket created in previous steps & visit the properties tab"}),"\n",(0,s.jsx)(n.li,{children:'Under "Bucket overview" you will find the value of AWS region(for ex. ap-south-1). Set that value to env variable "DO_REGION"'}),"\n",(0,s.jsx)(n.li,{children:'You can create the value for "DO_ENDPOINT" env variable by appending the region value to amazonaws.com (for ex. s3.ap-south-1.amazonaws.com)'}),"\n",(0,s.jsxs)(n.li,{children:['You can create the value for "DO_BASEURL" by adding the bucketname in front of the endpoint value(for ex. ',(0,s.jsx)(n.a,{href:"https://bucketname.s3.ap-south-1.amazonaws.com",children:"https://bucketname.s3.ap-south-1.amazonaws.com"}),")"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Visit below link if you face any issues while following the above instructions -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://repost.aws/knowledge-center/create-access-key",children:"https://repost.aws/knowledge-center/create-access-key"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"localhostdocker",children:"Localhost(Docker)"}),"\n",(0,s.jsx)(n.p,{children:"For local Setup we need to need following prerequisite:"}),"\n",(0,s.jsx)(n.p,{children:"Environment Varaibles:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Environment Varibale"}),(0,s.jsx)(n.th,{children:"Value"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"CI"}),(0,s.jsx)(n.td,{children:"false"}),(0,s.jsx)(n.td,{children:"Set CI to false while running the app locally"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PUBLIC_URL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})}),(0,s.jsx)(n.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GENERATE_SOURCEMAP"}),(0,s.jsx)(n.td,{children:"false"}),(0,s.jsx)(n.td,{children:"Set it to true if you want to generate the Sourcemap for debugging"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"REACT_APP_SERVERURL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,s.jsx)(n.td,{children:"Set it to the URL from where APIs will be accessible, for local development it should be localhost:3000/api/app (use your local port number instead)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"REACT_APP_APPID"}),(0,s.jsx)(n.td,{children:"opensignstgn"}),(0,s.jsx)(n.td,{children:"A 12 character long random app identifier. The value of this should be same as APP_ID which is a variable used by backend API."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"APP_ID"}),(0,s.jsx)(n.td,{children:"opensignstgn"}),(0,s.jsx)(n.td,{children:"A 12 character long random app identifier. The value of this should be same as REACT_APP_APPID which is a variable used by Frontend React App."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"appName"}),(0,s.jsx)(n.td,{children:"open_sign_server"}),(0,s.jsx)(n.td,{children:"Name of the app. It will be visible in the verification emails sent out."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MASTER_KEY"}),(0,s.jsx)(n.td,{children:"XnAadwKxxByMr"}),(0,s.jsx)(n.td,{children:"A 12 character long random secret key that allows access to all the data. It is used in Parse dashboard config to view all the data in the database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MONGODB_URI"}),(0,s.jsx)(n.td,{children:"mongodb://host.docker.internal:27017/OpenSignDB"}),(0,s.jsx)(n.td,{children:"Mongodb URI to connect to"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PARSE_MOUNT"}),(0,s.jsx)(n.td,{children:"/app"}),(0,s.jsx)(n.td,{children:"Path on which APIs should be mounted. Do not change this. This variable shall be removed & value hardcoded in the source code in coming versions."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SERVER_URL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"http://127.0.0.1:8080/app",children:"http://127.0.0.1:8080/app"})}),(0,s.jsx)(n.td,{children:"Set it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:3000/api/app (use your local port number instead)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_SPACE"}),(0,s.jsx)(n.td,{children:"DOSPACENAME"}),(0,s.jsx)(n.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_ENDPOINT"}),(0,s.jsx)(n.td,{children:"ams3.digitaloceanspaces.com"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_BASEURL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"https://DOSPACENAME.ams3.digitaloceanspaces.com",children:"https://DOSPACENAME.ams3.digitaloceanspaces.com"})}),(0,s.jsx)(n.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_ACCESS_KEY_ID"}),(0,s.jsx)(n.td,{children:"YOUR_S3_ACCESS_ID"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,s.jsx)(n.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_REGION"}),(0,s.jsx)(n.td,{children:"YOUR_S3_REGION"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"USE_LOCAL"}),(0,s.jsx)(n.td,{children:"FALSE"}),(0,s.jsx)(n.td,{children:"To use local file storage to save file"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_API_KEY"}),(0,s.jsx)(n.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,s.jsx)(n.td,{children:"Mailgun API Key"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_DOMAIN"}),(0,s.jsx)(n.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,s.jsx)(n.td,{children:"Mailgun API Domain"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_SENDER"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"Mailgun Sender Mail ID"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PFX_BASE64"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsxs)(n.td,{children:["Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase ",(0,s.jsx)(n.code,{children:"emudhra"})]})]})]})]}),"\n",(0,s.jsx)(n.h1,{id:"steps-to-generate-self-sign-certificate",children:"Steps to Generate Self Sign Certificate"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"# execute below command and use passphrase emudhra\nopenssl genrsa -des3 -out ./cert/local_dev.key 2048\nopenssl req -key ./cert/local_dev.key -new -x509 -days 365 -out ./cert/local_dev.crt\nopenssl pkcs12 -inkey ./cert/local_dev.key -in ./cert/local_dev.crt -export -out ./cert/local_dev.pfx\nopenssl base64 -in ./cert/local_dev.pfx -out ./cert/base64_pfx\n"})}),"\n",(0,s.jsx)(n.h1,{id:"cors-configuration",children:"CORS Configuration"}),"\n",(0,s.jsxs)(n.p,{children:["As document storage is delegated to S3-compatible services that reside in a different host than the OpenSign one, document operations (loading, storing, deleting) are subject to ",(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cross-origin_resource_sharing",children:"Cross-Origin Resource Sharing"})," restriction policies; as a consequence, OpenSign app may fail with (browser console) errors like the following:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Access to fetch at 'https://foo.nyc3.digitaloceanspaces.com/exported_file_4627_0000-00-00T00%3A45%3A43.344Z.pdf'\nfrom origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header\nis present on the requested resource. If an opaque response serves your needs, set the request's mode to\n'no-cors' to fetch the resource with CORS disabled.\n"})}),"\n",(0,s.jsx)(n.p,{children:"In order to address this, your document storage system must be instructed to accept requests from other hosts; below the relevant documentation links:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.digitalocean.com/products/spaces/how-to/configure-cors/",children:"How to Configure CORS on DigitalOcean Spaces"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html",children:"Configuring cross-origin resource sharing on AWS S3"})}),"\n"]}),"\n",(0,s.jsx)(n.h1,{id:"build-local-environment",children:"Build Local Environment"}),"\n",(0,s.jsx)(n.p,{children:"Command to build project -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Execute ",(0,s.jsx)(n.code,{children:"make build"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Command to run project -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Execute ",(0,s.jsx)(n.code,{children:"make run"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var s=t(67294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/277a78f5.35799f9e.js b/assets/js/277a78f5.35799f9e.js
new file mode 100644
index 000000000..5210b4810
--- /dev/null
+++ b/assets/js/277a78f5.35799f9e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[853],{26636:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var s=t(85893),i=t(11151);const r={sidebar_position:4,title:"Installation instructions"},o="INSTALLATION INSTRUCTIONS",c={id:"contribute/INSTALLATION",title:"Installation instructions",description:"You can use our app as a cloud version from OpenSignLabs",source:"@site/docs/contribute/INSTALLATION.md",sourceDirName:"contribute",slug:"/contribute/INSTALLATION",permalink:"/docs/contribute/INSTALLATION",draft:!1,unlisted:!1,editUrl:"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/contribute/INSTALLATION.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Installation instructions"},sidebar:"contributeSidebar",previous:{title:"Contributing to OpenSign",permalink:"/docs/contribute/intro"},next:{title:"Community at OpenSign\u2122",permalink:"/docs/contribute/COMMUNITY"}},l={},d=[{value:"Localhost(Frontend only)",id:"localhostfrontend-only",level:2},{value:"You will need to create an AWS S3 bucket or digital ocean space in order to store your uploaded documents",id:"you-will-need-to-create-an-aws-s3-bucket-or-digital-ocean-space-in-order-to-store-your-uploaded-documents",level:2},{value:"AWS S3 -",id:"aws-s3--",level:3},{value:"Localhost(Docker)",id:"localhostdocker",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"installation-instructions",children:"INSTALLATION INSTRUCTIONS"}),"\n",(0,s.jsxs)(n.p,{children:["You can use our app as a cloud version from ",(0,s.jsx)(n.a,{href:"https://www.opensignlabs.com",children:"OpenSignLabs"})]}),"\n",(0,s.jsx)(n.p,{children:"or follow below instructions to install it on your own infrastructure."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Localhost(Frontend only)"}),"\n",(0,s.jsx)(n.li,{children:"Localhost(Docker)"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"localhostfrontend-only",children:"Localhost(Frontend only)"}),"\n",(0,s.jsx)(n.p,{children:"This is the easiest way to run the frontend application for development or testing purpose without the hassle of installing backend & DB. All the features including document upload, signing, email notifications will work seamlessly from staging backend."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Warning:"})," All data, including user accounts and documents, is stored in the staging backend. This data will be erased every time there is a merge to the main branch. As a result, you may need to recreate user accounts repeatedly. If you find that login attempts are failing, it is likely because the data has been cleared due to a recent merge."]}),"\n",(0,s.jsx)(n.p,{children:"Below are the steps to follow -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"https://help.github.com/articles/cloning-a-repository/",children:"Clone the repository"})," to your local machine using below command -","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"git clone https://github.com/OpenSignLabs/OpenSign.git\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Copy the .env.frontend_dev file to apps/OpenSign/.env using below command(on mac & linux). For windows use COPY command instead.","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"cp .env.frontend_dev apps/OpenSign/.env\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Switch to OpenSign directory.","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"cd apps/OpenSign\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Install NPM packages using","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"npm install\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Run the project locally using","\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"npm run start-dev\n"})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You should be able to access the application from ",(0,s.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})," after this.\nCreate an account by signing-up and start contributing."]}),"\n",(0,s.jsx)(n.h2,{id:"you-will-need-to-create-an-aws-s3-bucket-or-digital-ocean-space-in-order-to-store-your-uploaded-documents",children:"You will need to create an AWS S3 bucket or digital ocean space in order to store your uploaded documents"}),"\n",(0,s.jsx)(n.h3,{id:"aws-s3--",children:"AWS S3 -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Step 1 : Create a S3 bucket","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Login to ",(0,s.jsx)(n.a,{href:"https://aws.amazon.com/console/",children:"AWS console"})]}),"\n",(0,s.jsx)(n.li,{children:"Navigate to S3 under services"}),"\n",(0,s.jsx)(n.li,{children:'Hit "Create Bucket" button on upper right corner'}),"\n",(0,s.jsx)(n.li,{children:'Remove the check from "block all public access" checkbox(we need this in order to provide access to not-logged in users after OTP verification)'}),"\n",(0,s.jsx)(n.li,{children:"Set bucket versioning and tags as per your requirements"}),"\n",(0,s.jsx)(n.li,{children:'Hit "Create bucket" button'}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Step 2 : Create IAM user and provide access to AWS bucket","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Search for "IAM" on the search bar in AWS console'}),"\n",(0,s.jsx)(n.li,{children:"On IAM dashboard, click the number of users(count) under IAM resources table"}),"\n",(0,s.jsx)(n.li,{children:'Hit "create user" button on the upper right corner of the page'}),"\n",(0,s.jsx)(n.li,{children:"Enter the user name & click next"}),"\n",(0,s.jsx)(n.li,{children:"Click create policy, search for S3 and provide the Read, Write & list permissions"}),"\n",(0,s.jsx)(n.li,{children:'Click next and click "Create user"'}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Step 3 : Generate Credentials"}),"\n",(0,s.jsx)(n.li,{children:"Go to IAM/Users in AWS console"}),"\n",(0,s.jsx)(n.li,{children:"Hit the hyperlink for the user created in the previous step"}),"\n",(0,s.jsx)(n.li,{children:'Click the "Security credentials" tab'}),"\n",(0,s.jsx)(n.li,{children:'Scroll down to "Access keys" and hit "Create access key"'}),"\n",(0,s.jsx)(n.li,{children:'In the next step select "Application running outside AWS"'}),"\n",(0,s.jsx)(n.li,{children:'Add a description tag if needed & hit "Create access key"'}),"\n",(0,s.jsx)(n.li,{children:'In the next step you will see "Access key" and "Secret Access key". Copy both the values.'}),"\n",(0,s.jsx)(n.li,{children:'Set the value of "Access key" to "DO_ACCESS_KEY_ID" environment variable'}),"\n",(0,s.jsx)(n.li,{children:'Set the value of "Secret Access key" to "DO_SECRET_ACCESS_KEY" environment variable'}),"\n",(0,s.jsxs)(n.li,{children:["Step 3 : Copy bucket credentials","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Visit "Amazon S3 -> Buckets" in aws console'}),"\n",(0,s.jsx)(n.li,{children:"Click the bucket created in previous steps & visit the properties tab"}),"\n",(0,s.jsx)(n.li,{children:'Under "Bucket overview" you will find the value of AWS region(for ex. ap-south-1). Set that value to env variable "DO_REGION"'}),"\n",(0,s.jsx)(n.li,{children:'You can create the value for "DO_ENDPOINT" env variable by appending the region value to amazonaws.com (for ex. s3.ap-south-1.amazonaws.com)'}),"\n",(0,s.jsxs)(n.li,{children:['You can create the value for "DO_BASEURL" by adding the bucketname in front of the endpoint value(for ex. ',(0,s.jsx)(n.a,{href:"https://bucketname.s3.ap-south-1.amazonaws.com",children:"https://bucketname.s3.ap-south-1.amazonaws.com"}),")"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Visit below link if you face any issues while following the above instructions -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://repost.aws/knowledge-center/create-access-key",children:"https://repost.aws/knowledge-center/create-access-key"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"localhostdocker",children:"Localhost(Docker)"}),"\n",(0,s.jsx)(n.p,{children:"For local Setup we need to need following prerequisite:"}),"\n",(0,s.jsx)(n.p,{children:"Environment Varaibles:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Environment Varibale"}),(0,s.jsx)(n.th,{children:"Value"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"CI"}),(0,s.jsx)(n.td,{children:"false"}),(0,s.jsx)(n.td,{children:"Set CI to false while running the app locally"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PUBLIC_URL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"http://localhost:3000",children:"http://localhost:3000"})}),(0,s.jsx)(n.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"GENERATE_SOURCEMAP"}),(0,s.jsx)(n.td,{children:"false"}),(0,s.jsx)(n.td,{children:"Set it to true if you want to generate the Sourcemap for debugging"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"REACT_APP_SERVERURL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,s.jsx)(n.td,{children:"Set it to the URL from where APIs will be accessible, for local development it should be localhost:3000/api/app (use your local port number instead)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"REACT_APP_APPID"}),(0,s.jsx)(n.td,{children:"opensignstgn"}),(0,s.jsx)(n.td,{children:"A 12 character long random app identifier. The value of this should be same as APP_ID which is a variable used by backend API."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"APP_ID"}),(0,s.jsx)(n.td,{children:"opensignstgn"}),(0,s.jsx)(n.td,{children:"A 12 character long random app identifier. The value of this should be same as REACT_APP_APPID which is a variable used by Frontend React App."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"appName"}),(0,s.jsx)(n.td,{children:"open_sign_server"}),(0,s.jsx)(n.td,{children:"Name of the app. It will be visible in the verification emails sent out."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MASTER_KEY"}),(0,s.jsx)(n.td,{children:"XnAadwKxxByMr"}),(0,s.jsx)(n.td,{children:"A 12 character long random secret key that allows access to all the data. It is used in Parse dashboard config to view all the data in the database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MONGODB_URI"}),(0,s.jsx)(n.td,{children:"mongodb://host.docker.internal:27017/OpenSignDB"}),(0,s.jsx)(n.td,{children:"Mongodb URI to connect to"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PARSE_MOUNT"}),(0,s.jsx)(n.td,{children:"/app"}),(0,s.jsx)(n.td,{children:"Path on which APIs should be mounted. Do not change this. This variable shall be removed & value hardcoded in the source code in coming versions."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SERVER_URL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"http://127.0.0.1:8080/app",children:"http://127.0.0.1:8080/app"})}),(0,s.jsx)(n.td,{children:"Set it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:3000/api/app (use your local port number instead)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_SPACE"}),(0,s.jsx)(n.td,{children:"DOSPACENAME"}),(0,s.jsx)(n.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_ENDPOINT"}),(0,s.jsx)(n.td,{children:"ams3.digitaloceanspaces.com"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_BASEURL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"https://DOSPACENAME.ams3.digitaloceanspaces.com",children:"https://DOSPACENAME.ams3.digitaloceanspaces.com"})}),(0,s.jsx)(n.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_ACCESS_KEY_ID"}),(0,s.jsx)(n.td,{children:"YOUR_S3_ACCESS_ID"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,s.jsx)(n.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_REGION"}),(0,s.jsx)(n.td,{children:"YOUR_S3_REGION"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"USE_LOCAL"}),(0,s.jsx)(n.td,{children:"FALSE"}),(0,s.jsx)(n.td,{children:"To use local file storage to save file"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_API_KEY"}),(0,s.jsx)(n.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,s.jsx)(n.td,{children:"Mailgun API Key"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_DOMAIN"}),(0,s.jsx)(n.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,s.jsx)(n.td,{children:"Mailgun API Domain"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_SENDER"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"Mailgun Sender Mail ID"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PFX_BASE64"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsxs)(n.td,{children:["Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase ",(0,s.jsx)(n.code,{children:"emudhra"})]})]})]})]}),"\n",(0,s.jsx)(n.h1,{id:"steps-to-generate-self-sign-certificate",children:"Steps to Generate Self Sign Certificate"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"# execute below command and use passphrase emudhra\nopenssl genrsa -des3 -out ./cert/local_dev.key 2048\nopenssl req -key ./cert/local_dev.key -new -x509 -days 365 -out ./cert/local_dev.crt\nopenssl pkcs12 -inkey ./cert/local_dev.key -in ./cert/local_dev.crt -export -out ./cert/local_dev.pfx\nopenssl base64 -in ./cert/local_dev.pfx -out ./cert/base64_pfx\n"})}),"\n",(0,s.jsx)(n.h1,{id:"cors-configuration",children:"CORS Configuration"}),"\n",(0,s.jsxs)(n.p,{children:["As document storage is delegated to S3-compatible services that reside in a different host than the OpenSign one, document operations (loading, storing, deleting) are subject to ",(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cross-origin_resource_sharing",children:"Cross-Origin Resource Sharing"})," restriction policies; as a consequence, OpenSign app may fail with (browser console) errors like the following:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"Access to fetch at 'https://foo.nyc3.digitaloceanspaces.com/exported_file_4627_0000-00-00T00%3A45%3A43.344Z.pdf'\nfrom origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header\nis present on the requested resource. If an opaque response serves your needs, set the request's mode to\n'no-cors' to fetch the resource with CORS disabled.\n"})}),"\n",(0,s.jsx)(n.p,{children:"In order to address this, your document storage system must be instructed to accept requests from other hosts; below the relevant documentation links:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.digitalocean.com/products/spaces/how-to/configure-cors/",children:"How to Configure CORS on DigitalOcean Spaces"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html",children:"Configuring cross-origin resource sharing on AWS S3"})}),"\n"]}),"\n",(0,s.jsx)(n.h1,{id:"build-local-environment",children:"Build Local Environment"}),"\n",(0,s.jsx)(n.p,{children:"Command to build project -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Execute ",(0,s.jsx)(n.code,{children:"make build"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Command to run project -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Execute ",(0,s.jsx)(n.code,{children:"make run"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>o});var s=t(67294);const i={},r=s.createContext(i);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.210c70a0.js b/assets/js/runtime~main.0a09fcb4.js
similarity index 98%
rename from assets/js/runtime~main.210c70a0.js
rename to assets/js/runtime~main.0a09fcb4.js
index 68ef61666..f58efe21a 100644
--- a/assets/js/runtime~main.210c70a0.js
+++ b/assets/js/runtime~main.0a09fcb4.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,c,r,b,d={},f={};function t(e){var a=f[e];if(void 0!==a)return a.exports;var c=f[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}t.m=d,t.c=f,e=[],t.O=(a,c,r,b)=>{if(!c){var d=1/0;for(n=0;n=b)&&Object.keys(t.O).every((e=>t.O[e](c[o])))?c.splice(o--,1):(f=!1,b0&&e[n-1][2]>b;n--)e[n]=e[n-1];e[n]=[c,r,b]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var b=Object.create(null);t.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var f=2&r&&e;"object"==typeof f&&!~a.indexOf(f);f=c(f))Object.getOwnPropertyNames(f).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,t.d(b,d),b},t.d=(e,a)=>{for(var c in a)t.o(a,c)&&!t.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,c)=>(t.f[c](e,a),a)),[])),t.u=e=>"assets/js/"+({53:"935f2afb",110:"66406991",230:"d91ad230",261:"reactPlayerKaltura",273:"fa40969b",420:"e2c87691",453:"30a24c52",533:"b2b675dd",762:"d8b805fb",823:"c7b98810",841:"c5e4dae0",853:"277a78f5",948:"8717b14a",1332:"f0ff4a36",1477:"b2f554cd",1512:"e9e778b7",1520:"770b40a9",1531:"bbdfc22d",1633:"031793e1",1713:"a7023ddc",1773:"ef5d5d5d",1893:"4c5e977b",1914:"d9f32620",2087:"bfe4b778",2121:"reactPlayerFacebook",2241:"2ace9d1d",2245:"a2bc1463",2267:"59362658",2362:"e273c56f",2403:"38c56221",2535:"814f3328",2546:"reactPlayerStreamable",2832:"1f73ca32",2865:"3e02da86",3085:"1f391b9e",3089:"a6aa9e1f",3101:"64ee8796",3137:"1a2f05d3",3156:"11b7b3d8",3205:"a80da1cf",3514:"73664a40",3608:"9e4087bc",3743:"reactPlayerVimeo",4013:"01a85c17",4195:"c4f5d8e4",4277:"14716de7",4368:"a94703ab",4439:"reactPlayerYouTube",4478:"d1393a72",4651:"05632a52",4667:"reactPlayerMixcloud",4772:"b0378e01",4918:"1f7895dc",4955:"e226bb09",4985:"b839bf37",5377:"ce589067",5507:"8320e026",5858:"046910c8",5900:"38e3d9c8",6011:"reactPlayerFilePlayer",6033:"28b19cd2",6103:"ccc49370",6113:"13fdae3b",6125:"reactPlayerSoundCloud",6177:"611db08b",6216:"reactPlayerTwitch",6344:"984cf7cf",6543:"17e5210b",6759:"c9fa5aa5",6938:"608ae6a4",7100:"2c416566",7178:"096bfee4",7414:"393be207",7475:"500027af",7596:"reactPlayerDailyMotion",7664:"reactPlayerPreview",7894:"a88a3db3",7971:"8a725248",8055:"reactPlayerWistia",8087:"e4f5c862",8106:"377084eb",8141:"98da7451",8163:"5a2de241",8468:"52d5c0f9",8474:"9640838e",8489:"7b076186",8518:"a7bd4aaa",8610:"6875c492",8636:"f4f34a3a",8766:"70853c19",8781:"489b8a4d",8866:"eb56c656",8878:"cf03142d",8888:"reactPlayerVidyard",8892:"38ec836e",9003:"925b3f96",9010:"06b6ef6a",9035:"4c9e35b1",9588:"5c04ee3b",9642:"7661071f",9661:"5e95c892",9671:"0e384e19",9697:"2c586be5",9700:"e16015ca",9817:"14eb3368",9914:"0c0943c7"}[e]||e)+"."+{53:"06eb34b2",110:"ab20026d",230:"3cc5e6e9",261:"4b30f79b",273:"142abd15",420:"c9c1a330",453:"61f3e45f",533:"2d5f5b1d",762:"0be52068",823:"81840a08",841:"b9d70538",853:"1244da80",948:"b2da1fd1",1332:"bdf7e411",1477:"b31b2642",1512:"7ddd2ec3",1520:"cfe051cf",1531:"298e9aa8",1633:"d8366831",1713:"fefd4794",1772:"c222a62c",1773:"d5cdc9ed",1893:"59606182",1914:"eb382def",2087:"9ac115fd",2121:"c8df990c",2241:"e6e648f1",2245:"e95152b3",2267:"a4846e2b",2362:"ebdb1814",2403:"98102502",2529:"2079a565",2535:"f3b6b0ab",2546:"665b04f4",2832:"450477a3",2865:"89ed6402",3085:"e5c5d651",3089:"84b5c675",3101:"47959e32",3137:"071bc9df",3156:"41df5616",3205:"af75d475",3514:"b2437ac4",3608:"0e768bf1",3743:"2ede10ee",4013:"e5e25f55",4148:"aa6a1681",4195:"1659087e",4277:"5fe62968",4311:"86f3bfc6",4368:"7d12b1da",4439:"6a6454f7",4478:"ed78b777",4651:"804248b0",4667:"c24bbf43",4682:"18721add",4772:"ab8f1dec",4918:"15f115ce",4955:"8f728b1e",4985:"c2841a57",5377:"ffc7db1a",5507:"36c41078",5858:"86987606",5900:"395b3964",6011:"6de743c9",6033:"8efd80de",6103:"ebc8482f",6113:"8e8c149c",6125:"9555c68b",6177:"e7798f11",6216:"0d890761",6344:"394ac727",6543:"7f67a86f",6759:"c81d0e01",6938:"d44251bf",7100:"dfa7c53a",7178:"9a58922d",7414:"8d31e6a7",7475:"0b8bf361",7596:"95bca972",7664:"7fd4bae6",7894:"f9046360",7971:"8323da14",8055:"27482879",8087:"fd9041fd",8106:"015e4a9a",8140:"901b2f91",8141:"6478079e",8163:"7d7e666b",8468:"4f2bfead",8474:"f58804a4",8475:"d27b3009",8489:"40a02a7c",8518:"aaa08e5a",8531:"1f1a82a7",8610:"d85035d6",8636:"c590d949",8766:"d6b7d755",8781:"3238e555",8866:"381cdff2",8878:"50c3bf68",8888:"f7352a9d",8892:"7315f43d",9003:"1e8e0783",9010:"f4802a87",9035:"37598b09",9588:"3b8abbdf",9642:"223fec4f",9661:"33228fcd",9671:"8f2ee486",9697:"5e09231a",9700:"ad032cc8",9817:"424c677a",9914:"83d53850"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b="OpenSign-Docs:",t.l=(e,a,c,d)=>{if(r[e])r[e].push(a);else{var f,o;if(void 0!==c)for(var l=document.getElementsByTagName("script"),n=0;n{f.onerror=f.onload=null,clearTimeout(s);var b=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),o&&document.head.appendChild(f)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.p="/",t.gca=function(e){return e={59362658:"2267",66406991:"110","935f2afb":"53",d91ad230:"230",reactPlayerKaltura:"261",fa40969b:"273",e2c87691:"420","30a24c52":"453",b2b675dd:"533",d8b805fb:"762",c7b98810:"823",c5e4dae0:"841","277a78f5":"853","8717b14a":"948",f0ff4a36:"1332",b2f554cd:"1477",e9e778b7:"1512","770b40a9":"1520",bbdfc22d:"1531","031793e1":"1633",a7023ddc:"1713",ef5d5d5d:"1773","4c5e977b":"1893",d9f32620:"1914",bfe4b778:"2087",reactPlayerFacebook:"2121","2ace9d1d":"2241",a2bc1463:"2245",e273c56f:"2362","38c56221":"2403","814f3328":"2535",reactPlayerStreamable:"2546","1f73ca32":"2832","3e02da86":"2865","1f391b9e":"3085",a6aa9e1f:"3089","64ee8796":"3101","1a2f05d3":"3137","11b7b3d8":"3156",a80da1cf:"3205","73664a40":"3514","9e4087bc":"3608",reactPlayerVimeo:"3743","01a85c17":"4013",c4f5d8e4:"4195","14716de7":"4277",a94703ab:"4368",reactPlayerYouTube:"4439",d1393a72:"4478","05632a52":"4651",reactPlayerMixcloud:"4667",b0378e01:"4772","1f7895dc":"4918",e226bb09:"4955",b839bf37:"4985",ce589067:"5377","8320e026":"5507","046910c8":"5858","38e3d9c8":"5900",reactPlayerFilePlayer:"6011","28b19cd2":"6033",ccc49370:"6103","13fdae3b":"6113",reactPlayerSoundCloud:"6125","611db08b":"6177",reactPlayerTwitch:"6216","984cf7cf":"6344","17e5210b":"6543",c9fa5aa5:"6759","608ae6a4":"6938","2c416566":"7100","096bfee4":"7178","393be207":"7414","500027af":"7475",reactPlayerDailyMotion:"7596",reactPlayerPreview:"7664",a88a3db3:"7894","8a725248":"7971",reactPlayerWistia:"8055",e4f5c862:"8087","377084eb":"8106","98da7451":"8141","5a2de241":"8163","52d5c0f9":"8468","9640838e":"8474","7b076186":"8489",a7bd4aaa:"8518","6875c492":"8610",f4f34a3a:"8636","70853c19":"8766","489b8a4d":"8781",eb56c656:"8866",cf03142d:"8878",reactPlayerVidyard:"8888","38ec836e":"8892","925b3f96":"9003","06b6ef6a":"9010","4c9e35b1":"9035","5c04ee3b":"9588","7661071f":"9642","5e95c892":"9661","0e384e19":"9671","2c586be5":"9697",e16015ca:"9700","14eb3368":"9817","0c0943c7":"9914"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,c)=>{var r=t.o(e,a)?e[a]:void 0;if(0!==r)if(r)c.push(r[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>r=e[a]=[c,b]));c.push(r[2]=b);var d=t.p+t.u(a),f=new Error;t.l(d,(c=>{if(t.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;f.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",f.name="ChunkLoadError",f.type=b,f.request=d,r[1](f)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,c)=>{var r,b,d=c[0],f=c[1],o=c[2],l=0;if(d.some((a=>0!==e[a]))){for(r in f)t.o(f,r)&&(t.m[r]=f[r]);if(o)var n=o(t)}for(a&&a(c);l{"use strict";var e,a,c,r,b,d={},f={};function t(e){var a=f[e];if(void 0!==a)return a.exports;var c=f[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}t.m=d,t.c=f,e=[],t.O=(a,c,r,b)=>{if(!c){var d=1/0;for(n=0;n=b)&&Object.keys(t.O).every((e=>t.O[e](c[o])))?c.splice(o--,1):(f=!1,b0&&e[n-1][2]>b;n--)e[n]=e[n-1];e[n]=[c,r,b]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var b=Object.create(null);t.r(b);var d={};a=a||[null,c({}),c([]),c(c)];for(var f=2&r&&e;"object"==typeof f&&!~a.indexOf(f);f=c(f))Object.getOwnPropertyNames(f).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,t.d(b,d),b},t.d=(e,a)=>{for(var c in a)t.o(a,c)&&!t.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,c)=>(t.f[c](e,a),a)),[])),t.u=e=>"assets/js/"+({53:"935f2afb",110:"66406991",230:"d91ad230",261:"reactPlayerKaltura",273:"fa40969b",420:"e2c87691",453:"30a24c52",533:"b2b675dd",762:"d8b805fb",823:"c7b98810",841:"c5e4dae0",853:"277a78f5",948:"8717b14a",1332:"f0ff4a36",1477:"b2f554cd",1512:"e9e778b7",1520:"770b40a9",1531:"bbdfc22d",1633:"031793e1",1713:"a7023ddc",1773:"ef5d5d5d",1893:"4c5e977b",1914:"d9f32620",2087:"bfe4b778",2121:"reactPlayerFacebook",2241:"2ace9d1d",2245:"a2bc1463",2267:"59362658",2362:"e273c56f",2403:"38c56221",2535:"814f3328",2546:"reactPlayerStreamable",2832:"1f73ca32",2865:"3e02da86",3085:"1f391b9e",3089:"a6aa9e1f",3101:"64ee8796",3137:"1a2f05d3",3156:"11b7b3d8",3205:"a80da1cf",3514:"73664a40",3608:"9e4087bc",3743:"reactPlayerVimeo",4013:"01a85c17",4195:"c4f5d8e4",4277:"14716de7",4368:"a94703ab",4439:"reactPlayerYouTube",4478:"d1393a72",4651:"05632a52",4667:"reactPlayerMixcloud",4772:"b0378e01",4918:"1f7895dc",4955:"e226bb09",4985:"b839bf37",5377:"ce589067",5507:"8320e026",5858:"046910c8",5900:"38e3d9c8",6011:"reactPlayerFilePlayer",6033:"28b19cd2",6103:"ccc49370",6113:"13fdae3b",6125:"reactPlayerSoundCloud",6177:"611db08b",6216:"reactPlayerTwitch",6344:"984cf7cf",6543:"17e5210b",6759:"c9fa5aa5",6938:"608ae6a4",7100:"2c416566",7178:"096bfee4",7414:"393be207",7475:"500027af",7596:"reactPlayerDailyMotion",7664:"reactPlayerPreview",7894:"a88a3db3",7971:"8a725248",8055:"reactPlayerWistia",8087:"e4f5c862",8106:"377084eb",8141:"98da7451",8163:"5a2de241",8468:"52d5c0f9",8474:"9640838e",8489:"7b076186",8518:"a7bd4aaa",8610:"6875c492",8636:"f4f34a3a",8766:"70853c19",8781:"489b8a4d",8866:"eb56c656",8878:"cf03142d",8888:"reactPlayerVidyard",8892:"38ec836e",9003:"925b3f96",9010:"06b6ef6a",9035:"4c9e35b1",9588:"5c04ee3b",9642:"7661071f",9661:"5e95c892",9671:"0e384e19",9697:"2c586be5",9700:"e16015ca",9817:"14eb3368",9914:"0c0943c7"}[e]||e)+"."+{53:"06eb34b2",110:"ab20026d",230:"3cc5e6e9",261:"4b30f79b",273:"142abd15",420:"c9c1a330",453:"61f3e45f",533:"2d5f5b1d",762:"0be52068",823:"81840a08",841:"b9d70538",853:"35799f9e",948:"b2da1fd1",1332:"bdf7e411",1477:"b31b2642",1512:"7ddd2ec3",1520:"cfe051cf",1531:"298e9aa8",1633:"d8366831",1713:"fefd4794",1772:"c222a62c",1773:"d5cdc9ed",1893:"59606182",1914:"eb382def",2087:"9ac115fd",2121:"c8df990c",2241:"e6e648f1",2245:"e95152b3",2267:"a4846e2b",2362:"ebdb1814",2403:"98102502",2529:"2079a565",2535:"f3b6b0ab",2546:"665b04f4",2832:"450477a3",2865:"89ed6402",3085:"e5c5d651",3089:"84b5c675",3101:"47959e32",3137:"071bc9df",3156:"41df5616",3205:"af75d475",3514:"b2437ac4",3608:"0e768bf1",3743:"2ede10ee",4013:"e5e25f55",4148:"aa6a1681",4195:"1659087e",4277:"5fe62968",4311:"86f3bfc6",4368:"7d12b1da",4439:"6a6454f7",4478:"ed78b777",4651:"804248b0",4667:"c24bbf43",4682:"18721add",4772:"ab8f1dec",4918:"15f115ce",4955:"8f728b1e",4985:"c2841a57",5377:"ffc7db1a",5507:"36c41078",5858:"86987606",5900:"395b3964",6011:"6de743c9",6033:"8efd80de",6103:"ebc8482f",6113:"8e8c149c",6125:"9555c68b",6177:"e7798f11",6216:"0d890761",6344:"394ac727",6543:"7f67a86f",6759:"c81d0e01",6938:"d44251bf",7100:"dfa7c53a",7178:"9a58922d",7414:"8d31e6a7",7475:"0b8bf361",7596:"95bca972",7664:"7fd4bae6",7894:"f9046360",7971:"8323da14",8055:"27482879",8087:"fd9041fd",8106:"015e4a9a",8140:"901b2f91",8141:"6478079e",8163:"7d7e666b",8468:"4f2bfead",8474:"f58804a4",8475:"d27b3009",8489:"40a02a7c",8518:"aaa08e5a",8531:"1f1a82a7",8610:"d85035d6",8636:"c590d949",8766:"d6b7d755",8781:"3238e555",8866:"381cdff2",8878:"50c3bf68",8888:"f7352a9d",8892:"7315f43d",9003:"1e8e0783",9010:"f4802a87",9035:"37598b09",9588:"3b8abbdf",9642:"223fec4f",9661:"33228fcd",9671:"8f2ee486",9697:"5e09231a",9700:"ad032cc8",9817:"424c677a",9914:"83d53850"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b="OpenSign-Docs:",t.l=(e,a,c,d)=>{if(r[e])r[e].push(a);else{var f,o;if(void 0!==c)for(var l=document.getElementsByTagName("script"),n=0;n{f.onerror=f.onload=null,clearTimeout(s);var b=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),b&&b.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),o&&document.head.appendChild(f)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.p="/",t.gca=function(e){return e={59362658:"2267",66406991:"110","935f2afb":"53",d91ad230:"230",reactPlayerKaltura:"261",fa40969b:"273",e2c87691:"420","30a24c52":"453",b2b675dd:"533",d8b805fb:"762",c7b98810:"823",c5e4dae0:"841","277a78f5":"853","8717b14a":"948",f0ff4a36:"1332",b2f554cd:"1477",e9e778b7:"1512","770b40a9":"1520",bbdfc22d:"1531","031793e1":"1633",a7023ddc:"1713",ef5d5d5d:"1773","4c5e977b":"1893",d9f32620:"1914",bfe4b778:"2087",reactPlayerFacebook:"2121","2ace9d1d":"2241",a2bc1463:"2245",e273c56f:"2362","38c56221":"2403","814f3328":"2535",reactPlayerStreamable:"2546","1f73ca32":"2832","3e02da86":"2865","1f391b9e":"3085",a6aa9e1f:"3089","64ee8796":"3101","1a2f05d3":"3137","11b7b3d8":"3156",a80da1cf:"3205","73664a40":"3514","9e4087bc":"3608",reactPlayerVimeo:"3743","01a85c17":"4013",c4f5d8e4:"4195","14716de7":"4277",a94703ab:"4368",reactPlayerYouTube:"4439",d1393a72:"4478","05632a52":"4651",reactPlayerMixcloud:"4667",b0378e01:"4772","1f7895dc":"4918",e226bb09:"4955",b839bf37:"4985",ce589067:"5377","8320e026":"5507","046910c8":"5858","38e3d9c8":"5900",reactPlayerFilePlayer:"6011","28b19cd2":"6033",ccc49370:"6103","13fdae3b":"6113",reactPlayerSoundCloud:"6125","611db08b":"6177",reactPlayerTwitch:"6216","984cf7cf":"6344","17e5210b":"6543",c9fa5aa5:"6759","608ae6a4":"6938","2c416566":"7100","096bfee4":"7178","393be207":"7414","500027af":"7475",reactPlayerDailyMotion:"7596",reactPlayerPreview:"7664",a88a3db3:"7894","8a725248":"7971",reactPlayerWistia:"8055",e4f5c862:"8087","377084eb":"8106","98da7451":"8141","5a2de241":"8163","52d5c0f9":"8468","9640838e":"8474","7b076186":"8489",a7bd4aaa:"8518","6875c492":"8610",f4f34a3a:"8636","70853c19":"8766","489b8a4d":"8781",eb56c656:"8866",cf03142d:"8878",reactPlayerVidyard:"8888","38ec836e":"8892","925b3f96":"9003","06b6ef6a":"9010","4c9e35b1":"9035","5c04ee3b":"9588","7661071f":"9642","5e95c892":"9661","0e384e19":"9671","2c586be5":"9697",e16015ca:"9700","14eb3368":"9817","0c0943c7":"9914"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,c)=>{var r=t.o(e,a)?e[a]:void 0;if(0!==r)if(r)c.push(r[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((c,b)=>r=e[a]=[c,b]));c.push(r[2]=b);var d=t.p+t.u(a),f=new Error;t.l(d,(c=>{if(t.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var b=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;f.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",f.name="ChunkLoadError",f.type=b,f.request=d,r[1](f)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,c)=>{var r,b,d=c[0],f=c[1],o=c[2],l=0;if(d.some((a=>0!==e[a]))){for(r in f)t.o(f,r)&&(t.m[r]=f[r]);if(o)var n=o(t)}for(a&&a(c);lArchive | OpenSign™
-
+
diff --git a/blog/first-blog-post/index.html b/blog/first-blog-post/index.html
index 7153f0c10..62396098c 100644
--- a/blog/first-blog-post/index.html
+++ b/blog/first-blog-post/index.html
@@ -5,7 +5,7 @@
First Blog Post | OpenSign™
-
+
diff --git a/blog/index.html b/blog/index.html
index 405ce6108..07866d535 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,7 +5,7 @@
Blog | OpenSign™
-
+
diff --git a/blog/long-blog-post/index.html b/blog/long-blog-post/index.html
index 814bfdfdb..31390de0b 100644
--- a/blog/long-blog-post/index.html
+++ b/blog/long-blog-post/index.html
@@ -5,7 +5,7 @@
Long Blog Post | OpenSign™
-
+
diff --git a/blog/mdx-blog-post/index.html b/blog/mdx-blog-post/index.html
index 4ea4a8b49..cd9611d09 100644
--- a/blog/mdx-blog-post/index.html
+++ b/blog/mdx-blog-post/index.html
@@ -5,7 +5,7 @@
MDX Blog Post | OpenSign™
-
+
diff --git a/blog/tags/docusaurus/index.html b/blog/tags/docusaurus/index.html
index 146414170..07aa75c34 100644
--- a/blog/tags/docusaurus/index.html
+++ b/blog/tags/docusaurus/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "docusaurus" | OpenSign™
-
+
diff --git a/blog/tags/facebook/index.html b/blog/tags/facebook/index.html
index c109ff491..d770317c7 100644
--- a/blog/tags/facebook/index.html
+++ b/blog/tags/facebook/index.html
@@ -5,7 +5,7 @@
One post tagged with "facebook" | OpenSign™
-
+
diff --git a/blog/tags/hello/index.html b/blog/tags/hello/index.html
index 890e0ff72..07ec5c1eb 100644
--- a/blog/tags/hello/index.html
+++ b/blog/tags/hello/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "hello" | OpenSign™
-
+
diff --git a/blog/tags/hola/index.html b/blog/tags/hola/index.html
index bc692e147..39831c6ed 100644
--- a/blog/tags/hola/index.html
+++ b/blog/tags/hola/index.html
@@ -5,7 +5,7 @@
One post tagged with "hola" | OpenSign™
-
+
diff --git a/blog/tags/index.html b/blog/tags/index.html
index d3ab0ed39..bc61864ed 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,7 +5,7 @@
Tags | OpenSign™
-
+
diff --git a/blog/welcome/index.html b/blog/welcome/index.html
index 6f9d3b523..f1eb24510 100644
--- a/blog/welcome/index.html
+++ b/blog/welcome/index.html
@@ -5,7 +5,7 @@
Welcome | OpenSign™
-
+
diff --git a/docs/API-docs/contactlist/index.html b/docs/API-docs/contactlist/index.html
index 0a455778e..859d46e0a 100644
--- a/docs/API-docs/contactlist/index.html
+++ b/docs/API-docs/contactlist/index.html
@@ -5,7 +5,7 @@
Get Contact list | OpenSign™
-
+
diff --git a/docs/API-docs/createcontact/index.html b/docs/API-docs/createcontact/index.html
index 92ad4aa77..870801b3f 100644
--- a/docs/API-docs/createcontact/index.html
+++ b/docs/API-docs/createcontact/index.html
@@ -5,7 +5,7 @@
Create Contact | OpenSign™
-
+
diff --git a/docs/API-docs/createdocument/index.html b/docs/API-docs/createdocument/index.html
index 5ca492b91..2ed6c0997 100644
--- a/docs/API-docs/createdocument/index.html
+++ b/docs/API-docs/createdocument/index.html
@@ -5,7 +5,7 @@
Create Document | OpenSign™
-
+
diff --git a/docs/API-docs/createdocumentwithtemplateid/index.html b/docs/API-docs/createdocumentwithtemplateid/index.html
index 27b772854..c2dff74ec 100644
--- a/docs/API-docs/createdocumentwithtemplateid/index.html
+++ b/docs/API-docs/createdocumentwithtemplateid/index.html
@@ -5,7 +5,7 @@
Create Document from Template | OpenSign™
-
+
diff --git a/docs/API-docs/createtemplate/index.html b/docs/API-docs/createtemplate/index.html
index 8b15c1240..28751043f 100644
--- a/docs/API-docs/createtemplate/index.html
+++ b/docs/API-docs/createtemplate/index.html
@@ -5,7 +5,7 @@
Create Template | OpenSign™
-
+
diff --git a/docs/API-docs/delete-template/index.html b/docs/API-docs/delete-template/index.html
index b349f8fef..e0152c071 100644
--- a/docs/API-docs/delete-template/index.html
+++ b/docs/API-docs/delete-template/index.html
@@ -5,7 +5,7 @@
Delete Template | OpenSign™
-
+
diff --git a/docs/API-docs/delete-webhook/index.html b/docs/API-docs/delete-webhook/index.html
index 09432b017..c8161d8d1 100644
--- a/docs/API-docs/delete-webhook/index.html
+++ b/docs/API-docs/delete-webhook/index.html
@@ -5,7 +5,7 @@
Delete Webhook | OpenSign™
-
+
diff --git a/docs/API-docs/deletecontact/index.html b/docs/API-docs/deletecontact/index.html
index 020e61dc9..bd8002db0 100644
--- a/docs/API-docs/deletecontact/index.html
+++ b/docs/API-docs/deletecontact/index.html
@@ -5,7 +5,7 @@
Delete Contact | OpenSign™
-
+
diff --git a/docs/API-docs/deletedocument/index.html b/docs/API-docs/deletedocument/index.html
index 2de5c7a4f..8045d30d3 100644
--- a/docs/API-docs/deletedocument/index.html
+++ b/docs/API-docs/deletedocument/index.html
@@ -5,7 +5,7 @@
Delete Document | OpenSign™
-
+
diff --git a/docs/API-docs/draftedocument/index.html b/docs/API-docs/draftedocument/index.html
index 4350311b6..cfd3af99b 100644
--- a/docs/API-docs/draftedocument/index.html
+++ b/docs/API-docs/draftedocument/index.html
@@ -5,7 +5,7 @@
Draft Document | OpenSign™
-
+
diff --git a/docs/API-docs/get-template/index.html b/docs/API-docs/get-template/index.html
index 02b7f2059..614194fea 100644
--- a/docs/API-docs/get-template/index.html
+++ b/docs/API-docs/get-template/index.html
@@ -5,7 +5,7 @@
Get Template | OpenSign™
-
+
diff --git a/docs/API-docs/get-user/index.html b/docs/API-docs/get-user/index.html
index bf67698e3..5981ef9f6 100644
--- a/docs/API-docs/get-user/index.html
+++ b/docs/API-docs/get-user/index.html
@@ -5,7 +5,7 @@
Get your account details | OpenSign™
-
+
diff --git a/docs/API-docs/get-webhook/index.html b/docs/API-docs/get-webhook/index.html
index 807ab78b6..815b71156 100644
--- a/docs/API-docs/get-webhook/index.html
+++ b/docs/API-docs/get-webhook/index.html
@@ -5,7 +5,7 @@
Get Webhook | OpenSign™
-
+
diff --git a/docs/API-docs/getcontact/index.html b/docs/API-docs/getcontact/index.html
index fd385efb3..e08a33b70 100644
--- a/docs/API-docs/getcontact/index.html
+++ b/docs/API-docs/getcontact/index.html
@@ -5,7 +5,7 @@
Get Contact | OpenSign™
-
+
diff --git a/docs/API-docs/getdocument/index.html b/docs/API-docs/getdocument/index.html
index 2279f0d61..a5e969b43 100644
--- a/docs/API-docs/getdocument/index.html
+++ b/docs/API-docs/getdocument/index.html
@@ -5,7 +5,7 @@
Get Document | OpenSign™
-
+
diff --git a/docs/API-docs/getdocumentlist/index.html b/docs/API-docs/getdocumentlist/index.html
index daa6bfe8c..e836a19c9 100644
--- a/docs/API-docs/getdocumentlist/index.html
+++ b/docs/API-docs/getdocumentlist/index.html
@@ -5,7 +5,7 @@
Get Document list from status | OpenSign™
-
+
diff --git a/docs/API-docs/gettemplatelist/index.html b/docs/API-docs/gettemplatelist/index.html
index ecf164b05..5cd00fe60 100644
--- a/docs/API-docs/gettemplatelist/index.html
+++ b/docs/API-docs/gettemplatelist/index.html
@@ -5,7 +5,7 @@
Get Template list | OpenSign™
-
+
diff --git a/docs/API-docs/intro/index.html b/docs/API-docs/intro/index.html
index 04b122bd8..8f6ec26b6 100644
--- a/docs/API-docs/intro/index.html
+++ b/docs/API-docs/intro/index.html
@@ -5,7 +5,7 @@
Overview | OpenSign™
-
+
diff --git a/docs/API-docs/opensign-api-v-1/index.html b/docs/API-docs/opensign-api-v-1/index.html
index 1701da4cf..03eb7720d 100644
--- a/docs/API-docs/opensign-api-v-1/index.html
+++ b/docs/API-docs/opensign-api-v-1/index.html
@@ -5,7 +5,7 @@
OpenSign API v1 | OpenSign™
-
+
diff --git a/docs/API-docs/save-update-webhook/index.html b/docs/API-docs/save-update-webhook/index.html
index 5a9746ec2..7880594a6 100644
--- a/docs/API-docs/save-update-webhook/index.html
+++ b/docs/API-docs/save-update-webhook/index.html
@@ -5,7 +5,7 @@
Save or Update Webhook | OpenSign™
-
+
diff --git a/docs/API-docs/update-document/index.html b/docs/API-docs/update-document/index.html
index 54d4a7f7e..bfe6ed7df 100644
--- a/docs/API-docs/update-document/index.html
+++ b/docs/API-docs/update-document/index.html
@@ -5,7 +5,7 @@
Update Document | OpenSign™
-
+
diff --git a/docs/API-docs/update-template/index.html b/docs/API-docs/update-template/index.html
index 8e9277ecf..e1390506a 100644
--- a/docs/API-docs/update-template/index.html
+++ b/docs/API-docs/update-template/index.html
@@ -5,7 +5,7 @@
Update Template | OpenSign™
-
+
diff --git a/docs/category/create-new-opensign-document/index.html b/docs/category/create-new-opensign-document/index.html
index 154fea2e6..7a2025f31 100644
--- a/docs/category/create-new-opensign-document/index.html
+++ b/docs/category/create-new-opensign-document/index.html
@@ -5,7 +5,7 @@
Create New OpenSign Document | OpenSign™
-
+
diff --git a/docs/category/docker/index.html b/docs/category/docker/index.html
index b8fb04e07..8e37ee6e5 100644
--- a/docs/category/docker/index.html
+++ b/docs/category/docker/index.html
@@ -5,7 +5,7 @@
Docker | OpenSign™
-
+
diff --git a/docs/category/manage-docs-using-opensign-drive/index.html b/docs/category/manage-docs-using-opensign-drive/index.html
index 8a16d61bc..689e67d60 100644
--- a/docs/category/manage-docs-using-opensign-drive/index.html
+++ b/docs/category/manage-docs-using-opensign-drive/index.html
@@ -5,7 +5,7 @@
Manage Docs using OpenSign™ Drive | OpenSign™
-
+
diff --git a/docs/category/reports/index.html b/docs/category/reports/index.html
index 446b20a2d..c78532534 100644
--- a/docs/category/reports/index.html
+++ b/docs/category/reports/index.html
@@ -5,7 +5,7 @@
Reports | OpenSign™
-
+
diff --git a/docs/category/settings/index.html b/docs/category/settings/index.html
index 2837f07e7..4289b0fa3 100644
--- a/docs/category/settings/index.html
+++ b/docs/category/settings/index.html
@@ -5,7 +5,7 @@
Settings | OpenSign™
-
+
diff --git a/docs/category/templates/index.html b/docs/category/templates/index.html
index 8d9312a51..d78e49c5a 100644
--- a/docs/category/templates/index.html
+++ b/docs/category/templates/index.html
@@ -5,7 +5,7 @@
Templates | OpenSign™
-
+
diff --git a/docs/contribute/CODE_OF_CONDUCT/index.html b/docs/contribute/CODE_OF_CONDUCT/index.html
index 2bdaec6b0..358eed5d6 100644
--- a/docs/contribute/CODE_OF_CONDUCT/index.html
+++ b/docs/contribute/CODE_OF_CONDUCT/index.html
@@ -5,7 +5,7 @@
Code of conduct | OpenSign™
-
+
diff --git a/docs/contribute/COMMUNITY/index.html b/docs/contribute/COMMUNITY/index.html
index ce77658f1..464816cef 100644
--- a/docs/contribute/COMMUNITY/index.html
+++ b/docs/contribute/COMMUNITY/index.html
@@ -5,7 +5,7 @@
Community at OpenSign™ | OpenSign™
-
+
diff --git a/docs/contribute/INSTALLATION/index.html b/docs/contribute/INSTALLATION/index.html
index bdd201317..1c791a6c8 100644
--- a/docs/contribute/INSTALLATION/index.html
+++ b/docs/contribute/INSTALLATION/index.html
@@ -5,7 +5,7 @@
Installation instructions | OpenSign™
-
+
@@ -44,7 +44,7 @@ Create an account by signing-up and start contributing.