From c490d6d6d8b483594d2bfc7524504cc7623f2199 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 20 Apr 2025 23:12:23 +0000 Subject: [PATCH] deploy: 6aaeeeeaf50ab40ac585c662550cfb319569a161 --- 404.html | 4 +- assets/js/0058b4c6.7fa088b2.js | 1 - assets/js/0058b4c6.ecd77fa1.js | 1 + assets/js/02d4f5c5.92a4db7d.js | 1 + ...f09f6.eb474160.js => 4cff09f6.8265c79a.js} | 2 +- ...842e4.dccc1a9f.js => b18842e4.6d12f149.js} | 2 +- .../js/{main.1f91456d.js => main.0d4ee6dc.js} | 4 +- ...CENSE.txt => main.0d4ee6dc.js.LICENSE.txt} | 0 assets/js/runtime~main.a7121afc.js | 1 - assets/js/runtime~main.bc4c45eb.js | 1 + blog/archive/index.html | 4 +- blog/authors/index.html | 4 +- blog/first-blog-post/index.html | 4 +- blog/index.html | 4 +- blog/long-blog-post/index.html | 4 +- blog/mdx-blog-post/index.html | 4 +- blog/tags/docusaurus/index.html | 4 +- blog/tags/facebook/index.html | 4 +- blog/tags/hello/index.html | 4 +- blog/tags/hola/index.html | 4 +- blog/tags/index.html | 4 +- blog/welcome/index.html | 4 +- docs/API-docs/contactlist/index.html | 4 +- docs/API-docs/createcontact/index.html | 4 +- docs/API-docs/createdocument/index.html | 4 +- .../createdocumentwithtemplateid/index.html | 4 +- docs/API-docs/createfolder/index.html | 4 +- docs/API-docs/createtemplate/index.html | 4 +- docs/API-docs/delete-template/index.html | 4 +- docs/API-docs/delete-webhook/index.html | 4 +- docs/API-docs/deletecontact/index.html | 4 +- docs/API-docs/deletedocument/index.html | 4 +- docs/API-docs/deletefolder/index.html | 4 +- docs/API-docs/draftdocument/index.html | 4 +- docs/API-docs/drafttemplate/index.html | 4 +- docs/API-docs/folderlist/index.html | 4 +- docs/API-docs/get-template/index.html | 4 +- docs/API-docs/get-user/index.html | 4 +- docs/API-docs/get-webhook/index.html | 4 +- docs/API-docs/getcontact/index.html | 4 +- docs/API-docs/getdocument/index.html | 4 +- docs/API-docs/getdocumentlist/index.html | 4 +- docs/API-docs/getfolder/index.html | 4 +- docs/API-docs/gettemplatelist/index.html | 4 +- docs/API-docs/intro/index.html | 4 +- docs/API-docs/opensign-api-v-1/index.html | 4 +- docs/API-docs/resendrequestmail/index.html | 4 +- docs/API-docs/revokedocument/index.html | 4 +- docs/API-docs/save-update-webhook/index.html | 4 +- docs/API-docs/selfsign/index.html | 4 +- docs/API-docs/update-document/index.html | 4 +- docs/API-docs/update-template/index.html | 4 +- docs/API-docs/updatefolder/index.html | 4 +- docs/category/cloud-storage/index.html | 4 +- .../create-new-opensign-document/index.html | 4 +- docs/category/docker/index.html | 4 +- docs/category/faqs/index.html | 4 +- docs/category/guides/index.html | 6 +- .../index.html | 4 +- docs/category/reports/index.html | 4 +- docs/category/settings/index.html | 4 +- docs/category/templates/index.html | 4 +- docs/contribute/CODE_OF_CONDUCT/index.html | 4 +- docs/contribute/COMMUNITY/index.html | 4 +- docs/contribute/INSTALLATION/index.html | 4 +- .../REPORTING_GUIDELINES/index.html | 4 +- docs/contribute/intro/index.html | 4 +- .../index.html | 4 +- docs/help/FAQs/index.html | 4 +- .../enforce-email-verification/index.html | 4 +- .../navigate-between-pages/index.html | 4 +- .../request-signatures/index.html | 4 +- .../New-Document/sign-yourself/index.html | 4 +- .../create-document/index.html | 4 +- .../OpenSign™ Drive/list-grid-view/index.html | 4 +- .../organize-documents/index.html | 4 +- .../rename-document/index.html | 4 +- docs/help/Reports/completed/index.html | 4 +- docs/help/Reports/contactbook/index.html | 4 +- docs/help/Reports/declined/index.html | 4 +- docs/help/Reports/drafts/index.html | 4 +- docs/help/Reports/expired/index.html | 4 +- docs/help/Reports/in-progress/index.html | 4 +- docs/help/Reports/need-your-sign/index.html | 4 +- .../Settings/disabledocumentid/index.html | 4 +- docs/help/Settings/manage-users/index.html | 4 +- docs/help/Settings/my-signature/index.html | 4 +- .../help/Templates/create-template/index.html | 4 +- docs/help/Templates/embed-template/index.html | 4 +- docs/help/Templates/publicTemplate/index.html | 4 +- docs/help/Templates/quick-send/index.html | 4 +- docs/help/Templates/use-template/index.html | 4 +- docs/help/intro/index.html | 4 +- docs/intro/index.html | 4 +- .../One-click-Install/DigitalOcean/index.html | 4 +- docs/self-host/cloud-storage/s3/index.html | 4 +- docs/self-host/docker/run-locally/index.html | 4 +- .../docker/upgrade-deployment/index.html | 4 +- .../guides/azure-vm-setup/index.html | 87 +++++++++++++++++++ .../self-host/guides/env-variables/index.html | 8 +- .../index.html | 6 +- .../guides/upgrade-to-v2.1.0/index.html | 6 +- docs/self-host/intro/index.html | 4 +- index.html | 4 +- markdown-page/index.html | 4 +- sitemap.xml | 2 +- 106 files changed, 290 insertions(+), 202 deletions(-) delete mode 100644 assets/js/0058b4c6.7fa088b2.js create mode 100644 assets/js/0058b4c6.ecd77fa1.js create mode 100644 assets/js/02d4f5c5.92a4db7d.js rename assets/js/{4cff09f6.eb474160.js => 4cff09f6.8265c79a.js} (62%) rename assets/js/{b18842e4.dccc1a9f.js => b18842e4.6d12f149.js} (97%) rename assets/js/{main.1f91456d.js => main.0d4ee6dc.js} (57%) rename assets/js/{main.1f91456d.js.LICENSE.txt => main.0d4ee6dc.js.LICENSE.txt} (100%) delete mode 100644 assets/js/runtime~main.a7121afc.js create mode 100644 assets/js/runtime~main.bc4c45eb.js create mode 100644 docs/self-host/guides/azure-vm-setup/index.html diff --git a/404.html b/404.html index fc6057cc6..807c3ac65 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@ Page Not Found | OpenSign™ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/0058b4c6.7fa088b2.js b/assets/js/0058b4c6.7fa088b2.js deleted file mode 100644 index 96b600a03..000000000 --- a/assets/js/0058b4c6.7fa088b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[849],{86164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Intro","href":"/docs/help/intro","docId":"help/intro","unlisted":false},{"type":"category","label":"Create New OpenSign Document","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Sign your-self","href":"/docs/help/New-Document/sign-yourself","docId":"help/New-Document/sign-yourself","unlisted":false},{"type":"link","label":"Request signatures","href":"/docs/help/New-Document/request-signatures","docId":"help/New-Document/request-signatures","unlisted":false},{"type":"link","label":"Navigate between pages of a document","href":"/docs/help/New-Document/navigate-between-pages","docId":"help/New-Document/navigate-between-pages","unlisted":false},{"type":"link","label":"Enforce email OTP verification","href":"/docs/help/New-Document/enforce-email-verification","docId":"help/New-Document/enforce-email-verification","unlisted":false}],"href":"/docs/category/create-new-opensign-document"},{"type":"category","label":"Manage Docs using OpenSign\u2122 Drive","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create Docs & Folders","href":"/docs/help/OpenSign\u2122 Drive/create-document","docId":"help/OpenSign\u2122 Drive/create-document","unlisted":false},{"type":"link","label":"Grid vs List view","href":"/docs/help/OpenSign\u2122 Drive/list-grid-view","docId":"help/OpenSign\u2122 Drive/list-grid-view","unlisted":false},{"type":"link","label":"OpenSign\u2122 Drive Interface Documentation","href":"/docs/help/OpenSign\u2122 Drive/organize-documents","docId":"help/OpenSign\u2122 Drive/organize-documents","unlisted":false},{"type":"link","label":"Rename documents from OpenSign\u2122 Drive","href":"/docs/help/OpenSign\u2122 Drive/rename-document","docId":"help/OpenSign\u2122 Drive/rename-document","unlisted":false}],"href":"/docs/category/manage-docs-using-opensign-drive"},{"type":"category","label":"Reports","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Need your sign","href":"/docs/help/Reports/need-your-sign","docId":"help/Reports/need-your-sign","unlisted":false},{"type":"link","label":"In Progress","href":"/docs/help/Reports/in-progress","docId":"help/Reports/in-progress","unlisted":false},{"type":"link","label":"Completed","href":"/docs/help/Reports/completed","docId":"help/Reports/completed","unlisted":false},{"type":"link","label":"Drafts","href":"/docs/help/Reports/drafts","docId":"help/Reports/drafts","unlisted":false},{"type":"link","label":"Declined","href":"/docs/help/Reports/declined","docId":"help/Reports/declined","unlisted":false},{"type":"link","label":"Expired","href":"/docs/help/Reports/expired","docId":"help/Reports/expired","unlisted":false},{"type":"link","label":"Contactbook","href":"/docs/help/Reports/contactbook","docId":"help/Reports/contactbook","unlisted":false}],"href":"/docs/category/reports"},{"type":"category","label":"Templates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create Templates","href":"/docs/help/Templates/create-template","docId":"help/Templates/create-template","unlisted":false},{"type":"link","label":"Use template to create documents","href":"/docs/help/Templates/use-template","docId":"help/Templates/use-template","unlisted":false},{"type":"link","label":"Quickly Send the Document for Signature Using Template","href":"/docs/help/Templates/quick-send","docId":"help/Templates/quick-send","unlisted":false},{"type":"link","label":"Setting up an OpenSign template for public signing","href":"/docs/help/Templates/publicTemplate","docId":"help/Templates/publicTemplate","unlisted":false},{"type":"link","label":"Embedding OpenSign templates","href":"/docs/help/Templates/embed-template","docId":"help/Templates/embed-template","unlisted":false}],"href":"/docs/category/templates"},{"type":"category","label":"Settings","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"My Signature","href":"/docs/help/Settings/my-signature","docId":"help/Settings/my-signature","unlisted":false},{"type":"link","label":"Disable DocumentId","href":"/docs/help/Settings/disabledocumentid","docId":"help/Settings/disabledocumentid","unlisted":false},{"type":"link","label":"Manage users","href":"/docs/help/Settings/manage-users","docId":"help/Settings/manage-users","unlisted":false}],"href":"/docs/category/settings"},{"type":"category","label":"FAQs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Why is there no dropdown list when I sign a document myself?","href":"/docs/help/FAQs/","docId":"help/FAQs/FAQs","unlisted":false},{"type":"link","label":"Why am I getting \'Ensure this field is accurately filled and meets all requirements\'?","href":"/docs/help/FAQs/Ensure this field is accurately filled and meets all requirements","docId":"help/FAQs/Ensure this field is accurately filled and meets all requirements","unlisted":false}],"href":"/docs/category/faqs"}],"selfhostSidebar":[{"type":"link","label":"Self-Hosting OpenSign","href":"/docs/self-host/intro","docId":"self-host/intro","unlisted":false},{"type":"category","label":"Docker","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows","href":"/docs/self-host/docker/run-locally","docId":"self-host/docker/run-locally","unlisted":false},{"type":"link","label":"OpenSign\u2122 Self-Hosted \'Upgrade Deployment\' Guide Using Docker on Linux, macOS, or Windows","href":"/docs/self-host/docker/upgrade-deployment","docId":"self-host/docker/upgrade-deployment","unlisted":false}],"href":"/docs/category/docker"},{"type":"category","label":"Cloud Storage","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"AWS S3","href":"/docs/self-host/cloud-storage/s3","docId":"self-host/cloud-storage/s3","unlisted":false}],"href":"/docs/category/cloud-storage"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","href":"/docs/self-host/guides/env-variables","docId":"self-host/guides/env-variables","unlisted":false},{"type":"link","label":"How to generate self-signed document signing certificate?","href":"/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate","docId":"self-host/guides/how-to-generate-self-signed-document-signing-certificate","unlisted":false},{"type":"link","label":"How to upgrade self-hosted OpenSign to v2.1.0?","href":"/docs/self-host/guides/upgrade-to-v2.1.0","docId":"self-host/guides/upgrade-to-v2.1.0","unlisted":false}],"href":"/docs/category/guides"},{"type":"category","label":"One-click-Install","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Digital Ocean","href":"/docs/self-host/One-click-Install/DigitalOcean","docId":"self-host/One-click-Install/DigitalOcean","unlisted":false}]}],"contributeSidebar":[{"type":"link","label":"Code of conduct","href":"/docs/contribute/CODE_OF_CONDUCT","docId":"contribute/CODE_OF_CONDUCT","unlisted":false},{"type":"link","label":"Contributing to OpenSign","href":"/docs/contribute/intro","docId":"contribute/intro","unlisted":false},{"type":"link","label":"Installation instructions","href":"/docs/contribute/INSTALLATION","docId":"contribute/INSTALLATION","unlisted":false},{"type":"link","label":"Community at OpenSign\u2122","href":"/docs/contribute/COMMUNITY","docId":"contribute/COMMUNITY","unlisted":false},{"type":"link","label":"OpenSign\u2122 Reporting Guidelines","href":"/docs/contribute/REPORTING_GUIDELINES","docId":"contribute/REPORTING_GUIDELINES","unlisted":false}],"apiSidebar":[{"type":"link","label":"Introduction","href":"/docs/API-docs/opensign-api-v-1","docId":"API-docs/opensign-api-v-1","unlisted":false},{"type":"category","label":"User","items":[{"type":"link","label":"Get your account details","href":"/docs/API-docs/get-user","className":"api-method get","docId":"API-docs/get-user","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contacts","items":[{"type":"link","label":"Create Contact","href":"/docs/API-docs/createcontact","className":"api-method post","docId":"API-docs/createcontact","unlisted":false},{"type":"link","label":"Get Contact","href":"/docs/API-docs/getcontact","className":"api-method get","docId":"API-docs/getcontact","unlisted":false},{"type":"link","label":"Delete Contact","href":"/docs/API-docs/deletecontact","className":"api-method delete","docId":"API-docs/deletecontact","unlisted":false},{"type":"link","label":"Get Contact list","href":"/docs/API-docs/contactlist","className":"api-method get","docId":"API-docs/contactlist","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Documents","items":[{"type":"link","label":"Self Sign","href":"/docs/API-docs/selfsign","className":"api-method post","docId":"API-docs/selfsign","unlisted":false},{"type":"link","label":"Draft Document","href":"/docs/API-docs/draftdocument","className":"api-method post","docId":"API-docs/draftdocument","unlisted":false},{"type":"link","label":"Create Document","href":"/docs/API-docs/createdocument","className":"api-method post","docId":"API-docs/createdocument","unlisted":false},{"type":"link","label":"Create Document from Template","href":"/docs/API-docs/createdocumentwithtemplateid","className":"api-method post","docId":"API-docs/createdocumentwithtemplateid","unlisted":false},{"type":"link","label":"Get Document","href":"/docs/API-docs/getdocument","className":"api-method get","docId":"API-docs/getdocument","unlisted":false},{"type":"link","label":"Update Document","href":"/docs/API-docs/update-document","className":"api-method put","docId":"API-docs/update-document","unlisted":false},{"type":"link","label":"Revoke Document","href":"/docs/API-docs/revokedocument","className":"api-method post","docId":"API-docs/revokedocument","unlisted":false},{"type":"link","label":"Delete Document","href":"/docs/API-docs/deletedocument","className":"api-method delete","docId":"API-docs/deletedocument","unlisted":false},{"type":"link","label":"Get Document list from status","href":"/docs/API-docs/getdocumentlist","className":"api-method get","docId":"API-docs/getdocumentlist","unlisted":false},{"type":"link","label":"Resend request mail","href":"/docs/API-docs/resendrequestmail","className":"api-method post","docId":"API-docs/resendrequestmail","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Templates","items":[{"type":"link","label":"Draft Template","href":"/docs/API-docs/drafttemplate","className":"api-method post","docId":"API-docs/drafttemplate","unlisted":false},{"type":"link","label":"Create Template","href":"/docs/API-docs/createtemplate","className":"api-method post","docId":"API-docs/createtemplate","unlisted":false},{"type":"link","label":"Get Template","href":"/docs/API-docs/get-template","className":"api-method get","docId":"API-docs/get-template","unlisted":false},{"type":"link","label":"Update Template","href":"/docs/API-docs/update-template","className":"api-method put","docId":"API-docs/update-template","unlisted":false},{"type":"link","label":"Delete Template","href":"/docs/API-docs/delete-template","className":"api-method delete","docId":"API-docs/delete-template","unlisted":false},{"type":"link","label":"Get Template list","href":"/docs/API-docs/gettemplatelist","className":"api-method get","docId":"API-docs/gettemplatelist","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Webhook","items":[{"type":"link","label":"Get Webhook","href":"/docs/API-docs/get-webhook","className":"api-method get","docId":"API-docs/get-webhook","unlisted":false},{"type":"link","label":"Save or Update Webhook","href":"/docs/API-docs/save-update-webhook","className":"api-method post","docId":"API-docs/save-update-webhook","unlisted":false},{"type":"link","label":"Delete Webhook","href":"/docs/API-docs/delete-webhook","className":"api-method delete","docId":"API-docs/delete-webhook","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Folder","items":[{"type":"link","label":"Create Folder","href":"/docs/API-docs/createfolder","className":"api-method post","docId":"API-docs/createfolder","unlisted":false},{"type":"link","label":"Get Folder","href":"/docs/API-docs/getfolder","className":"api-method get","docId":"API-docs/getfolder","unlisted":false},{"type":"link","label":"Update Folder","href":"/docs/API-docs/updatefolder","className":"api-method put","docId":"API-docs/updatefolder","unlisted":false},{"type":"link","label":"Delete Folder","href":"/docs/API-docs/deletefolder","className":"api-method delete","docId":"API-docs/deletefolder","unlisted":false},{"type":"link","label":"Get folder list","href":"/docs/API-docs/folderlist","className":"api-method get","docId":"API-docs/folderlist","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"API-docs/contactlist":{"id":"API-docs/contactlist","title":"Get Contact list","description":"The Contact List API empowers you to retrieve a list of contacts, providing a comprehensive view of all available contacts in your contactbook.","sidebar":"apiSidebar"},"API-docs/createcontact":{"id":"API-docs/createcontact","title":"Create Contact","description":"The Create Contact API allows you to effortlessly create new contacts that can act as signers for your important documents.","sidebar":"apiSidebar"},"API-docs/createdocument":{"id":"API-docs/createdocument","title":"Create Document","description":"The Create Document API allows users to generate new documents by providing data with base64 encoded file.","sidebar":"apiSidebar"},"API-docs/createdocumentwithtemplateid":{"id":"API-docs/createdocumentwithtemplateid","title":"Create Document from Template","description":"The Create Document from template API allows you to generate new documents by just providing template_id instead of uploading a new file(in the form of base64 or binary) every time you need to create a document. Templates for repeatedly used files can be created from user interface at [**Debug UI**](https://app.opensignlabs.com/debugpdf) or using the Create Template API.","sidebar":"apiSidebar"},"API-docs/createfolder":{"id":"API-docs/createfolder","title":"Create Folder","description":"The Create Folder API allows you to create folder.","sidebar":"apiSidebar"},"API-docs/createtemplate":{"id":"API-docs/createtemplate","title":"Create Template","description":"The Template Creation API allows users to create customizable templates, which serve as blueprints for generating documents with predefined structures. Upon successful template creation, the API returns a unique **template_id** that can be used to generate documents based on the specified template.","sidebar":"apiSidebar"},"API-docs/delete-template":{"id":"API-docs/delete-template","title":"Delete Template","description":"The Delete Template API provides you with the ability to remove a specific template from the templates. If a template is no longer needed","sidebar":"apiSidebar"},"API-docs/delete-webhook":{"id":"API-docs/delete-webhook","title":"Delete Webhook","description":"The Delete Webhook API allow you to delete webhook url","sidebar":"apiSidebar"},"API-docs/deletecontact":{"id":"API-docs/deletecontact","title":"Delete Contact","description":"The Delete Contact API allows you to remove a contact from your contactbook. If you no longer need a particular contact\'s information, this API makes it easy to delete their record.","sidebar":"apiSidebar"},"API-docs/deletedocument":{"id":"API-docs/deletedocument","title":"Delete Document","description":"The Delete document API allows you to remove specific document from your documents.","sidebar":"apiSidebar"},"API-docs/deletefolder":{"id":"API-docs/deletefolder","title":"Delete Folder","description":"The delete Folder API allows you to delete folder.","sidebar":"apiSidebar"},"API-docs/draftdocument":{"id":"API-docs/draftdocument","title":"Draft Document","description":"The Draft Document API allows users to generate new documents by providing data with a base64 encoded file.","sidebar":"apiSidebar"},"API-docs/drafttemplate":{"id":"API-docs/drafttemplate","title":"Draft Template","description":"The Template Drafting API enables users to create customizable templates, serving as blueprints for generating documents with predefined structures. Upon successful creation of a template, the API returns a unique **objectId** (designated as template_id), which can be used to generate documents based on the specified template. Additionally, a **url** is provided, which offers a user interface for editing the template and facilitating document distribution.","sidebar":"apiSidebar"},"API-docs/folderlist":{"id":"API-docs/folderlist","title":"Get folder list","description":"The Folder List API empowers you to retrieve a list of folder with or without parentFolderId","sidebar":"apiSidebar"},"API-docs/get-template":{"id":"API-docs/get-template","title":"Get Template","description":"The Get Template API allows you to retrieve details about a specific template. Templates serve as blueprints for creating documents with predefined structures.","sidebar":"apiSidebar"},"API-docs/get-user":{"id":"API-docs/get-user","title":"Get your account details","description":"The Get User API enables you to get your own account details.","sidebar":"apiSidebar"},"API-docs/get-webhook":{"id":"API-docs/get-webhook","title":"Get Webhook","description":"The Get Webhook API allow you to get webhook url","sidebar":"apiSidebar"},"API-docs/getcontact":{"id":"API-docs/getcontact","title":"Get Contact","description":"The Get Contact API allows you to retrieve details about a specific contact.","sidebar":"apiSidebar"},"API-docs/getdocument":{"id":"API-docs/getdocument","title":"Get Document","description":"The Get Document API enables you to retrieve details about a specific document.","sidebar":"apiSidebar"},"API-docs/getdocumentlist":{"id":"API-docs/getdocumentlist","title":"Get Document list from status","description":"### Document Types:","sidebar":"apiSidebar"},"API-docs/getfolder":{"id":"API-docs/getfolder","title":"Get Folder","description":"The Get Folder API allows you to retrieve details about a specific folder.","sidebar":"apiSidebar"},"API-docs/gettemplatelist":{"id":"API-docs/gettemplatelist","title":"Get Template list","description":"The Get Template List API allows you to retrieve a list of available templates. This functionality provides an overview of all templates, enabling users to choose from existing templates when creating documents.","sidebar":"apiSidebar"},"API-docs/intro":{"id":"API-docs/intro","title":"Overview","description":"OpenSign\u2122 API offers a robust suite of functionalities for digital document management and electronic signatures. Designed to cater to a wide array of business needs, the API facilitates the creation, signing, and management of digital documents. It ensures secure and efficient processes, complying with international legal standards for electronic signatures."},"API-docs/opensign-api-v-1":{"id":"API-docs/opensign-api-v-1","title":"OpenSign API v1","description":"Welcome to the OpenSign\u2122 API documentation! Our powerful and flexible API allows you to seamlessly integrate digital signing capabilities into your applications. Whether you\'re a developer looking to automate document workflows, a business seeking to enhance security, or an enterprise aiming for efficient contract management, our API provides robust solutions to meet your needs. Dive into our detailed guides, code examples, and best practices to start leveraging the full potential of OpenSign\u2122 and transform your digital document processes today.","sidebar":"apiSidebar"},"API-docs/resendrequestmail":{"id":"API-docs/resendrequestmail","title":"Resend request mail","description":"Resend request mail to user for signing document.","sidebar":"apiSidebar"},"API-docs/revokedocument":{"id":"API-docs/revokedocument","title":"Revoke Document","description":"The Revoke document API allows you to revoke specific document from your documents.","sidebar":"apiSidebar"},"API-docs/save-update-webhook":{"id":"API-docs/save-update-webhook","title":"Save or Update Webhook","description":"The save or update Webhook API allows you to save a webhook URL which is used to trigger events.","sidebar":"apiSidebar"},"API-docs/selfsign":{"id":"API-docs/selfsign","title":"Self Sign","description":"The selfsign API generates a URL that enables freestyle signing of a document. You can also include optional pre-defined widgets, which the signer can edit or expand upon as needed. This provides a signing experience similar to the \u201cSign Yourself\u201d flow in the OpenSign app.","sidebar":"apiSidebar"},"API-docs/update-document":{"id":"API-docs/update-document","title":"Update Document","description":"The Update Document API allows users to modify and update the details of a specific document. Note that this API only allows to update a few parameters, you cannot change the file once it the document is created.","sidebar":"apiSidebar"},"API-docs/update-template":{"id":"API-docs/update-template","title":"Update Template","description":"The Update Template API enables you to modify and update the details of a specific template.","sidebar":"apiSidebar"},"API-docs/updatefolder":{"id":"API-docs/updatefolder","title":"Update Folder","description":"The Update Folder API allows you to uodate folder name as well as parentFolderId.","sidebar":"apiSidebar"},"contribute/CODE_OF_CONDUCT":{"id":"contribute/CODE_OF_CONDUCT","title":"Code of conduct","description":"1. Introduction","sidebar":"contributeSidebar"},"contribute/COMMUNITY":{"id":"contribute/COMMUNITY","title":"Community at OpenSign\u2122","description":"Welcome to the OpenSign\u2122 Community page! OpenSign\u2122 is dedicated to fostering a vibrant and engaging community where members can connect, share ideas and collaborate on the OpenSign\u2122 project. This page provides links to our active social media platforms and community channels, offering various ways for you to join and participate in the OpenSign\u2122 community. Whether you\'re looking for support, eager to contribute or just want to stay updated, you\'ll find a platform that suits your preference. Connect with us on Discord for real-time discussions, follow us on Twitter for the latest updates, engage with our professional network on LinkedIn or join our Facebook group for a broader community experience. Join us in our mission to develop OpenSign\u2122 as the premier open-source alternative to DocuSign.","sidebar":"contributeSidebar"},"contribute/INSTALLATION":{"id":"contribute/INSTALLATION","title":"Installation instructions","description":"You can use our app as a cloud version from OpenSignLabs","sidebar":"contributeSidebar"},"contribute/intro":{"id":"contribute/intro","title":"Contributing to OpenSign","description":"Hello there! Thank you for considering contributing to OpenSign, the open-source alternative to DocuSign. OpenSign is not just a project, but a community endeavor that aims to create a robust, user-friendly, and secure electronic signature solution. Your contributions, irrespective of their size, are valuable in making this vision a reality.","sidebar":"contributeSidebar"},"contribute/REPORTING_GUIDELINES":{"id":"contribute/REPORTING_GUIDELINES","title":"OpenSign\u2122 Reporting Guidelines","description":"This document provides guidelines for reporting issues, suggesting enhancements, and submitting pull requests to the OpenSign\u2122 GitHub repository. Adhering to these guidelines helps maintain the project\'s quality and efficiency.","sidebar":"contributeSidebar"},"help/FAQs/Ensure this field is accurately filled and meets all requirements":{"id":"help/FAQs/Ensure this field is accurately filled and meets all requirements","title":"Why am I getting \'Ensure this field is accurately filled and meets all requirements\'?","description":"This happens when you leave a field blank or when you don\u2019t enter correct values in the field, for example not entering email address in correct format.","sidebar":"tutorialSidebar"},"help/FAQs/FAQs":{"id":"help/FAQs/FAQs","title":"Why is there no dropdown list when I sign a document myself?","description":"The dropdown list field is available only when you request a signature from others or when you create a template. This is because dropdown lists function as temporary widgets, allowing the user to select one of multiple values. Once a signer selects a value from the dropdown, it is embedded into the document as text. When you sign a document yourself, OpenSign digitally signs it immediately upon clicking the finish button. Therefore, you can use the text widget to add the necessary text to the document.","sidebar":"tutorialSidebar"},"help/intro":{"id":"help/intro","title":"Intro","description":"\ud83c\udf1fGet ready for an electrifying journey at OpenSign\u2122, the most incredibly documented open source document signing solution! \ud83d\ude80 This is your go-to spot for diving deep into everything OpenSign\u2122 has to offer. Whether you\u2019re just starting out or you\u2019re a seasoned pro eager to uncover even more cool features, we\u2019ve got you covered with the most awesome, top-notch guides and resources around. Get ready to make the most out of OpenSign\u2122 \ud83c\udf89\ud83d\udcda\ud83d\udd0d Your adventure in excellence starts here! \ud83c\udf08\u2728\ud83c\udf1f","sidebar":"tutorialSidebar"},"help/New-Document/enforce-email-verification":{"id":"help/New-Document/enforce-email-verification","title":"Enforce email OTP verification","description":"The \\"Enable OTP Verification\\" feature in OpenSign is designed to add an extra layer of security to the document-signing process by verifying the signer\u2019s email address. Here\u2019s an in-depth look at how it works, when to use it, and its impact on the signing process.","sidebar":"tutorialSidebar"},"help/New-Document/navigate-between-pages":{"id":"help/New-Document/navigate-between-pages","title":"Navigate between pages of a document","description":"To navigate between pages of a document that you have uploaded either click on the \'prev\' & \'next\' buttons at the top or click on any of the page previews loaded on the left side -","sidebar":"tutorialSidebar"},"help/New-Document/request-signatures":{"id":"help/New-Document/request-signatures","title":"Request signatures","description":"Interface Overview","sidebar":"tutorialSidebar"},"help/New-Document/sign-yourself":{"id":"help/New-Document/sign-yourself","title":"Sign your-self","description":"Interface Overview","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/create-document":{"id":"help/OpenSign\u2122 Drive/create-document","title":"Create Docs & Folders","description":"OpenSign Drive offers a streamlined way to manage, sign, and request signatures on your important documents. Whether you\'re drafting an offer letter or storing signed agreements, organizing your documents effectively is crucial. Here\u2019s a step-by-step guide on how to create documents and folders in OpenSign Drive.","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/list-grid-view":{"id":"help/OpenSign\u2122 Drive/list-grid-view","title":"Grid vs List view","description":"- Navigate to OpenSign drive using the main menu or clicking this link.","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/organize-documents":{"id":"help/OpenSign\u2122 Drive/organize-documents","title":"OpenSign\u2122 Drive Interface Documentation","description":"Overview","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/rename-document":{"id":"help/OpenSign\u2122 Drive/rename-document","title":"Rename documents from OpenSign\u2122 Drive","description":"The OpenSign\u2122 Drive interface allows users to rename their documents efficiently.","sidebar":"tutorialSidebar"},"help/Reports/completed":{"id":"help/Reports/completed","title":"Completed","description":"---","sidebar":"tutorialSidebar"},"help/Reports/contactbook":{"id":"help/Reports/contactbook","title":"Contactbook","description":"The Contactbook report in OpenSign enables you to add and manage contacts.","sidebar":"tutorialSidebar"},"help/Reports/declined":{"id":"help/Reports/declined","title":"Declined","description":"The \\"Declined documents\\" report within OpenSign serves as a vital tool for managing and reviewing all declined documents that have been processed through the platform. This guide will walk you through the key features and functionalities of the \\"Declined documents\\" report, enabling you to efficiently navigate and manage your signed documents.","sidebar":"tutorialSidebar"},"help/Reports/drafts":{"id":"help/Reports/drafts","title":"Drafts","description":"The Draft documents section in OpenSign helps you manage all your in-progress documents easily. This feature allows you to save, review, and edit documents before sending them for signature. Here\'s a detailed overview of how to navigate and use the Draft Documents report effectively.","sidebar":"tutorialSidebar"},"help/Reports/expired":{"id":"help/Reports/expired","title":"Expired","description":"The Expired documents report in OpenSign allows you to manage and review documents that have reached their expiration date without being signed. This feature is essential for maintaining an organized record of inactive documents that may require follow-up or archival.","sidebar":"tutorialSidebar"},"help/Reports/in-progress":{"id":"help/Reports/in-progress","title":"In Progress","description":"The In-Progress documents report in OpenSign helps you monitor and manage documents that are currently in the signing process. This report enables you to monitor the status of your documents, manually share the document URL, track document progress, resend reminders, revoke access, or delete documents that are no longer required. Here\u2019s a detailed guide on how to use the In-Progress documents report effectively.","sidebar":"tutorialSidebar"},"help/Reports/need-your-sign":{"id":"help/Reports/need-your-sign","title":"Need your sign","description":"The \\"Need your sign\\" feature in OpenSign is designed to simplify the process of managing documents that require your signature. This guide will walk you through the various elements of the \\"Need your sign\\" report, helping you to efficiently navigate and complete your pending signing tasks.","sidebar":"tutorialSidebar"},"help/Settings/disabledocumentid":{"id":"help/Settings/disabledocumentid","title":"Disable DocumentId","description":"Whenever a document is signed by all parties, OpenSign\u2122 adds a DocumentId at the top left corner of the digitally signed document.","sidebar":"tutorialSidebar"},"help/Settings/manage-users":{"id":"help/Settings/manage-users","title":"Manage users","description":"The User Management feature allows administrators to add, edit, and manage users within the OpenSign application. This feature is available on self-hosted, teams, and enterprise plans. Only users with \\"Admin\\" & \\"OrgAdmin\\" role are allowed to manage users.","sidebar":"tutorialSidebar"},"help/Settings/my-signature":{"id":"help/Settings/my-signature","title":"My Signature","description":"This guide provides instructions on how to save your signature and initials using the OpenSign application. Once saved, you can use them with one click when signing documents. To create your signature, start by clicking the \\"My Signature\\" link under \\"settings\\" menu.","sidebar":"tutorialSidebar"},"help/Templates/create-template":{"id":"help/Templates/create-template","title":"Create Templates","description":"Getting Started","sidebar":"tutorialSidebar"},"help/Templates/embed-template":{"id":"help/Templates/embed-template","title":"Embedding OpenSign templates","description":"OpenSign Template Embedding allows users to seamlessly integrate public document templates into their websites or applications. By embedding templates, you can provide a direct and interactive signing experience for your users without requiring them to leave your platform. This feature supports various technologies like React, Next.js, HTML, JavaScript, and Angular, making it easy to add signing capabilities to different web projects.","sidebar":"tutorialSidebar"},"help/Templates/publicTemplate":{"id":"help/Templates/publicTemplate","title":"Setting up an OpenSign template for public signing","description":"The OpenSign Public profile feature offers the ultimate public document signing solution without any need for integrations. With this feature, users can share document templates publicly, allowing anyone to access and sign the documents directly through the shared templates. This streamlines the signing process by providing a seamless, accessible way for public signers to complete documents without additional steps or integrations.","sidebar":"tutorialSidebar"},"help/Templates/quick-send":{"id":"help/Templates/quick-send","title":"Quickly Send the Document for Signature Using Template","description":"Step 1: Begin New Template Creation","sidebar":"tutorialSidebar"},"help/Templates/use-template":{"id":"help/Templates/use-template","title":"Use template to create documents","description":"Step 1: Begin New Template Creation","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Tutorial Intro","description":"Let\'s discover Docusaurus in less than 5 minutes."},"self-host/cloud-storage/s3":{"id":"self-host/cloud-storage/s3","title":"AWS S3","description":"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122","sidebar":"selfhostSidebar"},"self-host/docker/run-locally":{"id":"self-host/docker/run-locally","title":"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows","description":"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:","sidebar":"selfhostSidebar"},"self-host/docker/upgrade-deployment":{"id":"self-host/docker/upgrade-deployment","title":"OpenSign\u2122 Self-Hosted \'Upgrade Deployment\' Guide Using Docker on Linux, macOS, or Windows","description":"This guide provides step-by-step instructions to upgrade the deployment of OpenSign using Docker.","sidebar":"selfhostSidebar"},"self-host/guides/env-variables":{"id":"self-host/guides/env-variables","title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","description":"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","sidebar":"selfhostSidebar"},"self-host/guides/how-to-generate-self-signed-document-signing-certificate":{"id":"self-host/guides/how-to-generate-self-signed-document-signing-certificate","title":"How to generate self-signed document signing certificate?","description":"","sidebar":"selfhostSidebar"},"self-host/guides/upgrade-to-v2.1.0":{"id":"self-host/guides/upgrade-to-v2.1.0","title":"How to upgrade self-hosted OpenSign to v2.1.0?","description":"For self-hosted deployments, version 2.1.0 introduces changes to the signup process:","sidebar":"selfhostSidebar"},"self-host/intro":{"id":"self-host/intro","title":"Self-Hosting OpenSign","description":"This section of the OpenSign\u2122 documentation is dedicated to guiding you through the process of self-hosting the OpenSign platform. Self-hosting OpenSign allows for greater control and customization, ensuring that it aligns perfectly with your specific needs and infrastructure requirements. We cover everything from initial setup, configuration options, to maintenance best practices. Whether you are an individual enthusiast or a professional looking to deploy OpenSign in a corporate environment, this guide will provide you with the necessary steps and tips to successfully self-host OpenSign\u2122 - the best open source document signing infrastructure.","sidebar":"selfhostSidebar"},"self-host/One-click-Install/DigitalOcean":{"id":"self-host/One-click-Install/DigitalOcean","title":"Digital Ocean","description":"OpenSign application consistes of 3 components -","sidebar":"selfhostSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/0058b4c6.ecd77fa1.js b/assets/js/0058b4c6.ecd77fa1.js new file mode 100644 index 000000000..0af3475c3 --- /dev/null +++ b/assets/js/0058b4c6.ecd77fa1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[849],{86164:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Intro","href":"/docs/help/intro","docId":"help/intro","unlisted":false},{"type":"category","label":"Create New OpenSign Document","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Sign your-self","href":"/docs/help/New-Document/sign-yourself","docId":"help/New-Document/sign-yourself","unlisted":false},{"type":"link","label":"Request signatures","href":"/docs/help/New-Document/request-signatures","docId":"help/New-Document/request-signatures","unlisted":false},{"type":"link","label":"Navigate between pages of a document","href":"/docs/help/New-Document/navigate-between-pages","docId":"help/New-Document/navigate-between-pages","unlisted":false},{"type":"link","label":"Enforce email OTP verification","href":"/docs/help/New-Document/enforce-email-verification","docId":"help/New-Document/enforce-email-verification","unlisted":false}],"href":"/docs/category/create-new-opensign-document"},{"type":"category","label":"Manage Docs using OpenSign\u2122 Drive","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create Docs & Folders","href":"/docs/help/OpenSign\u2122 Drive/create-document","docId":"help/OpenSign\u2122 Drive/create-document","unlisted":false},{"type":"link","label":"Grid vs List view","href":"/docs/help/OpenSign\u2122 Drive/list-grid-view","docId":"help/OpenSign\u2122 Drive/list-grid-view","unlisted":false},{"type":"link","label":"OpenSign\u2122 Drive Interface Documentation","href":"/docs/help/OpenSign\u2122 Drive/organize-documents","docId":"help/OpenSign\u2122 Drive/organize-documents","unlisted":false},{"type":"link","label":"Rename documents from OpenSign\u2122 Drive","href":"/docs/help/OpenSign\u2122 Drive/rename-document","docId":"help/OpenSign\u2122 Drive/rename-document","unlisted":false}],"href":"/docs/category/manage-docs-using-opensign-drive"},{"type":"category","label":"Reports","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Need your sign","href":"/docs/help/Reports/need-your-sign","docId":"help/Reports/need-your-sign","unlisted":false},{"type":"link","label":"In Progress","href":"/docs/help/Reports/in-progress","docId":"help/Reports/in-progress","unlisted":false},{"type":"link","label":"Completed","href":"/docs/help/Reports/completed","docId":"help/Reports/completed","unlisted":false},{"type":"link","label":"Drafts","href":"/docs/help/Reports/drafts","docId":"help/Reports/drafts","unlisted":false},{"type":"link","label":"Declined","href":"/docs/help/Reports/declined","docId":"help/Reports/declined","unlisted":false},{"type":"link","label":"Expired","href":"/docs/help/Reports/expired","docId":"help/Reports/expired","unlisted":false},{"type":"link","label":"Contactbook","href":"/docs/help/Reports/contactbook","docId":"help/Reports/contactbook","unlisted":false}],"href":"/docs/category/reports"},{"type":"category","label":"Templates","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create Templates","href":"/docs/help/Templates/create-template","docId":"help/Templates/create-template","unlisted":false},{"type":"link","label":"Use template to create documents","href":"/docs/help/Templates/use-template","docId":"help/Templates/use-template","unlisted":false},{"type":"link","label":"Quickly Send the Document for Signature Using Template","href":"/docs/help/Templates/quick-send","docId":"help/Templates/quick-send","unlisted":false},{"type":"link","label":"Setting up an OpenSign template for public signing","href":"/docs/help/Templates/publicTemplate","docId":"help/Templates/publicTemplate","unlisted":false},{"type":"link","label":"Embedding OpenSign templates","href":"/docs/help/Templates/embed-template","docId":"help/Templates/embed-template","unlisted":false}],"href":"/docs/category/templates"},{"type":"category","label":"Settings","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"My Signature","href":"/docs/help/Settings/my-signature","docId":"help/Settings/my-signature","unlisted":false},{"type":"link","label":"Disable DocumentId","href":"/docs/help/Settings/disabledocumentid","docId":"help/Settings/disabledocumentid","unlisted":false},{"type":"link","label":"Manage users","href":"/docs/help/Settings/manage-users","docId":"help/Settings/manage-users","unlisted":false}],"href":"/docs/category/settings"},{"type":"category","label":"FAQs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Why is there no dropdown list when I sign a document myself?","href":"/docs/help/FAQs/","docId":"help/FAQs/FAQs","unlisted":false},{"type":"link","label":"Why am I getting \'Ensure this field is accurately filled and meets all requirements\'?","href":"/docs/help/FAQs/Ensure this field is accurately filled and meets all requirements","docId":"help/FAQs/Ensure this field is accurately filled and meets all requirements","unlisted":false}],"href":"/docs/category/faqs"}],"selfhostSidebar":[{"type":"link","label":"Self-Hosting OpenSign","href":"/docs/self-host/intro","docId":"self-host/intro","unlisted":false},{"type":"category","label":"Docker","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows","href":"/docs/self-host/docker/run-locally","docId":"self-host/docker/run-locally","unlisted":false},{"type":"link","label":"OpenSign\u2122 Self-Hosted \'Upgrade Deployment\' Guide Using Docker on Linux, macOS, or Windows","href":"/docs/self-host/docker/upgrade-deployment","docId":"self-host/docker/upgrade-deployment","unlisted":false}],"href":"/docs/category/docker"},{"type":"category","label":"Cloud Storage","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"AWS S3","href":"/docs/self-host/cloud-storage/s3","docId":"self-host/cloud-storage/s3","unlisted":false}],"href":"/docs/category/cloud-storage"},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"OpenSign Deployment Guide on Azure VM via command-line","href":"/docs/self-host/guides/azure-vm-setup","docId":"self-host/guides/azure-vm-setup","unlisted":false},{"type":"link","label":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","href":"/docs/self-host/guides/env-variables","docId":"self-host/guides/env-variables","unlisted":false},{"type":"link","label":"How to generate self-signed document signing certificate?","href":"/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate","docId":"self-host/guides/how-to-generate-self-signed-document-signing-certificate","unlisted":false},{"type":"link","label":"How to upgrade self-hosted OpenSign to v2.1.0?","href":"/docs/self-host/guides/upgrade-to-v2.1.0","docId":"self-host/guides/upgrade-to-v2.1.0","unlisted":false}],"href":"/docs/category/guides"},{"type":"category","label":"One-click-Install","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Digital Ocean","href":"/docs/self-host/One-click-Install/DigitalOcean","docId":"self-host/One-click-Install/DigitalOcean","unlisted":false}]}],"contributeSidebar":[{"type":"link","label":"Code of conduct","href":"/docs/contribute/CODE_OF_CONDUCT","docId":"contribute/CODE_OF_CONDUCT","unlisted":false},{"type":"link","label":"Contributing to OpenSign","href":"/docs/contribute/intro","docId":"contribute/intro","unlisted":false},{"type":"link","label":"Installation instructions","href":"/docs/contribute/INSTALLATION","docId":"contribute/INSTALLATION","unlisted":false},{"type":"link","label":"Community at OpenSign\u2122","href":"/docs/contribute/COMMUNITY","docId":"contribute/COMMUNITY","unlisted":false},{"type":"link","label":"OpenSign\u2122 Reporting Guidelines","href":"/docs/contribute/REPORTING_GUIDELINES","docId":"contribute/REPORTING_GUIDELINES","unlisted":false}],"apiSidebar":[{"type":"link","label":"Introduction","href":"/docs/API-docs/opensign-api-v-1","docId":"API-docs/opensign-api-v-1","unlisted":false},{"type":"category","label":"User","items":[{"type":"link","label":"Get your account details","href":"/docs/API-docs/get-user","className":"api-method get","docId":"API-docs/get-user","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contacts","items":[{"type":"link","label":"Create Contact","href":"/docs/API-docs/createcontact","className":"api-method post","docId":"API-docs/createcontact","unlisted":false},{"type":"link","label":"Get Contact","href":"/docs/API-docs/getcontact","className":"api-method get","docId":"API-docs/getcontact","unlisted":false},{"type":"link","label":"Delete Contact","href":"/docs/API-docs/deletecontact","className":"api-method delete","docId":"API-docs/deletecontact","unlisted":false},{"type":"link","label":"Get Contact list","href":"/docs/API-docs/contactlist","className":"api-method get","docId":"API-docs/contactlist","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Documents","items":[{"type":"link","label":"Self Sign","href":"/docs/API-docs/selfsign","className":"api-method post","docId":"API-docs/selfsign","unlisted":false},{"type":"link","label":"Draft Document","href":"/docs/API-docs/draftdocument","className":"api-method post","docId":"API-docs/draftdocument","unlisted":false},{"type":"link","label":"Create Document","href":"/docs/API-docs/createdocument","className":"api-method post","docId":"API-docs/createdocument","unlisted":false},{"type":"link","label":"Create Document from Template","href":"/docs/API-docs/createdocumentwithtemplateid","className":"api-method post","docId":"API-docs/createdocumentwithtemplateid","unlisted":false},{"type":"link","label":"Get Document","href":"/docs/API-docs/getdocument","className":"api-method get","docId":"API-docs/getdocument","unlisted":false},{"type":"link","label":"Update Document","href":"/docs/API-docs/update-document","className":"api-method put","docId":"API-docs/update-document","unlisted":false},{"type":"link","label":"Revoke Document","href":"/docs/API-docs/revokedocument","className":"api-method post","docId":"API-docs/revokedocument","unlisted":false},{"type":"link","label":"Delete Document","href":"/docs/API-docs/deletedocument","className":"api-method delete","docId":"API-docs/deletedocument","unlisted":false},{"type":"link","label":"Get Document list from status","href":"/docs/API-docs/getdocumentlist","className":"api-method get","docId":"API-docs/getdocumentlist","unlisted":false},{"type":"link","label":"Resend request mail","href":"/docs/API-docs/resendrequestmail","className":"api-method post","docId":"API-docs/resendrequestmail","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Templates","items":[{"type":"link","label":"Draft Template","href":"/docs/API-docs/drafttemplate","className":"api-method post","docId":"API-docs/drafttemplate","unlisted":false},{"type":"link","label":"Create Template","href":"/docs/API-docs/createtemplate","className":"api-method post","docId":"API-docs/createtemplate","unlisted":false},{"type":"link","label":"Get Template","href":"/docs/API-docs/get-template","className":"api-method get","docId":"API-docs/get-template","unlisted":false},{"type":"link","label":"Update Template","href":"/docs/API-docs/update-template","className":"api-method put","docId":"API-docs/update-template","unlisted":false},{"type":"link","label":"Delete Template","href":"/docs/API-docs/delete-template","className":"api-method delete","docId":"API-docs/delete-template","unlisted":false},{"type":"link","label":"Get Template list","href":"/docs/API-docs/gettemplatelist","className":"api-method get","docId":"API-docs/gettemplatelist","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Webhook","items":[{"type":"link","label":"Get Webhook","href":"/docs/API-docs/get-webhook","className":"api-method get","docId":"API-docs/get-webhook","unlisted":false},{"type":"link","label":"Save or Update Webhook","href":"/docs/API-docs/save-update-webhook","className":"api-method post","docId":"API-docs/save-update-webhook","unlisted":false},{"type":"link","label":"Delete Webhook","href":"/docs/API-docs/delete-webhook","className":"api-method delete","docId":"API-docs/delete-webhook","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Folder","items":[{"type":"link","label":"Create Folder","href":"/docs/API-docs/createfolder","className":"api-method post","docId":"API-docs/createfolder","unlisted":false},{"type":"link","label":"Get Folder","href":"/docs/API-docs/getfolder","className":"api-method get","docId":"API-docs/getfolder","unlisted":false},{"type":"link","label":"Update Folder","href":"/docs/API-docs/updatefolder","className":"api-method put","docId":"API-docs/updatefolder","unlisted":false},{"type":"link","label":"Delete Folder","href":"/docs/API-docs/deletefolder","className":"api-method delete","docId":"API-docs/deletefolder","unlisted":false},{"type":"link","label":"Get folder list","href":"/docs/API-docs/folderlist","className":"api-method get","docId":"API-docs/folderlist","unlisted":false}],"collapsed":true,"collapsible":true}]},"docs":{"API-docs/contactlist":{"id":"API-docs/contactlist","title":"Get Contact list","description":"The Contact List API empowers you to retrieve a list of contacts, providing a comprehensive view of all available contacts in your contactbook.","sidebar":"apiSidebar"},"API-docs/createcontact":{"id":"API-docs/createcontact","title":"Create Contact","description":"The Create Contact API allows you to effortlessly create new contacts that can act as signers for your important documents.","sidebar":"apiSidebar"},"API-docs/createdocument":{"id":"API-docs/createdocument","title":"Create Document","description":"The Create Document API allows users to generate new documents by providing data with base64 encoded file.","sidebar":"apiSidebar"},"API-docs/createdocumentwithtemplateid":{"id":"API-docs/createdocumentwithtemplateid","title":"Create Document from Template","description":"The Create Document from template API allows you to generate new documents by just providing template_id instead of uploading a new file(in the form of base64 or binary) every time you need to create a document. Templates for repeatedly used files can be created from user interface at [**Debug UI**](https://app.opensignlabs.com/debugpdf) or using the Create Template API.","sidebar":"apiSidebar"},"API-docs/createfolder":{"id":"API-docs/createfolder","title":"Create Folder","description":"The Create Folder API allows you to create folder.","sidebar":"apiSidebar"},"API-docs/createtemplate":{"id":"API-docs/createtemplate","title":"Create Template","description":"The Template Creation API allows users to create customizable templates, which serve as blueprints for generating documents with predefined structures. Upon successful template creation, the API returns a unique **template_id** that can be used to generate documents based on the specified template.","sidebar":"apiSidebar"},"API-docs/delete-template":{"id":"API-docs/delete-template","title":"Delete Template","description":"The Delete Template API provides you with the ability to remove a specific template from the templates. If a template is no longer needed","sidebar":"apiSidebar"},"API-docs/delete-webhook":{"id":"API-docs/delete-webhook","title":"Delete Webhook","description":"The Delete Webhook API allow you to delete webhook url","sidebar":"apiSidebar"},"API-docs/deletecontact":{"id":"API-docs/deletecontact","title":"Delete Contact","description":"The Delete Contact API allows you to remove a contact from your contactbook. If you no longer need a particular contact\'s information, this API makes it easy to delete their record.","sidebar":"apiSidebar"},"API-docs/deletedocument":{"id":"API-docs/deletedocument","title":"Delete Document","description":"The Delete document API allows you to remove specific document from your documents.","sidebar":"apiSidebar"},"API-docs/deletefolder":{"id":"API-docs/deletefolder","title":"Delete Folder","description":"The delete Folder API allows you to delete folder.","sidebar":"apiSidebar"},"API-docs/draftdocument":{"id":"API-docs/draftdocument","title":"Draft Document","description":"The Draft Document API allows users to generate new documents by providing data with a base64 encoded file.","sidebar":"apiSidebar"},"API-docs/drafttemplate":{"id":"API-docs/drafttemplate","title":"Draft Template","description":"The Template Drafting API enables users to create customizable templates, serving as blueprints for generating documents with predefined structures. Upon successful creation of a template, the API returns a unique **objectId** (designated as template_id), which can be used to generate documents based on the specified template. Additionally, a **url** is provided, which offers a user interface for editing the template and facilitating document distribution.","sidebar":"apiSidebar"},"API-docs/folderlist":{"id":"API-docs/folderlist","title":"Get folder list","description":"The Folder List API empowers you to retrieve a list of folder with or without parentFolderId","sidebar":"apiSidebar"},"API-docs/get-template":{"id":"API-docs/get-template","title":"Get Template","description":"The Get Template API allows you to retrieve details about a specific template. Templates serve as blueprints for creating documents with predefined structures.","sidebar":"apiSidebar"},"API-docs/get-user":{"id":"API-docs/get-user","title":"Get your account details","description":"The Get User API enables you to get your own account details.","sidebar":"apiSidebar"},"API-docs/get-webhook":{"id":"API-docs/get-webhook","title":"Get Webhook","description":"The Get Webhook API allow you to get webhook url","sidebar":"apiSidebar"},"API-docs/getcontact":{"id":"API-docs/getcontact","title":"Get Contact","description":"The Get Contact API allows you to retrieve details about a specific contact.","sidebar":"apiSidebar"},"API-docs/getdocument":{"id":"API-docs/getdocument","title":"Get Document","description":"The Get Document API enables you to retrieve details about a specific document.","sidebar":"apiSidebar"},"API-docs/getdocumentlist":{"id":"API-docs/getdocumentlist","title":"Get Document list from status","description":"### Document Types:","sidebar":"apiSidebar"},"API-docs/getfolder":{"id":"API-docs/getfolder","title":"Get Folder","description":"The Get Folder API allows you to retrieve details about a specific folder.","sidebar":"apiSidebar"},"API-docs/gettemplatelist":{"id":"API-docs/gettemplatelist","title":"Get Template list","description":"The Get Template List API allows you to retrieve a list of available templates. This functionality provides an overview of all templates, enabling users to choose from existing templates when creating documents.","sidebar":"apiSidebar"},"API-docs/intro":{"id":"API-docs/intro","title":"Overview","description":"OpenSign\u2122 API offers a robust suite of functionalities for digital document management and electronic signatures. Designed to cater to a wide array of business needs, the API facilitates the creation, signing, and management of digital documents. It ensures secure and efficient processes, complying with international legal standards for electronic signatures."},"API-docs/opensign-api-v-1":{"id":"API-docs/opensign-api-v-1","title":"OpenSign API v1","description":"Welcome to the OpenSign\u2122 API documentation! Our powerful and flexible API allows you to seamlessly integrate digital signing capabilities into your applications. Whether you\'re a developer looking to automate document workflows, a business seeking to enhance security, or an enterprise aiming for efficient contract management, our API provides robust solutions to meet your needs. Dive into our detailed guides, code examples, and best practices to start leveraging the full potential of OpenSign\u2122 and transform your digital document processes today.","sidebar":"apiSidebar"},"API-docs/resendrequestmail":{"id":"API-docs/resendrequestmail","title":"Resend request mail","description":"Resend request mail to user for signing document.","sidebar":"apiSidebar"},"API-docs/revokedocument":{"id":"API-docs/revokedocument","title":"Revoke Document","description":"The Revoke document API allows you to revoke specific document from your documents.","sidebar":"apiSidebar"},"API-docs/save-update-webhook":{"id":"API-docs/save-update-webhook","title":"Save or Update Webhook","description":"The save or update Webhook API allows you to save a webhook URL which is used to trigger events.","sidebar":"apiSidebar"},"API-docs/selfsign":{"id":"API-docs/selfsign","title":"Self Sign","description":"The selfsign API generates a URL that enables freestyle signing of a document. You can also include optional pre-defined widgets, which the signer can edit or expand upon as needed. This provides a signing experience similar to the \u201cSign Yourself\u201d flow in the OpenSign app.","sidebar":"apiSidebar"},"API-docs/update-document":{"id":"API-docs/update-document","title":"Update Document","description":"The Update Document API allows users to modify and update the details of a specific document. Note that this API only allows to update a few parameters, you cannot change the file once it the document is created.","sidebar":"apiSidebar"},"API-docs/update-template":{"id":"API-docs/update-template","title":"Update Template","description":"The Update Template API enables you to modify and update the details of a specific template.","sidebar":"apiSidebar"},"API-docs/updatefolder":{"id":"API-docs/updatefolder","title":"Update Folder","description":"The Update Folder API allows you to uodate folder name as well as parentFolderId.","sidebar":"apiSidebar"},"contribute/CODE_OF_CONDUCT":{"id":"contribute/CODE_OF_CONDUCT","title":"Code of conduct","description":"1. Introduction","sidebar":"contributeSidebar"},"contribute/COMMUNITY":{"id":"contribute/COMMUNITY","title":"Community at OpenSign\u2122","description":"Welcome to the OpenSign\u2122 Community page! OpenSign\u2122 is dedicated to fostering a vibrant and engaging community where members can connect, share ideas and collaborate on the OpenSign\u2122 project. This page provides links to our active social media platforms and community channels, offering various ways for you to join and participate in the OpenSign\u2122 community. Whether you\'re looking for support, eager to contribute or just want to stay updated, you\'ll find a platform that suits your preference. Connect with us on Discord for real-time discussions, follow us on Twitter for the latest updates, engage with our professional network on LinkedIn or join our Facebook group for a broader community experience. Join us in our mission to develop OpenSign\u2122 as the premier open-source alternative to DocuSign.","sidebar":"contributeSidebar"},"contribute/INSTALLATION":{"id":"contribute/INSTALLATION","title":"Installation instructions","description":"You can use our app as a cloud version from OpenSignLabs","sidebar":"contributeSidebar"},"contribute/intro":{"id":"contribute/intro","title":"Contributing to OpenSign","description":"Hello there! Thank you for considering contributing to OpenSign, the open-source alternative to DocuSign. OpenSign is not just a project, but a community endeavor that aims to create a robust, user-friendly, and secure electronic signature solution. Your contributions, irrespective of their size, are valuable in making this vision a reality.","sidebar":"contributeSidebar"},"contribute/REPORTING_GUIDELINES":{"id":"contribute/REPORTING_GUIDELINES","title":"OpenSign\u2122 Reporting Guidelines","description":"This document provides guidelines for reporting issues, suggesting enhancements, and submitting pull requests to the OpenSign\u2122 GitHub repository. Adhering to these guidelines helps maintain the project\'s quality and efficiency.","sidebar":"contributeSidebar"},"help/FAQs/Ensure this field is accurately filled and meets all requirements":{"id":"help/FAQs/Ensure this field is accurately filled and meets all requirements","title":"Why am I getting \'Ensure this field is accurately filled and meets all requirements\'?","description":"This happens when you leave a field blank or when you don\u2019t enter correct values in the field, for example not entering email address in correct format.","sidebar":"tutorialSidebar"},"help/FAQs/FAQs":{"id":"help/FAQs/FAQs","title":"Why is there no dropdown list when I sign a document myself?","description":"The dropdown list field is available only when you request a signature from others or when you create a template. This is because dropdown lists function as temporary widgets, allowing the user to select one of multiple values. Once a signer selects a value from the dropdown, it is embedded into the document as text. When you sign a document yourself, OpenSign digitally signs it immediately upon clicking the finish button. Therefore, you can use the text widget to add the necessary text to the document.","sidebar":"tutorialSidebar"},"help/intro":{"id":"help/intro","title":"Intro","description":"\ud83c\udf1fGet ready for an electrifying journey at OpenSign\u2122, the most incredibly documented open source document signing solution! \ud83d\ude80 This is your go-to spot for diving deep into everything OpenSign\u2122 has to offer. Whether you\u2019re just starting out or you\u2019re a seasoned pro eager to uncover even more cool features, we\u2019ve got you covered with the most awesome, top-notch guides and resources around. Get ready to make the most out of OpenSign\u2122 \ud83c\udf89\ud83d\udcda\ud83d\udd0d Your adventure in excellence starts here! \ud83c\udf08\u2728\ud83c\udf1f","sidebar":"tutorialSidebar"},"help/New-Document/enforce-email-verification":{"id":"help/New-Document/enforce-email-verification","title":"Enforce email OTP verification","description":"The \\"Enable OTP Verification\\" feature in OpenSign is designed to add an extra layer of security to the document-signing process by verifying the signer\u2019s email address. Here\u2019s an in-depth look at how it works, when to use it, and its impact on the signing process.","sidebar":"tutorialSidebar"},"help/New-Document/navigate-between-pages":{"id":"help/New-Document/navigate-between-pages","title":"Navigate between pages of a document","description":"To navigate between pages of a document that you have uploaded either click on the \'prev\' & \'next\' buttons at the top or click on any of the page previews loaded on the left side -","sidebar":"tutorialSidebar"},"help/New-Document/request-signatures":{"id":"help/New-Document/request-signatures","title":"Request signatures","description":"Interface Overview","sidebar":"tutorialSidebar"},"help/New-Document/sign-yourself":{"id":"help/New-Document/sign-yourself","title":"Sign your-self","description":"Interface Overview","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/create-document":{"id":"help/OpenSign\u2122 Drive/create-document","title":"Create Docs & Folders","description":"OpenSign Drive offers a streamlined way to manage, sign, and request signatures on your important documents. Whether you\'re drafting an offer letter or storing signed agreements, organizing your documents effectively is crucial. Here\u2019s a step-by-step guide on how to create documents and folders in OpenSign Drive.","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/list-grid-view":{"id":"help/OpenSign\u2122 Drive/list-grid-view","title":"Grid vs List view","description":"- Navigate to OpenSign drive using the main menu or clicking this link.","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/organize-documents":{"id":"help/OpenSign\u2122 Drive/organize-documents","title":"OpenSign\u2122 Drive Interface Documentation","description":"Overview","sidebar":"tutorialSidebar"},"help/OpenSign\u2122 Drive/rename-document":{"id":"help/OpenSign\u2122 Drive/rename-document","title":"Rename documents from OpenSign\u2122 Drive","description":"The OpenSign\u2122 Drive interface allows users to rename their documents efficiently.","sidebar":"tutorialSidebar"},"help/Reports/completed":{"id":"help/Reports/completed","title":"Completed","description":"---","sidebar":"tutorialSidebar"},"help/Reports/contactbook":{"id":"help/Reports/contactbook","title":"Contactbook","description":"The Contactbook report in OpenSign enables you to add and manage contacts.","sidebar":"tutorialSidebar"},"help/Reports/declined":{"id":"help/Reports/declined","title":"Declined","description":"The \\"Declined documents\\" report within OpenSign serves as a vital tool for managing and reviewing all declined documents that have been processed through the platform. This guide will walk you through the key features and functionalities of the \\"Declined documents\\" report, enabling you to efficiently navigate and manage your signed documents.","sidebar":"tutorialSidebar"},"help/Reports/drafts":{"id":"help/Reports/drafts","title":"Drafts","description":"The Draft documents section in OpenSign helps you manage all your in-progress documents easily. This feature allows you to save, review, and edit documents before sending them for signature. Here\'s a detailed overview of how to navigate and use the Draft Documents report effectively.","sidebar":"tutorialSidebar"},"help/Reports/expired":{"id":"help/Reports/expired","title":"Expired","description":"The Expired documents report in OpenSign allows you to manage and review documents that have reached their expiration date without being signed. This feature is essential for maintaining an organized record of inactive documents that may require follow-up or archival.","sidebar":"tutorialSidebar"},"help/Reports/in-progress":{"id":"help/Reports/in-progress","title":"In Progress","description":"The In-Progress documents report in OpenSign helps you monitor and manage documents that are currently in the signing process. This report enables you to monitor the status of your documents, manually share the document URL, track document progress, resend reminders, revoke access, or delete documents that are no longer required. Here\u2019s a detailed guide on how to use the In-Progress documents report effectively.","sidebar":"tutorialSidebar"},"help/Reports/need-your-sign":{"id":"help/Reports/need-your-sign","title":"Need your sign","description":"The \\"Need your sign\\" feature in OpenSign is designed to simplify the process of managing documents that require your signature. This guide will walk you through the various elements of the \\"Need your sign\\" report, helping you to efficiently navigate and complete your pending signing tasks.","sidebar":"tutorialSidebar"},"help/Settings/disabledocumentid":{"id":"help/Settings/disabledocumentid","title":"Disable DocumentId","description":"Whenever a document is signed by all parties, OpenSign\u2122 adds a DocumentId at the top left corner of the digitally signed document.","sidebar":"tutorialSidebar"},"help/Settings/manage-users":{"id":"help/Settings/manage-users","title":"Manage users","description":"The User Management feature allows administrators to add, edit, and manage users within the OpenSign application. This feature is available on self-hosted, teams, and enterprise plans. Only users with \\"Admin\\" & \\"OrgAdmin\\" role are allowed to manage users.","sidebar":"tutorialSidebar"},"help/Settings/my-signature":{"id":"help/Settings/my-signature","title":"My Signature","description":"This guide provides instructions on how to save your signature and initials using the OpenSign application. Once saved, you can use them with one click when signing documents. To create your signature, start by clicking the \\"My Signature\\" link under \\"settings\\" menu.","sidebar":"tutorialSidebar"},"help/Templates/create-template":{"id":"help/Templates/create-template","title":"Create Templates","description":"Getting Started","sidebar":"tutorialSidebar"},"help/Templates/embed-template":{"id":"help/Templates/embed-template","title":"Embedding OpenSign templates","description":"OpenSign Template Embedding allows users to seamlessly integrate public document templates into their websites or applications. By embedding templates, you can provide a direct and interactive signing experience for your users without requiring them to leave your platform. This feature supports various technologies like React, Next.js, HTML, JavaScript, and Angular, making it easy to add signing capabilities to different web projects.","sidebar":"tutorialSidebar"},"help/Templates/publicTemplate":{"id":"help/Templates/publicTemplate","title":"Setting up an OpenSign template for public signing","description":"The OpenSign Public profile feature offers the ultimate public document signing solution without any need for integrations. With this feature, users can share document templates publicly, allowing anyone to access and sign the documents directly through the shared templates. This streamlines the signing process by providing a seamless, accessible way for public signers to complete documents without additional steps or integrations.","sidebar":"tutorialSidebar"},"help/Templates/quick-send":{"id":"help/Templates/quick-send","title":"Quickly Send the Document for Signature Using Template","description":"Step 1: Begin New Template Creation","sidebar":"tutorialSidebar"},"help/Templates/use-template":{"id":"help/Templates/use-template","title":"Use template to create documents","description":"Step 1: Begin New Template Creation","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Tutorial Intro","description":"Let\'s discover Docusaurus in less than 5 minutes."},"self-host/cloud-storage/s3":{"id":"self-host/cloud-storage/s3","title":"AWS S3","description":"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122","sidebar":"selfhostSidebar"},"self-host/docker/run-locally":{"id":"self-host/docker/run-locally","title":"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows","description":"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:","sidebar":"selfhostSidebar"},"self-host/docker/upgrade-deployment":{"id":"self-host/docker/upgrade-deployment","title":"OpenSign\u2122 Self-Hosted \'Upgrade Deployment\' Guide Using Docker on Linux, macOS, or Windows","description":"This guide provides step-by-step instructions to upgrade the deployment of OpenSign using Docker.","sidebar":"selfhostSidebar"},"self-host/guides/azure-vm-setup":{"id":"self-host/guides/azure-vm-setup","title":"OpenSign Deployment Guide on Azure VM via command-line","description":"\ud83e\uddf1 Prerequisites","sidebar":"selfhostSidebar"},"self-host/guides/env-variables":{"id":"self-host/guides/env-variables","title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","description":"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","sidebar":"selfhostSidebar"},"self-host/guides/how-to-generate-self-signed-document-signing-certificate":{"id":"self-host/guides/how-to-generate-self-signed-document-signing-certificate","title":"How to generate self-signed document signing certificate?","description":"","sidebar":"selfhostSidebar"},"self-host/guides/upgrade-to-v2.1.0":{"id":"self-host/guides/upgrade-to-v2.1.0","title":"How to upgrade self-hosted OpenSign to v2.1.0?","description":"For self-hosted deployments, version 2.1.0 introduces changes to the signup process:","sidebar":"selfhostSidebar"},"self-host/intro":{"id":"self-host/intro","title":"Self-Hosting OpenSign","description":"This section of the OpenSign\u2122 documentation is dedicated to guiding you through the process of self-hosting the OpenSign platform. Self-hosting OpenSign allows for greater control and customization, ensuring that it aligns perfectly with your specific needs and infrastructure requirements. We cover everything from initial setup, configuration options, to maintenance best practices. Whether you are an individual enthusiast or a professional looking to deploy OpenSign in a corporate environment, this guide will provide you with the necessary steps and tips to successfully self-host OpenSign\u2122 - the best open source document signing infrastructure.","sidebar":"selfhostSidebar"},"self-host/One-click-Install/DigitalOcean":{"id":"self-host/One-click-Install/DigitalOcean","title":"Digital Ocean","description":"OpenSign application consistes of 3 components -","sidebar":"selfhostSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/02d4f5c5.92a4db7d.js b/assets/js/02d4f5c5.92a4db7d.js new file mode 100644 index 000000000..b1cb1898c --- /dev/null +++ b/assets/js/02d4f5c5.92a4db7d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[5510],{28453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>a});var r=s(96540);const o={},i=r.createContext(o);function t(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:t(e.components),r.createElement(i.Provider,{value:n},e.children)}},55774:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>t,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"self-host/guides/azure-vm-setup","title":"OpenSign Deployment Guide on Azure VM via command-line","description":"\ud83e\uddf1 Prerequisites","source":"@site/docs/self-host/guides/azure-vm-setup.md","sourceDirName":"self-host/guides","slug":"/self-host/guides/azure-vm-setup","permalink":"/docs/self-host/guides/azure-vm-setup","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/guides/azure-vm-setup.md","tags":[],"version":"current","frontMatter":{"title":"OpenSign Deployment Guide on Azure VM via command-line"},"sidebar":"selfhostSidebar","previous":{"title":"Guides","permalink":"/docs/category/guides"},"next":{"title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","permalink":"/docs/self-host/guides/env-variables"}}');var o=s(74848),i=s(28453);const t={title:"OpenSign Deployment Guide on Azure VM via command-line"},a="\ud83d\ude80 OpenSign Deployment Guide on Azure VM (Frontend + Backend + MongoDB + Caddy)",l={},d=[{value:"\ud83e\uddf1 Prerequisites",id:"-prerequisites",level:2},{value:"\ud83d\udd27 Step 1: Create an Azure VM",id:"-step-1-create-an-azure-vm",level:2},{value:"1.1 Create Resource Group",id:"11-create-resource-group",level:3},{value:"1.2 Create Ubuntu VM",id:"12-create-ubuntu-vm",level:3},{value:"1.3 Get VM IP",id:"13-get-vm-ip",level:3},{value:"\ud83d\udd10 Step 2: Open Required Ports",id:"-step-2-open-required-ports",level:2},{value:"2.1 Get NSG name",id:"21-get-nsg-name",level:3},{value:"2.2 Add inbound port rules",id:"22-add-inbound-port-rules",level:3},{value:"\ud83c\udf0d Step 3: Point Domain to VM",id:"-step-3-point-domain-to-vm",level:2},{value:"\ud83d\udce6 Step 4: SSH into the VM",id:"-step-4-ssh-into-the-vm",level:2},{value:"\ud83d\udc33 Step 5: Install Docker + Compose V2",id:"-step-5-install-docker--compose-v2",level:2},{value:"\ud83d\udcc1 Step 6: Set Up Project and Volumes",id:"-step-6-set-up-project-and-volumes",level:2},{value:"6.1 Create a working directory",id:"61-create-a-working-directory",level:3},{value:"6.2 Download files",id:"62-download-files",level:3},{value:"Make sure that you update the SMTP settings by editing the .env.prod file in order to receive emails.",id:"make-sure-that-you-update-the-smtp-settings-by-editing-the-envprod-file-in-order-to-receive-emails",level:2},{value:"\u2699\ufe0f Step 7: Start the Stack",id:"\ufe0f-step-7-start-the-stack",level:2},{value:"\u2705 Step 8: Verify Everything",id:"-step-8-verify-everything",level:2},{value:"\ud83d\udce6 Step 9: Auto-start on Reboot (optional)",id:"-step-9-auto-start-on-reboot-optional",level:2},{value:"\ud83d\udd04 Backups (optional)",id:"-backups-optional",level:2}];function c(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"-opensign-deployment-guide-on-azure-vm-frontend--backend--mongodb--caddy",children:"\ud83d\ude80 OpenSign Deployment Guide on Azure VM (Frontend + Backend + MongoDB + Caddy)"})}),"\n",(0,o.jsx)(n.h2,{id:"-prerequisites",children:"\ud83e\uddf1 Prerequisites"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Azure CLI installed"}),"\n",(0,o.jsxs)(n.li,{children:["A domain you control (e.g., ",(0,o.jsx)(n.code,{children:"yourdomain.com"}),")"]}),"\n",(0,o.jsxs)(n.li,{children:["Subdomain pointing to your VM (e.g., ",(0,o.jsx)(n.code,{children:"opensign.yourdomain.com"}),")"]}),"\n",(0,o.jsx)(n.li,{children:"SSH access"}),"\n"]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-1-create-an-azure-vm",children:"\ud83d\udd27 Step 1: Create an Azure VM"}),"\n",(0,o.jsx)(n.h3,{id:"11-create-resource-group",children:"1.1 Create Resource Group"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"az group create --name OpenSignRG --location eastus\n"})}),"\n",(0,o.jsx)(n.h3,{id:"12-create-ubuntu-vm",children:"1.2 Create Ubuntu VM"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"az vm create \\\n --resource-group OpenSignRG \\\n --name opensign-vm \\\n --image Ubuntu2404 \\\n --admin-username azureuser \\\n --generate-ssh-keys \\\n --size Standard_B1ms\n"})}),"\n",(0,o.jsx)(n.h3,{id:"13-get-vm-ip",children:"1.3 Get VM IP"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"az vm list-ip-addresses --name opensign-vm --resource-group OpenSignRG --output table\n"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-2-open-required-ports",children:"\ud83d\udd10 Step 2: Open Required Ports"}),"\n",(0,o.jsxs)(n.p,{children:["Azure\u2019s default port-opening approach conflicts if you use the same priorities. So instead, ",(0,o.jsx)(n.strong,{children:"add rules with increasing priorities"})," manually:"]}),"\n",(0,o.jsx)(n.h3,{id:"21-get-nsg-name",children:"2.1 Get NSG name"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:'az network nsg list --resource-group OpenSignRG --query "[].name"\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Assume it\u2019s ",(0,o.jsx)(n.code,{children:"opensign-vmNSG"}),". Then:"]}),"\n",(0,o.jsx)(n.h3,{id:"22-add-inbound-port-rules",children:"2.2 Add inbound port rules"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"az network nsg rule create \\\n --resource-group OpenSignRG \\\n --nsg-name opensign-vmNSG \\\n --name Allow-HTTP \\\n --priority 1001 \\\n --direction Inbound \\\n --protocol Tcp \\\n --access Allow \\\n --destination-port-ranges 80\n\naz network nsg rule create \\\n --resource-group OpenSignRG \\\n --nsg-name opensign-vmNSG \\\n --name Allow-HTTPS \\\n --priority 1002 \\\n --direction Inbound \\\n --protocol Tcp \\\n --access Allow \\\n --destination-port-ranges 443\n\naz network nsg rule create \\\n --resource-group OpenSignRG \\\n --nsg-name opensign-vmNSG \\\n --name Allow-Caddy-Internal \\\n --priority 1003 \\\n --direction Inbound \\\n --protocol Tcp \\\n --access Allow \\\n --destination-port-ranges 3001\n"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-3-point-domain-to-vm",children:"\ud83c\udf0d Step 3: Point Domain to VM"}),"\n",(0,o.jsx)(n.p,{children:"In your DNS provider (e.g., GoDaddy, Cloudflare):"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Add an ",(0,o.jsx)(n.strong,{children:"A record"}),":","\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Name: ",(0,o.jsx)(n.code,{children:"opensign"})]}),"\n",(0,o.jsxs)(n.li,{children:["Value: ",(0,o.jsx)(n.code,{children:""})]}),"\n",(0,o.jsx)(n.li,{children:"TTL: 1 min or Auto"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Let it propagate (~5\u201310 mins)."}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-4-ssh-into-the-vm",children:"\ud83d\udce6 Step 4: SSH into the VM"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"ssh azureuser@\n"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-5-install-docker--compose-v2",children:"\ud83d\udc33 Step 5: Install Docker + Compose V2"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"sudo apt update && sudo apt install docker.io -y\n\n# Install Compose V2 (CLI plugin)\nmkdir -p ~/.docker/cli-plugins/\ncurl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose\nchmod +x ~/.docker/cli-plugins/docker-compose\n\n# Enable Docker\nsudo systemctl enable docker\n"})}),"\n",(0,o.jsx)(n.p,{children:"Verify:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"docker compose version\n"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-6-set-up-project-and-volumes",children:"\ud83d\udcc1 Step 6: Set Up Project and Volumes"}),"\n",(0,o.jsx)(n.h3,{id:"61-create-a-working-directory",children:"6.1 Create a working directory"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"mkdir opensign && cd opensign\n"})}),"\n",(0,o.jsx)(n.h3,{id:"62-download-files",children:"6.2 Download files"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"export HOST_URL=https://opensign.yourdomain.com\n\ncurl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml\ncurl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile\ncurl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev\nmv .env.local_dev .env.prod\n"})}),"\n",(0,o.jsx)(n.h2,{id:"make-sure-that-you-update-the-smtp-settings-by-editing-the-envprod-file-in-order-to-receive-emails",children:"Make sure that you update the SMTP settings by editing the .env.prod file in order to receive emails."}),"\n",(0,o.jsx)(n.h2,{id:"\ufe0f-step-7-start-the-stack",children:"\u2699\ufe0f Step 7: Start the Stack"}),"\n",(0,o.jsx)(n.p,{children:"Now boot the containers using Compose V2:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"docker compose up -d --force-recreate\n"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-8-verify-everything",children:"\u2705 Step 8: Verify Everything"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"https://opensign.yourdomain.com"})," loads the app with HTTPS"]}),"\n",(0,o.jsx)(n.li,{children:"Caddy fetched SSL certs automatically"}),"\n",(0,o.jsxs)(n.li,{children:["Backend routes work at ",(0,o.jsx)(n.code,{children:"/api/*"})]}),"\n",(0,o.jsx)(n.li,{children:"MongoDB persists data"}),"\n",(0,o.jsxs)(n.li,{children:["Uploaded files persist via ",(0,o.jsx)(n.code,{children:"opensign-files"})," volume"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Test:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"docker exec -it OpenSignServer-container ls /usr/src/app/files\ndocker volume inspect opensign-files\n"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-step-9-auto-start-on-reboot-optional",children:"\ud83d\udce6 Step 9: Auto-start on Reboot (optional)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"crontab -e\n"})}),"\n",(0,o.jsx)(n.p,{children:"Add:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"@reboot cd /home/azureuser/opensign && docker compose up -d\n"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"-backups-optional",children:"\ud83d\udd04 Backups (optional)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"# Backup MongoDB volume\ndocker run --rm -v opensign_data-volume:/data -v $(pwd):/backup ubuntu tar czvf /backup/mongo-backup.tar.gz /data\n\n# Backup OpenSign files\ndocker run --rm -v opensign_opensign-files:/data -v $(pwd):/backup ubuntu tar czvf /backup/files-backup.tar.gz /data\n"})})]})}function p(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file diff --git a/assets/js/4cff09f6.eb474160.js b/assets/js/4cff09f6.8265c79a.js similarity index 62% rename from assets/js/4cff09f6.eb474160.js rename to assets/js/4cff09f6.8265c79a.js index 4af5b88aa..e3b8a5bb2 100644 --- a/assets/js/4cff09f6.eb474160.js +++ b/assets/js/4cff09f6.8265c79a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[3021],{14918:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Guides","slug":"/category/guides","permalink":"/docs/category/guides","sidebar":"selfhostSidebar","navigation":{"previous":{"title":"AWS S3","permalink":"/docs/self-host/cloud-storage/s3"},"next":{"title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","permalink":"/docs/self-host/guides/env-variables"}}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[3021],{14918:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Guides","slug":"/category/guides","permalink":"/docs/category/guides","sidebar":"selfhostSidebar","navigation":{"previous":{"title":"AWS S3","permalink":"/docs/self-host/cloud-storage/s3"},"next":{"title":"OpenSign Deployment Guide on Azure VM via command-line","permalink":"/docs/self-host/guides/azure-vm-setup"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/b18842e4.dccc1a9f.js b/assets/js/b18842e4.6d12f149.js similarity index 97% rename from assets/js/b18842e4.dccc1a9f.js rename to assets/js/b18842e4.6d12f149.js index 43bb17779..abcfa086f 100644 --- a/assets/js/b18842e4.dccc1a9f.js +++ b/assets/js/b18842e4.6d12f149.js @@ -1 +1 @@ -"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[5597],{27312:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"self-host/guides/env-variables","title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","description":"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","source":"@site/docs/self-host/guides/env-variables.md","sourceDirName":"self-host/guides","slug":"/self-host/guides/env-variables","permalink":"/docs/self-host/guides/env-variables","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/guides/env-variables.md","tags":[],"version":"current","frontMatter":{"title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"},"sidebar":"selfhostSidebar","previous":{"title":"Guides","permalink":"/docs/category/guides"},"next":{"title":"How to generate self-signed document signing certificate?","permalink":"/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate"}}');var i=t(74848),d=t(28453);const r={title:"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"},o=void 0,c={},l=[{value:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost",id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",level:2}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",children:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"}),"\n",(0,i.jsx)(s.p,{children:"To set up OpenSign\u2122 locally using Docker, the following prerequisites are required:"}),"\n",(0,i.jsx)(s.p,{children:"Environment Varaibles:"}),"\n",(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{children:"Environment Varibale"}),(0,i.jsx)(s.th,{children:"Value"}),(0,i.jsx)(s.th,{children:"Description"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PUBLIC_URL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"https://localhost:3001",children:"https://localhost:3001"})}),(0,i.jsx)(s.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MASTER_KEY"}),(0,i.jsx)(s.td,{children:"XnAadwKxxByMr"}),(0,i.jsx)(s.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,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MONGODB_URI"}),(0,i.jsx)(s.td,{children:"mongodb://mongo-container:27017/OpenSignDB"}),(0,i.jsx)(s.td,{children:"Mongodb URI to connect to"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PARSE_MOUNT"}),(0,i.jsx)(s.td,{children:"/app"}),(0,i.jsx)(s.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,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SERVER_URL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,i.jsx)(s.td,{children:"Set it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:8080/app"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_SPACE"}),(0,i.jsx)(s.td,{children:"DOSPACENAME"}),(0,i.jsx)(s.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_ENDPOINT"}),(0,i.jsx)(s.td,{children:"ams3.digitaloceanspaces.com"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_BASEURL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"https://dospace.ams3.digitaloceanspaces.com",children:"https://dospace.ams3.digitaloceanspaces.com"})}),(0,i.jsx)(s.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_ACCESS_KEY_ID"}),(0,i.jsx)(s.td,{children:"YOUR_S3_ACCESS_ID"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,i.jsx)(s.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_REGION"}),(0,i.jsx)(s.td,{children:"YOUR_S3_REGION"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"USE_LOCAL"}),(0,i.jsx)(s.td,{children:"true"}),(0,i.jsx)(s.td,{children:"If this is set to true, local file storage will be used to save files, and DO credentials will be ignored."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MAILGUN_API_KEY"}),(0,i.jsx)(s.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,i.jsx)(s.td,{children:"Mailgun API Key"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MAILGUN_DOMAIN"}),(0,i.jsx)(s.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,i.jsx)(s.td,{children:"Mailgun API Domain"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MAILGUN_SENDER"}),(0,i.jsx)(s.td,{children:"-"}),(0,i.jsx)(s.td,{children:"Mailgun Sender Mail ID"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_ENABLE"}),(0,i.jsx)(s.td,{children:"false"}),(0,i.jsx)(s.td,{children:"If this is set to true, emails will be sent through SMTP, and Mailgun credentials will be ignored."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_HOST"}),(0,i.jsx)(s.td,{children:"smtp.yourhost.com"}),(0,i.jsx)(s.td,{children:"Provide smtp host"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_PORT"}),(0,i.jsx)(s.td,{children:"443"}),(0,i.jsx)(s.td,{children:"Provide smtp port number"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_USERNAME"}),(0,i.jsx)(s.td,{children:"-"}),(0,i.jsx)(s.td,{children:"Provide username of smtp"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_USER_EMAIL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"mailto:mailer@yourdomain.com",children:"mailer@yourdomain.com"})}),(0,i.jsx)(s.td,{children:"Provide user email of smtp"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_PASS"}),(0,i.jsx)(s.td,{children:"password"}),(0,i.jsx)(s.td,{children:"Provide smtp password"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PFX_BASE64"}),(0,i.jsx)(s.td,{children:"-"}),(0,i.jsx)(s.td,{children:"Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PASS_PHRASE"}),(0,i.jsx)(s.td,{children:"opensign"}),(0,i.jsx)(s.td,{children:"Pass phrase of PFX or p12 document signing certificate file."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"APP_ID"}),(0,i.jsx)(s.td,{children:"opensign"}),(0,i.jsx)(s.td,{children:"(DEPRECATED) This should not be changed if provided; it should be 'opensign'."})]})]})]}),"\n",(0,i.jsx)(s.h1,{id:"steps-to-generate-self-signed-document-singing-certificate",children:"Steps to generate self-signed document singing certificate"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:"# execute below command and use passphrase 'opensign'\nopenssl genrsa -des3 -out ./local_dev.key 2048\nopenssl req -key ./local_dev.key -new -x509 -days 365 -out ./local_dev.crt\nopenssl pkcs12 -inkey ./local_dev.key -in ./local_dev.crt -export -out ./local_dev.pfx\nopenssl base64 -in ./local_dev.pfx -out ./base64_pfx\n"})})]})}function h(e={}){const{wrapper:s}={...(0,d.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},28453:(e,s,t)=>{t.d(s,{R:()=>r,x:()=>o});var n=t(96540);const i={},d=n.createContext(i);function r(e){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[5597],{27312:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"self-host/guides/env-variables","title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","description":"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost","source":"@site/docs/self-host/guides/env-variables.md","sourceDirName":"self-host/guides","slug":"/self-host/guides/env-variables","permalink":"/docs/self-host/guides/env-variables","draft":false,"unlisted":false,"editUrl":"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/guides/env-variables.md","tags":[],"version":"current","frontMatter":{"title":"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"},"sidebar":"selfhostSidebar","previous":{"title":"OpenSign Deployment Guide on Azure VM via command-line","permalink":"/docs/self-host/guides/azure-vm-setup"},"next":{"title":"How to generate self-signed document signing certificate?","permalink":"/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate"}}');var i=t(74848),d=t(28453);const r={title:"ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"},o=void 0,c={},l=[{value:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost",id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",level:2}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",children:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"}),"\n",(0,i.jsx)(s.p,{children:"To set up OpenSign\u2122 locally using Docker, the following prerequisites are required:"}),"\n",(0,i.jsx)(s.p,{children:"Environment Varaibles:"}),"\n",(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{children:"Environment Varibale"}),(0,i.jsx)(s.th,{children:"Value"}),(0,i.jsx)(s.th,{children:"Description"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PUBLIC_URL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"https://localhost:3001",children:"https://localhost:3001"})}),(0,i.jsx)(s.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MASTER_KEY"}),(0,i.jsx)(s.td,{children:"XnAadwKxxByMr"}),(0,i.jsx)(s.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,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MONGODB_URI"}),(0,i.jsx)(s.td,{children:"mongodb://mongo-container:27017/OpenSignDB"}),(0,i.jsx)(s.td,{children:"Mongodb URI to connect to"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PARSE_MOUNT"}),(0,i.jsx)(s.td,{children:"/app"}),(0,i.jsx)(s.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,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SERVER_URL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,i.jsx)(s.td,{children:"Set it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:8080/app"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_SPACE"}),(0,i.jsx)(s.td,{children:"DOSPACENAME"}),(0,i.jsx)(s.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_ENDPOINT"}),(0,i.jsx)(s.td,{children:"ams3.digitaloceanspaces.com"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_BASEURL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"https://dospace.ams3.digitaloceanspaces.com",children:"https://dospace.ams3.digitaloceanspaces.com"})}),(0,i.jsx)(s.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_ACCESS_KEY_ID"}),(0,i.jsx)(s.td,{children:"YOUR_S3_ACCESS_ID"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,i.jsx)(s.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"DO_REGION"}),(0,i.jsx)(s.td,{children:"YOUR_S3_REGION"}),(0,i.jsx)(s.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"USE_LOCAL"}),(0,i.jsx)(s.td,{children:"true"}),(0,i.jsx)(s.td,{children:"If this is set to true, local file storage will be used to save files, and DO credentials will be ignored."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MAILGUN_API_KEY"}),(0,i.jsx)(s.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,i.jsx)(s.td,{children:"Mailgun API Key"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MAILGUN_DOMAIN"}),(0,i.jsx)(s.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,i.jsx)(s.td,{children:"Mailgun API Domain"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"MAILGUN_SENDER"}),(0,i.jsx)(s.td,{children:"-"}),(0,i.jsx)(s.td,{children:"Mailgun Sender Mail ID"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_ENABLE"}),(0,i.jsx)(s.td,{children:"false"}),(0,i.jsx)(s.td,{children:"If this is set to true, emails will be sent through SMTP, and Mailgun credentials will be ignored."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_HOST"}),(0,i.jsx)(s.td,{children:"smtp.yourhost.com"}),(0,i.jsx)(s.td,{children:"Provide smtp host"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_PORT"}),(0,i.jsx)(s.td,{children:"443"}),(0,i.jsx)(s.td,{children:"Provide smtp port number"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_USERNAME"}),(0,i.jsx)(s.td,{children:"-"}),(0,i.jsx)(s.td,{children:"Provide username of smtp"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_USER_EMAIL"}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.a,{href:"mailto:mailer@yourdomain.com",children:"mailer@yourdomain.com"})}),(0,i.jsx)(s.td,{children:"Provide user email of smtp"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"SMTP_PASS"}),(0,i.jsx)(s.td,{children:"password"}),(0,i.jsx)(s.td,{children:"Provide smtp password"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PFX_BASE64"}),(0,i.jsx)(s.td,{children:"-"}),(0,i.jsx)(s.td,{children:"Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"PASS_PHRASE"}),(0,i.jsx)(s.td,{children:"opensign"}),(0,i.jsx)(s.td,{children:"Pass phrase of PFX or p12 document signing certificate file."})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:"APP_ID"}),(0,i.jsx)(s.td,{children:"opensign"}),(0,i.jsx)(s.td,{children:"(DEPRECATED) This should not be changed if provided; it should be 'opensign'."})]})]})]}),"\n",(0,i.jsx)(s.h1,{id:"steps-to-generate-self-signed-document-singing-certificate",children:"Steps to generate self-signed document singing certificate"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{children:"# execute below command and use passphrase 'opensign'\nopenssl genrsa -des3 -out ./local_dev.key 2048\nopenssl req -key ./local_dev.key -new -x509 -days 365 -out ./local_dev.crt\nopenssl pkcs12 -inkey ./local_dev.key -in ./local_dev.crt -export -out ./local_dev.pfx\nopenssl base64 -in ./local_dev.pfx -out ./base64_pfx\n"})})]})}function h(e={}){const{wrapper:s}={...(0,d.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},28453:(e,s,t)=>{t.d(s,{R:()=>r,x:()=>o});var n=t(96540);const i={},d=n.createContext(i);function r(e){const s=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(d.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.1f91456d.js b/assets/js/main.0d4ee6dc.js similarity index 57% rename from assets/js/main.1f91456d.js rename to assets/js/main.0d4ee6dc.js index c75493a1e..ea626d11b 100644 --- a/assets/js/main.1f91456d.js +++ b/assets/js/main.0d4ee6dc.js @@ -1,2 +1,2 @@ -/*! For license information please see main.1f91456d.js.LICENSE.txt */ -(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[8792],{204:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},1189:(e,t,n)=>{"use strict";var r=Array.prototype.slice,o=n(1093),a=Object.keys,i=a?function(e){return a(e)}:n(28875),l=Object.keys;i.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?l(r.call(e)):l(e)})}else Object.keys=i;return Object.keys||i},e.exports=i},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s{"use strict";n.r(t)},3918:(e,t,n)=>{"use strict";var r=n(65606);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;te.length)&&(n=e.length),e.substring(n-t.length,n)===t}var w="",k="",x="",S="",E={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function _(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function A(e){return b(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function P(e,t,n){var o="",a="",i=0,l="",s=!1,c=A(e),u=c.split("\n"),d=A(t).split("\n"),p=0,f="";if("strictEqual"===n&&"object"===h(e)&&"object"===h(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===d.length&&u[0]!==d[0]){var m=u[0].length+d[0].length;if(m<=10){if(!("object"===h(e)&&null!==e||"object"===h(t)&&null!==t||0===e&&0===t))return"".concat(E[n],"\n\n")+"".concat(u[0]," !== ").concat(d[0],"\n")}else if("strictEqualObject"!==n){if(m<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;u[0][p]===d[0][p];)p++;p>2&&(f="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",p),"^"),p=0)}}}for(var g=u[u.length-1],b=d[d.length-1];g===b&&(p++<2?l="\n ".concat(g).concat(l):o=g,u.pop(),d.pop(),0!==u.length&&0!==d.length);)g=u[u.length-1],b=d[d.length-1];var y=Math.max(u.length,d.length);if(0===y){var _=c.split("\n");if(_.length>30)for(_[26]="".concat(w,"...").concat(S);_.length>27;)_.pop();return"".concat(E.notIdentical,"\n\n").concat(_.join("\n"),"\n")}p>3&&(l="\n".concat(w,"...").concat(S).concat(l),s=!0),""!==o&&(l="\n ".concat(o).concat(l),o="");var P=0,j=E[n]+"\n".concat(k,"+ actual").concat(S," ").concat(x,"- expected").concat(S),C=" ".concat(w,"...").concat(S," Lines skipped");for(p=0;p1&&p>2&&(O>4?(a+="\n".concat(w,"...").concat(S),s=!0):O>3&&(a+="\n ".concat(d[p-2]),P++),a+="\n ".concat(d[p-1]),P++),i=p,o+="\n".concat(x,"-").concat(S," ").concat(d[p]),P++;else if(d.length1&&p>2&&(O>4?(a+="\n".concat(w,"...").concat(S),s=!0):O>3&&(a+="\n ".concat(u[p-2]),P++),a+="\n ".concat(u[p-1]),P++),i=p,a+="\n".concat(k,"+").concat(S," ").concat(u[p]),P++;else{var T=d[p],I=u[p],R=I!==T&&(!v(I,",")||I.slice(0,-1)!==T);R&&v(T,",")&&T.slice(0,-1)===I&&(R=!1,I+=","),R?(O>1&&p>2&&(O>4?(a+="\n".concat(w,"...").concat(S),s=!0):O>3&&(a+="\n ".concat(u[p-2]),P++),a+="\n ".concat(u[p-1]),P++),i=p,a+="\n".concat(k,"+").concat(S," ").concat(I),o+="\n".concat(x,"-").concat(S," ").concat(T),P+=2):(a+=o,o="",1!==O&&0!==p||(a+="\n ".concat(I),P++))}if(P>20&&p30)for(f[26]="".concat(w,"...").concat(S);f.length>27;)f.pop();t=1===f.length?p.call(this,"".concat(d," ").concat(f[0])):p.call(this,"".concat(d,"\n\n").concat(f.join("\n"),"\n"))}else{var m=A(i),g="",b=E[o];"notDeepEqual"===o||"notEqual"===o?(m="".concat(E[o],"\n\n").concat(m)).length>1024&&(m="".concat(m.slice(0,1021),"...")):(g="".concat(A(l)),m.length>512&&(m="".concat(m.slice(0,509),"...")),g.length>512&&(g="".concat(g.slice(0,509),"...")),"deepEqual"===o||"equal"===o?m="".concat(b,"\n\n").concat(m,"\n\nshould equal\n\n"):g=" ".concat(o," ").concat(g)),t=p.call(this,"".concat(m).concat(g))}return Error.stackTraceLimit=s,t.generatedMessage=!n,Object.defineProperty(u(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=i,t.expected=l,t.operator=o,Error.captureStackTrace&&Error.captureStackTrace(u(t),a),t.stack,t.name="AssertionError",c(t)}return i=v,(s=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return b(this,a(a({},t),{},{customInspect:!1,depth:0}))}}])&&l(i.prototype,s),d&&l(i,d),Object.defineProperty(i,"prototype",{writable:!1}),v}(d(Error),b.custom);e.exports=j},4023:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(96540),o=n(61934),a=n(27143),i=n(30099),l=n(36668),s=n(75313),c=n(74848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.rA)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(g,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(l.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const m=e=>(0,c.jsx)(f,{...e});class g extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.default.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??m)(e)}return e??null}}},4146:(e,t,n)=>{"use strict";var r=n(44363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"OpenSign\u2122",tagline:"Official OpenSign\u2122 Docs - tutorials, API documentation, self-host help & much more.",favicon:"img/favicon.ico",url:"https://docs.opensignlabs.com",baseUrl:"/",organizationName:"opensignlabs",projectName:"opensign",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",editUrl:"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/",docItemComponent:"@theme/ApiItem"},blog:{showReadingTime:!0,editUrl:"https://github.com/facebook/docusaurus/tree/feat-docs/docs/"},theme:{customCss:"./src/css/custom.css"}}]],plugins:[["docusaurus-plugin-openapi-docs",{id:"openapi",docsPluginId:"default",config:{opensign:{specPath:"docs/API-docs/opensign.yaml",outputDir:"docs/API-docs",sidebarOptions:{groupPathsBy:"tag"}}}}]],themes:["docusaurus-theme-openapi-docs"],themeConfig:{announcementBar:{id:"support_us",content:'Help use spread the word - \u2b50 OpenSign on GitHub',backgroundColor:"#cae4fa",textColor:"#091E42",isCloseable:!1},image:"img/docusaurus-social-card.png",navbar:{title:"OpenSign\u2122",logo:{alt:"OpenSign\u2122 Logo",src:"img/logo.png"},items:[{type:"docSidebar",sidebarId:"tutorialSidebar",position:"left",label:"Help"},{type:"docSidebar",sidebarId:"apiSidebar",position:"left",label:"APIs"},{type:"docSidebar",sidebarId:"contributeSidebar",position:"left",label:"Contribute"},{href:"https://www.opensignlabs.com/plans-pricing",label:"Cloud Pricing",position:"left"},{type:"docSidebar",sidebarId:"selfhostSidebar",position:"left",label:"Self-host"},{href:"https://github.com/opensignlabs/opensign",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Help",to:"/docs/help/intro"},{label:"APIs",to:"/docs/API-docs/opensign-api-v-1"},{label:"Contribute",to:"/docs/contribute/intro"},{label:"Self-host",to:"/docs/self-host/intro"}]},{title:"Community",items:[{label:"Discord",href:"https://discord.com/invite/xe9TDuyAyj"},{label:"LinkedIn",href:"https://www.linkedin.com/company/opensign%E2%84%A2/"},{label:"Twitter",href:"https://www.twitter.com/opensignhq"},{label:"Facebook",href:"https://www.facebook.com/profile.php?id=61551030403669"}]},{title:"More",items:[{label:"Official Website",href:"https://www.opensignlabs.com"},{label:"GitHub",href:"https://github.com/opensignlabs/opensign"}]}],copyright:"Copyright \xa9 2025 OpenSign\u2122.
The best Open Source DocuSign alternative."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},5338:(e,t,n)=>{"use strict";var r=n(40961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},5528:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(96540),o=n(63065),a=n(86682),i=n(30604),l=n(53115),s=n(26849),c=n(74848);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,l.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[s,c]=(0,r.useState)(!1);(0,i.$Z)((()=>{if(s)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5556:(e,t,n)=>{e.exports=n(2694)()},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},6188:e=>{"use strict";e.exports=Math.max},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},7176:(e,t,n)=>{"use strict";var r,o=n(73126),a=n(75795);try{r=[].__proto__===Array.prototype}catch(c){if(!c||"object"!=typeof c||!("code"in c)||"ERR_PROTO_ACCESS"!==c.code)throw c}var i=!!r&&a&&a(Object.prototype,"__proto__"),l=Object,s=l.getPrototypeOf;e.exports=i&&"function"==typeof i.get?o([i.get]):"function"==typeof s&&function(e){return s(null==e?e:l(e))}},7463:(e,t,n)=>{"use strict";var r=n(96763);function o(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(!(0>>1;rl(s,n))cl(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[i]=n,r=i);else{if(!(cl(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function l(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var c=Date,u=c.now();t.unstable_now=function(){return c.now()-u}}var d=[],p=[],f=1,m=null,g=3,h=!1,b=!1,y=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,k="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=a(p);null!==t;){if(null===t.callback)i(p);else{if(!(t.startTime<=e))break;i(p),t.sortIndex=t.expirationTime,o(d,t)}t=a(p)}}function S(e){if(y=!1,x(e),!b)if(null!==a(d))b=!0,D(E);else{var t=a(p);null!==t&&L(S,t.startTime-e)}}function E(e,n){b=!1,y&&(y=!1,w(j),j=-1),h=!0;var r=g;try{for(x(n),m=a(d);null!==m&&(!(m.expirationTime>n)||e&&!T());){var o=m.callback;if("function"==typeof o){m.callback=null,g=m.priorityLevel;var l=o(m.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?m.callback=l:m===a(d)&&i(d),x(n)}else i(d);m=a(d)}if(null!==m)var s=!0;else{var c=a(p);null!==c&&L(S,c.startTime-n),s=!1}return s}finally{m=null,g=r,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var _,A=!1,P=null,j=-1,C=5,O=-1;function T(){return!(t.unstable_now()-Oe||125i?(e.sortIndex=r,o(p,e),null===a(d)&&e===a(p)&&(y?(w(j),j=-1):y=!0,L(S,r-i))):(e.sortIndex=l,o(d,e),b||h||(b=!0,D(E))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=g;return function(){var n=g;g=t;try{return e.apply(this,arguments)}finally{g=n}}}},7699:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,G:()=>c});var r=n(96540),o=n(26849),a=n(74848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t}=e;const[n,o]=(0,r.useState)(null),i=(0,r.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new o.dV("DocSidebarItemsExpandedStateProvider");return e}},8532:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>h});var r=n(96540),o=n(61934),a=n(26849),i=n(78749),l=n(53115),s=n(74848);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.default.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&g(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,s.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},8722:(e,t,n)=>{var r=n(96763);const o=n(6969),a=n(98380),i=new Set;function l(e){void 0===e?e=Object.keys(o.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(o,e,t).load((e=>{if(!(e in o.languages))return void(l.silent||r.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),i.add(e)}))}l.silent=!1,e.exports=l},9136:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(96540),o=n(84974);function a(){return(0,r.useContext)(o.o)}},9303:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});n(96540);var r=n(18215),o=n(50539),a=n(53115),i=n(56289),l=n(25246);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(74848);function u(e){let{as:t,id:n,...u}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.translate)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.default,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},9394:(e,t,n)=>{"use strict";var r=n(89211);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},9957:(e,t,n)=>{"use strict";var r=Function.prototype.call,o=Object.prototype.hasOwnProperty,a=n(66743);e.exports=a.call(r,o)},10076:e=>{"use strict";e.exports=Function.prototype.call},10487:(e,t,n)=>{"use strict";var r=n(96897),o=n(30655),a=n(73126),i=n(12205);e.exports=function(e){var t=a(arguments),n=e.length-(arguments.length-1);return r(t,1+(n>0?n:0),!0)},o?o(e.exports,"apply",{value:i}):e.exports.apply=i},11002:e=>{"use strict";e.exports=Function.prototype.apply},11514:(e,t,n)=>{"use strict";var r=n(38403);e.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),n={},r=0;r{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},11861:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}function a(e,t){const n={};let r=0;for(const o of e){const e=t(o,r);n[e]??=[],n[e].push(o),r+=1}return n}n.d(t,{$z:()=>a,XI:()=>r,sb:()=>o})},12205:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(13144);e.exports=function(){return a(r,o,arguments)}},12862:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(56289),o=n(29030),a=n(40797),i=n(53115),l=n(24475),s=n(74848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.default)(t.src),dark:(0,o.default)(t.srcDark||t.src)},i=(0,s.jsx)(l.default,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.default)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.default)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.default,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(c,{logo:l,alt:g,imageClassName:u}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},13003:e=>{"use strict";e.exports=function(e){return e!=e}},13144:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(10076),i=n(47119);e.exports=i||r.call(a,o)},13722:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},14035:(e,t,n)=>{"use strict";var r,o=n(36556),a=n(49092)(),i=n(9957),l=n(75795);if(a){var s=o("RegExp.prototype.exec"),c={},u=function(){throw c},d={toString:u,valueOf:u};"symbol"==typeof Symbol.toPrimitive&&(d[Symbol.toPrimitive]=u),r=function(e){if(!e||"object"!=typeof e)return!1;var t=l(e,"lastIndex");if(!(t&&i(t,"value")))return!1;try{s(e,d)}catch(n){return n===c}}}else{var p=o("Object.prototype.toString");r=function(e){return!(!e||"object"!=typeof e&&"function"!=typeof e)&&"[object RegExp]"===p(e)}}e.exports=r},15066:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,h={};function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,g(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var o,a={},i=null,l=null;if(null!=t)for(o in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,o)&&!E.hasOwnProperty(o)&&(a[o]=t[o]);var s=arguments.length-2;if(1===s)a.children=r;else if(1{"use strict";n.d(t,{A:()=>a});n(96540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(74848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},17081:(e,t,n)=>{"use strict";n.d(t,{_:()=>l,u:()=>s});var r=n(96540),o=n(26849),a=n(74848);const i=r.createContext(null);function l(e){let{children:t,content:n}=e;const o=function(e){return(0,r.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,a.jsx)(i.Provider,{value:o,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocProvider");return e}},18215:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=18692},19585:(e,t,n)=>{"use strict";n.d(t,{K:()=>p,j:()=>s});var r=n(96540),o=n(56347),a=n(50539),i=n(77685),l=n(74848);const s="__docusaurus_skipToContent_fallback";function c(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function u(){const e=(0,r.useRef)(null),{action:t}=(0,o.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(s);t&&c(t)}),[]);return(0,i.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&c(e.current)})),{containerRef:e,onClick:n}}const d=(0,a.translate)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function p(e){const t=e.children??d,{containerRef:n,onClick:r}=u();return(0,l.jsx)("div",{ref:n,role:"region","aria-label":d,children:(0,l.jsx)("a",{...e,href:`#${s}`,onClick:r,children:t})})}},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];g&&y.push.apply(y,i([g])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(Prism)},20311:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},21020:(e,t,n)=>{"use strict";var r=n(96540),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:a,_owner:l.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},21858:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(96540),o=n(26849),a=n(74848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},22306:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>c});var r=n(96540),o=n(26849),a=n(74848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},22551:(e,t,n)=>{"use strict";var r=n(96763),o=n(96540),a=n(69982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n