GitOps Configuration
GitOps (federated) configuration lets your team maintain its own config repository. This provides more autonomy while still respecting organization security boundaries.
When to Use GitOps
Section titled “When to Use GitOps”- Medium to large teams
- Frequent configuration changes
- Teams want PR-based review process
- Need version history for compliance
- Different teams need different update cycles
How It Works
Section titled “How It Works”Setting Up
Section titled “Setting Up”-
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
-
Create team-config.json
team-config.json {"schema_version": "1.0.0","additional_plugins": ["scc-safety-net@sandboxed-code-official","java-analyzer@internal-marketplace"],"additional_mcp_servers": {"context7": {"type": "http","url": "https://context7.com/api"}},"session": {"timeout_hours": 12}} -
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}}}} -
Validate your config
Terminal window scc org validate team-config.json
Source Types
Section titled “Source Types”GitHub
Section titled “GitHub”"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.
GitLab
Section titled “GitLab”"config_source": { "source": "git", "url": "git@gitlab.example.com:team/config.git", "branch": "main"}HTTPS Endpoint
Section titled “HTTPS Endpoint”"config_source": { "source": "url", "url": "https://config.example.com/team/backend.json", "auth": { "type": "bearer", "token": "env:CONFIG_TOKEN" }}Trust Settings
Section titled “Trust Settings”Org admin controls what your federated config can do:
inherit_org_marketplaces
Section titled “inherit_org_marketplaces”"trust": { "inherit_org_marketplaces": true}- true: Your team can use all org-approved marketplaces
- false: Your team only uses marketplaces you define
allow_additional_marketplaces
Section titled “allow_additional_marketplaces”"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
Config File Structure
Section titled “Config File Structure”{ "schema_version": "1.0.0",
"additional_plugins": [ "plugin-name@marketplace" ],
"additional_mcp_servers": { "server-name": { "type": "http", "url": "https://..." } },
"marketplaces": { "team-marketplace": { "source": "github", "owner": "acme", "repo": "team-plugins" } },
"delegation": { "allow_project_overrides": true, "allow_additional_plugins": ["team-*"] },
"session": { "timeout_hours": 12, "auto_resume": true }}Workflow: Making Changes
Section titled “Workflow: Making Changes”-
Create a branch
Terminal window git checkout -b add-new-plugin -
Edit team-config.json
"additional_plugins": ["scc-safety-net@official","new-tool@marketplace" // ← Added] -
Validate locally
Terminal window scc org validate team-config.json -
Create PR and get review
-
Merge to main
-
Developers get update
Terminal window scc update# or automatic on next session start
Caching and Updates
Section titled “Caching and Updates”Team configs are cached locally:
| Setting | Default | Description |
|---|---|---|
| Cache TTL | 24 hours | How long before re-fetching |
| Force refresh | scc update | Immediately fetch latest |
| Offline mode | Uses cache | Works without network |
Troubleshooting
Section titled “Troubleshooting””Trust validation failed”
Section titled “”Trust validation failed””Your config tries to use something the org doesn’t permit:
scc team validateCommon causes:
- Adding a marketplace when
allow_additional_marketplaces: false - Plugin matches org’s
blocked_pluginspattern
”Config fetch failed”
Section titled “”Config fetch failed””- Check repository URL is correct
- Verify authentication token is valid (for private repos)
- Ensure branch exists
”Stale config”
Section titled “”Stale config””Force refresh:
scc update --forceOr clear cache:
rm -rf ~/.cache/scc/team-config/scc update