← back to Dw Signup Fulfillment
TK-11366: read-only app forensics - recover install order, surface shipping-scoped apps
b2704f9671dd6730cf49bb16975cdd441e7ef924 · 2026-09-10 09:41:31 -0700 · Steve Abrams
AppInstallation exposes no createdAt, so timestamps are unavailable. Worked around it:
Shopify installation IDs are broadly monotonic, so sorting by numeric id recovers
install ORDER for free. 130 installations enumerated and ranked.
Apps holding shipping/delivery/checkout/cart-transform scopes, newest first:
Blockify: Fraud Filter (cart_transforms), two DW-owned custom tokens carrying
write_shipping + write_delivery_customizations + write_delivery_option_generators,
creativehub, Specsheet, DropdownVendortoNewSku, n8n, Gelato, Pixels, Kickflip,
Printful, Regios Discounts.
Top lead, explicitly CORRELATION NOT CAUSATION: Blockify is the 2nd-newest install and
the local blockify-allowlist-canary records Steve declining Blockify Premium on
2026-08-18 - the exact onset date of the flip. Mechanism gap is real: Blockify is
fraud/geo-blocking and cart_transforms alter cart lines, not delivery-option ordering.
Sent to the contrarian before being treated as a lead.
Read-only throughout.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Files touched
A verification/tk10836/app-install-order.jsonA verification/tk10836/verify-app-install-order.jsA verification/tk10836/verify-app-inventory.js
Diff
commit b2704f9671dd6730cf49bb16975cdd441e7ef924
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Sep 10 09:41:31 2026 -0700
TK-11366: read-only app forensics - recover install order, surface shipping-scoped apps
AppInstallation exposes no createdAt, so timestamps are unavailable. Worked around it:
Shopify installation IDs are broadly monotonic, so sorting by numeric id recovers
install ORDER for free. 130 installations enumerated and ranked.
Apps holding shipping/delivery/checkout/cart-transform scopes, newest first:
Blockify: Fraud Filter (cart_transforms), two DW-owned custom tokens carrying
write_shipping + write_delivery_customizations + write_delivery_option_generators,
creativehub, Specsheet, DropdownVendortoNewSku, n8n, Gelato, Pixels, Kickflip,
Printful, Regios Discounts.
Top lead, explicitly CORRELATION NOT CAUSATION: Blockify is the 2nd-newest install and
the local blockify-allowlist-canary records Steve declining Blockify Premium on
2026-08-18 - the exact onset date of the flip. Mechanism gap is real: Blockify is
fraud/geo-blocking and cart_transforms alter cart lines, not delivery-option ordering.
Sent to the contrarian before being treated as a lead.
Read-only throughout.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---
verification/tk10836/app-install-order.json | 919 +++++++++++++++++++++++
verification/tk10836/verify-app-install-order.js | 40 +
verification/tk10836/verify-app-inventory.js | 42 ++
3 files changed, 1001 insertions(+)
diff --git a/verification/tk10836/app-install-order.json b/verification/tk10836/app-install-order.json
new file mode 100644
index 0000000..fcbea16
--- /dev/null
+++ b/verification/tk10836/app-install-order.json
@@ -0,0 +1,919 @@
+[
+ {
+ "id": 591510929459,
+ "title": "Access 81726",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 589736214579,
+ "title": "Blockify: Fraud Filter",
+ "dev": "Blockify",
+ "ship": [
+ "write_cart_transforms",
+ "read_cart_transforms"
+ ]
+ },
+ {
+ "id": 589685981235,
+ "title": "81026 API ",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 588989792307,
+ "title": "Full Access",
+ "dev": "app developer",
+ "ship": [
+ "write_checkout_branding_settings",
+ "read_checkout_branding_settings",
+ "write_shipping",
+ "read_shipping",
+ "read_all_cart_transforms",
+ "write_cart_transforms",
+ "read_cart_transforms",
+ "write_delivery_customizations",
+ "read_delivery_customizations",
+ "write_delivery_option_generators",
+ "read_delivery_option_generators",
+ "write_marketing_integrated_campaigns",
+ "read_marketing_integrated_campaigns"
+ ]
+ },
+ {
+ "id": 588800032819,
+ "title": "dw-signup-fulfillment",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 588791119923,
+ "title": "Giftcard access",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 586518036531,
+ "title": "dw-free-samples",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 585193914419,
+ "title": "Search & Discovery",
+ "dev": "Shopify",
+ "ship": []
+ },
+ {
+ "id": 562588680243,
+ "title": "Weekend Report1",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 561378525235,
+ "title": "FA 5-7-26",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": [
+ "read_cart_transforms",
+ "write_cart_transforms",
+ "read_all_cart_transforms",
+ "read_checkout_and_accounts_configurations",
+ "write_checkout_and_accounts_configurations",
+ "read_checkout_branding_settings",
+ "write_checkout_branding_settings",
+ "write_checkouts",
+ "read_checkouts",
+ "read_delivery_customizations",
+ "write_delivery_customizations",
+ "read_delivery_option_generators",
+ "write_delivery_option_generators",
+ "read_marketing_integrated_campaigns",
+ "write_marketing_integrated_campaigns",
+ "read_shipping",
+ "write_shipping",
+ "unauthenticated_write_checkouts",
+ "unauthenticated_read_checkouts"
+ ]
+ },
+ {
+ "id": 556467978291,
+ "title": "Full Access",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 551024459827,
+ "title": "Theme Editor",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 550364708915,
+ "title": "Claude",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 547098492979,
+ "title": "creativehub",
+ "dev": "creativehub",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 539827306547,
+ "title": "ImportNewSkufromURL-12-10-25",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 528260169779,
+ "title": "DWAutoPostBlog",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 528259547187,
+ "title": "Vendor URL to Shopify Sku 10-17-25",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 528258990131,
+ "title": "read_orders_read_customers",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 521950625843,
+ "title": "Claude-110925",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 521521987635,
+ "title": "readorderreadproducts",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 521272852531,
+ "title": "Readwritecontent",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 521057828915,
+ "title": "readwritethemes",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 521056649267,
+ "title": "readwritethemes",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 521018310707,
+ "title": "Redorderonly",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 519981269043,
+ "title": "readwriteclients",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 519936049203,
+ "title": "read-orders",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 519913144371,
+ "title": "DW-MCP-Read-Orders",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 519909736499,
+ "title": "Slack DW-MCP bo",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 519882604595,
+ "title": "DW-Write-Content",
+ "dev": "Designer Wallcoverings and Fabrics",
+ "ship": []
+ },
+ {
+ "id": 519270826035,
+ "title": "Commercial-Wallcovering-Specs",
+ "dev": "app developer",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 519270826035,
+ "title": "Commercial-Wallcovering-Specs",
+ "dev": "app developer",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 518772129843,
+ "title": "Specsheet",
+ "dev": "app developer",
+ "ship": [
+ "write_checkout_branding_settings",
+ "read_checkout_branding_settings",
+ "write_shipping",
+ "read_shipping",
+ "read_all_cart_transforms",
+ "write_cart_transforms",
+ "read_cart_transforms",
+ "write_delivery_customizations",
+ "read_delivery_customizations",
+ "write_delivery_option_generators",
+ "read_delivery_option_generators",
+ "write_marketing_integrated_campaigns",
+ "read_marketing_integrated_campaigns"
+ ]
+ },
+ {
+ "id": 518137643059,
+ "title": "DropdownVendortoNewSku",
+ "dev": "app developer",
+ "ship": [
+ "write_checkout_branding_settings",
+ "read_checkout_branding_settings",
+ "write_shipping",
+ "read_shipping",
+ "read_all_cart_transforms",
+ "write_cart_transforms",
+ "read_cart_transforms",
+ "write_delivery_customizations",
+ "read_delivery_customizations",
+ "write_delivery_option_generators",
+ "read_delivery_option_generators",
+ "write_marketing_integrated_campaigns",
+ "read_marketing_integrated_campaigns"
+ ]
+ },
+ {
+ "id": 517034606643,
+ "title": "shopify-sku-to-blog",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 514130903091,
+ "title": "Color Wheel",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 512132677683,
+ "title": "Create New SKU",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 511326322739,
+ "title": "GrassclothWallcoverings Scraper",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 511320064051,
+ "title": "GrassclothWallcoverings.com",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 511236735027,
+ "title": "Email to Blog with Claude",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 510940839987,
+ "title": "DW-Dupliacte-Recolor",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 510012063795,
+ "title": "N8n-Gmail-to-blog-9/18/25",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 503495622707,
+ "title": "N8n Shopify Product AI",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 503475863603,
+ "title": "Checking AI data points",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 501877866547,
+ "title": "N8n Greendomainbrokers",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 488131166259,
+ "title": "N8N Ai Generative Deacriptions",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 486857605171,
+ "title": "n8n",
+ "dev": "app developer",
+ "ship": [
+ "read_checkout_branding_settings",
+ "write_checkout_branding_settings"
+ ]
+ },
+ {
+ "id": 471935778867,
+ "title": "Gelato: Print on Demand",
+ "dev": "Gelato",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 471932698675,
+ "title": "Pixels - Print On Demand",
+ "dev": "Pixels.com",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 471462117427,
+ "title": "Simply Framed - Print & Frame",
+ "dev": "SimplyFramed",
+ "ship": []
+ },
+ {
+ "id": 467841679411,
+ "title": "Kickflip",
+ "dev": "Kickflip",
+ "ship": [
+ "write_cart_transforms",
+ "read_cart_transforms"
+ ]
+ },
+ {
+ "id": 460147130419,
+ "title": "Theme Updater & Backups",
+ "dev": "Out of the Sandbox",
+ "ship": []
+ },
+ {
+ "id": 450816835635,
+ "title": "Printful",
+ "dev": "Printful Latvia AS",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 429743210547,
+ "title": "Contrado: Print on Demand",
+ "dev": "Contrado",
+ "ship": []
+ },
+ {
+ "id": 424928149555,
+ "title": "Smart Image Upload",
+ "dev": "Craftshift",
+ "ship": []
+ },
+ {
+ "id": 423887142963,
+ "title": "Casa Google Shopping",
+ "dev": "Casa Apps",
+ "ship": []
+ },
+ {
+ "id": 423856930867,
+ "title": "ShareASale",
+ "dev": "ShareASale",
+ "ship": []
+ },
+ {
+ "id": 418641870899,
+ "title": "Regios Discounts",
+ "dev": "Regios Technologies, Inc.",
+ "ship": [
+ "read_cart_transforms",
+ "read_shipping",
+ "write_cart_transforms"
+ ]
+ },
+ {
+ "id": 380074885171,
+ "title": "Sendvio: Email & SMS",
+ "dev": "Sendvio",
+ "ship": []
+ },
+ {
+ "id": 360686813235,
+ "title": "Visual Search",
+ "dev": "Shopix",
+ "ship": []
+ },
+ {
+ "id": 355496919091,
+ "title": "Theme Access",
+ "dev": "Shopify",
+ "ship": []
+ },
+ {
+ "id": 355412574259,
+ "title": "Cowlendar Booking",
+ "dev": "Booking Appointment Cowlendar",
+ "ship": []
+ },
+ {
+ "id": 355412541491,
+ "title": "Easy Appointment Booking",
+ "dev": "📆 Servicify",
+ "ship": []
+ },
+ {
+ "id": 355310796851,
+ "title": "BOLD Custom Pricing: Wholesale",
+ "dev": "Bold",
+ "ship": []
+ },
+ {
+ "id": 355216949299,
+ "title": "Easy GTIN/UPC Sync for Google",
+ "dev": "Key Solutions",
+ "ship": []
+ },
+ {
+ "id": 355215015987,
+ "title": "Messaging",
+ "dev": "Shopify",
+ "ship": [
+ "read_checkout_settings"
+ ]
+ },
+ {
+ "id": 343682973747,
+ "title": "test4",
+ "dev": "app developer",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 343682908211,
+ "title": "Db FmPro",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 343517855795,
+ "title": "Handshake: Buy Wholesale",
+ "dev": "Shopify",
+ "ship": []
+ },
+ {
+ "id": 343517790259,
+ "title": "Sheets - Data Connector",
+ "dev": "Feed.Biz",
+ "ship": [
+ "read_checkouts"
+ ]
+ },
+ {
+ "id": 337475502131,
+ "title": "Zapier",
+ "dev": "Zapier Inc",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 323543236659,
+ "title": "Apippa-Custom Price Calc",
+ "dev": "ApiPPA",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 323324215347,
+ "title": "Hukify - PDF Catalog Printer",
+ "dev": "HukCommerce Agency",
+ "ship": []
+ },
+ {
+ "id": 321643446323,
+ "title": "Etsy Integration - DPL",
+ "dev": "Digital Product Labs",
+ "ship": []
+ },
+ {
+ "id": 314179682355,
+ "title": "Dropshipping-Alibaba Official",
+ "dev": "Alibaba",
+ "ship": []
+ },
+ {
+ "id": 313487458355,
+ "title": "Clearco",
+ "dev": "Clearco",
+ "ship": []
+ },
+ {
+ "id": 310207709235,
+ "title": "Speedster Page Speed Optimizer",
+ "dev": "Crucial Commerce Apps",
+ "ship": []
+ },
+ {
+ "id": 310207643699,
+ "title": "Booster Page Speed Optimizer",
+ "dev": "Booster SEO",
+ "ship": []
+ },
+ {
+ "id": 309762883635,
+ "title": "Combo Wise | VendorHub",
+ "dev": "Charanpahariapp",
+ "ship": []
+ },
+ {
+ "id": 211111870515,
+ "title": "Squirai AI SEO",
+ "dev": "Squirai Technology Ltd.",
+ "ship": []
+ },
+ {
+ "id": 211111575603,
+ "title": "Сalendify",
+ "dev": "Zen merchant",
+ "ship": []
+ },
+ {
+ "id": 211111542835,
+ "title": "eBay Integration - CED",
+ "dev": "CedCommerce",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 211111280691,
+ "title": "Post Studio - Social Auto Post",
+ "dev": "Post Studio",
+ "ship": []
+ },
+ {
+ "id": 211111247923,
+ "title": "FeedHub - Google Feed",
+ "dev": "OneCommerce",
+ "ship": []
+ },
+ {
+ "id": 211111215155,
+ "title": "Sesami Booking App",
+ "dev": "Sesami Inc.",
+ "ship": []
+ },
+ {
+ "id": 211111182387,
+ "title": "Video Ad Machine",
+ "dev": "Product Hero Ltd.",
+ "ship": []
+ },
+ {
+ "id": 209334534195,
+ "title": "Covet Instagram Feed & Reviews",
+ "dev": "Space Squirrel Ltd.",
+ "ship": []
+ },
+ {
+ "id": 206788755507,
+ "title": "Fabricut",
+ "dev": "app developer",
+ "ship": [
+ "unauthenticated_write_checkouts",
+ "unauthenticated_read_checkouts"
+ ]
+ },
+ {
+ "id": 202016587827,
+ "title": "Zonos Duty and Tax",
+ "dev": "Zonos",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 185187827777,
+ "title": "TestimonialHub",
+ "dev": "LJ Apps",
+ "ship": []
+ },
+ {
+ "id": 183962501185,
+ "title": "Related Posts",
+ "dev": "Digital Darts",
+ "ship": []
+ },
+ {
+ "id": 183628202049,
+ "title": "Customify",
+ "dev": "Customify",
+ "ship": []
+ },
+ {
+ "id": 179595149377,
+ "title": "BAIS Bulk Account Invites Send",
+ "dev": "Matt Loszak",
+ "ship": []
+ },
+ {
+ "id": 98066759745,
+ "title": "Google, Bing Facebook Shopping",
+ "dev": "CedCommerce",
+ "ship": []
+ },
+ {
+ "id": 98044641345,
+ "title": "Etsy Integration - CED",
+ "dev": "CedCommerce",
+ "ship": []
+ },
+ {
+ "id": 97667317825,
+ "title": "Foldsquare - Catalog Maker",
+ "dev": "Now In Store Inc.",
+ "ship": []
+ },
+ {
+ "id": 97627897921,
+ "title": "Tipo Related Products",
+ "dev": "tipo.io",
+ "ship": []
+ },
+ {
+ "id": 97609187393,
+ "title": "Page Studio",
+ "dev": "ShopPad Inc.",
+ "ship": []
+ },
+ {
+ "id": 97537065025,
+ "title": "Bulk Edit Tags",
+ "dev": "Power Tools",
+ "ship": []
+ },
+ {
+ "id": 97516617793,
+ "title": "Infinite Options",
+ "dev": "ShopPad Inc.",
+ "ship": []
+ },
+ {
+ "id": 97505804353,
+ "title": "Printy6 - Print On Demand",
+ "dev": "Printy6",
+ "ship": []
+ },
+ {
+ "id": 97386070081,
+ "title": "POWR Video Slider",
+ "dev": "POWR.io",
+ "ship": []
+ },
+ {
+ "id": 97296908353,
+ "title": "SC Easy Redirects",
+ "dev": "Shop Circle",
+ "ship": []
+ },
+ {
+ "id": 97170882625,
+ "title": "Shopify GraphiQL App",
+ "dev": "Shopify",
+ "ship": [
+ "write_cart_transforms",
+ "read_cart_transforms"
+ ]
+ },
+ {
+ "id": 97168785473,
+ "title": "Export All Fields by Steve",
+ "dev": "app developer",
+ "ship": []
+ },
+ {
+ "id": 97089486913,
+ "title": "Matrixify",
+ "dev": "ITissible",
+ "ship": [
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 97076674625,
+ "title": "Metafields Manager",
+ "dev": "Argonautic Labs",
+ "ship": []
+ },
+ {
+ "id": 97031684161,
+ "title": "Boost AI Search & Filter",
+ "dev": "Boost Commerce",
+ "ship": [
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 77891174512,
+ "title": "Otumate",
+ "dev": "Otumate",
+ "ship": []
+ },
+ {
+ "id": 73686876272,
+ "title": "Printify: Print on Demand",
+ "dev": "Printify",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 72262156400,
+ "title": "JetPrint: Print On Demand",
+ "dev": "JetPrint Fulfillment",
+ "ship": []
+ },
+ {
+ "id": 72258519152,
+ "title": "Art of Where - Print on Demand",
+ "dev": "Art of Where",
+ "ship": []
+ },
+ {
+ "id": 72254488688,
+ "title": "Gooten: Print On Demand",
+ "dev": "OrderMesh Inc.",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 71376765040,
+ "title": "SKYOU",
+ "dev": "SKYOU Inc.",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 71279968368,
+ "title": "Hulk Custom Fields",
+ "dev": "HulkApps",
+ "ship": []
+ },
+ {
+ "id": 69711298672,
+ "title": "teelaunch: Print on Demand",
+ "dev": "teelaunch",
+ "ship": []
+ },
+ {
+ "id": 68542136432,
+ "title": "Zendesk",
+ "dev": "Zendesk",
+ "ship": []
+ },
+ {
+ "id": 68541743216,
+ "title": "MXED - Sell Official Pop Culture Merch",
+ "dev": "DiCentral",
+ "ship": []
+ },
+ {
+ "id": 68393730160,
+ "title": "AOP+ Easy Print on Demand",
+ "dev": "AOP+",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 67847061616,
+ "title": "Digital Products",
+ "dev": "Shopify",
+ "ship": []
+ },
+ {
+ "id": 67843915888,
+ "title": "Product Builder",
+ "dev": "Bold",
+ "ship": []
+ },
+ {
+ "id": 67843653744,
+ "title": "DHL Express",
+ "dev": "DHL Express",
+ "ship": [
+ "write_shipping",
+ "read_shipping"
+ ]
+ },
+ {
+ "id": 67843326064,
+ "title": "Order Printer (legacy)",
+ "dev": "Shopify",
+ "ship": []
+ },
+ {
+ "id": 67843096688,
+ "title": "QuickBooks Sync by BOLD",
+ "dev": "Bold",
+ "ship": []
+ },
+ {
+ "id": 67842965616,
+ "title": "PayPal Marketing Solutions",
+ "dev": "PayPal, Inc.",
+ "ship": []
+ },
+ {
+ "id": 67842539632,
+ "title": "Combidesk for Constant Contact",
+ "dev": "Combidesk",
+ "ship": []
+ },
+ {
+ "id": 67840934000,
+ "title": "Open SignIn - Social Login",
+ "dev": "Okas Concepts",
+ "ship": []
+ },
+ {
+ "id": 67711664240,
+ "title": "Cart2Cart Data Migration",
+ "dev": "Cart2Cart",
+ "ship": []
+ },
+ {
+ "id": 66907701360,
+ "title": "Flow",
+ "dev": "Shopify",
+ "ship": []
+ },
+ {
+ "id": 66907406448,
+ "title": "Shopify Launchpad",
+ "dev": "Shopify",
+ "ship": []
+ },
+ {
+ "id": 66895609968,
+ "title": "Shopcodes",
+ "dev": "Shopify",
+ "ship": []
+ }
+]
\ No newline at end of file
diff --git a/verification/tk10836/verify-app-install-order.js b/verification/tk10836/verify-app-install-order.js
new file mode 100644
index 0000000..28a6bda
--- /dev/null
+++ b/verification/tk10836/verify-app-install-order.js
@@ -0,0 +1,40 @@
+#!/usr/bin/env node
+// TK-11366: AppInstallation has no createdAt. BUT Shopify resource IDs are broadly monotonic in
+// creation time, so sorting installations by numeric ID recovers INSTALL ORDER for free.
+// Calibrate against known-age anchors, then look at what was installed most recently.
+const fs=require('fs'),os=require('os');
+for (const line of fs.readFileSync(os.homedir()+'/Projects/secrets-manager/.env','utf8').split('\n')) {
+ const m=line.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*)$/); if(!m) continue;
+ let v=m[2].trim().replace(/^['"]|['"]$/g,''); if(!process.env[m[1]]) process.env[m[1]]=v;
+}
+const STORE=process.env.SHOPIFY_STORE_DOMAIN, TOKEN=process.env.SHOPIFY_FULL_ACCESS_TOKEN, API='2024-10';
+async function gql(q,v={}){const r=await fetch(`https://${STORE}/admin/api/${API}/graphql.json`,{method:'POST',
+ headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},body:JSON.stringify({query:q,variables:v})});
+ const j=await r.json(); if(j.errors)console.error('ERR',JSON.stringify(j.errors).slice(0,300)); return j.data;}
+(async()=>{
+ let c=null, apps=[];
+ do{
+ const r=await gql(`query($c:String){ appInstallations(first:50, after:$c){
+ pageInfo{hasNextPage endCursor}
+ nodes{ id app{ title handle developerName } accessScopes{ handle } } } }`,{c});
+ if(!r?.appInstallations) break;
+ apps.push(...r.appInstallations.nodes);
+ c=r.appInstallations.pageInfo.hasNextPage?r.appInstallations.pageInfo.endCursor:null;
+ }while(c);
+ const SHIP=/shipping|delivery|checkout|cart_transform|rate/i;
+ const rows=apps.map(a=>({
+ id: Number(a.id.split('/').pop()),
+ title: a.app?.title||'?', dev: a.app?.developerName||'?',
+ ship: (a.accessScopes||[]).map(s=>s.handle).filter(s=>SHIP.test(s))
+ })).sort((x,y)=>y.id-x.id);
+ console.log(`### ${rows.length} installations, sorted NEWEST-FIRST by installation id ###\n`);
+ console.log('--- 20 MOST RECENTLY INSTALLED ---');
+ for(const r of rows.slice(0,20))
+ console.log(` ${r.id} ${r.ship.length?'*SHIP*':' '} ${r.title} (${r.dev})${r.ship.length?'\n scopes: '+r.ship.join(', '):''}`);
+ console.log('\n--- ALL apps holding shipping/delivery/checkout/cart-transform scopes, newest first ---');
+ for(const r of rows.filter(r=>r.ship.length))
+ console.log(` ${r.id} ${r.title} (${r.dev})\n ${r.ship.join(', ')}`);
+ console.log('\n--- 5 OLDEST (calibration anchors) ---');
+ for(const r of rows.slice(-5)) console.log(` ${r.id} ${r.title}`);
+ fs.writeFileSync('verification/tk10836/app-install-order.json',JSON.stringify(rows,null,2));
+})();
diff --git a/verification/tk10836/verify-app-inventory.js b/verification/tk10836/verify-app-inventory.js
new file mode 100644
index 0000000..a3b38d0
--- /dev/null
+++ b/verification/tk10836/verify-app-inventory.js
@@ -0,0 +1,42 @@
+#!/usr/bin/env node
+// TK-11366 HUNT: what changed around 2026-08-18? Enumerate installed apps + their timestamps and
+// access scopes, looking for anything shipping/delivery/checkout-related installed or updated in
+// the window. READ-ONLY.
+const fs=require('fs'),os=require('os');
+for (const line of fs.readFileSync(os.homedir()+'/Projects/secrets-manager/.env','utf8').split('\n')) {
+ const m=line.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*)$/); if(!m) continue;
+ let v=m[2].trim().replace(/^['"]|['"]$/g,''); if(!process.env[m[1]]) process.env[m[1]]=v;
+}
+const STORE=process.env.SHOPIFY_STORE_DOMAIN, TOKEN=process.env.SHOPIFY_FULL_ACCESS_TOKEN, API='2024-10';
+async function gql(q,v={}){const r=await fetch(`https://${STORE}/admin/api/${API}/graphql.json`,{method:'POST',
+ headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},body:JSON.stringify({query:q,variables:v})});
+ const j=await r.json(); if(j.errors)console.error('ERR:',JSON.stringify(j.errors).slice(0,500)); return j.data;}
+(async()=>{
+ const d=await gql(`query{ currentAppInstallation{ id app{ title } } }`);
+ console.log('current app:', JSON.stringify(d?.currentAppInstallation?.app||null));
+
+ // Full app installation inventory
+ let c=null, apps=[];
+ do{
+ const r=await gql(`query($c:String){ appInstallations(first:50, after:$c){
+ pageInfo{hasNextPage endCursor}
+ nodes{ id
+ app{ title handle developerName embedded webhookApiVersion }
+ accessScopes{ handle }
+ launchUrl } } }`,{c});
+ if(!r?.appInstallations){ console.log('appInstallations unavailable to this token'); break; }
+ apps.push(...r.appInstallations.nodes);
+ c=r.appInstallations.pageInfo.hasNextPage?r.appInstallations.pageInfo.endCursor:null;
+ }while(c);
+
+ console.log(`\n### ${apps.length} app installation(s) visible ###`);
+ const SHIP=/ship|deliver|checkout|rate|cart|carrier|post|freight/i;
+ for(const a of apps){
+ const scopes=(a.accessScopes||[]).map(s=>s.handle);
+ const shipScopes=scopes.filter(s=>SHIP.test(s));
+ const flag = SHIP.test(a.app?.title||'') || SHIP.test(a.app?.handle||'') || shipScopes.length;
+ console.log(`${flag?'>>> ':' '}${a.app?.title} [${a.app?.handle}] by ${a.app?.developerName||'?'}`);
+ if(shipScopes.length) console.log(` shipping/checkout scopes: ${shipScopes.join(', ')}`);
+ }
+ console.log('\n(">>>" = app whose name/handle or scopes touch shipping/delivery/checkout/rates)');
+})();
← 3c7bad1 TK: guarded auto-approve trade signups on submit (email-vali
·
back to Dw Signup Fulfillment
·
TK-10836: DTD verdict B — stage the ship-it remedy (draft or 079d720 →