On-prem (Technical)
activeTechnical guidance for running and integrating Binoban in on-prem / air-gapped deployments.
Hosts must be set explicitly — don't rely on defaults
How you do this differs by platform:
- Native SDK (Android + iOS) —
apiHostdefaults to blank. If it's blank,Configuration.isValid()fails and the SDK initializes in a disabled, no-op state instead of falling back to a Binoban-hosted default. - Web SDK — takes
host.apiPathin its load settings (notapiHost). There's no per-tenant default: if you omit it, the SDK falls back to a build-time default baked into the bundle, which will not point at your deployment. For on-prem or air-gapped, sethost.apiPathexplicitly.
For an on-prem or air-gapped deployment, set apiHost (Native SDK) or
host.apiPath (Web SDK) to your tenant's own host — never assume a public
Binoban host is reachable, and never rely on the Web SDK's built-in fallback
to reach it.
More than one host, by design
Because Retail Media/Ads traffic and core tracking traffic can be served from different endpoints, the Web SDK reads more than one host from its settings, each independently configurable:
| Host | Used for |
|---|---|
apiHost | Core tracking ingestion — /api/tracker/sdk/{sourceIdentifier}/... |
cdnSettings.integrations['Binoban.io'].apiHost | Ad requests — /api/tracker/ad |
...ads.rtbHost | RTB ad serving — /api/rtb/... |
The exact public names and full set of these host settings (as you'd configure them, not as they appear internally) haven't been finalized for documentation yet. Confirm the current configuration surface with Binoban support before wiring an air-gapped deployment.
No implicit hosts
The Native SDK has no fallback at all: if a host setting is missing, it goes
silent (the whole SDK becomes a no-op) rather than reaching out to a host
outside your network — this is deliberate, for air-gapped safety. The Web SDK
is the one exception: omitting host.apiPath doesn't disable it — the SDK
falls back to a build-time default baked into the bundle, which may not be
reachable (or may not be the host you intend) in an on-prem or air-gapped
deployment. Set host.apiPath explicitly rather than relying on that
fallback.
Distributing the SDK binaries in a disconnected environment
- iOS — the XCFramework is fetched from
https://static.binoban.io/sdk/ios/{version}/binoban.xcframework.zipby default (via Swift Package Manager or CocoaPods). In a fully air-gapped environment, this artifact needs to be mirrored inside your network — confirm the supported path with Binoban support. - Android — the library is published to Maven Central
(
io.binoban.sdk:sdk-android). In a disconnected environment, mirror it into your internal Maven repository.
Versioning in disconnected environments
Pin your SDK version explicitly (see the compatibility matrix) — an air-gapped deployment won't pick up updates automatically, so you control the upgrade cadence deliberately. See Versioning for how Binoban's contract versioning works.