Skip to content

1.0.26: iProxy.online connector, an optional Provider tag in Batch Add (ARNPROXY listed and counted) - #79

Merged
softglazee merged 6 commits into
mainfrom
fix/1.0.26-connectors-new-3
Nov 10, 2026
Merged

softglazee merged 6 commits into
mainfrom
fix/1.0.26-connectors-new-3

Conversation

@softglazee

@softglazee softglazee commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

New connectors, part 2 of lane C2. Stacked on #78 (fix/1.0.26-connectors-new-2), which is stacked on #76, #80, #77 and #73; it merges last. It brings in #78 (and the earlier PRs) by merge commits; nothing is rebased. No version bump, no schema change: Proxy already has a provider column. iProxy.online is built from its public Console API docs and tested with fixtures only. A live test needs a spare Android phone with a SIM. ARNPROXY Part B (the API connector) is blocked and not in this PR.

What changed

Item Change
iProxy.online connector A user API key lists the proxy accesses on the user's own phones, with each phone's change-IP link as the proxy's Rotate IP link. HTTP or SOCKS5. Account check.
Pull result notice A pull can say how many phones have no change-IP link, so their proxies came in without Rotate IP (English and Spanish).
Batch Add: Provider (optional) A select in the Proxy pool's Batch Add dialog: ARNPROXY first, then every provider by name. It tags the pasted proxies, so they group under that provider and count on the Proxy providers page. Main refuses an unknown provider.
ARNPROXY on the Proxy providers page Listed without a connector ("No connector yet"). It counts the proxies tagged ARNPROXY, and its card says they come from the list pasted in Batch Add. A pull is refused, as for any vendor without an adapter.

iProxy.online

  • Calls, each with Authorization: Bearer <user API key>:
    1. GET /proxy-access (required).
    2. GET /actionlinks?action=changeip (optional).
    3. GET /connections, or the guide's GET /connection after a 404 (optional).
  • If an optional call fails:
    • 401, 403 or 429 stops the pull.
    • Anything else leaves the rows without links or names. The health check fills the country.
  • Rows:
    • Only userpass accesses with a login, for the chosen protocol, not turned off and not expired. The rest are counted to explain an empty pull ("use no login (IP restriction only)", "turned off or expired", "none of your phones has a HTTP proxy access with a login").
    • Host is hostname, else ip.
    • Country is the phone's current ip_country_code.
    • Label: iProxy • <phone name> • <description or #id> • <country>.
  • Rotate IP:
    • Each row gets its phone's newest change-IP link as rotationUrl. The link carries a link id, not the key ("No authentication needed").
    • Only an https:// link that does not contain the key is kept.
    • The existing rotation-link path fires it. It is masked by proxies.reveal like any stored link (serializeProxy).
    • All accesses on one phone share its link: one phone, one IP.
  • Never called: POST /me/api-key (it would void the user's key), creating or deleting accesses or links, command-push, VPN configs, credential exports. No change-IP link is created automatically.
  • Notice: syncVendorPool copies one notice code from the adapter's rows into the result (result.notice = { code, count }). The form shows it from a fixed list (RESULT_NOTICES = ['noChangeIpLink']) with _one and _other strings.
  • Account check: GET /connections, with a fallback to /connection on a 404.
    • Active when any phone has an active plan.
    • The next plan end date.
    • firstToExpire with more than one plan; noActivePlans with none.
    • No traffic or balance.

Batch Add provider tag (ARNPROXY Part A)

  • Main (batchAddProxies):
    • A provider must be a key of PROXY_VENDORS, else "Unknown proxy provider." comes before anything is added. Only the table's own keys count: toString is refused.
    • With a name prefix, rows are named <Provider> • host:port. Before, they were named <prefix> <line number>, which no caller used.
    • arnproxy: 'ARNPROXY' is in PROXY_VENDORS, with no adapter.
  • Renderer:
    • ProxyPoolPage imports PROVIDERS. The dialog has Default Type and Provider side by side (stacked at 375 px), with a hint.
    • The pool's provider chips and filter now show provider names (ARNPROXY, Node4, …) instead of keys.
    • PROVIDERS gains { key: 'arnproxy', …, gateway: null, unavailable: true }, so vendorGateways' "no adapter means unavailable, no gateway" rule holds.
    • The detail card's Gateway row for a provider without a connector reads "From the list you paste in the proxy pool (Batch Add)".
  • Strings, English and Spanish: batch.providerLabel ("Provider (optional)" / "Proveedor (opcional)"), batch.providerNone, batch.providerHint, detail.gatewayManual.

Open questions per provider (for the held emails)

iProxy.online

  1. Which path is canonical, /connection or /connections? The build tries /connections, then /connection.
  2. Console API rate limits, and pagination for large fleets. Three calls are made per pull.
  3. Which status does a change-IP link return during the cooldown or when the phone is offline, and what is the default cooldown?
  4. Is the user-level API key on Basic as well as Pro?
  5. Is a proxy access's hostname stable for its whole life?
  6. Is https://iproxy.online/ the dashboard address? It is inferred; the trial was at dash.iproxy.online.
  7. Would iProxy add SoftGlaze as an integration service, and list it on /partners/antidetect-browsers?

ARNPROXY (Part A)

  1. On static proxies, do HTTP and SOCKS5 use the same port? Batch Add uses the chosen type.
  2. Part B, still blocked:
    • Is the customer API live for all customers?
    • Is the credentials permission on by default for customer keys?
    • The residential gateway host and username syntax.

How it was verified

  • npm test:
    • Before: 1924 tests, 1924 pass (1.0.26: Node4, ProxyEmpire, MountProxies and Massive connectors, Rotate IP for MountProxies through its API #78).
    • After: 1938 tests, 1938 pass, 0 fail.
    • New tests (14):
      • test/iproxy.test.js (9): Swagger-shaped accesses, links and phones; noauth, turned-off and expired accesses; the newest link per phone; links with the key or not https dropped; the /connection fallback; optional calls; every error message, none with the key; the notice through syncVendorPool and the form; the account check; the wiring.
      • test/batchAddProvider.test.js (5): the real batchAddProxies with a provider, without one and with an unknown one; ARNPROXY's registry and PROVIDERS entry; the dialog's select and payload; the en and es strings; no schema change.
  • Existing tests changed: the Massive test's section end marker. It is this lane's own test, from 1.0.26: Node4, ProxyEmpire, MountProxies and Massive connectors, Rotate IP for MountProxies through its API #78: the iProxy.online section now follows Massive.
  • CI steps, all pass:
    • npm run check:deps
    • npx vite build
    • node --check on all 95 main and preload files
    • Test environment: the runs use a private node_modules in this worktree (npm ci --ignore-scripts, then prisma generate there only), because the shared one was partly deleted by another process.
  • UI renders, headless Chrome with a throwaway profile and a fake preload API, at 1440 and 375 px, light and dark, English and Spanish:
    • Shots:
      • the iProxy.online form;
      • the Proxy providers page with ARNPROXY selected (3 tagged proxies in the pool);
      • the Batch Add dialog with Provider ARNPROXY;
      • the pull result box with the notice.
    • Findings:
      • no sideways scroll on the Proxy providers page;
      • no cut-off labels;
      • every select's selected and longest option fits, including the Provider select at 375 px.
    • Proxy pool page behind the dialog: at 375 px its tab bar scrolls sideways, and some stat-card texts are cut. These are untouched parts of the page (see below).
  • Not done:
    • a pull against a real phone;
    • a Batch Add with a real ARNPROXY export.

Noticed, not fixed

  • The Proxy pool page at 375 px scrolls sideways (the Custom Proxies / Check history / Groups & countries bar). Some stat-card texts are cut ("Run a check to detect locations"; more in Spanish).
  • The pull result's three-column counts grid overflows by 3 px at 375 px.
  • A long token placeholder is cut in a half-width field ("Your iProxy.online API key").
  • SoftGlaze AI's compactProxy reports canRotate only from rotationUrl. iProxy rows with a link are covered; provider-API rotations are not (see 1.0.26: Node4, ProxyEmpire, MountProxies and Massive connectors, Rotate IP for MountProxies through its API #78).

- iProxy.online: a user API key lists the proxy accesses on the user's phones (GET /proxy-access,
  user:pass accesses for the chosen protocol only, turned-off and expired ones left out), each
  phone's newest change-IP link as the row's rotation link (https only, never one carrying the key),
  and the phone names and countries (GET /connections, or the guide's /connection). Links and names
  are optional; a refused key stops the pull. Account check from the phones' active plans.
- A pull result can carry one notice code (iProxy.online: phones without a change-IP link).
- Batch Add: an optional provider must be a PROXY_VENDORS key, else it is refused; with a provider
  name the rows are named "<Provider> • host:port". ARNPROXY is in PROXY_VENDORS with no connector,
  so a pasted ARNPROXY list is tagged and counted, and a pull is refused.
…ROXY on the Proxy providers page

- iProxy.online PROVIDERS entry and en and es hint; the pull result shows how many phones have no
  change-IP link.
- Batch Add has an optional Provider select (ARNPROXY first, then every provider by name) that tags
  the pasted proxies; the pool's provider chips show provider names.
- ARNPROXY is listed without a connector, counting the proxies tagged with it; its card says its
  proxies come from the list pasted in Batch Add.
Brings in the merge of fix/1.0.26-connectors-new-1. The iProxy.online section follows Massive,
before the ProxyBrazil section; the Massive and iProxy.online tests' section bounds follow. The
result-notice list sits above new-1's token and username placeholder maps.
…-new-3

# Conflicts:
#	src/renderer/i18n/locales/en/providersPage.json
#	src/renderer/i18n/locales/es/providersPage.json
…-new-3

# Conflicts:
#	src/renderer/i18n/locales/en/cmpSettingsC.json
#	src/renderer/i18n/locales/es/cmpSettingsC.json
Base automatically changed from fix/1.0.26-connectors-new-2 to main November 10, 2026 17:13
@softglazee
softglazee merged commit 45081d1 into main Nov 10, 2026
6 checks passed
@softglazee
softglazee deleted the fix/1.0.26-connectors-new-3 branch November 10, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant