Creates a new proxy repository instance.
The validator instance
The database config instance
The logger instance
The database connector instance
Creates a new proxy in the specified campaign.
The proxy will be created in a disabled state (isEnabled = false).
Use enable() to activate it for traffic routing.
The ID of the campaign to create the proxy in
The unique identifier for the new proxy
The proxy URL
The campaign lock secret obtained from CampaignRepository.lock()
DatabaseError If the campaign does not exist
DatabaseError If the campaign is not locked
DatabaseError If the lock secret does not match
DatabaseError If a proxy with the same ID already exists
DatabaseError If url is already used by another proxy in the campaign
Delete a proxy model by its ID.
The proxy must be disabled before it can be deleted.
The ID of the campaign containing the proxy
The proxy ID to delete
The campaign lock secret obtained from CampaignRepository.lock()
DatabaseError If the campaign does not exist
DatabaseError If the campaign is not locked
DatabaseError If the lock secret does not match
DatabaseError If the proxy does not exist
DatabaseError If the proxy is still enabled
Disables a proxy, stopping traffic routing.
Existing sessions using this proxy will be automatically re-assigned to another enabled proxy upon their next authorization.
The ID of the campaign containing the proxy
The proxy ID to disable
The campaign lock secret obtained from CampaignRepository.lock()
DatabaseError If the campaign does not exist
DatabaseError If the campaign is not locked
DatabaseError If the lock secret does not match
DatabaseError If the proxy does not exist
Enables a proxy, making it available for traffic routing.
Enabled proxies are automatically selected by the session creation logic using random load balancing.
The ID of the campaign containing the proxy
The proxy ID to enable
The campaign lock secret obtained from CampaignRepository.lock()
DatabaseError If the campaign does not exist
DatabaseError If the campaign is not locked
DatabaseError If the lock secret does not match
DatabaseError If the proxy does not exist
Lists all proxies in a campaign.
Proxies are ordered by creation time (oldest first).
The ID of the campaign to list proxies for
An array of proxy models, or null if the campaign does not exist
Reads a proxy model by its ID.
The ID of the campaign containing the proxy
The proxy ID to read
The proxy model, or null if not found
StaticregisterRegister proxy repository instance as singleton in DI container.
DI container to register in
Redis proxy repository implementation.