diff --git a/services/libs/tinybird/datasources/organizations.datasource b/services/libs/tinybird/datasources/organizations.datasource index b942af1cbf..752c106092 100644 --- a/services/libs/tinybird/datasources/organizations.datasource +++ b/services/libs/tinybird/datasources/organizations.datasource @@ -11,6 +11,7 @@ DESCRIPTION > - `employees` is the number of employees in the organization (0 default if unknown). - `createdAt` and `updatedAt` are standard timestamp fields for record lifecycle tracking. - `isTeamOrganization` flag indicates whether this organization is part of the project team (UInt8 boolean, 0 default). + - `isAffiliationBlocked` flag indicates the organization is blocked from affiliations and must not get an Insights page (UInt8 boolean, 0 default). - `type` specifies the organization type (company, nonprofit, government, etc., empty string if not specified). - `size` describes the organization size category: "1-10", "501-1000", "1001-5000", "5001-10000", "10001+" (empty string if not specified). - `headline` is a brief description or tagline for the organization (empty string if not provided). @@ -28,6 +29,7 @@ SCHEMA > `createdAt` DateTime64(3) `json:$.record.createdAt`, `updatedAt` DateTime64(3) `json:$.record.updatedAt`, `isTeamOrganization` UInt8 `json:$.record.isTeamOrganization` DEFAULT 0, + `isAffiliationBlocked` UInt8 `json:$.record.isAffiliationBlocked` DEFAULT 0, `type` String `json:$.record.type` DEFAULT '', `size` String `json:$.record.size` DEFAULT '', `headline` String `json:$.record.headline` DEFAULT '', diff --git a/services/libs/tinybird/datasources/organizations_populated_slug.datasource b/services/libs/tinybird/datasources/organizations_populated_slug.datasource index db296f0081..d597c7ed61 100644 --- a/services/libs/tinybird/datasources/organizations_populated_slug.datasource +++ b/services/libs/tinybird/datasources/organizations_populated_slug.datasource @@ -26,6 +26,7 @@ SCHEMA > `createdAt` DateTime64(3), `updatedAt` DateTime64(3), `isTeamOrganization` UInt8 DEFAULT 0, + `isAffiliationBlocked` UInt8 DEFAULT 0, `type` String DEFAULT '', `size` String DEFAULT '', `headline` String DEFAULT '', diff --git a/services/libs/tinybird/pipes/leaderboards_organizations.pipe b/services/libs/tinybird/pipes/leaderboards_organizations.pipe index 8c8a275a93..1a119173cd 100644 --- a/services/libs/tinybird/pipes/leaderboards_organizations.pipe +++ b/services/libs/tinybird/pipes/leaderboards_organizations.pipe @@ -8,7 +8,7 @@ DESCRIPTION > Retrieves all organizations from the populated datasource, including slug for page links SQL > - SELECT o.id, o.displayName, o.logo, ops.slug + SELECT o.id, o.displayName, o.logo, if(o.isAffiliationBlocked = 1, '', ops.slug) AS slug FROM organizations o FINAL LEFT JOIN organizations_populated_slug ops ON o.id = ops.id diff --git a/services/libs/tinybird/pipes/org_dash_activities_count.pipe b/services/libs/tinybird/pipes/org_dash_activities_count.pipe index 037423f99d..eccdaefaa8 100644 --- a/services/libs/tinybird/pipes/org_dash_activities_count.pipe +++ b/services/libs/tinybird/pipes/org_dash_activities_count.pipe @@ -19,6 +19,8 @@ SQL > required=True, ) }} + AND organizationId + NOT IN (SELECT id FROM organizations FINAL WHERE isAffiliationBlocked = 1) ) as "orgActivityCount" FROM generate_timeseries ds LEFT JOIN diff --git a/services/libs/tinybird/pipes/org_dash_avg_merge_time.pipe b/services/libs/tinybird/pipes/org_dash_avg_merge_time.pipe index 620fa76659..75cb3bcf74 100644 --- a/services/libs/tinybird/pipes/org_dash_avg_merge_time.pipe +++ b/services/libs/tinybird/pipes/org_dash_avg_merge_time.pipe @@ -20,6 +20,8 @@ SQL > required=True, ) }} + AND organizationId + NOT IN (SELECT id FROM organizations FINAL WHERE isAffiliationBlocked = 1) ) ) as "orgAverageMergeTimeSeconds" FROM generate_timeseries ds diff --git a/services/libs/tinybird/pipes/org_dash_contributors.pipe b/services/libs/tinybird/pipes/org_dash_contributors.pipe index af72a0a940..aec0ba02af 100644 --- a/services/libs/tinybird/pipes/org_dash_contributors.pipe +++ b/services/libs/tinybird/pipes/org_dash_contributors.pipe @@ -19,6 +19,8 @@ SQL > required=True, ) }} + AND organizationId + NOT IN (SELECT id FROM organizations FINAL WHERE isAffiliationBlocked = 1) ) as "orgContributorCount" FROM generate_timeseries ds LEFT JOIN diff --git a/services/libs/tinybird/pipes/org_dash_maintainers.pipe b/services/libs/tinybird/pipes/org_dash_maintainers.pipe index 30afd6993e..cae96c559a 100644 --- a/services/libs/tinybird/pipes/org_dash_maintainers.pipe +++ b/services/libs/tinybird/pipes/org_dash_maintainers.pipe @@ -35,6 +35,8 @@ SQL > required=True, ) }} + AND m.organizationId + NOT IN (SELECT id FROM organizations FINAL WHERE isAffiliationBlocked = 1) ) as "orgMaintainersCount" FROM generate_timeseries ds CROSS JOIN org_dash_maintainers_roles_filtered m diff --git a/services/libs/tinybird/pipes/org_dash_metrics.pipe b/services/libs/tinybird/pipes/org_dash_metrics.pipe index 7ef2971f4a..663fee2357 100644 --- a/services/libs/tinybird/pipes/org_dash_metrics.pipe +++ b/services/libs/tinybird/pipes/org_dash_metrics.pipe @@ -18,6 +18,7 @@ SQL > FROM org_dash_metric_copy_ds WHERE 1 = 1 + AND organizationId NOT IN (SELECT id FROM organizations FINAL WHERE isAffiliationBlocked = 1) {% if defined(organizationIds) %} AND organizationId in diff --git a/services/libs/tinybird/pipes/org_page_activities_timeseries.pipe b/services/libs/tinybird/pipes/org_page_activities_timeseries.pipe index 5cc70a885b..ea3d0185fb 100644 --- a/services/libs/tinybird/pipes/org_page_activities_timeseries.pipe +++ b/services/libs/tinybird/pipes/org_page_activities_timeseries.pipe @@ -8,7 +8,9 @@ SQL > % SELECT id FROM organizations_populated_slug - WHERE slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + WHERE + slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + AND isAffiliationBlocked = 0 NODE org_page_activities_timeseries_data SQL > diff --git a/services/libs/tinybird/pipes/org_page_contributors.pipe b/services/libs/tinybird/pipes/org_page_contributors.pipe index 0286049f66..1d63c1785f 100644 --- a/services/libs/tinybird/pipes/org_page_contributors.pipe +++ b/services/libs/tinybird/pipes/org_page_contributors.pipe @@ -13,7 +13,9 @@ SQL > % SELECT id FROM organizations_populated_slug - WHERE slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + WHERE + slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + AND isAffiliationBlocked = 0 NODE org_page_contributors_activity_aggregates SQL > diff --git a/services/libs/tinybird/pipes/org_page_contributors_timeseries.pipe b/services/libs/tinybird/pipes/org_page_contributors_timeseries.pipe index f69fbb48a6..607c73bee7 100644 --- a/services/libs/tinybird/pipes/org_page_contributors_timeseries.pipe +++ b/services/libs/tinybird/pipes/org_page_contributors_timeseries.pipe @@ -8,7 +8,9 @@ SQL > % SELECT id FROM organizations_populated_slug - WHERE slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + WHERE + slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + AND isAffiliationBlocked = 0 NODE org_page_contributors_timeseries_data SQL > diff --git a/services/libs/tinybird/pipes/org_page_kpis.pipe b/services/libs/tinybird/pipes/org_page_kpis.pipe index 78cd009561..950b654819 100644 --- a/services/libs/tinybird/pipes/org_page_kpis.pipe +++ b/services/libs/tinybird/pipes/org_page_kpis.pipe @@ -9,7 +9,9 @@ SQL > % SELECT id FROM organizations_populated_slug - WHERE slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + WHERE + slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + AND isAffiliationBlocked = 0 NODE org_page_kpis_main SQL > diff --git a/services/libs/tinybird/pipes/org_page_profile.pipe b/services/libs/tinybird/pipes/org_page_profile.pipe index fc8d76665a..e9d24b9c65 100644 --- a/services/libs/tinybird/pipes/org_page_profile.pipe +++ b/services/libs/tinybird/pipes/org_page_profile.pipe @@ -9,7 +9,9 @@ SQL > % SELECT id FROM organizations_populated_slug - WHERE slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + WHERE + slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + AND isAffiliationBlocked = 0 NODE org_page_profile_base SQL > diff --git a/services/libs/tinybird/pipes/org_page_projects.pipe b/services/libs/tinybird/pipes/org_page_projects.pipe index 8f89a177bd..74d2c548ef 100644 --- a/services/libs/tinybird/pipes/org_page_projects.pipe +++ b/services/libs/tinybird/pipes/org_page_projects.pipe @@ -9,7 +9,9 @@ SQL > % SELECT id FROM organizations_populated_slug - WHERE slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + WHERE + slug = {{ String(orgSlug, '', description="Organization slug", required=True) }} + AND isAffiliationBlocked = 0 NODE org_page_projects_main SQL > diff --git a/services/libs/tinybird/pipes/organizations_filtered.pipe b/services/libs/tinybird/pipes/organizations_filtered.pipe index d6cacba9a7..603eb923fd 100644 --- a/services/libs/tinybird/pipes/organizations_filtered.pipe +++ b/services/libs/tinybird/pipes/organizations_filtered.pipe @@ -29,7 +29,7 @@ SQL > organizations_code_contributors ON organizations_populated_slug.id = organizations_code_contributors.organizationId where - 1 = 1 + 1 = 1 AND organizations_populated_slug.isAffiliationBlocked = 0 {% if defined(slug) %} AND organizations_populated_slug.slug = {{ String(slug, description="Filter organization by slug", required=False) }} diff --git a/services/libs/tinybird/pipes/organizations_leaderboard.pipe b/services/libs/tinybird/pipes/organizations_leaderboard.pipe index c4ea670d92..d46ff8cf51 100644 --- a/services/libs/tinybird/pipes/organizations_leaderboard.pipe +++ b/services/libs/tinybird/pipes/organizations_leaderboard.pipe @@ -18,7 +18,7 @@ DESCRIPTION > - `offset`: Optional integer for result pagination, defaults to 0 - Response: - Count mode (`count=true`): `count` (total number of organizations) - - Data mode (default): `id`, `slug`, `logo`, `displayName`, `contributionCount`, `contributionPercentage` + - Data mode (default): `id`, `slug` (empty string for affiliation-blocked organizations), `logo`, `displayName`, `contributionCount`, `contributionPercentage` NODE organizations_leaderboard_paginated SQL > @@ -28,14 +28,14 @@ SQL > {% else %} SELECT org.id AS id, - org.slug AS slug, + if(org.isAffiliationBlocked = 1, '', org.slug) AS slug, org.logo AS logo, org.displayName AS displayName, COUNT(af.id) AS contributionCount, ROUND(COUNT(af.id) * 100.0 / SUM(COUNT(af.id)) OVER (), 2) AS contributionPercentage FROM activities_filtered af JOIN organizations_populated_slug org ON org.id = af.organizationId - GROUP BY org.id, org.slug, org.logo, org.displayName + GROUP BY org.id, org.slug, org.isAffiliationBlocked, org.logo, org.displayName ORDER BY contributionCount DESC, id desc LIMIT {{ Int32(limit, 10) }} OFFSET {{ Int32(offset, 0) }} diff --git a/services/libs/tinybird/pipes/organizations_populate_slug.pipe b/services/libs/tinybird/pipes/organizations_populate_slug.pipe index b9e01ae54d..11cd1c67d6 100644 --- a/services/libs/tinybird/pipes/organizations_populate_slug.pipe +++ b/services/libs/tinybird/pipes/organizations_populate_slug.pipe @@ -29,6 +29,7 @@ SQL > org.createdAt AS createdAt, org.updatedAt AS updatedAt, org.isTeamOrganization AS isTeamOrganization, + org.isAffiliationBlocked AS isAffiliationBlocked, org.type AS type, org.size AS size, org.headline AS headline, @@ -56,6 +57,7 @@ SQL > createdAt, updatedAt, isTeamOrganization, + isAffiliationBlocked, type, size, headline, @@ -84,6 +86,7 @@ SQL > createdAt, updatedAt, isTeamOrganization, + isAffiliationBlocked, type, size, headline, @@ -103,6 +106,7 @@ SQL > createdAt, updatedAt, isTeamOrganization, + isAffiliationBlocked, type, size, headline,