fix(proxy): rotate Floxy creds (prior account hit HTTP 402 / balance exhausted)
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
The hardcoded Floxy account (d739255e819b) ran out of balance → 402 Payment Required on every CONNECT → pcat decode dead on prod since ~07:16 UTC 2026-06-11 (pcat has no proxy fallback; EMEX limped on its DataImpulse fallback). New funded account cac4b0d96a80 verified working (call leg 401-reachable, capture leg 200). Updates the hardcoded defaults in all 3 Floxy consumers (pcat auth, emex http, emex browser); env overrides PCAT_FLOXY_USER/PASS + EMEX_FLOXY_USER/PASS unchanged. Follow-up: wire FLOXY_USER/PASS into docker-compose env so future rotations are Coolify-env-only (no code change / rebuild). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -96,8 +96,8 @@ export class EmexBrowserService implements OnModuleInit, OnModuleDestroy {
|
|||||||
this.proxyPassword = this.configService.get<string>("EMEX_PROXY_PASS", "f11c7b6128cc86c6");
|
this.proxyPassword = this.configService.get<string>("EMEX_PROXY_PASS", "f11c7b6128cc86c6");
|
||||||
this.floxyHost = this.configService.get<string>("EMEX_FLOXY_HOST", "residential.floxy.io");
|
this.floxyHost = this.configService.get<string>("EMEX_FLOXY_HOST", "residential.floxy.io");
|
||||||
this.floxyPort = Number(this.configService.get("EMEX_FLOXY_PORT", 12321)) || 12321;
|
this.floxyPort = Number(this.configService.get("EMEX_FLOXY_PORT", 12321)) || 12321;
|
||||||
this.floxyUser = this.configService.get<string>("EMEX_FLOXY_USER", "d739255e819b");
|
this.floxyUser = this.configService.get<string>("EMEX_FLOXY_USER", "cac4b0d96a80");
|
||||||
this.floxyPass = this.configService.get<string>("EMEX_FLOXY_PASS", "9092873ba4e0");
|
this.floxyPass = this.configService.get<string>("EMEX_FLOXY_PASS", "dfc38fe467a3");
|
||||||
this.floxyLifetime = Number(this.configService.get("EMEX_FLOXY_LIFETIME", 300)) || 300;
|
this.floxyLifetime = Number(this.configService.get("EMEX_FLOXY_LIFETIME", 300)) || 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -189,8 +189,8 @@ export class EmexService {
|
|||||||
this.emexFloxy = {
|
this.emexFloxy = {
|
||||||
host: this.configService.get<string>("EMEX_FLOXY_HOST", "residential.floxy.io"),
|
host: this.configService.get<string>("EMEX_FLOXY_HOST", "residential.floxy.io"),
|
||||||
port: Number.isInteger(fport) && fport >= 1 && fport <= 65535 ? fport : 12321,
|
port: Number.isInteger(fport) && fport >= 1 && fport <= 65535 ? fport : 12321,
|
||||||
user: this.configService.get<string>("EMEX_FLOXY_USER", "d739255e819b"),
|
user: this.configService.get<string>("EMEX_FLOXY_USER", "cac4b0d96a80"),
|
||||||
pass: this.configService.get<string>("EMEX_FLOXY_PASS", "9092873ba4e0"),
|
pass: this.configService.get<string>("EMEX_FLOXY_PASS", "dfc38fe467a3"),
|
||||||
lifetime: Number.isInteger(flife) && flife >= 0 ? flife : 300,
|
lifetime: Number.isInteger(flife) && flife >= 0 ? flife : 300,
|
||||||
};
|
};
|
||||||
this.logger.log(
|
this.logger.log(
|
||||||
|
|||||||
@@ -99,8 +99,10 @@ const DI_DEFAULT_PASS = "78ebc3d881de6ec0";
|
|||||||
// Playwright capture so the partner site sees a coherent session.
|
// Playwright capture so the partner site sees a coherent session.
|
||||||
const FLOXY_HOST = "residential.floxy.io";
|
const FLOXY_HOST = "residential.floxy.io";
|
||||||
const FLOXY_PORT = 12321;
|
const FLOXY_PORT = 12321;
|
||||||
const FLOXY_DEFAULT_USER = "d739255e819b";
|
// Floxy account creds (overridable via PCAT_FLOXY_USER/PASS). Rotated 2026-06-11
|
||||||
const FLOXY_DEFAULT_PASS = "9092873ba4e0";
|
// after the prior account (d739255e819b) hit HTTP 402 (balance exhausted).
|
||||||
|
const FLOXY_DEFAULT_USER = "cac4b0d96a80";
|
||||||
|
const FLOXY_DEFAULT_PASS = "dfc38fe467a3";
|
||||||
const FLOXY_CAPTURE_LIFETIME_S = 60; // sticky window for one capture attempt
|
const FLOXY_CAPTURE_LIFETIME_S = 60; // sticky window for one capture attempt
|
||||||
|
|
||||||
type ProxyProvider = "floxy" | "dataimpulse" | "none";
|
type ProxyProvider = "floxy" | "dataimpulse" | "none";
|
||||||
|
|||||||
Reference in New Issue
Block a user