Repository navigation
1.0.26: connector fixes for batches 3 and 4: Databay, GonzoProxy, 2extract, Simply Proxies, Coronium, Singapore Mobile Proxy, Gsocks, Proxy Bonanza, Proxies.sx, Proxy-Solutions, RapidProxy, MobileProxy.Space, CatProxies, PacketStream, Airproxy - #80
Merged
Merged
Conversation
…oronium, Singapore Mobile Proxy, Gsocks, Proxy Bonanza, Proxies.sx, Proxy-Solutions, RapidProxy, MobileProxy.Space, CatProxies, PacketStream and Airproxy - Databay: State and City are refused off Residential with a message instead of being dropped, and a place name is sent as the Connection String page asks: a hyphen as %2D and a space as %20. - 2extract and PacketStream: Protocol HTTPS makes HTTPS rows (TLS to the proxy, a proxy type since 1.0.26); PacketStream's HTTPS gateway is port 31111. PacketStream's messages say Proxy Access and auth key, as its docs do; the country stays the dashboard name the 6 Oct live test needed. - Coronium: the expiry is read from tariff_expired_at (epoch ms in Coronium's OpenAPI; a value in seconds is no longer read as 1970) or from expires_at, in the pull and the account check. - Singapore Mobile Proxy rows are SG, Airproxy rows IT; Airproxy and Gsocks rows can be SOCKS5 on the same port. - Gsocks: the documented "key" header first and the "session" form its examples use once on 401/403, keeping the one that works (pull and account check); list ids may be plain tokens; clearer errors. - Proxy Bonanza: IPs without a login are counted, and a pull of only those says why. - Proxies.sx: Residential adds -iptype-residential (peer mixes residential and mobile devices); sticky rows carry -ttl- from Keep same IP, 24 hours when blank instead of the gateway's 1-hour default. - RapidProxy, MobileProxy.Space and Proxy-Solutions read the protocol from proxyType (protocolChoice), and a caller that still sends it as poolType keeps working. Proxy-Solutions' errors name the Integration token. - MobileProxy.Space: the equipment-independent address wins when a proxy has one, and rows carry their country from id_country (get_id_country, asked only when needed). The API stays on mpsapi.com. - CatProxies: a Mobile sticky session always carries -ttl- (30 minutes when blank); a Gateway region (US, Europe, Asia) picks resi-us/fr/sg, mobile-us/eu/asia or the Premium server; Premium Residential (resix) puts country, state or city, session and lifetime on the password, on its own ports.
… countries, per-pool Keep same IP, Protocol instead of Pool type, HTTPS, a CatProxies gateway, and hints that say what the pull does - GonzoProxy and Proxies.sx need a country: the Country select has no Any / Random option and says it is required, and Pull asks for one before calling the vendor. - Keep same IP offers each pool its own times (geoSync.poolLife; lifeOptionsFor takes the pool): Databay Residential Flex up to 30 minutes, CatProxies Mobile up to 4 hours and Premium up to 7 days; RapidProxy runs to its 180 minutes. A time the new pool does not offer goes back to blank. - Databay shows and sends State and City on Residential only (geoSync.geoPools). - RapidProxy, MobileProxy.Space and Proxy-Solutions pick HTTP or SOCKS5 under Protocol, not Pool type; Airproxy and Gsocks gain Protocol; 2extract and PacketStream offer HTTPS too. - CatProxies: Premium Residential pool and a Gateway select (US, Europe, Asia), saved with the credentials. Proxies.sx gains Keep same IP (its -ttl-). - How many uses the "All / blank for all" wording only for connectors that list owned proxies, so Simply Proxies shows the gateway field. An empty key field names the vendor's own field (API key, Integration token). - Hints in English and Spanish: Databay's Residential-only State and City and ambiguous city names, GonzoProxy's mobile pool without cities, 2extract's HTTPS default, Simply Proxies' clear-text SOCKS5 password, Singapore only, Gsocks and Airproxy protocols, Proxy Bonanza IP-authorization plans, Proxies.sx connection limits and session time, PacketStream's Proxy Access and HTTPS gateway.
- test/connectorsVendors2.test.js: one or more tests per backlog item 48 to 55 and 67 to 75, run against the vendor sections of ipcHandlers.js with a stubbed transport and fixtures from the documented shapes: Databay pools, State and City, %2D/%20; required countries; HTTPS rows; Simply Proxies' How many; Coronium expiry; SG and IT rows; Gsocks protocol, header fallback and ids; Proxy Bonanza IP authorization; Proxies.sx -iptype- and -ttl-; Integration token errors; Protocol with the old poolType; RapidProxy 180 minutes; CatProxies ttl, per-pool times, gateways and Premium; PacketStream HTTPS and wording; MobileProxy.Space address and country; en and es texts. - Existing tests updated for the intended changes: Databay's encoded place names, Proxies.sx's -iptype-residential and -ttl- usernames, the Gsocks header, RapidProxy's own Keep same IP list and the pool-aware lifeOptionsFor, one How many field. Harness only: protocolChoice, mobileProxySpaceGet, PROXIESSX_DEFAULT_TTL_MIN and gsocksAuthSchemes are lifted next to their callers.
…to fix/1.0.26-connectors-vendors-2
…rs-vendors-2 Both lanes extended the connector form the same way, so the merge keeps one mechanism for each: - Keep same IP per pool: lane 1's maxLifeByPool now also cuts a vendor's own lifeOptions list. Databay Residential Flex uses maxLifeByPool (30); CatProxies lists its own steps (3 and 4 hours for Mobile's ttl) with maxLifeByPool for Standard, Mobile, ISP and Datacenter. The pool-change reset is lane 1's choosePool. - State and City per pool: lane 1's geoForPool / geoSync.geoPools (Databay: Residential only). - Required country: lane 1's countryRequired (no Any / Random, starts on United States), now also for GonzoProxy and Proxies.sx; the duplicate check and its strings are dropped. - Hints: lane 1's texts for its vendors, lane 2's for its own. Tests follow the shared mechanisms.
This was referenced Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Per-vendor fixes from the 1.0.27 backlog, batches 3 and 4 (items 48 to 55 and 67 to 75). Stacked on #77 (lane 1, vendor fixes batches 1 and 2), which stacks on #73: merge #77 first, then this one. Every vendor answer in the tests is a fixture built from the vendor's documented shapes; nothing reaches a provider, and no real key or account id is used anywhere. Release stays 1.0.26.
Items
maxLifeByPool). State and City show and are sent on Residential only (#77'sgeoPools), and main refuses them elsewhere with a message. Place names are sent as the Connection String page asks:%2Dfor a hyphen,%20for a space. The hint adds that a city is matched without its country.countryRequired: no Any / Random option, the form starts on United States, and Pull asks for a country before calling the vendor. The hint says the mobile pool has no cities (the app cannot know a login's pool).tariff_expired_atas milliseconds only; support namedexpires_at; host fromip_address || connection_iptariff_expired_atin epoch ms andip_addressas the host withconnection_ipas its alias, so the host code stays. The expiry now also readsexpires_at(ISO in the same file), and a value in seconds is no longer read as 1970 (which would mark every line expired), in the pull and in the account check.key <api_key>vs the docs' examplessession <jwt>; undocumented listidkey) goes first, orsessionfirst for a key that is a JWT; on 401/403 the other form is tried once and the one that works is kept (pull and account check). Ids may be numbers or plain tokens; a missing id fails with a clear message.peerwithout-iptype-residential, so exits could be mobile-iptype-residential(the docs' hard device-class filter).-ttl-, so sessions ended after the 1-hour default-ttl-<seconds>on sticky rows; blank sends 24 hours. Country is required in the form (countryRequired), as main already required.categoriesis a website item, not app.proto: true,proxyType). Main readsproxyTypeand still honours an old caller'spoolType: 'socks5'(protocolChoice).maxLife: 180but no 180 option; hint said HTTP onlylifeOptions, newlife180key); the hint says HTTP and SOCKS5 share the port.-sid-without-ttl-; Mobile offered 6 to 24 h then clamped to 4 h; US gateways only; no Premium Residential-ttl-(30m when blank, as the form says). Keep same IP per pool: its own steps (lifeOptions, with 3 and 4 hours for Mobile's accepted ttls) cut per pool bymaxLifeByPool: Mobile 5 min to 4 h, Standard to 24 h, Premium to 7 days. A Gateway select (US, Europe, Asia) picks resi-us/fr/sg, mobile-us/eu/asia or the Premium server, saved with the credentials. Premium Residential (resix, from catproxies.com/docs/api): us/eu/asia.premium.catproxies.com, HTTP 6011-6013 and SOCKS5 6014-6016, targeting on the password (<pass>-country-gb_city-london_session-<8>_lifetime-1h); a state is US-only and not combined with a city.buildProxyServerArgument,proxyAgentScheme,httpRelay); HTTP stays the default, as the tested one. Country names stay (codes were ignored on 6 Oct): open question.country: nullproxy_host_ipinstead of the equipment-independent host;country: null; docs disagree on the base URLproxy_independent_*_hostnameor_host_iponproxy_independent_port, from the OpenAPI file) wins when a proxy has one. Rows carry their country fromid_countrythroughget_id_country(asked only when needed; a failure still imports). The API stays on mpsapi.com, the address the current docs page gives: open question.Shared pieces: this uses #77's
maxLifeByPool,geoPools(geoForPool) andcountryRequired, and adds:maxLifeByPoolalso cuts a vendor's ownlifeOptionslist;geoSync.protoHttps(HTTPS in Protocol) andgeoSync.regions(CatProxies' Gateway select, sent aszone);LIFE_BLANK_DEFAULTS.proxiessx = 1440;life180andlife240keys; the empty-key error names the vendor's own field.How it was verified
test/connectorsVendors2.test.js(36 tests, one or more per item; 35 of them failed on the shared branch's code, the 36th pins Coronium's host fields, which needed no change).databay(encoded place names),proxiessxandconnectorGroup3(-iptype-residential,-ttl-),gsocks(the header form),connector-review-fixes(RapidProxy's own list, pool-awarelifeOptionsFor),panel-fixes(one How many field). The merge of 1.0.26: per-vendor connector fixes for 19 existing connectors (NOVADA, DataImpulse, Apify, Proxidize, Proxy-Seller, Froxy, IPRoyal, Live Proxies, AnyIP, MarsProxies, NodeMaven, Bright Data, Oxylabs, Decodo, ShopSocks5, Proxy302, IPFoxy, IP Burger, MangoProxy) #77 keeps one mechanism for each shared idea (see its merge commit). Harness only:protocolChoice,mobileProxySpaceGet,PROXIESSX_DEFAULT_TTL_MINandgsocksAuthSchemesare lifted next to their callers.npm run check:depsOK;npx vite buildOK;node --checkon all 95 files insrc/mainandsrc/preloadOK;npm test1904/1904. GitHub CI on the pushed branch: see the checks.Noticed, not fixed
in_use_till(expiry) is not read; Coronium's Retry-After on 429 is not shown; Proxies.sx's-rot-sticky-strictis not used.Open questions for the vendors (built from the docs; each fails with a clear message if wrong)
%20/%2D(Connection String page) or want raw spaces (Filter by City page)?tariff_expired_atms per the OpenAPI,expires_atper support).keyrule orsessionexamples); the list id field; SOCKS5 on the same port.-ttl-idle or absolute; parallel connections (pricing page 5 at Starter, docs 500).