mirror of
https://github.com/perfect-panel/ppanel-web.git
synced 2026-02-06 11:40:28 -05:00
226 lines
6.8 KiB
TypeScript
226 lines
6.8 KiB
TypeScript
export const subscribeSchema = {
|
|
SiteName: { type: 'string', description: 'Site name' },
|
|
SubscribeName: { type: 'string', description: 'Subscribe name' },
|
|
Proxies: {
|
|
type: 'array',
|
|
description: 'Array of proxy nodes',
|
|
items: {
|
|
type: 'object',
|
|
properties: {
|
|
Name: { type: 'string', description: 'Node name' },
|
|
Server: { type: 'string', description: 'Server host' },
|
|
Port: { type: 'number', description: 'Server port' },
|
|
Type: { type: 'string', description: 'Proxy type' },
|
|
Tags: {
|
|
type: 'array',
|
|
description: 'Node tags',
|
|
items: { type: 'string' },
|
|
},
|
|
Sort: { type: 'number', description: 'Node sort order' },
|
|
// Security Options
|
|
Security: {
|
|
type: 'string',
|
|
description: 'Security protocol',
|
|
},
|
|
SNI: {
|
|
type: 'string',
|
|
description: 'Server Name Indication for TLS',
|
|
},
|
|
AllowInsecure: {
|
|
type: 'boolean',
|
|
description: 'Allow insecure connections (skip certificate verification)',
|
|
},
|
|
Fingerprint: {
|
|
type: 'string',
|
|
description: 'Client fingerprint for TLS connections',
|
|
},
|
|
RealityServerAddr: {
|
|
type: 'string',
|
|
description: 'Reality server address',
|
|
},
|
|
RealityServerPort: {
|
|
type: 'number',
|
|
description: 'Reality server port',
|
|
},
|
|
RealityPrivateKey: {
|
|
type: 'string',
|
|
description: 'Reality private key for authentication',
|
|
},
|
|
RealityPublicKey: {
|
|
type: 'string',
|
|
description: 'Reality public key for authentication',
|
|
},
|
|
RealityShortId: {
|
|
type: 'string',
|
|
description: 'Reality short ID for authentication',
|
|
},
|
|
// Transport Options
|
|
Transport: {
|
|
type: 'string',
|
|
description: 'Transport protocol (e.g., ws, http, grpc)',
|
|
},
|
|
Host: {
|
|
type: 'string',
|
|
description: 'For WebSocket/HTTP/HTTPS',
|
|
},
|
|
Path: { type: 'string', description: 'For HTTP/HTTPS' },
|
|
ServiceName: {
|
|
type: 'string',
|
|
description: 'For gRPC',
|
|
},
|
|
// Shadowsocks Options
|
|
Method: { type: 'string', description: 'Encryption method' },
|
|
ServerKey: {
|
|
type: 'string',
|
|
description: 'For Shadowsocks 2022',
|
|
},
|
|
// Vmess/Vless/Trojan Options
|
|
Flow: {
|
|
type: 'string',
|
|
description: 'Flow for Vmess/Vless/Trojan',
|
|
},
|
|
// Hysteria2 Options
|
|
HopPorts: {
|
|
type: 'string',
|
|
description: 'Comma-separated list of hop ports',
|
|
},
|
|
HopInterval: {
|
|
type: 'number',
|
|
description: 'Interval for hop ports in seconds',
|
|
},
|
|
ObfsPassword: {
|
|
type: 'string',
|
|
description: 'Obfuscation password for Hysteria2',
|
|
},
|
|
// Tuic Options
|
|
DisableSNI: {
|
|
type: 'boolean',
|
|
description: 'Disable SNI',
|
|
},
|
|
ReduceRtt: {
|
|
type: 'boolean',
|
|
description: 'Reduce RTT',
|
|
},
|
|
UDPRelayMode: {
|
|
type: 'string',
|
|
description: 'UDP relay mode (e.g., "full", "partial")',
|
|
},
|
|
CongestionController: {
|
|
type: 'string',
|
|
description: 'Congestion controller (e.g., "cubic", "bbr")',
|
|
},
|
|
// Hysteria2 additional options
|
|
UpMbps: {
|
|
type: 'number',
|
|
description: 'Upload bandwidth in Mbps',
|
|
},
|
|
DownMbps: {
|
|
type: 'number',
|
|
description: 'Download bandwidth in Mbps',
|
|
},
|
|
// VLESS encryption options
|
|
Encryption: {
|
|
type: 'string',
|
|
description: 'Encryption type for VLESS',
|
|
},
|
|
EncryptionMode: {
|
|
type: 'string',
|
|
description: 'Encryption mode (e.g., "native", "xorpub", "random")',
|
|
},
|
|
EncryptionRtt: {
|
|
type: 'string',
|
|
description: 'Encryption RTT (e.g., "0rtt", "1rtt")',
|
|
},
|
|
EncryptionTicket: {
|
|
type: 'string',
|
|
description: 'Encryption ticket',
|
|
},
|
|
EncryptionServerPadding: {
|
|
type: 'string',
|
|
description: 'Server padding for encryption',
|
|
},
|
|
EncryptionClientPadding: {
|
|
type: 'string',
|
|
description: 'Client padding for encryption',
|
|
},
|
|
EncryptionPassword: {
|
|
type: 'string',
|
|
description: 'Encryption password',
|
|
},
|
|
EncryptionPrivateKey: {
|
|
type: 'string',
|
|
description: 'Private key for encryption',
|
|
},
|
|
// XHTTP options
|
|
XhttpMode: {
|
|
type: 'string',
|
|
description: 'XHTTP mode (e.g., "auto", "packet-up", "stream-up", "stream-one")',
|
|
},
|
|
XhttpExtra: {
|
|
type: 'string',
|
|
description: 'XHTTP extra parameters',
|
|
},
|
|
// Shadowsocks obfs options (combined with Hysteria2 obfs)
|
|
ObfsHost: {
|
|
type: 'string',
|
|
description: 'Obfuscation host',
|
|
},
|
|
ObfsPath: {
|
|
type: 'string',
|
|
description: 'Obfuscation path',
|
|
},
|
|
// Shadowsocks cipher
|
|
Cipher: {
|
|
type: 'string',
|
|
description: 'Shadowsocks cipher method',
|
|
},
|
|
// AnyTLS options
|
|
PaddingScheme: {
|
|
type: 'string',
|
|
description: 'Padding scheme for AnyTLS',
|
|
},
|
|
// Mieru options
|
|
Multiplex: {
|
|
type: 'string',
|
|
description: 'Multiplex level (e.g., "none", "low", "middle", "high")',
|
|
},
|
|
// General protocol field
|
|
Enable: {
|
|
type: 'boolean',
|
|
description: 'Whether this protocol is enabled',
|
|
},
|
|
// UUID for vmess/vless
|
|
UUID: {
|
|
type: 'string',
|
|
description: 'User UUID for vmess/vless protocols',
|
|
},
|
|
// Alternative ID for vmess
|
|
AlterId: {
|
|
type: 'number',
|
|
description: 'Alternative ID for vmess (deprecated)',
|
|
},
|
|
// Password for trojan/tuic
|
|
Password: {
|
|
type: 'string',
|
|
description: 'Password for authentication',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
UserInfo: {
|
|
type: 'object',
|
|
description: 'User information',
|
|
properties: {
|
|
Password: { type: 'string', description: 'User password' },
|
|
ExpiredAt: { type: 'string', description: 'Expiration date' },
|
|
Download: { type: 'number', description: 'Downloaded bytes' },
|
|
Upload: { type: 'number', description: 'Uploaded bytes' },
|
|
Traffic: { type: 'number', description: 'Total traffic bytes' },
|
|
SubscribeURL: {
|
|
type: 'string',
|
|
description: 'Subscription URL',
|
|
},
|
|
},
|
|
},
|
|
};
|