Files
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

59 lines
1.8 KiB
TypeScript

export type KbxIntegrationState = 'queued' | 'delivering' | 'retrying' | 'delivered' | 'failed' | 'suspended'
export type KbxIntegrationDirection = 'inbound' | 'outbound'
export type KbxIntegrationTransport = 'outbox-http' | 'outbox-event' | 'inbox-event'
export type KbxIntegrationDelivery = 'at-most-once' | 'at-least-once'
export type KbxIntegrationCriticality = 'low' | 'medium' | 'high'
export interface KbxIntegrationShortRetryDefinition {
maxRetryAttempts: number
baseDelayMs: number
backoff: 'constant' | 'exponential'
}
export interface KbxIntegrationLongRetryDefinition {
scheduler: 'hangfire'
maxAttempts: number
scheduleSeconds: readonly number[]
}
export interface KbxIntegrationCircuitBreakerDefinition {
failureRatio: number
samplingSeconds: number
minimumThroughput: number
breakSeconds: number
}
export interface KbxIntegrationDefinition {
id: string
title: string
ownerModule: 'OMS' | 'ERP' | 'WMS' | 'COMMON'
direction: KbxIntegrationDirection
transport: KbxIntegrationTransport
criticality: KbxIntegrationCriticality
sourceEvent: string
target: string
delivery: KbxIntegrationDelivery
ordering: 'none' | 'per-aggregate'
idempotency: 'none' | 'event-id' | 'business-key'
timeoutMs: number
shortRetry: KbxIntegrationShortRetryDefinition
longRetry: KbxIntegrationLongRetryDefinition
circuitBreaker: KbxIntegrationCircuitBreakerDefinition
retryable: readonly string[]
permanent: readonly string[]
terminalAction: 'operations-exception' | 'dead-letter'
userVisible: boolean
}
export interface KbxIntegrationStatusView {
integrationId: string
state: KbxIntegrationState
label: string
attemptCount?: number
lastAttemptAt?: string
nextRetryAt?: string
detail?: string
correlationId?: string
retryAllowed?: boolean
}