chore: update
ci-api / test (push) Successful in 21m54s
ci-web / test (push) Successful in 17m37s

This commit is contained in:
Xor290
2026-08-02 15:23:43 +02:00
parent 18707e2b3e
commit b82deee4fb
7 changed files with 144 additions and 24 deletions
+41
View File
@@ -14,6 +14,7 @@ import {
ModalOverlay,
Radio,
RadioGroup,
Select,
Stack,
Switch,
Text,
@@ -51,6 +52,9 @@ export function CreateDemoModal({ isOpen, onClose, onCreated, leadId, lockedUser
const [lbBot1Token, setLbBot1Token] = useState('')
const [lbBot2Username, setLbBot2Username] = useState('')
const [lbBot2Token, setLbBot2Token] = useState('')
const [lbStrategy, setLbStrategy] = useState<'failover' | 'roundrobin' | 'leastconn'>('failover')
const [lbJwtTtlSeconds, setLbJwtTtlSeconds] = useState('')
const [lbHealthCheckInterval, setLbHealthCheckInterval] = useState('')
const [storageDriver, setStorageDriver] = useState<StorageDriver>('local')
const [s3Bucket, setS3Bucket] = useState('')
@@ -72,6 +76,9 @@ export function CreateDemoModal({ isOpen, onClose, onCreated, leadId, lockedUser
setLbBot1Token('')
setLbBot2Username('')
setLbBot2Token('')
setLbStrategy('failover')
setLbJwtTtlSeconds('')
setLbHealthCheckInterval('')
setStorageDriver('local')
setS3Bucket('')
setS3Endpoint('')
@@ -120,6 +127,9 @@ export function CreateDemoModal({ isOpen, onClose, onCreated, leadId, lockedUser
lbBot1Token: lbBot1Token.trim() || undefined,
lbBot2Username: lbBot2Username.trim() || undefined,
lbBot2Token: lbBot2Token.trim() || undefined,
lbStrategy,
lbJwtTtlSeconds: lbJwtTtlSeconds.trim() || undefined,
lbHealthCheckInterval: lbHealthCheckInterval.trim() || undefined,
}
: {}),
}
@@ -311,6 +321,37 @@ export function CreateDemoModal({ isOpen, onClose, onCreated, leadId, lockedUser
/>
</FormControl>
</HStack>
<HStack spacing={3} align="start">
<FormControl isDisabled={submitting}>
<FormLabel fontSize="sm">Stratégie de répartition</FormLabel>
<Select
value={lbStrategy}
onChange={(e) => setLbStrategy(e.target.value as typeof lbStrategy)}
>
<option value="failover">Failover</option>
<option value="roundrobin">Round-robin</option>
<option value="leastconn">Moins de connexions</option>
</Select>
</FormControl>
<FormControl isDisabled={submitting}>
<FormLabel fontSize="sm">TTL JWT (secondes)</FormLabel>
<Input
placeholder="300"
value={lbJwtTtlSeconds}
onChange={(e) => setLbJwtTtlSeconds(e.target.value)}
type="number"
/>
</FormControl>
<FormControl isDisabled={submitting}>
<FormLabel fontSize="sm">Intervalle health-check (s)</FormLabel>
<Input
placeholder="30"
value={lbHealthCheckInterval}
onChange={(e) => setLbHealthCheckInterval(e.target.value)}
type="number"
/>
</FormControl>
</HStack>
</Stack>
)}
+6
View File
@@ -88,6 +88,9 @@ export interface CreateDemoParams {
lbBot1Token?: string
lbBot2Username?: string
lbBot2Token?: string
lbStrategy?: 'failover' | 'roundrobin' | 'leastconn'
lbJwtTtlSeconds?: string
lbHealthCheckInterval?: string
adminUsername: string
adminPassword: string
}
@@ -185,6 +188,9 @@ export const api = {
: {}),
...(params.lbBot1Username ? { lb_bot1_username: params.lbBot1Username, lb_bot1_token: params.lbBot1Token } : {}),
...(params.lbBot2Username ? { lb_bot2_username: params.lbBot2Username, lb_bot2_token: params.lbBot2Token } : {}),
...(params.lbStrategy ? { lb_strategy: params.lbStrategy } : {}),
...(params.lbJwtTtlSeconds ? { lb_jwt_ttl_seconds: params.lbJwtTtlSeconds } : {}),
...(params.lbHealthCheckInterval ? { lb_health_check_interval: params.lbHealthCheckInterval } : {}),
admin_username: params.adminUsername,
admin_password: params.adminPassword,
}),