-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* updated Features * Added Document Generation FreeMarker * updated E-Signature * Added Document Action EventBridge docs * Add 1.16.0 links
- Loading branch information
Showing
298 changed files
with
8,362 additions
and
2,678 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"label": "Add-On Modules", | ||
"collapsible": true, | ||
"collapsed": true, | ||
"position": 10, | ||
"link": { | ||
"type": "generated-index", | ||
"description": "FormKiQ Add-On Modules." | ||
} | ||
} |
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,222 @@ | ||
--- | ||
sidebar_position: 1 | ||
--- | ||
|
||
# Document Generation | ||
|
||
The Document Generation feature in the FormKiQ Document Management Platform enables the creation of dynamic documents by combining a predefined document template with one or more data sources. The document generation process uses the Apache FreeMarker templating engine, offering robust capabilities for customizing document content. | ||
|
||
## Benefits | ||
|
||
- **Efficiency**: Streamline document creation workflows by automating repetitive tasks. | ||
- **Customization**: Use powerful templating features with Apache FreeMarker to create tailored outputs. | ||
- **Scalability**: Handle large volumes of document generation requests with ease. | ||
- **Flexibility**: Generate documents in multiple output formats, such as DOCX and PDF. | ||
|
||
|
||
## Apache FreeMarker Syntax | ||
|
||
Here are a few examples of Apache FreeMarker syntax commonly used in templates: | ||
|
||
For the complete reference, visit the official [Apache FreeMarker Documentation](https://freemarker.apache.org/docs/index.html). | ||
|
||
### Variable Insertion | ||
|
||
Insert variables directly into the template. | ||
```ftl | ||
Hello, ${user.name}! | ||
``` | ||
|
||
### Conditional Logic | ||
|
||
Use conditional statements to customize output based on data values. | ||
|
||
``` | ||
<#if user.age >= 18> | ||
Welcome to the adult portal. | ||
<#else> | ||
Welcome to the kids' section. | ||
</#if> | ||
``` | ||
|
||
### Looping Through a List | ||
|
||
Iterate over a collection to display repeated content. | ||
|
||
``` | ||
<#list products as product> | ||
- ${product.name}: ${product.price} | ||
</#list> | ||
``` | ||
|
||
### Nested Loops | ||
|
||
Handle nested data structures for complex templates. | ||
|
||
``` | ||
<#list orders as order> | ||
Order ID: ${order.id} | ||
<#list order.items as item> | ||
- ${item.name} (${item.quantity}) | ||
</#list> | ||
</#list> | ||
``` | ||
|
||
### Default Values | ||
|
||
Provide default values for missing data. | ||
|
||
``` | ||
Customer Name: ${customer.name!"Unknown Customer"} | ||
``` | ||
|
||
### String Manipulation | ||
|
||
Perform basic string operations. | ||
|
||
``` | ||
Customer Name (Uppercase): ${customer.name?upper_case} | ||
Order Total (Formatted): ${order.total?string.currency} | ||
``` | ||
|
||
### Date Formatting | ||
|
||
Format dates for better readability. | ||
|
||
``` | ||
Order Date: ${order.date?string("yyyy-MM-dd")} | ||
``` | ||
|
||
### Conditional Assignments | ||
|
||
Assign values based on conditions. | ||
|
||
``` | ||
<#assign status = (order.total > 100) ? "Premium" : "Standard"> | ||
Order Status: ${status} | ||
``` | ||
|
||
### Comments | ||
|
||
Add comments to templates for clarity. | ||
|
||
``` | ||
<#-- This is a single-line comment --> | ||
``` | ||
|
||
|
||
## API Endpoints | ||
|
||
POST `/documents/{documentId}/generate` | ||
|
||
where the documentId is the template document id. | ||
|
||
For full API documentation, See [full documentation here](/docs/api-reference/add-document-generate). | ||
|
||
### Sample API Requests | ||
|
||
#### Request | ||
|
||
```json | ||
POST /documents/{documentId}/generate | ||
{ | ||
"locale": { | ||
"language": "en", | ||
"country": "US" | ||
}, | ||
"datasources": [ | ||
{ | ||
"name": "customerData", | ||
"documentId": "12345", | ||
"dataRoot": "data" | ||
} | ||
], | ||
"outputType": "PDF", | ||
"saveAsDocumentId": "67890", | ||
"path": "/output/reports/customer_report.pdf" | ||
} | ||
``` | ||
|
||
#### Explanation of Fields | ||
|
||
* locale: Specifies the language and country for locale-specific data formatting. | ||
|
||
* language: Language code (e.g., en (English), fr (French), de (German)) following the ISO 639-1 standard. | ||
* country: Country code (e.g., "US" for the United States) following the ISO 3166-1 standard. | ||
* datasources: A list of data sources to merge with the template. | ||
* name: Name of the data source. | ||
* documentId: Document ID of the data source file. | ||
* dataRoot: Root key in the data source to use as the base. | ||
* outputType: Format of the generated document. Supported values: DOCX, PDF. | ||
* saveAsDocumentId: Specific Document ID for saving the generated document. | ||
* path: File path to save the generated document. | ||
|
||
|
||
## DataSource | ||
|
||
The DataSource is a JSON document that provides the values used to populate the placeholders and logic within the Apache FreeMarker template. This enables dynamic content generation by combining the static structure of the template with the dynamic data from the DataSource. | ||
|
||
### Key Attributes of a DataSource | ||
|
||
- **JSON Document**: The data source must be structured as a JSON document. Each key-value pair in the document corresponds to a variable or object used in the template. | ||
- **`dataRoot` Parameter**: Controls the root node of the JSON document to load into the template. This allows flexibility in selecting the portion of the document to use for rendering. | ||
|
||
### Example of a DataSource | ||
|
||
#### JSON DataSource | ||
```json | ||
{ | ||
"company": { | ||
"name": "Acme Corp", | ||
"location": "New York", | ||
"employees": [ | ||
{ | ||
"name": "John Doe", | ||
"position": "Manager", | ||
"age": 35 | ||
}, | ||
{ | ||
"name": "Jane Smith", | ||
"position": "Engineer", | ||
"age": 29 | ||
} | ||
] | ||
} | ||
} | ||
``` | ||
|
||
### Using dataRoot | ||
|
||
By specifying dataRoot: **company**, only the data under the company key is accessible in the template. | ||
|
||
``` | ||
Company Name: ${name} | ||
Location: ${location} | ||
<#list employees as employee> | ||
- ${employee.name}, ${employee.position} | ||
</#list> | ||
``` | ||
|
||
## Document Attributes | ||
|
||
In addition to the user-provided DataSource, **Document Attributes** associated with the document are automatically loaded and added to the DataSource. This ensures that metadata and other predefined attributes related to the document can be directly utilized in the template without additional configuration. | ||
|
||
### Example | ||
|
||
**Document Attributes** | ||
|
||
| **Attribute Key** | **Value** | | ||
|--------------------|------------------------------------| | ||
| title | Quarterly Financial Report | | ||
| author | Jane Doe | | ||
| createdDate | 2024-01-15 | | ||
| department | Finance | | ||
|
||
**Template** | ||
|
||
```ftl | ||
Document Title: ${title} | ||
Author: ${author} | ||
Date Created: ${createdDate} | ||
Department: ${department} | ||
``` |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
--- | ||
sidebar_position: 1 | ||
--- | ||
|
||
# E-Signature Module | ||
|
||
✅ Powered by [DocuSign API](https://www.docusign.com/) to enable electronic signatures for any PDF or MS Office document | ||
|
||
The E-Signature Module is a FormKiQ Enterprise Add-On Module that enables electronic signature integration; at this time, only DocuSign is supported, but other e-signature integrations can be performed for FormKiQ Enterprise customers. | ||
|
||
## Use Cases | ||
|
||
* **Contract Management**: Send contracts to clients or partners for signature and ensure compliance with legal standards. | ||
* **HR Onboarding**: Facilitate signing of employment agreements and onboarding documents for new hires. | ||
* **Approval Workflows**: Obtain approvals on proposals, purchase orders, or project documents. | ||
* **Real Estate Transactions**: Manage the signing of real estate contracts and agreements. | ||
* **Healthcare Forms**: Digitally sign patient consent forms and medical records. | ||
|
||
## Benefits | ||
|
||
* **Ease of Use**: Simplifies the process of sending and managing electronic signature requests. | ||
* **Security**: Leverages DocuSign’s secure platform for legally binding e-signatures. | ||
* **Flexibility**: Supports both remote and in-person signing workflows. | ||
* **Customizable Notifications**: Provides options for reminders and expiration settings to manage pending signatures. | ||
* **Seamless Integration**: Integrates DocuSign settings into the FormKiQ platform for smooth operation. | ||
|
||
## Setup DocuSign | ||
|
||
To send a document to DocuSign for signing, you need to interact with the DocuSign API. Below is how to configure FormKiQ to use your DocuSign account to send a document for signature using the DocuSign eSignature REST API. | ||
|
||
### Set Up a DocuSign Developer Account | ||
|
||
* Visit the [DocuSign Developer Center](https://developers.docusign.com/). | ||
* Create an account and log in. | ||
|
||
### Create an Integration Key | ||
|
||
* Navigate to **Settings** in your DocuSign Developer account. | ||
* Under the **Integrations** section, select **Apps and Keys**. | ||
* Click **Add App & Integration Key**. | ||
* Enter a name for your app and save it. This generates your **Integration Key**, a unique identifier for your application. | ||
|
||
### Generate an RSA Private Key | ||
|
||
* After creating the Integration Key, locate the **RSA Keypairs** section under the app details. | ||
* Click **Add RSA Keypair**. | ||
* DocuSign will generate a public-private key pair for you. Download the **RSA Private Key** immediately, as it will not be accessible later. | ||
* This key is essential for securing the communication between your application and DocuSign. | ||
|
||
### Get Your User ID | ||
|
||
* Navigate to your **Profile** in the DocuSign Developer account. | ||
* Look for your **User ID** (sometimes referred to as API Username or Account ID) under the **API and Keys** section. | ||
* Note this value, as it will be used in the configuration. | ||
|
||
## Setup FormKiQ | ||
|
||
Use the following API to set up DocuSign with FormKiQ: | ||
|
||
**PATCH `/sites/{siteId}/configuration`** | ||
|
||
#### Request Body | ||
```json | ||
{ | ||
"docusign": { | ||
"userId": "your-docuSign-userId", | ||
"integrationKey": "your-docuSign-integrationKey", | ||
"rsaPrivateKey": "your-docuSign-rsaPrivateKey" | ||
} | ||
} | ||
``` | ||
|
||
## API | ||
|
||
The following endpoints are available for DocuSign e-signature functionality, for full API documentation, See [full documentation here](/docs/api-reference/add-docusign-envelopes): | ||
|
||
### Create DocuSign Envelope | ||
|
||
POST `/esignature/docusign/{documentId}/envelopes` | ||
|
||
Creates a DocuSign envelope to send documents for electronic signing. | ||
|
||
### Create DocuSign Recipient View | ||
|
||
POST `/esignature/docusign/{documentId}/envelopes/{envelopeId}/views/recipient` | ||
|
||
Creates a URL for a recipient to view and sign a document. | ||
|
||
### DocuSign Callback URL Handler | ||
|
||
POST `/esignature/docusign/events` | ||
|
||
Handles callback events from DocuSign, such as envelope completion or recipient actions. | ||
|
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
Create a markdown page to describe the FormKiQ Document Management Platform feature <FEATURE NAME>. The feature provides <...>. The feature has the following API <...> | ||
|
||
# <Feature Name> | ||
|
||
Briefly describe what the feature is and what it does. | ||
|
||
## Use Cases | ||
|
||
Outline scenarios or business cases where the feature is most beneficial. | ||
|
||
## Benefits | ||
Highlight specific advantages of using this feature to help customers understand its value. | ||
|
||
## Prerequisites | ||
List any requirements needed before using the feature, like specific configurations or permissions. | ||
|
||
## Getting Started | ||
Step-by-step instructions to enable or activate the feature. | ||
|
||
## How It Works | ||
Explain the functionality in more depth, possibly including architecture, workflows, or data flow where relevant. | ||
|
||
## API Endpoints | ||
|
||
The API Endpoints can be found under the path **/feature**. [See full documentation here](#) | ||
|
||
## Sample API Requests | ||
Provide example API requests and responses in JSON, with explanations of each field. | ||
|
||
## Usage Instructions | ||
Detailed steps or procedures on how to use the feature effectively, possibly with subheadings like: | ||
- **Basic Usage** | ||
- **Advanced Usage** | ||
- **Best Practices** | ||
|
||
## Configuration Options | ||
Describe configurable parameters with explanations of each setting and its impact. | ||
|
||
## Examples | ||
Include example use cases, code snippets, or sample configurations to illustrate common applications. | ||
|
||
## Common Issues and Troubleshooting | ||
Document known issues or challenges with steps to troubleshoot. | ||
|
||
## FAQs | ||
Address frequently asked questions related to the feature. | ||
|
||
## Related Features and Integrations | ||
Mention related features or integrations within the platform that complement this feature. | ||
|
||
## Additional Resources | ||
Link to external resources, API references, or relevant documentation for further reading. |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Oops, something went wrong.