-
Notifications
You must be signed in to change notification settings - Fork 0
06. Gendox types
This section categorizes users into distinct types within the system, each serving a specific purpose:
- GENDOX_SUPER_ADMIN: Users with this type are designated as Administrators with superlative authority. They possess the highest level of administrative control and are responsible for overseeing and managing the Gendox system.
- GENDOX_USER: GENDOX_USER types represent regular users affiliated with Gendox. They have standard access privileges and interact with the system as typical users.
- GENDOX_AGENT: This user type is reserved for individuals who act as agents on behalf of Gendox. Agents may have specific responsibilities and permissions related to Gendox operations.
- DISCORD_USER: Users falling under the DISCORD_USER type originate from the Discord platform. This categorization helps in distinguishing users who are integrated with Discord within the broader system.
| type_category | name | description |
|---|---|---|
| USER_TYPE | GENDOX_SUPER_ADMIN | This is for Administrators |
| USER_TYPE | GENDOX_USER | This user is from Gendox |
| USER_TYPE | GENDOX_AGENT | This is for Gendox Agents |
| USER_TYPE | DISCORD_USER | This user is from Discord |
In this section, various roles within an organization are defined, each with its own set of responsibilities:
- ROLE_ADMIN: Role administrators are individuals with the highest level of authority within an organization. They oversee and manage organizational activities, making critical decisions and setting organizational policies.
- ROLE_READER: ROLE_READER types are granted read-only access within an organization. They can view documents and organizational content but are restricted from making changes or edits.
- ROLE_EDITOR: Users with the ROLE_EDITOR role have the privilege to make changes and edits within an organization. They can create, modify, and update documents and content.
| type_category | name | description |
|---|---|---|
| ORGANIZATION_ROLE_TYPE | ROLE_ADMIN | This is for Administrators for an Organization |
| ORGANIZATION_ROLE_TYPE | ROLE_READER | This is Read only Users for an Organization |
| ORGANIZATION_ROLE_TYPE | ROLE_EDITOR | This is a User with write access for an Organization |
This section specifies fine-grained permissions within organization roles, granting users specific capabilities:
- OP_READ_DOCUMENT: Permission for reading documents at a granular level, enabling users to access and view documents.
- OP_WRITE_DOCUMENT: This permission grants users the capability to create, edit, and modify documents within the organization.
- OP_ADD_USERS: With this permission, users can add new members to the organization, expanding its membership.
- OP_REMOVE_USERS: Users with this permission can remove members from the organization, managing the organization's roster.
- OP_DELETE_ORGANIZATION: This permission allows users to delete the entire organization, making significant structural changes.
- OP_EDIT_PROJECT_SETTINGS: Users with this permission can modify project-specific settings and configurations within the organization.
| type_category | name | description |
|---|---|---|
| ORGANIZATION_ROLE_PERMISSION_TYPE | OP_READ_DOCUMENT | Fine-Grained permission to read a document |
| ORGANIZATION_ROLE_PERMISSION_TYPE | OP_WRITE_DOCUMENT | Fine-Grained permission to write a document |
| ORGANIZATION_ROLE_PERMISSION_TYPE | OP_ADD_USERS | Permission to add users from an organization |
| ORGANIZATION_ROLE_PERMISSION_TYPE | OP_REMOVE_USERS | Permission to remove users from an organization |
| ORGANIZATION_ROLE_PERMISSION_TYPE | OP_DELETE_ORGANIZATION | Permission to delete an organization |
| ORGANIZATION_ROLE_PERMISSION_TYPE | OP_EDIT_PROJECT_SETTINGS | Permission to edit a project settings |
This section defines various field types used to capture specific types of data within documents:
- FIELD_TEXT: A simple text field is designed for basic textual input.
- FIELD_RICH_TEXT: The rich text field is similar to a WYSIWYG editor, allowing users to format and style text extensively.
- FIELD_NUMBER: A field for entering numerical values, suitable for capturing numeric data.
- FIELD_DATE_TIME: This field is used to select dates and times, facilitating the recording of time-sensitive information.
- FIELD_CHECKBOX: The checkbox field provides a binary choice, allowing users to select or deselect an option.
- FIELD_MULTI_RADIO: Users can select a single option from multiple choices, suitable for capturing single-choice data.
- FIELD_MULTI_CHECKBOX: Multiple options can be selected from a list, making it ideal for capturing multiple-choice data.
- FIELD_FILE: The file field enables users to upload files, making it convenient for sharing documents and attachments.
- FIELD_IMAGE: This field is for uploading images, suitable for adding visual content to documents.
- FIELD_VIDEO: Users can upload videos using the video field, making it possible to incorporate multimedia elements.
- FIELD_AUDIO: Audio files can be uploaded using this field, allowing for the inclusion of sound content.
- FIELD_LOCATION: This field is used for selecting a geographical location, making it suitable for capturing location-specific data.
- FIELD_SIGNATURE: Users can provide digital signatures using this field, which is useful for capturing authenticated approvals.
- FIELD_BARCODE: The barcode field allows users to scan barcode information for data entry and recognition.
- FIELD_SLIDER: Users can select values within a specified range, making it suitable for capturing numeric data within a defined range.
- FIELD_RATING: This field allows users to provide a rating or score for various items or content.
- FIELD_EMAIL: Users can enter email addresses in this field, making it convenient for capturing contact information.
- FIELD_URL: The URL field is used for entering web links and URLs within documents.
| type_category | name | description |
|---|---|---|
| DOCUMENT_FIELD_TYPE | FIELD_TEXT | Simple text field |
| DOCUMENT_FIELD_TYPE | FIELD_RICH_TEXT | Rich text area, like WYSIWYG |
| DOCUMENT_FIELD_TYPE | FIELD_NUMBER | Number field |
| DOCUMENT_FIELD_TYPE | FIELD_DATE_TIME | Date field |
| DOCUMENT_FIELD_TYPE | FIELD_CHECKBOX | Checkbox field |
| DOCUMENT_FIELD_TYPE | FIELD_MULTI_RADIO | Multiple choice Radio field, that user can select exactly one option |
| DOCUMENT_FIELD_TYPE | FIELD_MULTI_CHECKBOX | Multiple choice Checkbox field, that user can select multiple options |
| DOCUMENT_FIELD_TYPE | FIELD_FILE | File field, that user can upload a file |
| DOCUMENT_FIELD_TYPE | FIELD_IMAGE | Image field, that user can upload an image |
| DOCUMENT_FIELD_TYPE | FIELD_VIDEO | Video field, that user can upload a video |
| DOCUMENT_FIELD_TYPE | FIELD_AUDIO | Audio field, that user can upload an audio |
| DOCUMENT_FIELD_TYPE | FIELD_LOCATION | Location field, that user can select a location |
| DOCUMENT_FIELD_TYPE | FIELD_SIGNATURE | Signature field, that user can sign |
| DOCUMENT_FIELD_TYPE | FIELD_BARCODE | Barcode field, that user can scan a barcode |
| DOCUMENT_FIELD_TYPE | FIELD_SLIDER | Slider field, that user can select a value from a range |
| DOCUMENT_FIELD_TYPE | FIELD_RATING | Rating field, that user can rate |
| DOCUMENT_FIELD_TYPE | FIELD_EMAIL | Email field, that user can enter an email |
| DOCUMENT_FIELD_TYPE | FIELD_URL | URL field, that user can enter an URL |
This section defines validation types applied to document fields to ensure data accuracy:
- FIELD_VALIDATION_PHONE: Validation to check that a text input is a valid phone number, ensuring that phone number data is correctly formatted.
- FIELD_VALIDATION_EMAIL: This validation type checks that a text input is a valid email address, confirming the email's correctness.
- FIELD_VALIDATION_URL: Validation to verify that a text input is a valid URL, ensuring that web links are properly formatted and functional.
| type_category | name | description |
|---|---|---|
| FIELD_VALIDATION_TYPE | FIELD_VALIDATION_PHONE | Validation that checks a text is a phone number |
| FIELD_VALIDATION_TYPE | FIELD_VALIDATION_EMAIL | Validation that checks a text is an email |
| FIELD_VALIDATION_TYPE | FIELD_VALIDATION_URL | Validation that checks a text is an URL |
This section defines different strategies for grouping and organizing document content:
- SIMPLE_SECTION: The simple section grouping strategy provides a straightforward approach to dividing document content into distinct sections.
- OVERLAP_SECTIONS: Overlap sections grouping strategy allows for content sections to intersect, enabling more flexible content organization.
- STATIC_WORD_COUNT_SPLITTER: This strategy splits content based on a predefined static word count, providing control over the granularity of content organization.
| type_category | name | description |
|---|---|---|
| GROUPING_STRATEGY_TYPE | SIMPLE_SECTION | Simple section grouping strategy type |
| GROUPING_STRATEGY_TYPE | OVERLAP_SECTIONS | Overlap sections grouping strategy type |
| GROUPING_STRATEGY_TYPE | STATIC_WORD_COUNT_SPLITTER | This is the static count splitter |
This section defines various template types used for document creation and structure:
- CHAT_TEMPLATE: Chat templates are designed for creating documents that follow a conversational or chat-like format.
- SECTION_TEMPLATE: Section templates are used to create documents with predefined sections, offering a structured layout for content placement and organization.
| type_category | name | description |
|---|---|---|
| TEMPLATE_TYPE | CHAT_TEMPLATE | This is a chat template |
| TEMPLATE_TYPE | SECTION_TEMPLATE | This is a section template |
graph TD;
subgraph types:
users --> types;
documents --> types;
embeddings --> types;
organizations --> types;
templates --> types;
end
You can visualize the Types entity using the following Mermaid class diagram:
classDiagram
types <|-- users : USER_TYPE
types <|-- documents : DOCUMENT_FILED_TYPE
types <|-- documents : GROUPING_STRATEGY_TYPE
types <|-- documents : DOCUMENT_SPLITTER_TYPE
embedding_group --|> types : grouping_strategy_type_id
embedding_group --|> types : semantic_search_model_id
organizations --|> types : ORGANIZATIONS_ROLE_TYPE
organizations --|> types : ORGANIZATIONS_ROLE_PERMITION_TYPE
template --|> types : TEMPLATE_TYPE