Chandrasekharan M ff5dd19b09 UN-2585 [MISC] Deprecate connector instance fields and refactor endpoint handling (#1454)
* [MISC] Deprecate connector instance fields and migrate to workflow endpoints

- Updated ConnectorInstance __str__ method to use connector_id and connector_mode
- Migrated PipelineSerializer to use WorkflowEndpoint instead of ConnectorInstance
- Enhanced WorkflowEndpointSerializer with backward compatibility fields and CRUD operations
- Updated WorkflowEndpointViewSet with proper filtering and moved serializer import
- Modified frontend components to use workflow-endpoint API instead of connector API
- Added gitignore entries for development tools and prompting files
- Removed duplicate WorkflowEndpointSerializer from workflow_v2/serializers.py

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [MISC] Deprecate connector instance fields and refactor endpoint handling

- Add migration to make connector_type and workflow fields nullable in ConnectorInstance
- Introduce EncryptedBinaryField for secure metadata storage with automatic encryption/decryption
- Add deprecation warning to ConnectorInstance.metadata property
- Refactor ConnectorInstanceSerializer to use new encrypted field and remove manual encryption
- Update WorkflowEndpointSerializer to use connector_instance_id field instead of nested data
- Fix frontend DsSettingsCard to handle both object and string connector_instance formats
- Update destination/source connectors to use connector_metadata directly instead of deprecated metadata property
- Add proper connector instance extraction logic in handleUpdate to prevent validation errors
- Ensure backward compatibility while transitioning to new workflow endpoint architecture

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Minor PR comments addressed

* Moved back oauth token refresh and connector metadata addition back to serializer

* Replace hardcoded URLs with useRequestUrl hook in frontend components

Updated InputOutput.jsx and DsSettingsCard.jsx to use the useRequestUrl hook
instead of hardcoded API URLs for better maintainability and consistency.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* UN-2585 [FIX] Fix connector instance queryset organization filtering in serializer

- Add get_fields() method to WorkflowEndpointSerializer to dynamically set connector_instance_id queryset
- Fix issue where connector instances were not visible due to organization context timing in integration environment
- Change clearDestination method from PUT to PATCH for consistency

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update backend/utils/fields.py

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Chandrasekharan M <117059509+chandrasekharan-zipstack@users.noreply.github.com>

* Added docstring for get_fields method

* Fixed endpoint serializer to include workflow name

* Minor code smell fix

* minor: Refactored sample.env comments

---------

Signed-off-by: Chandrasekharan M <117059509+chandrasekharan-zipstack@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-24 19:03:36 +05:30
2025-04-01 13:33:21 +05:30
2024-02-25 16:19:36 +05:30
2025-04-24 16:07:02 +05:30
2025-04-24 16:07:02 +05:30
2024-03-20 14:24:20 +05:30
2025-05-01 11:22:50 +05:30
2024-04-03 14:01:00 +05:30
2025-04-25 11:31:06 +05:30

Unstract

No-code LLM Platform to launch APIs and ETL Pipelines to structure unstructured documents

Python Version from PEP 621 TOML uv GitHub License Docker Pulls CLA assistant pre-commit.ci status Quality Gate Status Bugs Code Smells Coverage Duplicated Lines (%)

🤖 Prompt Studio

Prompt Studio's primary reason for existence is so you can develop the necessary prompts for document data extraction super efficiently. It is a purpose-built environment that makes this not just easy for you—but, lot of fun! The document sample, its variants, the prompts you're developing, outputs from different LLMs, the schema you're developing, costing details of the extraction and various tools that let you measure the effectiveness of your prompts are just a click away and easily accessible. Prompt Studio is designed for effective and high speed development and iteration of prompts for document data extraction. Welcome to IDP 2.0!

img Prompt Studio

🧘‍♀️ Three step nirvana with Workflow Studio

Automate critical business processes that involve complex documents with a human in the loop. Go beyond RPA with the power of Large Language Models.

🌟 Step 1: Add documents to no-code Prompt Studio and do prompt engineering to extract required fields
🌟 Step 2: Configure Prompt Studio project as API deployment or configure input source and output destination for ETL Pipeline
🌟 Step 3: Deploy Workflows as unstructured data APIs or unstructured data ETL Pipelines!

img Using Unstract

🚀 Getting started

System Requirements

  • 8GB RAM (recommended)

Prerequisites

  • Linux or MacOS (Intel or M-series)
  • Docker
  • Docker Compose (if you need to install it separately)
  • Git

Next, either download a release or clone this repo and do the following:

./run-platform.sh
Now visit http://frontend.unstract.localhost in your browser
Use username and password unstract to login

That's all there is to it!

Follow these steps to change the default username and password. See user guide for more details on managing the platform.

Another really quick way to experience Unstract is by signing up for our hosted version. It comes with a 14 day free trial!

Quick Start Guide

Unstract comes well documented. You can get introduced to the basics of Unstract, and learn how to connect various systems like LLMs, Vector Databases, Embedding Models and Text Extractors to it. The easiest way to wet your feet is to go through our Quick Start Guide where you actually get to do some prompt engineering in Prompt Studio and launch an API to structure varied credit card statements!

🤝 Ecosystem support

LLM Providers

Provider Status
OpenAI Working
Google VertexAI, Gemini Pro Working
Azure OpenAI Working
Anthropic Working
Ollama Working
Bedrock Working
Google PaLM Working
Anyscale Working
Mistral AI Working

Vector Databases

Provider Status
Qdrant Working
Weaviate Working
Pinecone Working
PostgreSQL Working
Milvus Working

Embeddings

Provider Status
OpenAI Working
Azure OpenAI Working
Google PaLM Working
Ollama Working
VertexAI Working
Bedrock Working

Text Extractors

Provider Status
Unstract LLMWhisperer V2 Working
Unstructured.io Community Working
Unstructured.io Enterprise Working
LlamaIndex Parse Working

ETL Sources

Provider Status
AWS S3 Working
MinIO Working
Google Cloud Storage Working
Azure Cloud Storage Working
Google Drive Working
Dropbox Working
SFTP Working
Box 🗓️ Coming soon!
HTTP/HTTPS 🗓️ Coming soon!

ETL Destinations

Provider Status
Snowflake Working
Amazon Redshift Working
Google BigQuery Working
PostgreSQL Working
MySQL Working
MariaDB Working
Microsoft SQL Server Working
Oracle Working

🙌 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for further details to get started easily.

👋 Join the LLM-powered automation community

🚨 Backup encryption key

Do copy the value of ENCRYPTION_KEY config in either backend/.env or platform-service/.env file to a secure location.

Adapter credentials are encrypted by the platform using this key. Its loss or change will make all existing adapters inaccessible!

📊 A note on analytics

In full disclosure, Unstract integrates Posthog to track usage analytics. As you can inspect the relevant code here, we collect the minimum possible metrics. Posthog can be disabled if desired by setting REACT_APP_ENABLE_POSTHOG to false in the frontend's .env file.

Description
No description provided
Readme 32 MiB
Languages
Python 81.3%
JavaScript 15.5%
Shell 1.4%
CSS 1.3%
Dockerfile 0.4%