MCPcopy Index your code
hub / github.com/alexmt/mobile-for-argocd

github.com/alexmt/mobile-for-argocd @v1.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.1 ↗ · + Follow
226 symbols 499 edges 24 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ArgoCD Mobile

A native iOS and Android app for monitoring and managing Argo CD deployments from your phone.

Apps list

Download on the App Store · Get it on Google Play

Features

  • Browse all applications with real-time health and sync status
  • Filter by sync state, health, project, namespace, and labels (key or key=value)
  • Trigger sync, hard refresh, and rollback
  • View resource tree, managed resources, and diff
  • Stream pod logs with container selection
  • SSO login via OIDC/Dex (GitHub, LDAP, SAML, etc.) using PKCE — no stored passwords
  • Username/password login as fallback

SSO Support

The app performs a direct OIDC PKCE flow against your ArgoCD's built-in Dex or an external OIDC provider.

Dex: register the mobile redirect URI

ArgoCD hardcodes the argo-cd-cli Dex static client in util/dex/config.go with only http://localhost and http://localhost:8085/auth/callback as redirect URIs. This list is regenerated on every Dex restart and cannot be overridden via argocd-cm. The app's argocd://auth/callback URI must be injected after generation.

Patch the deployment

This wraps the Dex container command with a background process that re-injects the redirect URI every time ArgoCD regenerates the Dex config:

kubectl patch deployment argocd-dex-server -n <argocd-namespace> --type=strategic -p '{
  "spec": {
    "template": {
      "spec": {
        "containers": [{
          "name": "dex",
          "command": [
            "/bin/sh",
            "-c",
            "(LAST=\"\"; while true; do M=$(stat -c %Y /tmp/dex.yaml 2>/dev/null); if [ \"$M\" != \"$LAST\" ]; then LAST=$M; grep -q \"argocd://auth/callback\" /tmp/dex.yaml 2>/dev/null || sed -i \"s|  - http://localhost:8085/auth/callback|  - http://localhost:8085/auth/callback\\n  - argocd://auth/callback|\" /tmp/dex.yaml; fi; sleep 0.2; done) & exec /shared/argocd-dex rundex"
          ]
        }]
      }
    }
  }
}'

The exec keeps argocd-dex rundex as PID 1 so it receives Kubernetes signals correctly. The patcher runs in the background and wins the race against Dex startup because it watches for file modification and reacts in under 200ms.

External OIDC provider

If you use an external OIDC provider (configured via oidcConfig in argocd-cm), add argocd://auth/callback to the allowed redirect URIs in that provider's application settings and set cliClientID in argocd-cm.

Development

yarn install
npx expo start

Requires Expo Go or a development build on iOS or Android.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 169
Interface 34
Method 21
Class 2

Languages

TypeScript100%

Modules by API surface

lib/api.ts41 symbols
components/resource-detail-sheet.tsx34 symbols
lib/client.tsx25 symbols
app/(app)/(tabs)/index.tsx22 symbols
app/(app)/details.tsx14 symbols
app/login.tsx13 symbols
components/sync-sheet.tsx12 symbols
components/resource-filter.tsx12 symbols
app/(app)/history.tsx10 symbols
components/resource-tree-sheet.tsx9 symbols
app/(app)/diff.tsx9 symbols
app/(app)/tree.tsx6 symbols

For agents

$ claude mcp add mobile-for-argocd \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page