fix(source-cards): scope counters to OPK organizations
Some checks failed
CI/CD Pipeline / Quality Gate (push) Failing after 1m8s
CI/CD Pipeline / Build and Push Images (push) Has been skipped
CI/CD Pipeline / Deploy Dev via Compose (push) Has been skipped
CI/CD Pipeline / Internal Notify (push) Successful in 1s

This commit is contained in:
2026-08-18 10:59:40 +02:00
parent cdc4698864
commit 4e72abbe9a
3 changed files with 48 additions and 4 deletions

View File

@@ -34,6 +34,7 @@ ACTIVE_JOB_STATUSES = [JobStatus.PENDING, JobStatus.STARTED, JobStatus.RETRY]
STALE_ACTIVE_MAX_AGE_MINUTES = 4 * 60
STALE_PENDING_MAX_AGE_MINUTES = 24 * 60
SOURCE_CARD_STATS_CACHE_TIMEOUT_SECONDS = 7 * 24 * 60 * 60
SOURCE_CARD_STATS_CACHE_SCHEMA_VERSION = 2
@dataclass(frozen=True)
@@ -665,7 +666,10 @@ class SourceCardService:
version = get_source_data_cache_version()
slugs = ",".join(definition.slug for definition in definitions)
slugs_digest = blake2s(slugs.encode(), digest_size=8).hexdigest()
return f"parsers:source_cards:aggregate_stats:{version}:{slugs_digest}"
return (
"parsers:source_cards:aggregate_stats:"
f"v{SOURCE_CARD_STATS_CACHE_SCHEMA_VERSION}:{version}:{slugs_digest}"
)
@classmethod
def _build_item_stats_by_code(
@@ -688,7 +692,10 @@ class SourceCardService:
return {}
rows = (
OrganizationSourceRecord.objects.filter(source__in=unique_sources)
OrganizationSourceRecord.objects.filter(
source__in=unique_sources,
extension__organization__opk_registry_membership=True,
)
.order_by()
.values("source")
.annotate(
@@ -762,6 +769,7 @@ class SourceCardService:
rows = (
OrganizationSourceExtension.objects.filter(
organization__opk_registry_membership=True,
source_group__in=source_groups,
records_count__gt=0,
)