Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Unstructured-IO/docs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: Unstructured-IO/docs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: DOCS-243-plugins
Choose a head ref
Able to merge. These branches can be automatically merged.
  • 5 commits
  • 4 files changed
  • 1 contributor

Commits on Mar 31, 2025

  1. Self-hosted plugins

    Paul-Cornell committed Mar 31, 2025
    Copy the full SHA
    1db0aac View commit details

Commits on Apr 1, 2025

  1. Copy the full SHA
    3b63106 View commit details
  2. More tutorial steps

    Paul-Cornell committed Apr 1, 2025
    Copy the full SHA
    9da42c0 View commit details
  3. Copy the full SHA
    5e0812d View commit details

Commits on Apr 2, 2025

  1. Copy the full SHA
    2dd2cc3 View commit details
Showing with 777 additions and 0 deletions.
  1. +7 −0 docs.json
  2. BIN img/ui/Plugins-DAG.png
  3. +39 −0 self-hosted/plugins/overview.mdx
  4. +731 −0 self-hosted/plugins/tutorial.mdx
7 changes: 7 additions & 0 deletions docs.json
Original file line number Diff line number Diff line change
@@ -482,6 +482,13 @@
"self-hosted/gcp/overview",
"self-hosted/gcp/onboard"
]
},
{
"group": "Plugins",
"pages": [
"self-hosted/plugins/overview",
"self-hosted/plugins/tutorial"
]
}
]
},
Binary file added img/ui/Plugins-DAG.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 39 additions & 0 deletions self-hosted/plugins/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: Unstructured self-hosted plugins overview
sidebarTitle: Overview
---

In Unstructured, a _plugin_ is a self-contained unit of code that can be used to add, change, or use data within the context of an Unstructured ETL+ workflow. Every
node in a workflow is itself a plugin. You can also create your own plugins to extend your organization's workflow capabilities.

Developing, deploying, and running your own custom plugins is available only for
the [Unstructured user interface](/ui/overview) (UI) that has already been deployed to
infrastructure that you maintain in your
[Amazon Web Services (AWS)](/self-hosted/aws/overview), [Azure](/self-hosted/azure/overview), or
[Google Cloud Platform (GCP)](/self-hosted/gcp/overview) account.

If you do not already have a self-hosted deployment of the Unstructured UI,
contact your Unstructured sales representative, email Unstructured Sales at [sales@unstructured.io](mailto:sales@unstructured.io), or fill out the
[contact form](https://unstructured.io/contact) on the Unstructured website, and a member of the Unstructured sales or support teams
will get back to you as soon as possible to discuss self-hosting options.

## Concepts

Plugins are rather straightforward in they accept a named input and emit a named output. The following diagram illustrates this concept:

![Conceptual programmatic flow of plugins](/img/ui/Plugins-DAG.png)

In the preceding diagram:

- The blue boxes represent the default plugins that come with Unstructured.
- The yellow circles describe what each default plugin does.
- The green box represents the indexer that gathers all of the source files.
- The red box represents the destination location.
- The arrows represent the flow of data between the plugins.
- The words within the arrows represent the programmatic names of the inputs and outputs of the plugins. For example,
the **Partitioner** plugin accepts its input, represented by the programmatic name `doc_path`, from the previous plugin.
The **Partitioner** plugin emits its output, represented by the programmatic name `element_dicts` to the next plugin.

## Getting started

To get started with eveloping, deploying, and running your own custom plugins, try out the [tutorial](/self-hosted/plugins/tutorial).
731 changes: 731 additions & 0 deletions self-hosted/plugins/tutorial.mdx

Large diffs are not rendered by default.