[
  {
    "id": "01-gateway-manager",
    "at": "2026-09-18T15:24:33.360Z",
    "build": "http://localhost:3102",
    "path": "/app/integration-config",
    "caption": "Gateway Manager tabs and current configuration list.",
    "callouts": [],
    "visibleText": "Select an option\nPhone\nChat\nAI Agent\nWhat's this?\nSupport\nReport a Bug\nLoading..."
  },
  {
    "id": "02-gateway-load-result",
    "at": "2026-09-18T15:25:29.485Z",
    "build": "http://localhost:3102",
    "path": "/app/integration-config",
    "caption": "Gateway page after reload, with actual load failure recorded separately.",
    "callouts": [],
    "visibleText": "Select an option\nPhone\nChat\nAI Agent\nWhat's this?\nSupport\nReport a Bug\n1\n\n1 waiting on you\n\nOpen Approvals\nGateway Manager\n\nConfigure and manage your gateway integrations\n\nConfigurations\nIntegration Builder\nAPI Playground\nConfigurations\n\nManage your gateway configurations\n\nNew Configuration\nAll Categories\nDatabase\nAPI\nWebhook\nMessaging\nStorage\nAnalytics\nPayment\nAuthentication\nAll Status\nActive\nInactive\nTesting\nError\nNo Configurations Found\n\nCreate your first gateway configuration to get started\n\nCreate Configuration"
  },
  {
    "id": "03-provider-catalog",
    "at": "2026-09-18T15:27:18.805Z",
    "build": "http://localhost:3102",
    "path": "/app/integration-config",
    "caption": "Actual Integration Builder catalog; no generic HTTP or Zapier provider returned by the running registry.",
    "callouts": [],
    "visibleText": "Select an option\nPhone\nChat\nAI Agent\nWhat's this?\nSupport\nReport a Bug\n1\n\n1 waiting on you\n\nOpen Approvals\nGateway Manager\n\nConfigure and manage your gateway integrations\n\nConfigurations\nIntegration Builder\nAPI Playground\nIntegration Builder\n\nCreate and configure gateway integrations\n\n58 integrations available\nMost Popular\nName\nComplexity\nCategories\nAll\n58\nDatabase\n0\nAPI\n58\nWebhook\n0\nMessaging\n0\nStorage\n0\nAnalytics\n0\nPayment\n0\nAuth\n0\nAWSProvider\n\nApi\n\nEmail\nSMS\n+3\nmedium setup\n15-30 min\nEasyPostProvider\n\nApi\n\nMulti-carrier shipping API with USPS, UPS, FedEx, DHL and more\n\nShipping\nLogistics\nmedium setup\n15-30 min\nShippoProvider\n\nApi\n\nShipping platform with discounted rates and batch processing\n\nShipping\nLogistics\nmedium setup\n15-30 min\nShipEngineProvider\n\nApi\n\nShipping API with rate comparison and package tracking\n\nShipping\nLogistics\nmedium setup\n15-30 min\nStampsComProvider\n\nApi\n\nUSPS shipping with commercial pricing\n\nShipping\nLogistics\nmedium setup\n15-30 min\nFedExProvider\n\nApi\n\nDirect integration with FedEx for enterprise shipping\n\nShipping\nLogistics\nmedium setup\n15-30 min\nUPSProvider\n\nApi\n\nDirect integration with UPS for reliable shipping\n\nShipping\nLogistics\nmedium setup\n15-30 min\nTwilioProvider\n\nApi\n\nSMS\nVoice\n+1\nmedium setup\n15-30 min\nSMTPProvider\n\nApi\n\nEmail\nmedium setup\n15-30 min\nIMAPProvider\n\nApi\n\nEmail\nmedium setup\n15-30 min\nMongoDBProvider\n\nApi\n\nDatabase\nmedium setup\n15-30 min\nMqttProvider\n\nApi\n\nIOT\nMQTT\nmedium setup\n15-30 min\nMysqlProvider\n\nApi\n\nDatabase\nmedium setup\n15-30 min\nPostgreSQLProvider\n\nApi\n\nDatabase\nmedium setup\n15-30 min\ndescribePayPalError\n\nApi\n\nmedium setup\n15-30 min\nPayPalProvider\n\nApi\n\nPayment\nSubscription\nmedium setup\n15-30 min\nStripeProvider\n\nApi\n\nPayment\nSubscription\nmedium setup\n15-30 min\nHelcimProvider\n\nApi\n\nHelcim payment gateway integration for card processing\n\nPayment\nSubscription\nmedium setup\n15-30 min\nOpenAIProvider\n\nApi\n\nAI\nVoice\n+2\nmedium setup\n15-30 min\nFacebookProvider\n\nApi\n\nFacebook\nInstagram\n+2\nmedium setup\n15-30 min\nGoogleProvider\n\nApi\n\nEmail\nGoogle\n+13\nmedium setup\n15-30 min\nTwitterProvider\n\nApi\n\nTwitter\nAds\n+1\nmedium setup\n15-30 min\nAnthropicAIProvider\n\nApi\n\nAI\nmedium setup\n15-30 min\nTiktokProvider\n\nApi\n\nTikTok\nAds\n+1\nmedium setup\n15-30 min\nLinkedinProvider\n\nApi\n\nLinkedIn\nAds\n+1\nmedium setup\n15-30 min\nPinterestProvider\n\nApi\n\nPinterest\nAds\n+1\nmedium setup\n15-30 min\nMastodonProvider\n\nApi\n\nMastodon\nSocial Media\nmedium setup\n15-30 min\nBlueskyProvider\n\nApi\n\nBluesky\nSocial Media\nmedium setup\n15-30 min\nThreadsProvider\n\nApi\n\nThreads\nSocial Media\nmedium setup\n15-30 min\nYoutubeProvider\n\nApi\n\nYouTube\nVideo\n+1\nmedium setup\n15-30 min\nGmbProvider\n\nApi\n\nGoogle Business\nGoogle My Business\n+1\nmedium setup\n15-30 min\nSnapchatProvider\n\nApi\n\nSnapchat\nAds\n+1\nmedium setup\n15-30 min\nInfobipProvider\n\nApi\n\nSMS\nEmail\n+1\nmedium setup\n15-30 min\nGoogleGeminiProvider\n\nApi\n\nAI\nmedium setup\n15-30 min\nDeepSeekProvider\n\nApi\n\nAI\nmedium setup\n15-30 min\nPaddleProvider\n\nApi\n\nPayment\nSubscription\nmedium setup\n15-30 min\nOfflineProvider\n\nApi\n\nPayment\nOffline Payment\nmedium setup\n15-30 min\nGiftCardProvider\n\nApi\n\nPayment\nGift Card\nmedium setup\n15-30 min\nAccountBalanceProvider\n\nApi\n\nPayment\nAccount Balance\n+1\nmedium setup\n15-30 min\nFigmaProvider\n\nApi\n\nFigma\nDesign\nmedium setup\n15-30 min\nMicrosoftProvider\n\nApi\n\nVoice\nAI\n+6\nmedium setup\n15-30 min\nSendGridProvider\n\nApi\n\nEmail\nMarketing\n+1\nmedium setup\n15-30 min\nMailgunProvider\n\nApi\n\nEmail\nTransactional Email\n+1\nmedium setup\n15-30 min\nResendProvider\n\nApi\n\nEmail\nTransactional Email\n+1\nmedium setup\n15-30 min\nAmazonProvider\n\nApi\n\nAmazon\nE-commerce\n+2\nmedium setup\n15-30 min\n\nApi\n\nmedium setup\n15-30 min\nEbayProvider\n\nApi\n\neBay\nE-commerce\n+2\nmedium setup\n15-30 min\n\nApi\n\nmedium setup\n15-30 min\nEtsyProvider\n\nApi\n\nEtsy\nE-commerce\n+3\nmedium setup\n15-30 min\n\nApi\n\nmedium setup\n15-30 min\nShopifyProvider\n\nApi\n\nShopify\nE-commerce\n+1\nmedium setup\n15-30 min\n\nApi\n\nmedium setup\n15-30 min\nWooCommerceProvider\n\nApi\n\nWooCommerce\nWordPress\n+2\nmedium setup\n15-30 min\n\nApi\n\nmedium setup\n15-30 min\nWalmartProvider\n\nApi\n\nWalmart\nMarketplace\n+2\nmedium setup\n15-30 min\n\nApi\n\nmedium setup\n15-30 min\nBingProvider\n\nApi\n\nBing Shopping\nMicrosoft Ads\n+2\nmedium setup\n15-30 min\n\nApi\n\nmedium setup\n15-30 min"
  },
  {
    "id": "04-http-search",
    "at": "2026-09-18T15:34:22.560Z",
    "build": "http://localhost:3102",
    "path": "/app/integration-config",
    "caption": "Search result for HTTP in the actual provider catalog.",
    "callouts": [],
    "visibleText": "Select an option\nPhone\nChat\nAI Agent\nWhat's this?\nSupport\nReport a Bug\n1\n\n1 waiting on you\n\nOpen Approvals\nGateway Manager\n\nConfigure and manage your gateway integrations\n\nConfigurations\nIntegration Builder\nAPI Playground\nIntegration Builder\n\nCreate and configure gateway integrations\n\n0 integrations available\nMost Popular\nName\nComplexity\nCategories\nAll\n58\nDatabase\n0\nAPI\n58\nWebhook\n0\nMessaging\n0\nStorage\n0\nAnalytics\n0\nPayment\n0\nAuth\n0"
  },
  {
    "id": "05-smtp-schema",
    "at": "2026-09-18T15:34:22.742Z",
    "build": "http://localhost:3102",
    "path": "/app/integration-config",
    "caption": "SMTP provider configuration fields; no credentials entered and no mail sent.",
    "callouts": [],
    "visibleText": "Select an option\nPhone\nChat\nAI Agent\nWhat's this?\nSupport\nReport a Bug\n1\n\n1 waiting on you\n\nOpen Approvals\nGateway Manager\n\nConfigure and manage your gateway integrations\n\nConfigurations\nIntegration Builder\nAPI Playground\nSMTPProvider Configuration\n\nSMTPProvider Integration\n\nTest\nCancel\nUse Cases\nEmail\nSave\nCancel\nConfig\nName\nType\nEmail\nUse Cases\nPriority\nHigher priority gateways are used first when more than one can do the same job (0-100). This is the only thing that picks between them — nothing points at a gateway from anywhere else.\nProvider\nEmail\nHost\nPort\nTls\nUse setting\nSecure\nUse setting\nAuth\nUser\nPass\nSend outgoing mail through this server\nUse setting\nMake this server eligible to send the system's outgoing mail."
  },
  {
    "id": "06-playground",
    "at": "2026-09-18T15:34:22.895Z",
    "build": "http://localhost:3102",
    "path": "/app/integration-config",
    "caption": "Actual API Playground before supplying credentials or running any provider action.",
    "callouts": [],
    "visibleText": "Select an option\nPhone\nChat\nAI Agent\nWhat's this?\nSupport\nReport a Bug\n1\n\n1 waiting on you\n\nOpen Approvals\nGateway Manager\n\nConfigure and manage your gateway integrations\n\nConfigurations\nIntegration Builder\nAPI Playground\nAPI Playground\n\nTest integration endpoints and view API documentation\n\nAuth Method:\nAPI Key\nAuth Token\nSelect API Key...\nManage Keys\nActive Integrations\n\nNo active integrations\n\nConfigure integrations first\n\nSelect an Integration\n\nChoose an active integration to view and test its APIs"
  },
  {
    "id": "07-supplier-results",
    "at": "2026-09-18T15:35:25.810Z",
    "build": "null",
    "path": "/Users/imzee/projects/docs/tutorials-plan/course-content/assets/appengine-gateway/07-supplier-results.txt",
    "caption": "Sanitized real supplier-fixture and AppEngine responses, displayed as text.",
    "callouts": [],
    "visibleText": "Actual controlled supplier responses\n18 September 2026 — training fixture, credentials omitted\n\n{\n  \"available\": {\n    \"status\": 200,\n    \"body\": {\n      \"sku\": \"NW-OAK-24\",\n      \"available\": 12,\n      \"leadTimeWeeks\": 3\n    }\n  },\n  \"empty\": {\n    \"status\": 200,\n    \"body\": {\n      \"sku\": \"EMPTY\",\n      \"available\": 0,\n      \"leadTimeWeeks\": 3\n    }\n  },\n  \"bad-credential\": {\n    \"status\": 401,\n    \"body\": {\n      \"error\": \"Invalid training supplier key\"\n    }\n  },\n  \"provider-unavailable\": {\n    \"status\": 503,\n    \"body\": {\n      \"error\": \"Training supplier temporarily unavailable\"\n    }\n  }\n}\n"
  },
  {
    "id": "08-saved-business-note",
    "at": "2026-09-18T15:35:25.867Z",
    "build": "null",
    "path": "/Users/imzee/projects/docs/tutorials-plan/course-content/assets/appengine-gateway/08-saved-business-note.txt",
    "caption": "Sanitized real supplier-fixture and AppEngine responses, displayed as text.",
    "callouts": [],
    "visibleText": "Actual AppEngine note readback\n18 September 2026 — training fixture, credentials omitted\n\n{\n  \"status\": 200,\n  \"body\": [\n    {\n      \"author\": \"learnmu4qn1ha@example.com\",\n      \"comment\": \"Tutorial Northwind Timber check: NW-OAK-24; 12 units available; lead time 3 weeks. Checked 2026-09-18T15:25:40.063Z. Supplier fixture, not a placed order.\",\n      \"date\": \"2026-09-18T15:25:40.069Z\"\n    }\n  ]\n}\n"
  },
  {
    "id": "09-gateway-errors",
    "at": "2026-09-18T15:35:25.935Z",
    "build": "null",
    "path": "/Users/imzee/projects/docs/tutorials-plan/course-content/assets/appengine-gateway/09-gateway-errors.txt",
    "caption": "Sanitized real supplier-fixture and AppEngine responses, displayed as text.",
    "callouts": [],
    "visibleText": "Actual gateway prerequisite errors\n18 September 2026 — training fixture, credentials omitted\n\n{\n  \"missingProvider\": {\n    \"status\": 404,\n    \"body\": {\n      \"statusCode\": 404,\n      \"error\": \"TutorialNorthwindProvider  - default\",\n      \"path\": \"/upstream/call/TutorialNorthwindProvider/availability\",\n      \"method\": \"POST\",\n      \"timeStamp\": \"2026-09-18T15:25:40.086Z\"\n    }\n  },\n  \"noOrg\": {\n    \"status\": 400,\n    \"body\": {\n      \"code\": \"missing_orgid\",\n      \"statusCode\": 400,\n      \"error\": \"Organization ID is required. Pass orgid as a header, query param, or body field.\",\n      \"path\": \"/\",\n      \"method\": \"GET\",\n      \"timeStamp\": \"2026-09-18T15:25:40.088Z\"\n    }\n  },\n  \"noAuth\": {\n    \"status\": 401,\n    \"body\": {\n      \"code\": \"missing_authorization_header\",\n      \"statusCode\": 401,\n      \"error\": \"Authorization header is required. Send requests with `Authorization: Bearer <token>`.\",\n      \"path\": \"/upstream/integration-types\",\n      \"method\": \"GET\",\n      \"timeStamp\": \"2026-09-18T15:25:40.091Z\"\n    }\n  }\n}\n"
  }
]
