{
  "service": {
    "name": "Northstar Photos",
    "version": "2.7.4",
    "environment": "production",
    "baseUrl": "https://photos.example.net",
    "timezone": "America/Toronto",
    "readOnly": false
  },
  "storage": {
    "libraryPath": "/srv/photos/library",
    "uploadPath": "/srv/photos/uploads",
    "thumbnailPath": "/var/cache/northstar/thumbnails",
    "database": {
      "engine": "postgresql",
      "host": "postgres",
      "port": 5432,
      "name": "northstar_photos",
      "ssl": false,
      "pool": {
        "minimum": 2,
        "maximum": 20
      }
    },
    "usage": {
      "totalBytes": 8000000000000,
      "usedBytes": 2847391053312,
      "availableBytes": 5152608946688
    }
  },
  "features": {
    "automaticBackup": true,
    "faceRecognition": true,
    "objectDetection": true,
    "reverseGeocoding": true,
    "publicSharing": true,
    "rawImageSupport": true,
    "videoTranscoding": true,
    "supportedFormats": [
      "jpeg",
      "png",
      "webp",
      "heic",
      "tiff",
      "dng",
      "cr2",
      "nef",
      "mp4",
      "mov"
    ]
  },
  "indexing": {
    "enabled": true,
    "scanOnStartup": false,
    "schedule": "0 3 * * *",
    "followSymbolicLinks": false,
    "excludePatterns": [
      "**/.thumbnails/**",
      "**/@eaDir/**",
      "**/.DS_Store"
    ],
    "lastRun": {
      "startedAt": "2026-07-29T03:00:02-04:00",
      "completedAt": "2026-07-29T03:18:47-04:00",
      "status": "completed",
      "filesScanned": 42831,
      "assetsAdded": 63,
      "assetsUpdated": 11,
      "errors": []
    }
  },
  "libraries": [
    {
      "id": "lib_01j8n7m5f2",
      "name": "Family Archive",
      "ownerId": "usr_01hza2p9kx",
      "assetCount": 31642,
      "albumCount": 128,
      "visibility": "private",
      "watchPaths": [
        "/srv/photos/library/family",
        "/mnt/nas/scanned-albums"
      ]
    },
    {
      "id": "lib_01j8n7q3wa",
      "name": "Shared Trips",
      "ownerId": "usr_01hza2p9kx",
      "assetCount": 11189,
      "albumCount": 34,
      "visibility": "members",
      "watchPaths": [
        "/srv/photos/library/travel"
      ]
    }
  ],
  "users": [
    {
      "id": "usr_01hza2p9kx",
      "displayName": "Alex Morgan",
      "email": "alex@example.net",
      "role": "administrator",
      "quotaBytes": 5000000000000,
      "usedBytes": 2215083384832,
      "preferences": {
        "locale": "en-CA",
        "dateFormat": "YYYY-MM-DD",
        "theme": "system",
        "defaultSort": "capturedAt_desc",
        "emailNotifications": {
          "newShares": true,
          "backupFailures": true,
          "weeklySummary": false
        }
      }
    },
    {
      "id": "usr_01j3dc8vma",
      "displayName": "Jamie Chen",
      "email": "jamie@example.net",
      "role": "member",
      "quotaBytes": 1000000000000,
      "usedBytes": 391748220928,
      "preferences": {
        "locale": "en-CA",
        "dateFormat": "MMM D, YYYY",
        "theme": "dark",
        "defaultSort": "capturedAt_desc",
        "emailNotifications": {
          "newShares": true,
          "backupFailures": false,
          "weeklySummary": true
        }
      }
    }
  ],
  "processing": {
    "workers": 4,
    "queues": {
      "thumbnails": {
        "pending": 12,
        "active": 3,
        "failed": 1
      },
      "metadata": {
        "pending": 0,
        "active": 1,
        "failed": 0
      },
      "machineLearning": {
        "pending": 247,
        "active": 2,
        "failed": 4
      },
      "transcoding": {
        "pending": 8,
        "active": 1,
        "failed": 0
      }
    },
    "machineLearning": {
      "endpoint": "http://machine-learning:3003",
      "models": {
        "facialRecognition": "buffalo_l",
        "imageClassification": "ViT-B-32",
        "clipTextEncoder": "ViT-B-32"
      },
      "minimumFaceScore": 0.72,
      "minimumObjectScore": 0.65
    }
  },
  "sharing": {
    "defaultExpirationHours": 168,
    "allowPasswordProtection": true,
    "allowDownloads": true,
    "maximumAssetsPerLink": 500,
    "activeLinks": [
      {
        "id": "shr_01k1c52r8e",
        "albumId": "alb_01jzq8m31v",
        "createdBy": "usr_01hza2p9kx",
        "createdAt": "2026-07-24T19:42:11-04:00",
        "expiresAt": "2026-07-31T19:42:11-04:00",
        "passwordProtected": true,
        "allowDownload": true,
        "viewCount": 17
      }
    ]
  },
  "backup": {
    "enabled": true,
    "provider": "s3-compatible",
    "schedule": "30 1 * * *",
    "retention": {
      "daily": 14,
      "weekly": 8,
      "monthly": 12
    },
    "destination": {
      "endpoint": "https://objects.example.net",
      "bucket": "northstar-photo-backups",
      "region": "ca-central-1",
      "pathPrefix": "production/"
    },
    "lastBackup": {
      "id": "bkp_01k1d7w4nt",
      "startedAt": "2026-07-29T01:30:00-04:00",
      "completedAt": "2026-07-29T02:11:39-04:00",
      "status": "completed",
      "filesUploaded": 137,
      "bytesUploaded": 4839201942,
      "warnings": [
        {
          "code": "SOURCE_FILE_CHANGED",
          "path": "/srv/photos/uploads/2026/07/IMG_4821.HEIC",
          "message": "File changed during backup and will be retried."
        }
      ]
    }
  },
  "security": {
    "registrationEnabled": false,
    "requireEmailVerification": true,
    "sessionLifetimeSeconds": 86400,
    "trustedProxies": [
      "172.18.0.0/16"
    ],
    "rateLimits": {
      "loginAttemptsPerMinute": 10,
      "apiRequestsPerMinute": 600,
      "uploadRequestsPerMinute": 120
    },
    "authentication": {
      "local": {
        "enabled": true
      },
      "oidc": {
        "enabled": true,
        "providerName": "Home SSO",
        "issuerUrl": "https://auth.example.net/application/o/northstar/",
        "autoRegister": false,
        "scopes": [
          "openid",
          "profile",
          "email"
        ]
      }
    }
  },
  "health": {
    "status": "healthy",
    "checkedAt": "2026-07-29T14:26:53-04:00",
    "components": [
      {
        "name": "database",
        "status": "healthy",
        "latencyMs": 8
      },
      {
        "name": "objectStorage",
        "status": "healthy",
        "latencyMs": 43
      },
      {
        "name": "machineLearning",
        "status": "degraded",
        "latencyMs": 612,
        "message": "Inference queue is above the configured warning threshold."
      }
    ]
  }
}