Open-Source Wikis

/

Argo CD

/

Reference

/

Data models

argoproj/argo-cd

Data models

A quick map from each user-facing concept to where the Go type is defined.

CRDs

Concept Type File
Application Application, ApplicationSpec, ApplicationStatus pkg/apis/application/v1alpha1/types.go
Application source ApplicationSource, ApplicationSourceHelm, ApplicationSourceKustomize, ApplicationSourceDirectory, ApplicationSourcePlugin pkg/apis/application/v1alpha1/types.go
Application destination ApplicationDestination pkg/apis/application/v1alpha1/types.go
Sync policy / operation SyncPolicy, SyncOperation, OperationState, RetryStrategy, Backoff pkg/apis/application/v1alpha1/types.go
Health & sync status SyncStatus, HealthStatus, ResourceStatus pkg/apis/application/v1alpha1/types.go
AppProject AppProject, AppProjectSpec, ProjectRole, JWTToken, SyncWindow pkg/apis/application/v1alpha1/app_project_types.go
ApplicationSet ApplicationSet, ApplicationSetSpec, ApplicationSetGenerator and per-generator types pkg/apis/application/v1alpha1/applicationset_types.go
ApplicationSet status ApplicationSetStatus, ApplicationSetCondition, ApplicationSetApplicationStatus pkg/apis/application/v1alpha1/applicationset_types.go
Repository / repo creds Repository, RepoCreds pkg/apis/application/v1alpha1/repository_types.go
Constants & defaults Annotations, labels, sync-options strings pkg/apis/application/v1alpha1/application_annotations.go, application_defaults.go, cluster_constants.go

Settings and policy

Concept Type File
Cluster-wide settings ArgoCDSettings, OIDCConfig, RepoCredentials, ResourceOverride, KustomizeOptions, HelmOptions, … util/settings/settings.go
Casbin policy Enforcer and helpers util/rbac/rbac.go
Notifications config Service + template + trigger structs util/notification/settings/ and the upstream notifications-engine
Resource tracking ResourceTracking, TrackingMethod util/argo/resource_tracking.go
Resource normalization Normalizer interface and impls util/argo/normalizers/

In-flight RPC types

Almost every gRPC service has its own request/response messages defined alongside the proto files (e.g., server/application/application.proto). The generated Go types live in the same directory; the auto-generated clients are under pkg/apiclient/<service>/.

Repo server protocol

The repo server's protocol is defined in reposerver/repository/repository.proto. Notable messages:

  • ManifestRequest / ManifestResponse — the rendering RPC.
  • Repository — the source repo descriptor (URL, type, credentials).
  • RepoServerAppDetailsQuery / RepoAppDetailsResponse — the "browse repo" UI surface.

Commit server protocol

The commit server protocol lives in commitserver/commit/. The single core RPC commits a set of files into a hydrated branch; see Commit server.

Codegen

Generated files (do not hand-edit):

  • pkg/apis/application/v1alpha1/generated.pb.go (~1.4 MB)
  • pkg/apis/application/v1alpha1/openapi_generated.go (~319 KB)
  • pkg/apis/application/v1alpha1/zz_generated.deepcopy.go
  • Per-package mocks/ directories.

Run make codegen to regenerate.

See also

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Data models – Argo CD wiki | Factory