Documentation
¶
Index ¶
- Constants
- Variables
- func NewBroadcaster() *broadcaster
- func NewElfinderFileInfo(id, dirPath string, originFileInfo os.FileInfo) elfinder.FileDir
- func ParseAcceptLanguageCode(language string) string
- func TrimPrefix(path string) string
- type AIConversation
- type ChatGPTMessage
- type Client
- func (c *Client) Close() (err error)
- func (c *Client) Context() context.Context
- func (c *Client) HandleRoomEvent(event string, roomMsg *exchange.RoomMessage)
- func (c *Client) ID() string
- func (c *Client) LoginFrom() string
- func (c *Client) Pty() ssh.Pty
- func (c *Client) Read(p []byte) (n int, err error)
- func (c *Client) RemoteAddr() string
- func (c *Client) SetWinSize(size ssh.Window)
- func (c *Client) WinCh() <-chan ssh.Window
- func (c *Client) Write(p []byte) (n int, err error)
- func (c *Client) WriteData(p []byte)
- type FileData
- type FileInfo
- type GetUserParams
- type Handler
- type Message
- type OpenAIParam
- type QARecord
- type RemoveSharingUserParams
- type Server
- func (s *Server) ChatAIWebsocket(ctx *gin.Context)
- func (s *Server) GenerateViewMeta(targetId string) (meta ViewPageMata)
- func (s *Server) HealthStatusHandler(ctx *gin.Context)
- func (s *Server) ProcessElfinderWebsocket(ctx *gin.Context)
- func (s *Server) ProcessSftpWebsocket(ctx *gin.Context)
- func (s *Server) ProcessTerminalWebsocket(ctx *gin.Context)
- func (s *Server) SftpHostConnectorView(ctx *gin.Context)
- func (s *Server) Start()
- func (s *Server) Stop()
- func (s *Server) UpgradeUserWsConn(ctx *gin.Context) (*UserWebsocket, error)
- type ShareInfo
- type ShareRequestMeta
- type ShareRequestParams
- type ShareResponse
- type StaticFSWrapper
- type StaticFileInfoWrapper
- type StaticFileWrapper
- type TerminalConnectData
- type UserKoKoPreferenceParam
- type UserVolume
- func (u *UserVolume) Close()
- func (u *UserVolume) GetFile(path string) (fileData elfinder.FileData, err error)
- func (u *UserVolume) ID() string
- func (u *UserVolume) Info(path string) (elfinder.FileDir, error)
- func (u *UserVolume) List(path string) []elfinder.FileDir
- func (u *UserVolume) MakeDir(dir, newDirname string) (elfinder.FileDir, error)
- func (u *UserVolume) MakeFile(dir, newFilename string) (elfinder.FileDir, error)
- func (u *UserVolume) MergeChunk(cid, total int, dirPath, uploadPath, filename string) (elfinder.FileDir, error)
- func (u *UserVolume) Parents(path string, dep int) []elfinder.FileDir
- func (u *UserVolume) Paste(dir, filename, suffix string, fileData elfinder.FileData) (elfinder.FileDir, error)
- func (u *UserVolume) Remove(path string) error
- func (u *UserVolume) Rename(oldNamePath, newName string) (elfinder.FileDir, error)
- func (u *UserVolume) RootFileDir() elfinder.FileDir
- func (u *UserVolume) Search(path, key string, mimes ...string) (res []elfinder.FileDir, err error)
- func (u *UserVolume) UploadChunk(cid int, dirPath, uploadPath, filename string, rangeData elfinder.ChunkRange, ...) error
- func (u *UserVolume) UploadFile(dirPath, uploadPath, filename string, reader io.Reader, totalSize int64) (elfinder.FileDir, error)
- type UserWebVolume
- func (u *UserWebVolume) Download(path string, isDir bool) (FileData, string, error)
- func (u *UserWebVolume) GetFile(path string) (fileData FileData, err error)
- func (u *UserWebVolume) List(path string) []FileInfo
- func (u *UserWebVolume) MakeDir(path string) error
- func (u *UserWebVolume) MergeChunk(cid int, path string) error
- func (u *UserWebVolume) Rename(oldNamePath, newName string) error
- func (u *UserWebVolume) UploadChunk(cid int, path string, offset, dataSize int64, readerAt io.ReaderAt) error
- func (u *UserWebVolume) UploadFile(path string, reader io.Reader, totalSize int64) error
- type UserWebsocket
- func (userCon *UserWebsocket) ClientIP() string
- func (userCon *UserWebsocket) CurrentUser() *model.User
- func (userCon *UserWebsocket) GetHandler() Handler
- func (userCon *UserWebsocket) RecordLifecycleLog(sid string, event model.LifecycleEvent, logObj model.SessionLifecycleLog)
- func (userCon *UserWebsocket) Run()
- func (userCon *UserWebsocket) SendErrMessage(errMsg string)
- func (userCon *UserWebsocket) SendMessage(msg *Message)
- type ViewPageMata
- type VolumeOption
- type WindowSize
- type WsRequestParams
Constants ¶
View Source
const ( PING = "PING" PONG = "PONG" CONNECT = "CONNECT" CLOSE = "CLOSE" ERROR = "ERROR" TerminalInit = "TERMINAL_INIT" TerminalData = "TERMINAL_DATA" TerminalResize = "TERMINAL_RESIZE" TerminalBinary = "TERMINAL_BINARY" TerminalAction = "TERMINAL_ACTION" TerminalSession = "TERMINAL_SESSION" TerminalSessionPause = "TERMINAL_SESSION_PAUSE" TerminalSessionResume = "TERMINAL_SESSION_RESUME" TerminalPermValid = "TERMINAL_PERM_VALID" TerminalPermExpired = "TERMINAL_PERM_EXPIRED" TerminalSyncUserPreference = "TERMINAL_SYNC_USER_PREFERENCE" TerminalError = "TERMINAL_ERROR" MessageNotify = "MESSAGE_NOTIFY" TerminalK8SInit = "TERMINAL_K8S_INIT" TerminalK8STree = "TERMINAL_K8S_TREE" TerminalK8SData = "TERMINAL_K8S_DATA" TerminalK8SBinary = "TERMINAL_K8S_BINARY" TerminalK8SResize = "TERMINAL_K8S_RESIZE" K8SClose = "K8S_CLOSE" SFTPData = "SFTP_DATA" SFTPBinary = "SFTP_BINARY" )
View Source
const ( TargetTypeMonitor = "monitor" )
View Source
const ( TTYName = "terminal" WebFolderName = "web_folder" ChatName = "chat" )
View Source
const MaxMessageLen = 1024
View Source
const (
WebsocketErrorf = "Websocket upgrade err: %s"
)
Variables ¶
View Source
var ( ErrAssetIdInvalid = errors.New("asset id invalid") ErrPermissionDenied = errors.New("permission denied") )
Functions ¶
func NewBroadcaster ¶
func NewBroadcaster() *broadcaster
func NewElfinderFileInfo ¶
func ParseAcceptLanguageCode ¶
func TrimPrefix ¶
Types ¶
type AIConversation ¶
type ChatGPTMessage ¶
type Client ¶
type Client struct {
WinChan chan ssh.Window
UserRead io.ReadCloser
UserWrite io.WriteCloser
Conn *UserWebsocket
sync.Mutex
KubernetesId string
Namespace string
Pod string
Container string
// contains filtered or unexported fields
}
func (*Client) HandleRoomEvent ¶
func (c *Client) HandleRoomEvent(event string, roomMsg *exchange.RoomMessage)
func (*Client) RemoteAddr ¶
func (*Client) SetWinSize ¶
type GetUserParams ¶
type GetUserParams struct {
Query string `json:"query"`
}
type Message ¶
type Message struct {
Id string `json:"id"`
Type string `json:"type"`
Data string `json:"data"`
Raw []byte `json:"raw"`
Err string `json:"err"`
//Chat AI
Prompt string `json:"prompt"`
Interrupt bool `json:"interrupt"`
//K8s
KubernetesId string `json:"k8s_id"`
Namespace string `json:"namespace"`
Pod string `json:"pod"`
Container string `json:"container"`
// Sftp
Cmd string `json:"cmd"`
CurrentPath string `json:"current_path"`
}
type OpenAIParam ¶
type RemoveSharingUserParams ¶
type RemoveSharingUserParams struct {
SessionId string `json:"session"`
UserMeta exchange.MetaMessage `json:"user_meta"`
}
type Server ¶
func (*Server) ChatAIWebsocket ¶
func (*Server) GenerateViewMeta ¶
func (s *Server) GenerateViewMeta(targetId string) (meta ViewPageMata)
func (*Server) HealthStatusHandler ¶
func (*Server) ProcessElfinderWebsocket ¶
func (*Server) ProcessSftpWebsocket ¶
func (*Server) ProcessTerminalWebsocket ¶
func (*Server) SftpHostConnectorView ¶
func (*Server) UpgradeUserWsConn ¶
func (s *Server) UpgradeUserWsConn(ctx *gin.Context) (*UserWebsocket, error)
type ShareRequestMeta ¶
type ShareRequestMeta struct {
}
type ShareRequestParams ¶
type ShareRequestParams struct {
}
type ShareResponse ¶
type ShareResponse struct {
}
type StaticFSWrapper ¶
type StaticFSWrapper struct {
http.FileSystem
FixedModTime time.Time
}
type StaticFileInfoWrapper ¶
func (*StaticFileInfoWrapper) ModTime ¶
func (f *StaticFileInfoWrapper) ModTime() time.Time
type StaticFileWrapper ¶
type TerminalConnectData ¶
type UserKoKoPreferenceParam ¶
type UserKoKoPreferenceParam struct {
ThemeName string `json:"terminal_theme_name"`
}
type UserVolume ¶
type UserVolume struct {
Uuid string
UserSftp *srvconn.UserSftpConn
HomeName string
// contains filtered or unexported fields
}
func NewUserVolume ¶
func NewUserVolume(jmsService *service.JMService, opts ...VolumeOption) *UserVolume
func SftpCheckValidation ¶
func SftpCheckValidation(ws *UserWebsocket) (*UserVolume, error)
func (*UserVolume) Close ¶
func (u *UserVolume) Close()
func (*UserVolume) GetFile ¶
func (u *UserVolume) GetFile(path string) (fileData elfinder.FileData, err error)
func (*UserVolume) ID ¶
func (u *UserVolume) ID() string
func (*UserVolume) MakeDir ¶
func (u *UserVolume) MakeDir(dir, newDirname string) (elfinder.FileDir, error)
func (*UserVolume) MakeFile ¶
func (u *UserVolume) MakeFile(dir, newFilename string) (elfinder.FileDir, error)
func (*UserVolume) MergeChunk ¶
func (*UserVolume) Remove ¶
func (u *UserVolume) Remove(path string) error
func (*UserVolume) Rename ¶
func (u *UserVolume) Rename(oldNamePath, newName string) (elfinder.FileDir, error)
func (*UserVolume) RootFileDir ¶
func (u *UserVolume) RootFileDir() elfinder.FileDir
func (*UserVolume) UploadChunk ¶
func (u *UserVolume) UploadChunk(cid int, dirPath, uploadPath, filename string, rangeData elfinder.ChunkRange, reader io.Reader) error
func (*UserVolume) UploadFile ¶
type UserWebVolume ¶
type UserWebVolume struct {
*UserVolume
}
func NewUserWebVolume ¶
func NewUserWebVolume(userVolume *UserVolume) *UserWebVolume
func (*UserWebVolume) GetFile ¶
func (u *UserWebVolume) GetFile(path string) (fileData FileData, err error)
func (*UserWebVolume) List ¶
func (u *UserWebVolume) List(path string) []FileInfo
func (*UserWebVolume) MakeDir ¶
func (u *UserWebVolume) MakeDir(path string) error
func (*UserWebVolume) MergeChunk ¶
func (u *UserWebVolume) MergeChunk(cid int, path string) error
func (*UserWebVolume) Rename ¶
func (u *UserWebVolume) Rename(oldNamePath, newName string) error
func (*UserWebVolume) UploadChunk ¶
func (*UserWebVolume) UploadFile ¶
type UserWebsocket ¶
type UserWebsocket struct {
Uuid string
ConnectToken *model.ConnectToken
// contains filtered or unexported fields
}
func (*UserWebsocket) ClientIP ¶
func (userCon *UserWebsocket) ClientIP() string
func (*UserWebsocket) CurrentUser ¶
func (userCon *UserWebsocket) CurrentUser() *model.User
func (*UserWebsocket) GetHandler ¶
func (userCon *UserWebsocket) GetHandler() Handler
func (*UserWebsocket) RecordLifecycleLog ¶
func (userCon *UserWebsocket) RecordLifecycleLog(sid string, event model.LifecycleEvent, logObj model.SessionLifecycleLog)
func (*UserWebsocket) Run ¶
func (userCon *UserWebsocket) Run()
func (*UserWebsocket) SendErrMessage ¶
func (userCon *UserWebsocket) SendErrMessage(errMsg string)
func (*UserWebsocket) SendMessage ¶
func (userCon *UserWebsocket) SendMessage(msg *Message)
type ViewPageMata ¶
type VolumeOption ¶
type VolumeOption func(*volumeOption)
func WithAddr ¶
func WithAddr(addr string) VolumeOption
func WithAsset ¶
func WithAsset(asset *model.PermAsset) VolumeOption
func WithConnectToken ¶
func WithConnectToken(connectToken *model.ConnectToken) VolumeOption
func WithTerminalCfg ¶
func WithTerminalCfg(cfg *model.TerminalConfig) VolumeOption
func WithUser ¶
func WithUser(user *model.User) VolumeOption
type WindowSize ¶
type WsRequestParams ¶
type WsRequestParams struct {
TargetType string `form:"type"`
TargetId string `form:"target_id"`
Token string `form:"token"`
AssetId string `form:"asset"`
// k8s container
Pod string `form:"pod"`
Namespace string `form:"namespace"`
Container string `form:"container"`
// mysql database
DisableAutoHash string `form:"disableautohash"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.