Skip to content

GitOps Configuration

GitOps (federated) configuration lets your team maintain its own config repository. This provides more autonomy while still respecting organization security boundaries.

  • Medium to large teams
  • Frequent configuration changes
  • Teams want PR-based review process
  • Need version history for compliance
  • Different teams need different update cycles
GitOps Federation Flow
GitOps Federation Flow
  1. Create your team’s config repository

    Create a new repository (public or private) to hold your team’s config.

    • Directorybackend-team-scc-config/
      • team-config.json
      • README.md
  2. Create team-config.json

    team-config.json
    {
    "schema_version": "1.0.0",
    "enabled_plugins": [
    "scc-safety-net@sandboxed-code-official",
    "java-analyzer@internal-marketplace"
    ]
    }
  3. Ask org admin to configure federation

    The org config needs to point to your repository:

    org-config.json (org admin adds this)
    {
    "profiles": {
    "backend": {
    "config_source": {
    "source": "github",
    "owner": "acme",
    "repo": "backend-team-scc-config"
    },
    "trust": {
    "inherit_org_marketplaces": true,
    "allow_additional_marketplaces": false
    }
    }
    }
    }
  4. Validate your config

    Terminal window
    scc team validate --file team-config.json
"config_source": {
"source": "github",
"owner": "org-name",
"repo": "team-config-repo",
"branch": "main",
"path": "team-config.json"
}

For private repos, org admin configures token auth.

"config_source": {
"source": "git",
"url": "git@gitlab.example.com:team/config.git",
"branch": "main"
}
"config_source": {
"source": "url",
"url": "https://config.example.com/team/backend.json",
"headers": {
"Authorization": "Bearer ${CONFIG_TOKEN}"
}
}

Org admin controls what your federated config can do:

"trust": {
"inherit_org_marketplaces": true
}
  • true: Your team can use all org-approved marketplaces
  • false: Your team only uses marketplaces you define
"trust": {
"allow_additional_marketplaces": true,
"marketplace_source_patterns": [
"github.com/acme/**"
]
}
  • true: Your team can add custom marketplaces (within patterns)
  • false: Your team can only use org-defined marketplaces
team-config.json
{
"schema_version": "1.0.0",
"enabled_plugins": [
"plugin-name@marketplace"
],
"disabled_plugins": [
"legacy-tool@marketplace"
],
"marketplaces": {
"team-marketplace": {
"source": "github",
"owner": "acme",
"repo": "team-plugins"
}
}
}
  1. Create a branch

    Terminal window
    git checkout -b add-new-plugin
  2. Edit team-config.json

    "enabled_plugins": [
    "scc-safety-net@sandboxed-code-official",
    "new-tool@marketplace" // ← Added
    ]
  3. Validate locally

    Terminal window
    scc team validate --file team-config.json
  4. Create PR and get review

  5. Merge to main

  6. Developers get update

    Terminal window
    scc update
    # or automatic on next session start

Team configs are cached locally:

SettingDefaultDescription
Cache TTL24 hoursHow long before re-fetching
Force refreshscc updateImmediately fetch latest
Offline modeUses cacheWorks without network

Your config tries to use something the org doesn’t permit:

Terminal window
scc team validate backend

Common causes:

  • Adding a marketplace when allow_additional_marketplaces: false
  • Plugin matches org’s blocked_plugins pattern
  • Check repository URL is correct
  • Verify authentication token is valid (for private repos)
  • Ensure branch exists

Force refresh:

Terminal window
scc update --force

Or clear cache:

Terminal window
rm -rf ~/.cache/scc/team-config/
scc update