Welcome to the Community Extensions Repository! This repository houses a collection of community-contributed extensions for our workflow system. Each extension is a modular unit of work that performs specific tasks within a larger workflow, communicating with the workflow engine via Redis channels.
The repository is organized as follows:
community-extensions/
├── extension-1/
│ ├── README.md
│ ├── main file (e.g., main.py, main.go, index.ts, Main.java)
│ ├── dependency file (e.g., requirements.txt, go.mod, package.json, pom.xml)
│ └── Dockerfile
├── extension-2/
│ ├── README.md
│ ├── main file
│ ├── dependency file
│ └── Dockerfile
├── ...
└── README.md (this file)
Each root folder represents a single extension and contains all necessary files for that extension.
To use or contribute to an extension:
Clone this repository:
git clone https://github.com/your-org/community-extensions.git
cd community-extensions
Navigate to the specific extension folder you're interested in:
cd extension-name
Follow the README.md file in the extension's folder for specific instructions on building, testing, and using that extension.
We welcome contributions from the community! To contribute:
Please read our CONTRIBUTING.md file for more detailed information on the contribution process.
When creating or modifying an extension, please adhere to these guidelines:
Include a YAML configuration in your README.md that defines your extension. Here's an example:
name: Your Extension Name
description: A brief description of what your extension does
extensionType: container
visibility: private
configuration:
dockerImage: ghcr.io/orchestrate-ai/your-extension-name
dockerTag: latest
cpuRequest: "0.1"
memoryRequest: "128Mi"
inputs:
- id: input-1
name: Input 1 Name
description: Description of input 1
key: input_1_key
type: string
required: true
outputs:
- id: output-1
name: Output 1 Name
description: Description of output 1
key: output_1_key
type: string
Adjust the YAML configuration to match your extension's specific inputs, outputs, and resource requirements.
Each extension should include its own tests. We recommend:
Please run all tests locally before submitting a pull request.
Extensions in this repository are automatically built and deployed using a GitHub Action workflow. Here's how it works:
main
branch, the GitHub Action is triggered.latest
and the current commit SHA.To use an extension in your workflow:
ghcr.io/orchestrate-ai/<extension-name>:latest
and ghcr.io/orchestrate-ai/<extension-name>:<commit-sha>
for a specific version.For example:
name: <extension-name>
description: <description>
extensionType: container
visibility: private
configuration:
dockerImage: ghcr.io/orchestrate-ai/<extension-name>
dockerTag: latest
Note: Ensure your workflow system has the necessary permissions to pull images from the GitHub Container Registry.
If you need to deploy an extension manually:
docker build -t my-extension .
docker tag my-extension:latest your-registry.com/my-extension:latest
docker push your-registry.com/my-extension:latest
For questions or issues related to specific extensions, please open an issue in this repository, tagging it with the extension name.
Thank you for your interest in our Community Extensions! We look forward to seeing what you create.