feat(api, web): интеграция Veesp client area API
Docker / build (push) Has been cancelled

Добавлен отдельный модуль veesp для синка VPS, баланса, счетов и тарифов через JWT/Basic auth.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Denozordec
2026-06-29 10:25:12 +07:00
co-authored by Cursor
parent b15e10f117
commit 579c00392d
17 changed files with 1773 additions and 5 deletions
@@ -88,6 +88,8 @@ export function ProviderAccountEditSheet({
? 'API Token хранится на сервере и используется для синка с UserAPI'
: initialProvider?.apiType === '4vps'
? 'Panel ID и API Key хранятся на сервере и используются для синка с 4VPS'
: initialProvider?.apiType === 'veesp'
? 'Email и пароль client area Veesp хранятся на сервере и используются для синка'
: 'API-креды хранятся на сервере и используются для синка с BILLmanager'
}
schema={providerAccountSchema as unknown as ZodType<ProviderAccountFormValues>}
@@ -6,7 +6,7 @@ import { SelectField } from '@/components/select-field'
import type { ZodType } from 'zod'
import { providerSchema, type ProviderFormValues } from '@/lib/schemas'
import type { ApiType } from '@/types/entities'
import { isUserApiType, USER_API_DEFAULT_BASE_URL } from '@cfdm/shared/contracts/provider'
import { isUserApiType, USER_API_DEFAULT_BASE_URL, VEESP_DEFAULT_BASE_URL } from '@cfdm/shared/contracts/provider'
const EMPTY: ProviderFormValues = {
name: '',
@@ -58,12 +58,16 @@ export function ProviderEditSheet({
const apiUrlHint =
apiType === '4vps'
? 'Базовый URL API, например https://4vps.su/api'
: apiType === 'veesp'
? 'Базовый URL Veesp API, например https://secure.veesp.com/api'
: isUserApiType(apiType)
? `Базовый URL UserAPI, например ${USER_API_DEFAULT_BASE_URL[apiType]}`
: 'Один URL на хостера для BILLmanager'
const apiUrlPlaceholder =
apiType === '4vps'
? 'https://4vps.su/api'
: apiType === 'veesp'
? VEESP_DEFAULT_BASE_URL
: isUserApiType(apiType)
? USER_API_DEFAULT_BASE_URL[apiType]
: undefined
@@ -86,6 +90,7 @@ export function ProviderEditSheet({
{ value: '4vps', label: '4VPS.SU' },
{ value: 'macloud', label: 'Маклауд' },
{ value: 'vdsina', label: 'VDSina' },
{ value: 'veesp', label: 'Veesp' },
{ value: 'none', label: 'Нет' },
]}
/>