You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ka...@apache.org on 2026/10/19 17:58:59 UTC

(airflow) branch main updated: Count declared integrations in the Registry homepage Integrations stat (#74862)

This is an automated email from the ASF dual-hosted git repository.

kaxil pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new a27cd335152 Count declared integrations in the Registry homepage Integrations stat (#74862)
a27cd335152 is described below

commit a27cd335152483d1d28b032a6baf36720099c87f
Author: Kaxil Naik <ka...@apache.org>
AuthorDate: Mon Oct 19 18:58:47 2026 +0100

    Count declared integrations in the Registry homepage Integrations stat (#74862)
    
    The Integrations stat counted unique connection types, which undercounts
    the services providers integrate with because many integrations share
    one connection type (the Amazon provider declares 53 integrations and 6
    connection types). Count the integrations each provider.yaml declares
    instead.
---
 registry/src/_data/statsData.js | 15 ++++++---------
 registry/src/index.njk          |  2 +-
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/registry/src/_data/statsData.js b/registry/src/_data/statsData.js
index 3897360d0dc..454cef0777d 100644
--- a/registry/src/_data/statsData.js
+++ b/registry/src/_data/statsData.js
@@ -84,16 +84,13 @@ module.exports = function() {
     return sum + ((p.pypi_downloads && p.pypi_downloads.monthly) || 0);
   }, 0);
 
-  // Total unique connection types across all providers
-  const allConnectionTypes = new Set();
+  // Total unique integrations (provider.yaml `integrations`) across all providers;
+  // not connection types, which many integrations share (most AWS services use `aws`)
+  const allIntegrations = new Set();
   providers.forEach(p => {
-    if (p.connection_types) {
-      p.connection_types.forEach(ct => {
-        allConnectionTypes.add(ct.conn_type || ct.connection_type);
-      });
-    }
+    (p.categories || []).forEach(category => allIntegrations.add(category.id));
   });
-  const totalConnectionTypes = allConnectionTypes.size;
+  const totalIntegrations = allIntegrations.size;
 
   // Enriched provider list with totals
   const enrichedProviders = [...providers].map(p => ({
@@ -123,7 +120,7 @@ module.exports = function() {
     totalProviders,
     totalModules,
     totalDownloads,
-    totalConnectionTypes,
+    totalIntegrations,
     lifecycleCounts,
     lifecycleStats,
     moduleTypeStats,
diff --git a/registry/src/index.njk b/registry/src/index.njk
index a57b5177fb1..b2bf8595c8f 100644
--- a/registry/src/index.njk
+++ b/registry/src/index.njk
@@ -66,7 +66,7 @@ title: Discover Providers, Operators & Hooks for Apache Airflow
         <dd>Monthly Downloads</dd>
       </div>
       <div>
-        <dt>{{ statsData.totalConnectionTypes }}+</dt>
+        <dt>{{ statsData.totalIntegrations }}+</dt>
         <dd>Integrations</dd>
       </div>
     </dl>