From 39f52f12fb7d36bd5e1e880d15f5718e1acac9c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20=C5=81ukawski?= Date: Fri, 18 Sep 2026 14:53:36 +0200 Subject: [PATCH] feat: automate the `enterprise` front-matter flag Adds scripts/update_enterprise_flags.py and a nightly GitHub Actions workflow that cross-reference each integration page's `name` against the partner sections of deepset-ai/haystack's Haystack Enterprise Components table (docs-website/docs/overview/platform-components.mdx, generated nightly there by scripts/generate_platform_components_table.py), and set `enterprise: true` on any page that matches. The matching is purely by partner name against a public, pre-generated page - no dependency installs, no private API access, no code-sample parsing. A small alias table covers partner names that don't match their integration page's `name` field case-insensitively. Includes the initial backfill: 78 of 82 platform partners matched to an integration page. The remaining 4 (Amazon S3, Azure DocumentDB, Transformers, Unstructured) have no unambiguous corresponding page and are logged as warnings rather than guessed. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/update-enterprise-flags.yml | 54 +++++ integrations/aimlapi.md | 1 + integrations/alloydb-documentstore.md | 1 + integrations/amazon-bedrock.md | 1 + integrations/amazon-textract.md | 1 + integrations/anthropic.md | 1 + integrations/arangodb-document-store.md | 1 + integrations/arcadedb.md | 1 + integrations/astradb.md | 1 + integrations/azure-ai-search.md | 1 + integrations/azure-doc-intelligence.md | 1 + integrations/azure-form-recognizer.md | 1 + integrations/brave.md | 1 + integrations/chroma-documentstore.md | 1 + integrations/cohere.md | 1 + integrations/comet-api.md | 1 + integrations/datadog.md | 1 + integrations/ddgs.md | 1 + integrations/docling.md | 1 + integrations/edenai.md | 1 + integrations/elasticsearch-document-store.md | 1 + integrations/falkordb.md | 1 + integrations/fastembed.md | 1 + integrations/firecrawl.md | 1 + integrations/github.md | 1 + integrations/google-drive.md | 1 + integrations/google-genai.md | 1 + integrations/hetzner.md | 1 + integrations/huggingface-api.md | 1 + integrations/jina.md | 1 + integrations/kreuzberg.md | 1 + integrations/langdetect.md | 1 + integrations/langfuse.md | 1 + integrations/lara.md | 1 + integrations/linkup.md | 1 + integrations/litellm.md | 1 + integrations/llama_cpp.md | 1 + integrations/llama_stack.md | 1 + integrations/markitdown.md | 1 + integrations/mem0.md | 1 + integrations/microsoft-sharepoint.md | 1 + integrations/mistral.md | 1 + integrations/mongodb.md | 1 + integrations/nvidia.md | 1 + integrations/oauth.md | 1 + integrations/ollama.md | 1 + integrations/openapi.md | 1 + integrations/openrouter.md | 1 + integrations/opensearch-document-store.md | 1 + integrations/opentelemetry.md | 1 + integrations/oracle.md | 1 + integrations/orcarouter.md | 1 + integrations/parallel.md | 1 + integrations/perplexity.md | 1 + integrations/pgvector-documentstore.md | 1 + integrations/pinecone-document-store.md | 1 + integrations/presidio.md | 1 + integrations/pyversity.md | 1 + integrations/qdrant-document-store.md | 1 + integrations/rhesis.md | 1 + integrations/searchapi.md | 1 + integrations/sentence-transformers.md | 1 + integrations/serperdev.md | 1 + integrations/snowflake.md | 1 + integrations/solr.md | 1 + integrations/spacy.md | 1 + integrations/sqlalchemy.md | 1 + integrations/stackit.md | 1 + integrations/supabase.md | 1 + integrations/tavily.md | 1 + integrations/tika.md | 1 + integrations/togetherai.md | 1 + integrations/valkey.md | 1 + integrations/vespa.md | 1 + integrations/vllm.md | 1 + integrations/weaviate-document-store.md | 1 + integrations/weights-and-bias-tracer.md | 1 + integrations/whisper.md | 1 + integrations/youcom.md | 1 + scripts/update_enterprise_flags.py | 193 ++++++++++++++++++ 80 files changed, 325 insertions(+) create mode 100644 .github/workflows/update-enterprise-flags.yml create mode 100755 scripts/update_enterprise_flags.py diff --git a/.github/workflows/update-enterprise-flags.yml b/.github/workflows/update-enterprise-flags.yml new file mode 100644 index 00000000..0fb79c93 --- /dev/null +++ b/.github/workflows/update-enterprise-flags.yml @@ -0,0 +1,54 @@ +name: Update Enterprise Platform flags + +on: + schedule: + # A bit after deepset-ai/haystack's own update-platform-components workflow + # (02:00 UTC), so this run picks up that day's refresh once it has landed. + - cron: "30 3 * * *" + workflow_dispatch: + +concurrency: + group: update-enterprise-flags + cancel-in-progress: false + +permissions: + contents: write + pull-requests: write + +jobs: + update: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + + - name: Set up Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: "3.11" + + - name: Update enterprise flags + run: python scripts/update_enterprise_flags.py --integrations-dir integrations + + - name: Open or update pull request + uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1 + with: + commit-message: "chore: update enterprise platform flags" + branch: chore/update-enterprise-flags + base: main + title: "chore: update enterprise platform flags" + add-paths: | + integrations/*.md + body: | + ## Enterprise Platform flags update + + Cross-references integration pages against the partner sections of + [Haystack Enterprise Components](https://docs.haystack.deepset.ai/docs/platform-components) + (generated nightly in [deepset-ai/haystack](https://github.com/deepset-ai/haystack) by + `scripts/generate_platform_components_table.py`), and syncs the `enterprise` + front-matter flag on pages whose `name` matches a partner section. + + _Auto-generated by the [update-enterprise-flags](https://github.com/deepset-ai/haystack-integrations/actions/workflows/update-enterprise-flags.yml) workflow._ + labels: | + documentation diff --git a/integrations/aimlapi.md b/integrations/aimlapi.md index 9d6e2977..64d5e42a 100644 --- a/integrations/aimlapi.md +++ b/integrations/aimlapi.md @@ -20,6 +20,7 @@ logo: /logos/aimlapi.svg type: Model Provider version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/alloydb-documentstore.md b/integrations/alloydb-documentstore.md index a5f2d067..1784d441 100644 --- a/integrations/alloydb-documentstore.md +++ b/integrations/alloydb-documentstore.md @@ -21,6 +21,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/alloydb.png version: Haystack 2.0 toc: true +enterprise: true --- [![PyPI - Version](https://img.shields.io/pypi/v/alloydb-haystack.svg)](https://pypi.org/project/alloydb-haystack/) diff --git a/integrations/amazon-bedrock.md b/integrations/amazon-bedrock.md index e9426e32..a347538e 100644 --- a/integrations/amazon-bedrock.md +++ b/integrations/amazon-bedrock.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/aws.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/amazon-textract.md b/integrations/amazon-textract.md index 8ef5b48b..c1692b79 100644 --- a/integrations/amazon-textract.md +++ b/integrations/amazon-textract.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/aws.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/anthropic.md b/integrations/anthropic.md index f896f338..505847a3 100644 --- a/integrations/anthropic.md +++ b/integrations/anthropic.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/anthropic.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/arangodb-document-store.md b/integrations/arangodb-document-store.md index 99403428..35e909f7 100644 --- a/integrations/arangodb-document-store.md +++ b/integrations/arangodb-document-store.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/arangodb.png version: Haystack 2.0 toc: true +enterprise: true --- [![PyPI - Version](https://img.shields.io/pypi/v/arangodb-haystack.svg)](https://pypi.org/project/arangodb-haystack/) diff --git a/integrations/arcadedb.md b/integrations/arcadedb.md index bf36db6d..7fe2bc1f 100644 --- a/integrations/arcadedb.md +++ b/integrations/arcadedb.md @@ -14,6 +14,7 @@ report_issue: https://github.com/ArcadeData/arcadedb-haystack/issues logo: /logos/arcadedb.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/astradb.md b/integrations/astradb.md index 5b2578a2..c8252b18 100644 --- a/integrations/astradb.md +++ b/integrations/astradb.md @@ -18,6 +18,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/astradb.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/azure-ai-search.md b/integrations/azure-ai-search.md index 95a07d61..3e96becb 100644 --- a/integrations/azure-ai-search.md +++ b/integrations/azure-ai-search.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/azure-ai.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/azure-doc-intelligence.md b/integrations/azure-doc-intelligence.md index 9226692f..f50e048f 100644 --- a/integrations/azure-doc-intelligence.md +++ b/integrations/azure-doc-intelligence.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/azure-ai.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/azure-form-recognizer.md b/integrations/azure-form-recognizer.md index bf6c9201..24423575 100644 --- a/integrations/azure-form-recognizer.md +++ b/integrations/azure-form-recognizer.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/azure-ai.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/brave.md b/integrations/brave.md index 3d02e3f9..5d4b2056 100644 --- a/integrations/brave.md +++ b/integrations/brave.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/brave.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/chroma-documentstore.md b/integrations/chroma-documentstore.md index c5e0c479..eabfea0b 100644 --- a/integrations/chroma-documentstore.md +++ b/integrations/chroma-documentstore.md @@ -18,6 +18,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/chroma.png version: Haystack 2.0 toc: true +enterprise: true --- **Table of Contents** diff --git a/integrations/cohere.md b/integrations/cohere.md index 0720f677..25a073be 100644 --- a/integrations/cohere.md +++ b/integrations/cohere.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/cohere.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/comet-api.md b/integrations/comet-api.md index 5c1cce3c..34aaab4f 100644 --- a/integrations/comet-api.md +++ b/integrations/comet-api.md @@ -21,6 +21,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/cometapi.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/datadog.md b/integrations/datadog.md index cbcef927..0a36857e 100644 --- a/integrations/datadog.md +++ b/integrations/datadog.md @@ -16,6 +16,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/datadog.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/ddgs.md b/integrations/ddgs.md index 8d4ff8f5..6f1ac236 100644 --- a/integrations/ddgs.md +++ b/integrations/ddgs.md @@ -14,6 +14,7 @@ type: Search & Extraction report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/docling.md b/integrations/docling.md index ae96f40b..fe351917 100644 --- a/integrations/docling.md +++ b/integrations/docling.md @@ -13,6 +13,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/docling.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/edenai.md b/integrations/edenai.md index fea9f996..e384cb88 100644 --- a/integrations/edenai.md +++ b/integrations/edenai.md @@ -14,6 +14,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/edenai.svg version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/elasticsearch-document-store.md b/integrations/elasticsearch-document-store.md index 6474ebaa..09ceeba1 100644 --- a/integrations/elasticsearch-document-store.md +++ b/integrations/elasticsearch-document-store.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/elastic.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/falkordb.md b/integrations/falkordb.md index def53e1e..0b12686d 100644 --- a/integrations/falkordb.md +++ b/integrations/falkordb.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/falkordb.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/fastembed.md b/integrations/fastembed.md index 53235d44..fef2086e 100644 --- a/integrations/fastembed.md +++ b/integrations/fastembed.md @@ -18,6 +18,7 @@ type: Model Provider report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/firecrawl.md b/integrations/firecrawl.md index 54f363c7..a6b4174b 100644 --- a/integrations/firecrawl.md +++ b/integrations/firecrawl.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/firecrawl.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/github.md b/integrations/github.md index dd6dc7ec..7f45e952 100644 --- a/integrations/github.md +++ b/integrations/github.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/github.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/google-drive.md b/integrations/google-drive.md index 53353787..05f51371 100644 --- a/integrations/google-drive.md +++ b/integrations/google-drive.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/google-drive.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/google-genai.md b/integrations/google-genai.md index e53bb139..b703b878 100644 --- a/integrations/google-genai.md +++ b/integrations/google-genai.md @@ -21,6 +21,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/googleai.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/hetzner.md b/integrations/hetzner.md index 778ea9e5..bd16a402 100644 --- a/integrations/hetzner.md +++ b/integrations/hetzner.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/hetzner.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/huggingface-api.md b/integrations/huggingface-api.md index 4d89f014..08e9bbc2 100644 --- a/integrations/huggingface-api.md +++ b/integrations/huggingface-api.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/huggingface.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/jina.md b/integrations/jina.md index 7c35a69a..06670d82 100644 --- a/integrations/jina.md +++ b/integrations/jina.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/jina.png version: Haystack 2.0 toc: true +enterprise: true --- This integration allows users of Haystack to seamlessly use Jina AI's `jina-embeddings`and [reranking models](https://jina.ai/reranker/) in their pipelines. Haystack also integrates the [Jina Reader API](https://jina.ai/reader/). diff --git a/integrations/kreuzberg.md b/integrations/kreuzberg.md index 3c49cae3..6ded6c40 100644 --- a/integrations/kreuzberg.md +++ b/integrations/kreuzberg.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/kreuzberg.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/langdetect.md b/integrations/langdetect.md index 270fd9d2..f6cacc1d 100644 --- a/integrations/langdetect.md +++ b/integrations/langdetect.md @@ -14,6 +14,7 @@ type: Custom Component report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/langfuse.md b/integrations/langfuse.md index 02e130e6..0941c7ba 100644 --- a/integrations/langfuse.md +++ b/integrations/langfuse.md @@ -16,6 +16,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/langfuse.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/lara.md b/integrations/lara.md index aac140cd..073795fb 100644 --- a/integrations/lara.md +++ b/integrations/lara.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/lara.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/linkup.md b/integrations/linkup.md index 2b9d8504..627201b7 100644 --- a/integrations/linkup.md +++ b/integrations/linkup.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/linkup.svg version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/litellm.md b/integrations/litellm.md index 26d2fd98..10c944cb 100644 --- a/integrations/litellm.md +++ b/integrations/litellm.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/litellm.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/llama_cpp.md b/integrations/llama_cpp.md index 5ca22bba..6225b8d1 100644 --- a/integrations/llama_cpp.md +++ b/integrations/llama_cpp.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues version: Haystack 2.0 toc: true logo: /logos/llama_cpp.png +enterprise: true --- ### Table of Contents diff --git a/integrations/llama_stack.md b/integrations/llama_stack.md index fae5cfbf..7c1ec511 100644 --- a/integrations/llama_stack.md +++ b/integrations/llama_stack.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/llama.svg version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/markitdown.md b/integrations/markitdown.md index 104fbd57..d0eee495 100644 --- a/integrations/markitdown.md +++ b/integrations/markitdown.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/microsoft.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/mem0.md b/integrations/mem0.md index cb91801a..65b4fb69 100644 --- a/integrations/mem0.md +++ b/integrations/mem0.md @@ -20,6 +20,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/mem0.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/microsoft-sharepoint.md b/integrations/microsoft-sharepoint.md index 3a19b48b..93cbaf7e 100644 --- a/integrations/microsoft-sharepoint.md +++ b/integrations/microsoft-sharepoint.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/microsoft-sharepoint.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/mistral.md b/integrations/mistral.md index 8c99c12b..ecaac76f 100644 --- a/integrations/mistral.md +++ b/integrations/mistral.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/mistral.svg version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/mongodb.md b/integrations/mongodb.md index 9025b33f..d806a589 100644 --- a/integrations/mongodb.md +++ b/integrations/mongodb.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/mongodb.png toc: true version: Haystack 2.0 +enterprise: true --- ### Table of Contents diff --git a/integrations/nvidia.md b/integrations/nvidia.md index ca582149..5b56fba9 100644 --- a/integrations/nvidia.md +++ b/integrations/nvidia.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/nvidia.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/oauth.md b/integrations/oauth.md index 86d413f1..ab3de7a2 100644 --- a/integrations/oauth.md +++ b/integrations/oauth.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/oauth.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/ollama.md b/integrations/ollama.md index bae2fff4..285183cc 100644 --- a/integrations/ollama.md +++ b/integrations/ollama.md @@ -22,6 +22,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/ollama.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/openapi.md b/integrations/openapi.md index 9360fd86..d97af049 100644 --- a/integrations/openapi.md +++ b/integrations/openapi.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/openapi.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/openrouter.md b/integrations/openrouter.md index e2c9ec9f..37333ca8 100644 --- a/integrations/openrouter.md +++ b/integrations/openrouter.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/openrouter.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/opensearch-document-store.md b/integrations/opensearch-document-store.md index 25f91c6b..c17889a0 100644 --- a/integrations/opensearch-document-store.md +++ b/integrations/opensearch-document-store.md @@ -21,6 +21,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/opensearch.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/opentelemetry.md b/integrations/opentelemetry.md index cd4b5ae2..5ebb7c7b 100644 --- a/integrations/opentelemetry.md +++ b/integrations/opentelemetry.md @@ -16,6 +16,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/opentelemetry.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/oracle.md b/integrations/oracle.md index bb181012..000b4cce 100644 --- a/integrations/oracle.md +++ b/integrations/oracle.md @@ -14,6 +14,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/oracle.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/orcarouter.md b/integrations/orcarouter.md index 5ffa70de..5a108157 100644 --- a/integrations/orcarouter.md +++ b/integrations/orcarouter.md @@ -18,6 +18,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/orcarouter.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/parallel.md b/integrations/parallel.md index af1dafd1..d680f358 100644 --- a/integrations/parallel.md +++ b/integrations/parallel.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/parallel.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/perplexity.md b/integrations/perplexity.md index 1a024ad0..a42b7a80 100644 --- a/integrations/perplexity.md +++ b/integrations/perplexity.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/perplexity.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/pgvector-documentstore.md b/integrations/pgvector-documentstore.md index 1292c16e..e2e4916a 100644 --- a/integrations/pgvector-documentstore.md +++ b/integrations/pgvector-documentstore.md @@ -14,6 +14,7 @@ type: Document Store report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues version: Haystack 2.0 toc: true +enterprise: true --- [![PyPI - Version](https://img.shields.io/pypi/v/pgvector-haystack.svg)](https://pypi.org/project/pgvector-haystack/) diff --git a/integrations/pinecone-document-store.md b/integrations/pinecone-document-store.md index aee35be8..1ec2c0ca 100644 --- a/integrations/pinecone-document-store.md +++ b/integrations/pinecone-document-store.md @@ -25,6 +25,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/pinecone.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/presidio.md b/integrations/presidio.md index 6a80d300..822ce1d4 100644 --- a/integrations/presidio.md +++ b/integrations/presidio.md @@ -18,6 +18,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/microsoft.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/pyversity.md b/integrations/pyversity.md index 73fda788..a0115e37 100644 --- a/integrations/pyversity.md +++ b/integrations/pyversity.md @@ -20,6 +20,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/pyversity.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/qdrant-document-store.md b/integrations/qdrant-document-store.md index 8a84b058..3368456f 100644 --- a/integrations/qdrant-document-store.md +++ b/integrations/qdrant-document-store.md @@ -19,6 +19,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/qdrant.png version: Haystack 2.0 toc: true +enterprise: true --- An integration of [Qdrant](https://qdrant.tech) vector database with [Haystack](https://haystack.deepset.ai/) diff --git a/integrations/rhesis.md b/integrations/rhesis.md index 5a2ee791..c7ab7600 100644 --- a/integrations/rhesis.md +++ b/integrations/rhesis.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/rhesis.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/searchapi.md b/integrations/searchapi.md index ffaa33de..0bc6d7ec 100644 --- a/integrations/searchapi.md +++ b/integrations/searchapi.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/searchapi.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/sentence-transformers.md b/integrations/sentence-transformers.md index db60cfab..6981fd01 100644 --- a/integrations/sentence-transformers.md +++ b/integrations/sentence-transformers.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/sentence-transformers.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/serperdev.md b/integrations/serperdev.md index c1543db5..12e7246f 100644 --- a/integrations/serperdev.md +++ b/integrations/serperdev.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/serperdev.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/snowflake.md b/integrations/snowflake.md index d4a5cd18..2fdfc965 100644 --- a/integrations/snowflake.md +++ b/integrations/snowflake.md @@ -17,6 +17,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues type: Data Ingestion logo: /logos/snowflake.png version: Haystack 2.0 +enterprise: true --- [![PyPI - Version](https://img.shields.io/pypi/v/snowflake-haystack.svg)](https://pypi.org/project/snowflake-haystack) diff --git a/integrations/solr.md b/integrations/solr.md index 97d0c8e2..19f5642a 100644 --- a/integrations/solr.md +++ b/integrations/solr.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/solr.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/spacy.md b/integrations/spacy.md index 7cfbe2ed..24d78fad 100644 --- a/integrations/spacy.md +++ b/integrations/spacy.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/spacy.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/sqlalchemy.md b/integrations/sqlalchemy.md index 6c9c24d5..6ae3c7b3 100644 --- a/integrations/sqlalchemy.md +++ b/integrations/sqlalchemy.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/sqlalchemy.png version: Haystack 2.0 toc: true +enterprise: true --- **Table of Contents** diff --git a/integrations/stackit.md b/integrations/stackit.md index 5ab9be78..df16d5a3 100644 --- a/integrations/stackit.md +++ b/integrations/stackit.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/stackit.svg version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/supabase.md b/integrations/supabase.md index bf21d0ec..ce90a529 100644 --- a/integrations/supabase.md +++ b/integrations/supabase.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/supabase.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/tavily.md b/integrations/tavily.md index 1cf93ea1..3fb65147 100644 --- a/integrations/tavily.md +++ b/integrations/tavily.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/tavily.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/tika.md b/integrations/tika.md index e293cc42..3d74e648 100644 --- a/integrations/tika.md +++ b/integrations/tika.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/tika.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/togetherai.md b/integrations/togetherai.md index 2d37431e..f54edfa9 100644 --- a/integrations/togetherai.md +++ b/integrations/togetherai.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/togetherai.jpeg version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/valkey.md b/integrations/valkey.md index 167b8596..73092d09 100644 --- a/integrations/valkey.md +++ b/integrations/valkey.md @@ -14,6 +14,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/valkey.svg version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/vespa.md b/integrations/vespa.md index 58d2da2b..7b752463 100644 --- a/integrations/vespa.md +++ b/integrations/vespa.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/vespa.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/vllm.md b/integrations/vllm.md index df6bfd1a..17851507 100644 --- a/integrations/vllm.md +++ b/integrations/vllm.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/vllm.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents - [Overview](#overview) diff --git a/integrations/weaviate-document-store.md b/integrations/weaviate-document-store.md index 84adcfee..d793b08b 100644 --- a/integrations/weaviate-document-store.md +++ b/integrations/weaviate-document-store.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/weaviate.png version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/integrations/weights-and-bias-tracer.md b/integrations/weights-and-bias-tracer.md index 3c11c05b..12d4b875 100644 --- a/integrations/weights-and-bias-tracer.md +++ b/integrations/weights-and-bias-tracer.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/weights_and_bias.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** - [Overview](#overview) diff --git a/integrations/whisper.md b/integrations/whisper.md index 3687c92d..4f58f23c 100644 --- a/integrations/whisper.md +++ b/integrations/whisper.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/openai.png version: Haystack 2.0 toc: true +enterprise: true --- ### **Table of Contents** diff --git a/integrations/youcom.md b/integrations/youcom.md index f738ec53..cb43ef1d 100644 --- a/integrations/youcom.md +++ b/integrations/youcom.md @@ -15,6 +15,7 @@ report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues logo: /logos/youcom.svg version: Haystack 2.0 toc: true +enterprise: true --- ### Table of Contents diff --git a/scripts/update_enterprise_flags.py b/scripts/update_enterprise_flags.py new file mode 100755 index 00000000..fbb305b1 --- /dev/null +++ b/scripts/update_enterprise_flags.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: 2022-present deepset GmbH +# +# SPDX-License-Identifier: Apache-2.0 + +""" +Sync the `enterprise` front-matter flag on Haystack Integrations pages. + +Cross-references each integration page's `name` against the partner sections +of the Haystack Enterprise Platform components table, which is generated +nightly by deepset-ai/haystack's scripts/generate_platform_components_table.py +and published (publicly, no auth needed) at +docs-website/docs/overview/platform-components.mdx in that repo. + +Any integration page whose `name` matches a partner section gets +`enterprise: true` in its front matter; pages that lose platform coverage +have the flag removed again. +""" + +from __future__ import annotations + +import argparse +import logging +import re +import sys +import urllib.request +from pathlib import Path + +logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") +logger = logging.getLogger(__name__) + +PLATFORM_COMPONENTS_URL = ( + "https://raw.githubusercontent.com/deepset-ai/haystack/main/" + "docs-website/docs/overview/platform-components.mdx" +) + +# Platform partner section heading -> actual `name:` used on this repo's +# integration pages, for the handful of partners that don't match +# case-insensitively. Keep loosely in sync with PARTNER_LABELS in +# deepset-ai/haystack's scripts/generate_platform_components_table.py, +# which is what produces these section headings. +PARTNER_NAME_ALIASES: dict[str, str] = { + "AIML API": "AIMLAPI", + "Astra": "AstraDB", + "Brave": "Brave Search", + "Cometapi": "Comet API", + "Edenai": "Eden AI", + "Google Generative AI": "Google Gen AI", + "MongoDB Atlas": "MongoDB", + "Solr": "Apache Solr", + "Tika": "Apache Tika", + "Weights & Biases (Weave)": "Weights & Biases Weave Tracer", + "Youcom": "You.com", +} + +_HEADING_RE = re.compile(r"^##\s+(.+?)\s*$", re.MULTILINE) +_NON_PARTNER_HEADINGS = {"Core Components", "Haystack Enterprise Components"} + + +def fetch_platform_partners(url: str) -> set[str]: + """Return the set of partner section names from the platform components table.""" + with urllib.request.urlopen(url, timeout=30) as response: # noqa: S310 - fixed, trusted public URL + text = response.read().decode("utf-8") + headings = {m.group(1).strip() for m in _HEADING_RE.finditer(text)} + return headings - _NON_PARTNER_HEADINGS + + +def resolve_matches(partners: set[str], integration_names: set[str]) -> set[str]: + """Return the subset of *integration_names* available on the Enterprise Platform.""" + names_lower = {n.lower(): n for n in integration_names} + matched: set[str] = set() + for partner in sorted(partners): + candidate = PARTNER_NAME_ALIASES.get(partner, partner) + resolved = names_lower.get(candidate.lower()) + if resolved: + matched.add(resolved) + else: + logger.warning("No integration page found for platform partner: %s", partner) + return matched + + +def parse_frontmatter(text: str) -> tuple[str, str] | None: + """Split *text* into (frontmatter_body, rest_of_file), or None if there's no front matter.""" + if not text.startswith("---"): + return None + end = text.find("\n---", 3) + if end == -1: + return None + body = text[3:end].strip("\n") + rest = text[end + 4 :] + return body, rest + + +def get_name(frontmatter_body: str) -> str | None: + for line in frontmatter_body.splitlines(): + if line.startswith("name:"): + return line[len("name:") :].strip().strip('"') + return None + + +def set_enterprise_flag(frontmatter_body: str, enterprise: bool) -> tuple[str, bool]: + """Return (new_frontmatter_body, changed).""" + lines = frontmatter_body.splitlines() + existing_idx = next((i for i, line in enumerate(lines) if line.startswith("enterprise:")), None) + + if enterprise: + if existing_idx is not None: + if lines[existing_idx].strip() == "enterprise: true": + return frontmatter_body, False + lines[existing_idx] = "enterprise: true" + else: + lines.append("enterprise: true") + return "\n".join(lines), True + + if existing_idx is not None: + del lines[existing_idx] + return "\n".join(lines), True + return frontmatter_body, False + + +def load_integrations(integrations_dir: Path) -> dict[Path, tuple[str, str, str]]: + """Return {path: (name, frontmatter_body, rest_of_file)} for every parseable page.""" + result: dict[Path, tuple[str, str, str]] = {} + for md_file in sorted(integrations_dir.glob("*.md")): + text = md_file.read_text(encoding="utf-8") + parsed = parse_frontmatter(text) + if parsed is None: + continue + body, rest = parsed + name = get_name(body) + if name is None: + continue + result[md_file] = (name, body, rest) + return result + + +def main(argv: list[str] | None = None) -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--integrations-dir", + type=Path, + default=Path("integrations"), + metavar="PATH", + help="Directory containing integration .md pages (default: ./integrations).", + ) + parser.add_argument( + "--platform-components-url", + default=PLATFORM_COMPONENTS_URL, + metavar="URL", + help="URL of the platform-components.mdx file to fetch.", + ) + parser.add_argument( + "--dry-run", + action="store_true", + help="Report what would change without writing any files.", + ) + args = parser.parse_args(argv) + + if not args.integrations_dir.is_dir(): + print(f"ERROR: --integrations-dir does not exist: {args.integrations_dir}", file=sys.stderr) + sys.exit(1) + + try: + partners = fetch_platform_partners(args.platform_components_url) + except OSError as exc: + print(f"ERROR: could not fetch platform components table: {exc}", file=sys.stderr) + sys.exit(1) + + logger.info("Found %d partner sections in the platform components table", len(partners)) + + entries = load_integrations(args.integrations_dir) + integration_names = {name for name, _, _ in entries.values()} + enterprise_names = resolve_matches(partners, integration_names) + logger.info("Matched %d integration page(s) to Enterprise Platform partners", len(enterprise_names)) + + changed: list[tuple[Path, bool]] = [] + for md_file, (name, body, rest) in entries.items(): + should_be_enterprise = name in enterprise_names + new_body, did_change = set_enterprise_flag(body, should_be_enterprise) + if not did_change: + continue + changed.append((md_file, should_be_enterprise)) + if not args.dry_run: + md_file.write_text(f"---\n{new_body}\n---{rest}", encoding="utf-8") + + for md_file, should_be_enterprise in changed: + logger.info("%s: enterprise -> %s", md_file.name, should_be_enterprise) + + logger.info("%s %d file(s)", "Would update" if args.dry_run else "Updated", len(changed)) + + +if __name__ == "__main__": + main()