Skip to main content

Application topology

GitGuardian application consists of several Kubernetes resources. Each nginx pod runs an nginx container serving the dashboard frontend and acting as a proxy for the backend, and a number of different containers serving all backend tasks.

KindDeployment NameUsage
FrontnginxDashboard Frontend and proxy for backend
Backendinternal-apiBackend for the Dashboard
Backendinternal-api-longBackend for the Dashboard (long requests, no timeout)
Backendpublic-apiPublic API and ggshield scans
BackendhookVCS webhooks events receiver
Backendapp-exporterPrometheus exporter for applicative metrics
Backendml-secret-engineMachine Learning secret engine
Backendapache-tikaFile scanner for non-VCS sources scanning
SchedulerbeatCelery Beat task scheduler
Workerworker-workerGeneral-purpose worker managing real-time scans, retries, honeytoken tasks, reports (queues: check_run, realtime, realtime_retry, honeytoken, reports, core_default, sources_default, incidents_default, individual_validity_check).
Workerworker-check-runsOptional dedicated worker for check run processing (queue: check_run). Disabled by default; enable to offload check_run from worker-worker.
Workerworker-check-run-scannersOptional dedicated worker for scan-based (PR-scoped) check runs (queue: check_run_scan). Disabled by default; the queue falls back to worker-scanners.
Workerworker-emailHandles email notifications and messaging (queues: email, notifier).
Workerworker-scannersPerforms historical scans for repositories (queues: basic_repo_scan, premium_repo_scan, manual_repo_scan, code_fixing).
Workerworker-premium-scanners-retryOptional high-memory worker retrying failed large-repository scans (queue: premium_repo_scan_retry). Disabled by default; see Premium scan retry worker.
Workerworker-incidents-diskOptional dedicated worker recomputing secret locations (queue: incidents_disk). Disabled by default; the queue falls back to worker-scanners.
Workerworker-longProcesses long-running tasks such as validity checks and NHI ingestion (queues: background_validity_check, update_sources_state, nhi_ingestion, hmsl, core_long, sources_long, incidents_long, ml_backpopulate, endpoints, core_aspm, team_sync).
Workerworker-automatic-severitiesDedicated worker for automatic severity computation (queue: automatic_severities). 1 replica by default, autoscales up to 3.
Workerworker-realtime-odsHandles real-time processing for non-VCS sources like Slack and Jira (queues: realtime_ods, realtime_retry_ods).
Workerworker-long-odsProcesses long-running tasks for non-VCS sources (queue: long_ods).
Workerworker-long-ods-ioFocuses on IO-intensive long-running tasks for non-VCS sources (queue: long_ods_io).
Workerworker-scanners-odsExecutes non-VCS historical scans for Jira, Confluence, etc. (queue: ods_scan).
Workerworker-scanners-ods-highdiskHandles high storage tasks for non-VCS sources (queue: ods_scan_highdisk).
Workerworker-scanners-slackExecutes Slack historical scans (queue: slack_scan).
Workerworker-scanners-db-less-jira-cloudOptional dedicated worker for Jira Cloud historical scans (queue: db_less_scan_jira_cloud). Disabled by default. While it has 0 replicas, worker-scanners-ods consumes the queue, or worker-scanners when worker-scanners-ods also has 0 replicas.
Workerworker-scanners-db-less-confluence-cloudOptional dedicated worker for Confluence Cloud historical scans (queue: db_less_scan_confluence_cloud). Disabled by default. While it has 0 replicas, worker-scanners-ods consumes the queue, or worker-scanners when worker-scanners-ods also has 0 replicas.
Workerworker-container-registriesHandles secret scanning in Container registries (queue: container_registries).
Workerworker-public-monitoringHandles Public Monitoring scans (queues: public_monitoring, public_monitoring_continuous_scan, public_monitoring_historical_scan, public_monitoring_realtime_scan). Active only when licensed.
Workerworker-business-contributionHandles business contribution tasks (queue: business_contribution).
Workerworker-ml-api-priorityPrioritizes machine learning API-related tasks (queue: ml_api_priority).
Workerworker-scanners-db-lessOptional worker for scans that do not need database access: JFrog Package Registries, SharePoint and OneDrive (queue: db_less_scan). Disabled by default; the queue falls back to worker-scanners.
Jobinapp-analyticsComputes metrics and aggregates data for Advanced Analytics dashboards.
Jobpre-deployPre-deployment job performing database migrations
Jobpost-deployPost-deployment job performing long data migrations
ReplicatedreplicatedLicense management and usage data collection
ReplicatedkotsadmKOTS Admin Console (KOTS-based installation only)
info

We have set a 30-days TTL (Time To Live) for pre-deploy and post-deploy jobs to allow for log retrieval if needed. It is recommended not to delete these pods, as they can be useful for troubleshooting.