setup-contract.json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "schemaVersion": 1,
  "cloud": {
    "name": "AzurePublic",
    "authorityHost": "https://login.microsoftonline.com",
    "armEndpoint": "https://management.azure.com",
    "graphEndpoint": "https://graph.microsoft.com"
  },
  "authentication": {
    "redirectPath": "/",
    "defaultPreset": "maester",
    "presets": {
      "microsoft": {
        "displayName": "Microsoft applications",
        "description": "Uses the Azure CLI and Microsoft Graph PowerShell applications through the local PowerShell token bridge.",
        "authenticationMethod": "nativeBridge",
        "azureClientId": "04b07795-8ddb-461a-bbee-02f9e1bf7b46",
        "graphClientId": "14d82eec-204b-4c2f-b7e8-296a70dab67e"
      },
      "maester": {
        "displayName": "Maester Self Deploy Setup",
        "description": "Uses the verified Maester multi-tenant native application through the local PowerShell token bridge.",
        "authenticationMethod": "nativeBridge",
        "azureClientId": "69271b19-dc53-488d-a9d0-58204cc05b19",
        "graphClientId": "69271b19-dc53-488d-a9d0-58204cc05b19"
      },
      "hosted": {
        "displayName": "Maester Cloud Setup (hosted)",
        "description": "The hosted setup app at setup.maester.cloud: a separate verified multi-tenant single-page application that signs in from the browser (no PowerShell token bridge). Its client ID is stamped at build time.",
        "authenticationMethod": "browser",
        "azureClientId": "",
        "graphClientId": ""
      }
    },
    "azureScopes": [
      "openid",
      "profile",
      "https://management.azure.com/user_impersonation"
    ],
    "graphScopes": [
      "openid",
      "profile",
      "User.Read",
      "Application.ReadWrite.All",
      "AppRoleAssignment.ReadWrite.All"
    ]
  },
  "arm": {
    "apiVersions": {
      "resources": "2021-04-01",
      "deployments": "2022-09-01",
      "subscriptions": "2022-12-01",
      "containerApps": "2024-03-01"
    },
    "requiredProviders": [
      "Microsoft.App",
      "Microsoft.Insights",
      "Microsoft.ManagedIdentity",
      "Microsoft.OperationalInsights",
      "Microsoft.Storage"
    ],
    "requiredLocationResourceTypes": {
      "Microsoft.App": [
        "managedEnvironments",
        "containerApps",
        "jobs"
      ],
      "Microsoft.OperationalInsights": [
        "workspaces"
      ],
      "Microsoft.Insights": [
        "components"
      ],
      "Microsoft.Storage": [
        "storageAccounts"
      ]
    },
    "retry": {
      "maximumAttempts": 5,
      "initialDelayMilliseconds": 750,
      "maximumDelayMilliseconds": 10000
    },
    "polling": {
      "providerTimeoutSeconds": 300,
      "deploymentTimeoutSeconds": 1800,
      "applicationUpdateTimeoutSeconds": 600,
      "healthTimeoutSeconds": 600,
      "defaultIntervalSeconds": 10
    }
  },
  "deployment": {
    "model": "aca-self-host",
    "templateSchemaVersion": 4,
    "tagName": "MaesterCloud",
    "tagValue": "self-hosted",
    "versionTagName": "MaesterCloudVersion",
    "defaultResourceGroupName": "rg-maestercloud",
    "defaultContainerAppName": "ca-maestercloud",
    "defaultApplicationDisplayName": "Maester Cloud",
    "containerName": "maester-cloud",
    "deploymentNamePrefix": "maester-cloud",
    "releaseVersion": "private-preview"
  },
  "graph": {
    "apiVersion": "v1.0",
    "permissionCapabilities": {
      "applicationCreate": [
        "AppRegistration.Create",
        "Application.ReadWrite.OwnedBy",
        "Application.ReadWrite.All"
      ],
      "applicationRead": [
        "Application.Read.All",
        "Application.ReadUpdate.All",
        "Application.ReadWrite.OwnedBy",
        "Application.ReadWrite.All",
        "Directory.Read.All",
        "Directory.ReadWrite.All"
      ],
      "appRoleAssignmentWrite": [
        "AppRoleAssignment.ReadWrite.All"
      ],
      "applicationRestore": [
        "Application.ReadWrite.All"
      ]
    },
    "portalScopeValue": "access_as_user",
    "portalIdentifierPathPrefix": "maestercloud",
    "deploymentTagPrefix": "MaesterCloud",
    "defaultAccessRoleId": "00000000-0000-0000-0000-000000000000",
    "graphPowerShellClientId": "14d82eec-204b-4c2f-b7e8-296a70dab67e",
    "microsoftGraphAppId": "00000003-0000-0000-c000-000000000000",
    "runnerAppTag": "MaesterCloudRunnerApp",
    "runnerAppHiddenTag": "HideApp",
    "managedByTag": "MaesterCloudSetup",
    "azureTenantTagPrefix": "MaesterCloudAzureTenant:",
    "subscriptionTagPrefix": "MaesterCloudSubscription:",
    "resourceGroupTagPrefix": "MaesterCloudResourceGroup:",
    "federatedCredentialAudience": "api://AzureADTokenExchange",
    "federatedCredentialNamePrefix": "maester-cloud-",
    "runnerAppDelegatedScopes": [
      "Application.ReadWrite.All",
      "AppRoleAssignment.ReadWrite.All",
      "Directory.Read.All"
    ]
  },
  "portal": {
    "apiPathPrefix": "/api",
    "primaryConnectionId": "graph",
    "hostedUrl": "",
    "consentReturnPath": "/tenants/consent"
  },
  "verification": {
    "healthPaths": [
      "/health/live",
      "/api/health"
    ],
    "configurationPath": "/api/config"
  },
  "telemetry": {
    "connectionString": ""
  }
}