Bound provisioning history and poll only active operations

This commit is contained in:
2026-10-05 14:52:30 -04:00
parent 16a5bc3534
commit 041c024f95
11 changed files with 279 additions and 44 deletions
+31
View File
@@ -0,0 +1,31 @@
import type { ProvisioningAction } from './provisioning.js';
import type { ProvisioningDeployment } from './provisioning-detail.js';
export type ProvisioningListRow = Pick<ProvisioningDeployment,
'id' | 'server' | 'server_deleted_at' | 'action' | 'state' | 'stage' | 'started_at' |
'finished_at' | 'triggered_by' | 'error' | 'warnings' | 'server_exists'> & { canCancelRemoval: number };
export interface ProvisioningListOptions {
view?: 'active' | 'history' | 'all';
action?: ProvisioningAction;
status?: 'attention';
server?: string;
limit?: number;
offset?: number;
}
export interface ProvisioningListPage {
deployments: ProvisioningListRow[];
total: number;
needsReview: number;
limit: number;
offset: number;
}
export function provisioningPageSize(value: number): number {
return Number.isFinite(value) ? Math.min(100, Math.max(1, Math.floor(value) || 25)) : 25;
}
export function provisioningPageOffset(value: number): number {
return Number.isFinite(value) ? Math.min(1_000_000, Math.max(0, Math.floor(value))) : 0;
}