{
  "generated_at": "2026-04-15T23:16:34.974Z",
  "system": {
    "id": "webcart",
    "name": "WebCart",
    "slug": "webcart",
    "kind": "application",
    "summary": "WebCart e-commerce platform containing open-shop (single-tenant Remix starter) and cloudshop (multi-tenant SaaS storefront) sharing a Cloudflare Pages + D1 + R2 + Stripe foundation, with per-tenant subdomain routing, plan-gated quotas, AI-assisted catalog generation, and public import APIs.",
    "aliases": [],
    "lifecycle": "active",
    "last_verified": "2026-04-15",
    "owners": [
      "third-party-applications"
    ],
    "repo_paths": [
      "ThirdPartyApplications/WebCart"
    ],
    "service_ids": [
      "srv_webcart"
    ],
    "visibility": "public",
    "api_contract": {
      "type": "curated",
      "source": "PlatformApplications/TopoloDocs/src/content/internal/apps/webcart.mdx"
    },
    "primary_hosts": [
      "https://webcart.uk",
      "https://cloudshop.pages.dev"
    ],
    "doc_paths": [
      "applications/webcart",
      "internal/apps/webcart"
    ],
    "dependencies": [
      "topolo-auth"
    ],
    "public_hub_url": "/systems/webcart",
    "internal_hub_url": null,
    "application_api_url": "/reference/apps/webcart",
    "generated_openapi_url": null,
    "machine_urls": {
      "system": "/machine/systems/webcart.json",
      "application": "/machine/applications/webcart.json"
    }
  },
  "docs": {
    "public": [
      {
        "id": "applications/webcart.mdx",
        "title": "WebCart",
        "summary": "Public overview of the WebCart e-commerce platform - open-shop single-tenant starter and cloudshop multi-tenant storefront with per-tenant subdomains, plan-gated quotas, and public import API.",
        "audience": "public",
        "tags": [
          "webcart",
          "commerce",
          "multi-tenant",
          "remix"
        ],
        "url": "/applications/webcart.mdx",
        "last_verified": "2026-04-15"
      }
    ],
    "internal": [],
    "runbooks": []
  },
  "authority": {
    "owners": [
      "third-party-applications"
    ],
    "repo_paths": [
      "ThirdPartyApplications/WebCart"
    ],
    "service_ids": [
      "srv_webcart"
    ],
    "dependencies": [
      "topolo-auth"
    ],
    "aliases": []
  },
  "interfaces": {
    "contract_type": "curated",
    "contract_source": "PlatformApplications/TopoloDocs/src/content/internal/apps/webcart.mdx",
    "contract_source_exists": true,
    "openapi": null,
    "readme": null
  },
  "auth": {
    "depends_on_topolo_auth": true,
    "api_key_scopes": [
      {
        "id": "aks_webcart_customers_read",
        "name": "customers.read",
        "description": "Read customers via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_webcart_inventory_read",
        "name": "inventory.read",
        "description": "Read inventory levels via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_webcart_inventory_write",
        "name": "inventory.write",
        "description": "Adjust inventory via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_webcart_orders_read",
        "name": "orders.read",
        "description": "Read orders via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_webcart_orders_write",
        "name": "orders.write",
        "description": "Create and update orders via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_webcart_products_import",
        "name": "products.import",
        "description": "Bulk import products via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_webcart_products_read",
        "name": "products.read",
        "description": "Read product catalog via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_webcart_products_write",
        "name": "products.write",
        "description": "Create and update products via public API",
        "resourcePattern": null,
        "kind": "api_key_scope"
      }
    ],
    "service_permissions": [
      {
        "id": "perm_webcart_api_keys_read",
        "name": "api_keys:read",
        "description": "View tenant API keys and their activity",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_api_keys_write",
        "name": "api_keys:write",
        "description": "Issue, rotate, and revoke tenant API keys",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_billing_read",
        "name": "billing:read",
        "description": "View plan, quota usage, and billing history",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_billing_write",
        "name": "billing:write",
        "description": "Change plan, manage payment methods, and purchase credits",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_categories_read",
        "name": "categories:read",
        "description": "View categories and taxonomy",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_categories_write",
        "name": "categories:write",
        "description": "Create, update, and delete categories",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_customers_read",
        "name": "customers:read",
        "description": "View customers and order history",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_customers_write",
        "name": "customers:write",
        "description": "Create and update customer records",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_dashboard_read",
        "name": "dashboard:read",
        "description": "View WebCart dashboards and storefront summaries",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_discounts_read",
        "name": "discounts:read",
        "description": "View discounts and promotional codes",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_discounts_write",
        "name": "discounts:write",
        "description": "Create and manage discounts and promotional codes",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_integrations_read",
        "name": "integrations:read",
        "description": "View Stripe, email, and third-party integration metadata",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_integrations_write",
        "name": "integrations:write",
        "description": "Manage Stripe, email, and third-party integration credentials",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_inventory_read",
        "name": "inventory:read",
        "description": "View stock levels and inventory snapshots",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_inventory_write",
        "name": "inventory:write",
        "description": "Adjust stock levels and manage inventory",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_orders_read",
        "name": "orders:read",
        "description": "View orders and fulfillment status",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_orders_write",
        "name": "orders:write",
        "description": "Create, update, and manage orders and fulfillment",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_products_import",
        "name": "products:import",
        "description": "Bulk import products via CSV, AI generation, or public API",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_products_read",
        "name": "products:read",
        "description": "View products and catalogs",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_products_write",
        "name": "products:write",
        "description": "Create, update, and delete products",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_reports_read",
        "name": "reports:read",
        "description": "View storefront analytics and performance reports",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_settings_read",
        "name": "settings:read",
        "description": "View tenant storefront settings",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_settings_write",
        "name": "settings:write",
        "description": "Manage tenant storefront settings",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_tenants_read",
        "name": "tenants:read",
        "description": "View tenant storefronts and plan state",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_webcart_tenants_write",
        "name": "tenants:write",
        "description": "Create, update, and provision tenant storefronts",
        "resourcePattern": null,
        "kind": "permission"
      }
    ]
  },
  "runtime": {
    "primary_hosts": [
      "https://webcart.uk",
      "https://cloudshop.pages.dev"
    ],
    "repo_entries": [
      "ThirdPartyApplications/WebCart/apps/",
      "ThirdPartyApplications/WebCart/package.json",
      "ThirdPartyApplications/WebCart/packages/",
      "ThirdPartyApplications/WebCart/topolo.cloudcontrol.json"
    ],
    "wrangler_surfaces": [
      {
        "path": "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
        "observabilityEnabled": false,
        "environments": [],
        "routes": [],
        "vars": [
          "DEFAULT_CURRENCY",
          "SITE_URL"
        ],
        "bindings": [
          {
            "kind": "d1",
            "binding": "DB",
            "sourcePath": "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
            "target": "f54110a7-7fbd-4f78-a37c-308f7efeb749"
          },
          {
            "kind": "r2",
            "binding": "IMAGES",
            "sourcePath": "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
            "target": "cloudshop-images"
          },
          {
            "kind": "r2",
            "binding": "DB_BACKUPS",
            "sourcePath": "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
            "target": "cloudshop-db-backups"
          }
        ],
        "cronTriggers": [],
        "workerName": "cloudshop",
        "compatibilityDate": "2024-11-18"
      },
      {
        "path": "ThirdPartyApplications/WebCart/apps/open-shop/wrangler.toml",
        "observabilityEnabled": false,
        "environments": [],
        "routes": [],
        "vars": [
          "CURRENCY",
          "SITE_URL"
        ],
        "bindings": [
          {
            "kind": "d1",
            "binding": "DB",
            "sourcePath": "ThirdPartyApplications/WebCart/apps/open-shop/wrangler.toml",
            "target": "YOUR_DATABASE_ID_HERE"
          },
          {
            "kind": "r2",
            "binding": "IMAGES",
            "sourcePath": "ThirdPartyApplications/WebCart/apps/open-shop/wrangler.toml",
            "target": "open-shop-images"
          }
        ],
        "cronTriggers": [],
        "workerName": "open-shop",
        "compatibilityDate": "2024-11-18"
      }
    ],
    "packages": [
      {
        "path": "ThirdPartyApplications/WebCart/apps/cloudshop/package.json",
        "name": "@webcart/cloudshop",
        "description": "Multi-tenant e-commerce platform extending open-shop",
        "scripts": [
          "dev",
          "build",
          "start",
          "deploy",
          "db:migrate",
          "db:migrate:prod",
          "db:seed",
          "db:backup",
          "typecheck"
        ],
        "scriptCommands": [
          {
            "name": "dev",
            "command": "remix vite:dev"
          },
          {
            "name": "build",
            "command": "remix vite:build"
          },
          {
            "name": "start",
            "command": "wrangler pages dev ./build/client"
          },
          {
            "name": "deploy",
            "command": "npm run build && wrangler pages deploy ./build/client"
          },
          {
            "name": "db:migrate",
            "command": "wrangler d1 migrations apply cloudshop-db --local"
          },
          {
            "name": "db:migrate:prod",
            "command": "wrangler d1 migrations apply cloudshop-db --remote"
          },
          {
            "name": "db:seed",
            "command": "wrangler d1 execute cloudshop-db --local --file=./seed.sql"
          },
          {
            "name": "db:backup",
            "command": "bash scripts/backup-d1.sh"
          },
          {
            "name": "typecheck",
            "command": "tsc"
          }
        ]
      },
      {
        "path": "ThirdPartyApplications/WebCart/apps/open-shop/package.json",
        "name": "@webcart/open-shop",
        "description": "Open source e-commerce platform built with Remix, Cloudflare Pages, and D1",
        "scripts": [
          "dev",
          "build",
          "start",
          "deploy",
          "db:migrate",
          "db:migrate:prod",
          "db:seed",
          "typecheck"
        ],
        "scriptCommands": [
          {
            "name": "dev",
            "command": "remix vite:dev"
          },
          {
            "name": "build",
            "command": "remix vite:build"
          },
          {
            "name": "start",
            "command": "wrangler pages dev ./build/client"
          },
          {
            "name": "deploy",
            "command": "npm run build && wrangler pages deploy ./build/client"
          },
          {
            "name": "db:migrate",
            "command": "wrangler d1 execute justmeats-db --local --file=./schema.sql"
          },
          {
            "name": "db:migrate:prod",
            "command": "wrangler d1 execute justmeats-db --file=./schema.sql"
          },
          {
            "name": "db:seed",
            "command": "wrangler d1 execute justmeats-db --local --file=./seed.sql"
          },
          {
            "name": "typecheck",
            "command": "tsc"
          }
        ]
      },
      {
        "path": "ThirdPartyApplications/WebCart/package.json",
        "name": "webcart",
        "scripts": [
          "dev:cloudshop",
          "dev:open-shop",
          "build",
          "build:cloudshop",
          "build:open-shop",
          "typecheck"
        ],
        "scriptCommands": [
          {
            "name": "dev:cloudshop",
            "command": "npm run dev -w @webcart/cloudshop"
          },
          {
            "name": "dev:open-shop",
            "command": "npm run dev -w @webcart/open-shop"
          },
          {
            "name": "build",
            "command": "npm run build -w @webcart/open-shop && npm run build -w @webcart/cloudshop"
          },
          {
            "name": "build:cloudshop",
            "command": "npm run build -w @webcart/cloudshop"
          },
          {
            "name": "build:open-shop",
            "command": "npm run build -w @webcart/open-shop"
          },
          {
            "name": "typecheck",
            "command": "npm run typecheck -w @webcart/open-shop && npm run typecheck -w @webcart/cloudshop"
          }
        ]
      },
      {
        "path": "ThirdPartyApplications/WebCart/packages/topolo-auth-client/package.json",
        "name": "@topolo/auth-client",
        "description": "Shared authentication client for Topolo applications",
        "scripts": [
          "build",
          "dev",
          "typecheck"
        ],
        "scriptCommands": [
          {
            "name": "build",
            "command": "tsup src/index.ts --format esm,cjs --dts"
          },
          {
            "name": "dev",
            "command": "tsup src/index.ts --format esm,cjs --dts --watch"
          },
          {
            "name": "typecheck",
            "command": "tsc --noEmit"
          }
        ]
      },
      {
        "path": "ThirdPartyApplications/WebCart/packages/topolo-auth-middleware/package.json",
        "name": "@topolo/auth-middleware",
        "scripts": [],
        "scriptCommands": []
      }
    ]
  },
  "data": {
    "env_vars": [
      "CURRENCY",
      "DEFAULT_CURRENCY",
      "SITE_URL"
    ],
    "bindings": [
      {
        "kind": "d1",
        "binding": "DB",
        "sourcePath": "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
        "target": "f54110a7-7fbd-4f78-a37c-308f7efeb749"
      },
      {
        "kind": "r2",
        "binding": "IMAGES",
        "sourcePath": "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
        "target": "cloudshop-images"
      },
      {
        "kind": "r2",
        "binding": "DB_BACKUPS",
        "sourcePath": "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
        "target": "cloudshop-db-backups"
      },
      {
        "kind": "d1",
        "binding": "DB",
        "sourcePath": "ThirdPartyApplications/WebCart/apps/open-shop/wrangler.toml",
        "target": "YOUR_DATABASE_ID_HERE"
      },
      {
        "kind": "r2",
        "binding": "IMAGES",
        "sourcePath": "ThirdPartyApplications/WebCart/apps/open-shop/wrangler.toml",
        "target": "open-shop-images"
      }
    ],
    "queue_bindings": [],
    "storage_kinds": [
      "d1",
      "r2"
    ],
    "workflow_signals": []
  },
  "deployment": {
    "commands": [
      {
        "name": "build",
        "command": "ThirdPartyApplications/WebCart/apps/cloudshop/package.json :: remix vite:build"
      },
      {
        "name": "deploy",
        "command": "ThirdPartyApplications/WebCart/apps/cloudshop/package.json :: npm run build && wrangler pages deploy ./build/client"
      },
      {
        "name": "build",
        "command": "ThirdPartyApplications/WebCart/apps/open-shop/package.json :: remix vite:build"
      },
      {
        "name": "deploy",
        "command": "ThirdPartyApplications/WebCart/apps/open-shop/package.json :: npm run build && wrangler pages deploy ./build/client"
      },
      {
        "name": "build",
        "command": "ThirdPartyApplications/WebCart/package.json :: npm run build -w @webcart/open-shop && npm run build -w @webcart/cloudshop"
      },
      {
        "name": "build:cloudshop",
        "command": "ThirdPartyApplications/WebCart/package.json :: npm run build -w @webcart/cloudshop"
      },
      {
        "name": "build:open-shop",
        "command": "ThirdPartyApplications/WebCart/package.json :: npm run build -w @webcart/open-shop"
      },
      {
        "name": "build",
        "command": "ThirdPartyApplications/WebCart/packages/topolo-auth-client/package.json :: tsup src/index.ts --format esm,cjs --dts"
      }
    ],
    "routes": [],
    "environments": [],
    "assets_directories": [],
    "observability_enabled": false
  },
  "debugging": {
    "failure_modes": [
      "Neither OpenAPI nor README-derived interface detail was found."
    ],
    "entrypoints": [
      "ThirdPartyApplications/WebCart/apps/cloudshop/wrangler.toml",
      "ThirdPartyApplications/WebCart/apps/open-shop/wrangler.toml",
      "PlatformApplications/TopoloDocs/src/content/internal/apps/webcart.mdx",
      "ThirdPartyApplications/WebCart/apps/cloudshop/package.json",
      "ThirdPartyApplications/WebCart/apps/open-shop/package.json",
      "ThirdPartyApplications/WebCart/package.json",
      "ThirdPartyApplications/WebCart/packages/topolo-auth-client/package.json",
      "ThirdPartyApplications/WebCart/packages/topolo-auth-middleware/package.json"
    ]
  }
}