Search

Project Templates

Project Templates

Project templates facilitate the creation of new projects with a predetermined structure, ideal for projects that require a specific file set or dependency configuration. Project templates are a type of component and follow the same creation and deployment procedures as other components.

Creating a Project Template

Create a project template using YAML as follows:

slug: my-project-template
orgSlug: kodexa-demo
version: 1.0.0
name: My Project Template
type: projectTemplate

The foundational details include slug, orgSlug, version, name, and type.

Adding Components

Incorporate components into your project template by appending sections to the YAML file:

slug: my-project-template
orgSlug: kodexa-demo
version: 1.0.0
name: My Project Template
type: projectTemplate
stores:
  - slug: "${project.id}-processing"
    name: "Documents"
    description: "Documents for ${project.name}"
    storeType: DOCUMENT
    storePurpose: OPERATIONAL
taxonomies: []
assistants:
  - name: PDF Assistant
    description: Reviews historical documents to identify key data for CDAD
    assistantDefinitionRef: kodexa/pdf-parsing-assistant
    subscription: "!hasMixins('spatial')"
		connections:
		-  sourceType: STORE
       sourceRef: "${orgSlug}/${project.id}-processing:1.0.0"
       subscription: "!hasMixins('spatial')"
    options: {}

Sections available for defining stores, taxonomies, and assistants. To create a component, detail all necessary information or reference an existing component using the ref property.

taxonomies:
  - ref: "kodexa-demo/customer-taxonomy:1.0.0"

Project Options

Project support setting options, these will be available from the UI for the user to set as options.

options:
  options:
  - name: use_ocr
    type: boolean
    label: Use OCR
    description: Use OCR to extract text from the document
⚠️

Yes, it really is options/options

Working with Assistants

Project templates also involve setting up assistants.

Assistant Connections

Define connections for an assistant using the connections property, which specifies the events to respond to and their associated resources.

Here's an example of a store subscription in the updated 6.3 format:

assistants:
  - name: PDF Assistant
    description: Reviews historical documents to identify key data for CDAD
    assistantDefinitionRef: kodexa/pdf-parsing-assistant
    connections:
    -  sourceType: STORE
       sourceRef: "${orgSlug}/${project.id}-processing:1.0.0"
       subscription: "!hasMixins('spatial')"

Kodexa recognizes these event types:

  • STORE - Triggers the assistant when a document is added to the connected store.
  • DOCUMENT_FAMILY - Triggers when a document family is updated.
  • DATA_OBJECT - Triggers when the connected data object is updated.
  • CHANNEL - Triggers when a message is received on the connected channel.
  • WORKSPACE - Triggers when the workspace is updated with the save method.

For CHANNEL or WORKSPACE connections, providing the ref is not necessary as the assistant connects based on its project association.

Workspaces

You can also define workspaces. The options can be set using availablePanels, which controls the panels on the left. To display a panel, you must explicitly set it to true.

workspaces:
  - name: Document Workspace
    description: Upload, review, train and apply the model to new documents
    workspaceStorage:
      availablePanels:
        documentStores: true
        taxonomies: true
        dataForms: true
      overview: |-
        # Welcome to your Workspace

       Open a data form or document from the pane on the left to start using the Power of Kodexa.

To add a panel, call its id under availablePanels. Here are the options:

const availablePanels = ref([
    { name: "Assistants", id: "assistants" },
    { name: "Document Stores", id: "documentStores" },
    { name: "Data Forms", id: "dataForms" },
    { name: "Properties", id: "properties" },
    { name: "Exceptions", id: "exceptions" },
    { name: "Taxonomy", id: "taxonomies" },
    { name: "Chats", id: "channelsalessale" },
    { name: "Audit Trail", id: "auditEvents" },
    { name: "Navigation", id: "navigation" },
    { name: "Audit Events", id: "auditEvents" },
  ]);

Make sure you deploy the project template YAML to the model. The changes only affect the workspace of new projects; existing ones remain unaffected by the model update. If you have Show Developer Tools active, a Workspace Configuration panel will be available for use. Here, you can select the panels you wish to have available in a workspace.