Skip to content

The Kodexa platform is made up of several types of component, however all these components share some common attributes.

Components are owned by Organizations

A component is owned by an organization, and only one organization. However, a component can be “public” allowing it to be used by other Organizations.

A Component can be identified through a Reference

All components are identified using their reference (or ref). This is made up of the slug for the organization, the component’s slug and then the version. For example:

org_slug/component_slug:1.0.0

Types of Component

There are several types of component:

Stores Stores are a general capability to hold documents, data, code or models

Taxonomies Taxonomies are how we represent data structures in Kodexa

Project Templates These capture the metadata to allow you to create and make public new project templates for the UI

Assistant Definitions The definition of an assistant, these can then be created as an instance of an assistant in a project

Actions The most basic unit of functionality in a pipeline

Pipelines Re-useable pipeline definitions that can be used

Components vs Entities

Components are a way to capture the metadata about a component, however a component typically has one or more entities that actually hold data or links to content (like documents).

So while a component is something that has a reference and can be deployed an entity has an ID as is typically managed by a type of component or as part of the organization or platform.

We differentiate between the two because we want to be able to show that a component is usually part of how we might configure an organization in the platform for a use-case while the entities are usually associated with the projects, data or documents being worked on.

    classDiagram
    Entity <|-- Project
    Entity <|-- Assistant
    Entity <|-- Exception
    Entity <|-- DataObject
    Entity <|-- DataAttribute
    Entity <|-- Training

    Component <|-- Store
    Component <|-- ProjectTemplate
    Component <|-- AssistantDefinition
    Component <|-- Pipeline
    Component <|-- Action
    Component <|-- ExtensionPack