# Solo Mode Configuration
# Single developer local development mode

let contracts = import "./contracts.ncl" in
let oci_defaults = import "../oci_registry/defaults.ncl" in

{
  mode_name = "solo",
  description = "Single developer local development mode",

  authentication = {
    auth_type = "none",
    ssh_key_storage = "local",
  },

  services = {
    orchestrator = {
      deployment = "local",
      auto_start = true,
      local_config = {
        data_dir = "~/.provisioning/orchestrator",
        port = 8080,
      },
    },

    control_center = {
      deployment = "disabled",
    },

    coredns = {
      deployment = "disabled",
    },

    gitea = {
      deployment = "disabled",
    },

    oci_registry = oci_defaults.local_zot_registry & {
      endpoint = "localhost",
      port = 5000,
      namespaces = {
        extensions = "dev-extensions",
        kcl_packages = "dev-kcl",
        platform_images = "dev-platform",
        test_images = "dev-test",
      },
    },
  },

  extensions = {
    source = "local",
    local_path = "./provisioning/extensions",
    allow_mixed = true,
  },

  workspaces = {
    locking = "disabled",
    git_integration = "optional",
    isolation = "none",
  },

  security = {
    encryption_at_rest = false,
    encryption_in_transit = false,
    dns_modification = "none",
    audit_logging = false,
    network_isolation = false,
  },
}
| contracts.ExecutionMode
