Platform

Platform overviewArchitectureWorkflow orchestrationGitOps configurationGovernance and AAAAI and MCPKnowledge and contextRuntime and executionEvidence and monitoring

Use cases

All use casesProduction incidentRelease preparationHotfix to productionSecurity scan triage
Why NopsAIIntegrationsSecurity

Resources

All resourcesAI agent governanceMCP governanceMCP securitySelf-hosted platforms
PricingGitHub

Company

How a run worksAboutContactBook a demo

GitOps and configuration repositories

Which resources Git can own, how sync applies them, and what happens when the UI edits a managed resource.

ReferenceAdministratorAutomation author

Key points

  • GitOps can manage pipelines/, steps/, schedules/, triggers/, external-triggers/, git-webhook-sources/, dashboards/, scopes/, knowledge/, access/, config-repositories/, setting/git-apps/, and setting/system/.
  • Canonical system files: credentials.yaml, runner.yaml, assistant.yaml, auth.yaml, mail.yaml, data-management.yaml, plus setting/git-apps/github.yaml.
  • Models, agent roles, and MCP servers and profiles are one file per resource under models/, agent-roles/, mcp/servers/, and mcp/profiles/, where the file path is the resource name. Team scoping uses the path just like pipelines, so models/<team>/<name>.yaml is a team-scoped model, and one file per registry may set default: true.
  • setting/system/assistant.yaml owns the assistant block. Sync fails with a migration error when assistant: is still in setting/system/runner.yaml.
  • UI or API edits to GitOps-managed resources create database overrides. The next sync can replace or recreate them unless the change is pushed back.
  • Sync applies dependency roots first: team hierarchy from config-repositories/, then team-owned dashboards and notification routes, then pipeline dashboard outputs.
  • Long-running syncs can be canceled. If no worker is registered but the row is still running, cancellation marks it canceled so operators can retry without editing the database.
  • setting/git-apps/github.yaml is app-scoped; the legacy setting/system/github.yaml is read for migration compatibility for one release.

Examples

Configuration repository layouttext
pipelines/            steps/               schedules/
models/               agent-roles/         mcp/
triggers/             external-triggers/   git-webhook-sources/
dashboards/           scopes/              knowledge/
access/               config-repositories/
setting/git-apps/github.yaml
setting/system/credentials.yaml
setting/system/runner.yaml
setting/system/assistant.yaml
setting/system/auth.yaml
setting/system/mail.yaml
setting/system/data-management.yaml
models/<name>.yaml            models/<team>/<name>.yaml
agent-roles/<name>.yaml       mcp/servers/<name>.yaml
mcp/profiles/<name>.yaml

How it works

Drift review presents Git and NopsAI panes side by side with line numbers, synchronized scrolling, and highlighted removed Git lines and added desired lines before a push.

Both a global configuration repository and per-team repositories are supported. Team repositories are bound through PUT /v1/teams/{teamID}/config-repository.

Internal service URLs stay in system configuration rather than in the app-scoped Git App file.

Implementation evidence

  • examples/gitops-quickstart/README.md

    GitOps sample repository layout.

  • services/nopsai/config_sync_apply.go

    Apply order and upsert behavior.