{ "$schema": "../app-info-schema.json", "name": "Costco Stock Watch", "id": "costco-watch", "available": true, "port": 8592, "exposable": false, "dynamic_config": true, "no_gui": true, "tipi_version": 1, "version": "1.0.0", "categories": [ "automation", "utilities" ], "description": "Polls a Costco tire product page on an interval and pushes an ntfy alert the moment it flips from out-of-stock to in-stock. Sends browser fetch-metadata headers itself - Costco stalls requests without Sec-Fetch-*, and neither cloudflared nor Cloudflare Transform Rules can supply them (Sec-* is on Cloudflare's restricted list). No Cloudflare-side configuration needed.", "short_desc": "Alerts when a Costco tire is back in stock", "author": "alexz", "source": "https://git.alexzaw.dev/alexz/costco-watch", "form_fields": [ { "type": "text", "label": "Product URL", "env_variable": "TARGET_URL", "required": true, "default": "https://costco-tire.alexzaw.dev/SearchResultsByItemOrPart?ItemNo=1273727", "hint": "Full product page URL to watch, via the costco-tire proxy" }, { "type": "text", "label": "Item Label", "env_variable": "ITEM_LABEL", "required": false, "default": "Michelin Primacy Tour A/S 235/45R18", "hint": "Friendly name used in the notification text" }, { "type": "text", "label": "ntfy Topic", "env_variable": "NTFY_TOPIC", "required": true, "hint": "Topic to publish to, e.g. costco-tire. Subscribe to it in the ntfy app." }, { "type": "text", "label": "ntfy URL", "env_variable": "NTFY_URL", "required": false, "default": "https://ntfy.alexzaw.dev", "hint": "ntfy server base URL" }, { "type": "password", "label": "ntfy Token", "env_variable": "NTFY_TOKEN", "required": false, "hint": "Only needed if the topic requires auth. Leave blank for an open topic." }, { "type": "text", "label": "Check Interval (minutes)", "env_variable": "INTERVAL_MINUTES", "required": false, "default": "60", "hint": "Keep at 60 or more - this is a courtesy check, not a scraper" }, { "type": "random", "label": "API Key", "env_variable": "API_KEY", "required": true, "min": 24, "encoding": "hex", "hint": "Guards /status and /check. Auto-generated." } ], "supported_architectures": [ "amd64" ], "created_at": 1754995000000, "updated_at": 1754995000000, "deprecated": false, "min_tipi_version": "4.5.0" }