types

package
v0.5.0-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PermOwnerRead   = "owner_read"
	PermOwnerWrite  = "owner_write"
	PermOwnerExec   = "owner_exec"
	PermGroupRead   = "group_read"
	PermGroupWrite  = "group_write"
	PermGroupExec   = "group_exec"
	PermOthersRead  = "others_read"
	PermOthersWrite = "others_write"
	PermOthersExec  = "others_exec"
	PermSetUid      = "set_uid"
	PermSetGid      = "set_gid"
	PermSticky      = "sticky"
)
View Source
const (
	ScheduledTaskInitial   = "initial"
	ScheduledTaskWait      = "wait"
	ScheduledTaskExecuting = "executing"
	ScheduledTaskFinish    = "finish"
	ScheduledTaskSucceed   = "succeed"
	ScheduledTaskFailed    = "failed"
)
View Source
const (
	NotificationInfo   = "info"
	NotificationWarn   = "warn"
	NotificationUnread = "unread"
	NotificationRead   = "read"
)
View Source
const (
	/*
		system-wide kind
	*/
	GroupKind            = "group"
	SmartGroupKind       = "smtgroup"
	ExternalGroupKind    = "extgroup"
	GroupKindMap         = 0x02000
	SmartGroupKindMap    = 0x02001
	ExternalGroupKindMap = 0x02002

	/*
		text based file kind
	*/
	TextKind    = "text"
	TextKindMap = 0x01001

	/*
		format doc kind
	*/
	FmtDocKind    = "fmtdoc"
	FmtDocKindMap = 0x01002

	/*
		media file kind
	*/
	ImageKind    = "image"
	VideoKind    = "video"
	AudioKind    = "audio"
	ImageKindMap = 0x01003
	VideoKindMap = 0x01004
	AudioKindMap = 0x01005

	/*
		web based file kind
	*/
	WebArchiveKind    = "web"
	WebArchiveKindMap = 0x01006

	/*
		ungrouped files
	*/
	RawKind    = "raw"
	RawKindMap = 0x01000

	FIFOKind       = "fifo"
	SocketKind     = "socket"
	SymLinkKind    = "symlink"
	BlkDevKind     = "blk"
	CharDevKind    = "chr"
	FIFOKindMap    = 0x03001
	SocketKindMap  = 0x03002
	SymLinkKindMap = 0x03003
	BlkDevKindMap  = 0x03004
	CharDevKindMap = 0x03005
)
View Source
const (
	LabelKeyPluginPrefix = "org.basenana.internal.plugin/"
	LabelKeyPluginKind   = LabelKeyPluginPrefix + "kind"
	LabelKeyPluginName   = LabelKeyPluginPrefix + "name"
)
View Source
const (
	PlugScopeEntryName     = "entry.name"
	PlugScopeEntryPath     = "entry.path" // relative path
	PlugScopeWorkflowID    = "workflow.id"
	PlugScopeWorkflowJobID = "workflow.job.id"
)
View Source
const (
	RuleLogicAll = "all"
	RuleLogicAny = "any"
	RuleLogicNot = "not"

	RuleOpEqual     = "equal"
	RuleOpBeginWith = "prefix"
	RuleOpEndWith   = "suffix"
	RuleOpPattern   = "pattern"
	RuleOpBefore    = "before"
	RuleOpAfter     = "after"
	RuleOpIn        = "in"
)

Variables

View Source
var (
	ErrNotFound    = errors.New("no record")
	ErrNameTooLong = errors.New("name too long")
	ErrIsExist     = errors.New("record existed")
	ErrNotEmpty    = errors.New("group not empty")
	ErrNoGroup     = errors.New("not group")
	ErrIsGroup     = errors.New("this object is a group")
	ErrNoAccess    = errors.New("no access")
	ErrNoPerm      = errors.New("no permission")
	ErrConflict    = errors.New("operation conflict")
	ErrUnsupported = errors.New("unsupported operation")
)

Functions

func IsGroup

func IsGroup(k Kind) bool

func IsMirrored

func IsMirrored(entry *Metadata) bool

func KindMap

func KindMap(k Kind) int64

Types

type Access

type Access struct {
	Permissions []Permission `json:"permissions,omitempty"`
	UID         int64        `json:"uid"`
	GID         int64        `json:"gid"`
}

func (*Access) AddPerm

func (a *Access) AddPerm(p Permission)

func (*Access) HasPerm

func (a *Access) HasPerm(p Permission) bool

func (*Access) RemovePerm

func (a *Access) RemovePerm(p Permission)

type ChangeParentAttr

type ChangeParentAttr struct {
	Uid      int64
	Gid      int64
	Replace  bool
	Exchange bool
}

type ChunkSeg

type ChunkSeg struct {
	ID      int64
	ChunkID int64
	EntryID int64
	Off     int64
	Len     int64
	State   int16
}

type DestroyObjectAttr

type DestroyObjectAttr struct {
	Uid int64
	Gid int64
}

type Document

type Document struct {
	ID            int64     `json:"id"`
	OID           int64     `json:"oid"`
	Name          string    `json:"name"`
	ParentEntryID int64     `json:"parent_entry_id"`
	Source        string    `json:"source"`
	KeyWords      []string  `json:"keywords,omitempty"`
	Content       string    `json:"content,omitempty"`
	Summary       string    `json:"summary,omitempty"`
	Desync        bool      `json:"desync"`
	CreatedAt     time.Time `json:"created_at"`
	ChangedAt     time.Time `json:"changed_at"`
}

type DocumentFeed

type DocumentFeed struct {
	ID         string
	Display    string
	ParentID   int64
	Keywords   string
	IndexQuery string
}

type EntryAttr

type EntryAttr struct {
	Name        string
	Kind        Kind
	Access      *Access
	Dev         int64
	ExtendData  ExtendData
	Labels      Labels
	PlugScope   *PlugScope
	GroupFilter *Rule
}

type EntryEvent

type EntryEvent struct {
	Id              string    `json:"id"`
	Type            string    `json:"type"`
	Source          string    `json:"source"`
	SpecVersion     string    `json:"specversion"`
	Time            time.Time `json:"time"`
	RefID           int64     `json:"nanafsrefid"`
	RefType         string    `json:"nanafsreftype"`
	DataContentType string    `json:"datacontenttype"`
	Data            EventData `json:"data"`
}

type EntryUri

type EntryUri struct {
	ID      int64  `json:"id"`
	Uri     string `json:"uri"`
	Invalid bool   `json:"invalid"`
}

type EventData

type EventData struct {
	ID        int64  `json:"id"`
	ParentID  int64  `json:"parent_id,omitempty"`
	RefID     int64  `json:"ref_id,omitempty"`
	Kind      Kind   `json:"kind,omitempty"`
	KindMap   int64  `json:"kind_map,omitempty"`
	Namespace string `json:"namespace,omitempty"`
	Storage   string `json:"storage,omitempty"`
}

func NewEventDataFromDocument

func NewEventDataFromDocument(doc *Document) EventData

func NewEventDataFromEntry

func NewEventDataFromEntry(entry *Metadata) EventData

type ExtendData

type ExtendData struct {
	Properties  Properties `json:"properties"`
	Symlink     string     `json:"symlink,omitempty"`
	GroupFilter *Rule      `json:"group_filter,omitempty"`
	PlugScope   *PlugScope `json:"plug_scope,omitempty"`
}

type FDocument

type FDocument struct {
	Content  string
	Metadata map[string]any
}

type FeedResult

type FeedResult struct {
	FeedId    string `json:"feed_id"`
	GroupName string `json:"group_name"`
	SiteUrl   string `json:"site_url"`
	SiteName  string `json:"site_name"`
	FeedUrl   string `json:"feed_url"`

	Documents []FeedResultItem `json:"documents"`
}

type FeedResultItem

type FeedResultItem struct {
	ID        string   `json:"id"`
	Title     string   `json:"title"`
	Link      string   `json:"link"`
	UpdatedAt string   `json:"updated_at"`
	Document  Document `json:"document"`
}

type Filter

type Filter struct {
	ID        int64
	Name      string
	ParentID  int64
	RefID     int64
	Kind      Kind
	Namespace string
	Label     LabelMatch
}

type FridayAccount

type FridayAccount struct {
	ID             int64
	RefID          int64
	RefType        string
	Type           string
	CompleteTokens int
	PromptTokens   int
	TotalTokens    int
	CreatedAt      time.Time
}

type JobFilter

type JobFilter struct {
	WorkFlowID  string
	JobID       string
	Status      string
	TargetEntry int64
}

type Kind

type Kind string

Kind of Entry

type Label

type Label struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type LabelMatch

type LabelMatch struct {
	Include []Label  `json:"include"`
	Exclude []string `json:"exclude"`
}

type Labels

type Labels struct {
	Labels []Label `json:"labels,omitempty"`
}

func (Labels) Get

func (l Labels) Get(key string) *Label

type Metadata

type Metadata struct {
	ID         int64     `json:"id"`
	Name       string    `json:"name"`
	Aliases    string    `json:"aliases,omitempty"`
	ParentID   int64     `json:"parent_id"`
	RefID      int64     `json:"ref_id,omitempty"`
	RefCount   int       `json:"ref_count,omitempty"`
	Kind       Kind      `json:"kind"`
	KindMap    int64     `json:"kind_map"`
	Size       int64     `json:"size"`
	Version    int64     `json:"version"`
	Dev        int64     `json:"dev"`
	Namespace  string    `json:"namespace,omitempty"`
	Storage    string    `json:"storage"`
	CreatedAt  time.Time `json:"created_at"`
	ChangedAt  time.Time `json:"changed_at"`
	ModifiedAt time.Time `json:"modified_at"`
	AccessAt   time.Time `json:"access_at"`
	Access     Access    `json:"access"`
}

func InitNewEntry

func InitNewEntry(parent *Metadata, attr EntryAttr) (*Metadata, error)

func NewMetadata

func NewMetadata(name string, kind Kind) Metadata

type Notification

type Notification struct {
	ID      string
	Title   string
	Message string
	Type    string
	Source  string
	Action  string
	Status  string
	Time    time.Time
}

type OpenAttr

type OpenAttr struct {
	EntryID int64
	Read    bool
	Write   bool
	Create  bool
	Trunc   bool
	Direct  bool
}

type Permission

type Permission string

type PlugScope

type PlugScope struct {
	PluginName string            `json:"plugin_name"`
	Version    string            `json:"version"`
	PluginType PluginType        `json:"plugin_type,omitempty"`
	Action     string            `json:"action,omitempty"`
	Parameters map[string]string `json:"parameters"`
}

type PluginSpec

type PluginSpec struct {
	Name       string            `json:"name"`
	Version    string            `json:"version"`
	Type       PluginType        `json:"type"`
	Parameters map[string]string `json:"parameters"`

	Adaptor  string `json:"adaptor"`
	Path     string `json:"path,omitempty"`     // goplugin
	Operator string `json:"operator,omitempty"` // goflow
}

PluginSpec is Plugin Config File to load a Plugin

type PluginType

type PluginType string
const (
	TypeSource  PluginType = "source"
	TypeProcess PluginType = "process"
	TypeMirror  PluginType = "mirror"
	TypeIngest  PluginType = "ingest"
)

type Properties

type Properties struct {
	Fields map[string]PropertyItem `json:"fields,omitempty"`
}

type PropertyItem

type PropertyItem struct {
	Value   string `json:"value"`
	Encoded bool   `json:"encoded"`
}

type Rule

type Rule struct {
	Logic string `json:"logic,omitempty"`
	Rules []Rule `json:"rules,omitempty"`

	Operation string `json:"operation,omitempty"`
	Column    string `json:"column,omitempty"`
	Value     string `json:"value,omitempty"`

	Labels *LabelMatch `json:"labels,omitempty"`
}

type ScheduledTask

type ScheduledTask struct {
	ID      int64
	TaskID  string
	Status  string
	RefType string
	RefID   int64
	Result  string

	CreatedTime    time.Time
	ExecutionTime  time.Time
	ExpirationTime time.Time
	Event          EntryEvent
}

type ScheduledTaskFilter

type ScheduledTaskFilter struct {
	RefType string
	RefID   int64
	Status  []string
}

type SystemInfo

type SystemInfo struct {
	FilesystemID  string `json:"filesystem_id"`
	MaxSegmentID  int64  `json:"max_segment_id"`
	ObjectCount   int64  `json:"object_count"`
	FileSizeTotal int64  `json:"file_size_total"`
}

type WorkflowEntryResult

type WorkflowEntryResult struct {
}

type WorkflowJob

type WorkflowJob struct {
	Id            string            `json:"id"`
	Workflow      string            `json:"workflow"`
	TriggerReason string            `json:"trigger_reason,omitempty"`
	Target        WorkflowTarget    `json:"target"`
	Steps         []WorkflowJobStep `json:"steps"`
	Status        string            `json:"status,omitempty"`
	Message       string            `json:"message,omitempty"`
	StartAt       time.Time         `json:"start_at"`
	FinishAt      time.Time         `json:"finish_at"`
	CreatedAt     time.Time         `json:"created_at"`
	UpdatedAt     time.Time         `json:"updated_at"`
}

func (*WorkflowJob) GetMessage

func (w *WorkflowJob) GetMessage() string

func (*WorkflowJob) GetStatus

func (w *WorkflowJob) GetStatus() string

func (*WorkflowJob) SetMessage

func (w *WorkflowJob) SetMessage(msg string)

func (*WorkflowJob) SetStatus

func (w *WorkflowJob) SetStatus(status string)

type WorkflowJobStep

type WorkflowJobStep struct {
	StepName string     `json:"step_name"`
	Message  string     `json:"message,omitempty"`
	Status   string     `json:"status,omitempty"`
	Plugin   *PlugScope `json:"plugin,omitempty"`
}

type WorkflowSpec

type WorkflowSpec struct {
	Id              string             `json:"id"`
	Name            string             `json:"name"`
	Rule            Rule               `json:"rule,omitempty"`
	Cron            string             `json:"cron,omitempty"`
	Steps           []WorkflowStepSpec `json:"steps,omitempty"`
	Enable          bool               `json:"enable"`
	CreatedAt       time.Time          `json:"created_at"`
	UpdatedAt       time.Time          `json:"updated_at"`
	LastTriggeredAt time.Time          `json:"last_triggered_at"`
}

type WorkflowStepSpec

type WorkflowStepSpec struct {
	Name   string     `json:"name"`
	Plugin *PlugScope `json:"plugin,omitempty"`
}

type WorkflowTarget

type WorkflowTarget struct {
	EntryID       int64 `json:"entry_id,omitempty"`
	ParentEntryID int64 `json:"parent_entry_id,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL