graphql

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Jan 5, 2026 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DataLoaderMiddleware

func DataLoaderMiddleware(repo interfaces.Repository, slackClient interfaces.SlackClient) func(http.Handler) http.Handler

DataLoaderMiddleware injects data loaders into the context

func GetAlert

func GetAlert(ctx context.Context, alertID types.AlertID) (*alert.Alert, error)

GetAlert returns single alert by id efficiently

func GetTicket

func GetTicket(ctx context.Context, ticketID types.TicketID) (*ticket.Ticket, error)

GetTicket returns single ticket by id efficiently

func GetUser

func GetUser(ctx context.Context, userID string) (*graphql1.User, error)

GetUser returns single user by id efficiently

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

Types

type ActivityResolver

type ActivityResolver interface {
	User(ctx context.Context, obj *graphql1.Activity) (*graphql1.User, error)
	Alert(ctx context.Context, obj *graphql1.Activity) (*alert.Alert, error)
	Ticket(ctx context.Context, obj *graphql1.Activity) (*ticket.Ticket, error)
}

type AlertResolver

type AlertResolver interface {
	ID(ctx context.Context, obj *alert.Alert) (string, error)

	Schema(ctx context.Context, obj *alert.Alert) (string, error)
	Data(ctx context.Context, obj *alert.Alert) (string, error)
	Attributes(ctx context.Context, obj *alert.Alert) ([]*graphql1.AlertAttribute, error)
	CreatedAt(ctx context.Context, obj *alert.Alert) (string, error)
	Ticket(ctx context.Context, obj *alert.Alert) (*ticket.Ticket, error)

	TagObjects(ctx context.Context, obj *alert.Alert) ([]*graphql1.TagObject, error)
}

type CommentResolver

type CommentResolver interface {
	ID(ctx context.Context, obj *ticket.Comment) (string, error)
	Content(ctx context.Context, obj *ticket.Comment) (string, error)
	User(ctx context.Context, obj *ticket.Comment) (*graphql1.User, error)
	CreatedAt(ctx context.Context, obj *ticket.Comment) (string, error)
	UpdatedAt(ctx context.Context, obj *ticket.Comment) (string, error)
}

type ComplexityRoot

type ComplexityRoot struct {
	ActivitiesResponse struct {
		Activities func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	Activity struct {
		Alert     func(childComplexity int) int
		AlertID   func(childComplexity int) int
		CommentID func(childComplexity int) int
		CreatedAt func(childComplexity int) int
		ID        func(childComplexity int) int
		Metadata  func(childComplexity int) int
		Ticket    func(childComplexity int) int
		TicketID  func(childComplexity int) int
		Type      func(childComplexity int) int
		User      func(childComplexity int) int
		UserID    func(childComplexity int) int
	}

	AgentMemoriesResponse struct {
		Memories   func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	AgentMemory struct {
		AgentID    func(childComplexity int) int
		Claim      func(childComplexity int) int
		CreatedAt  func(childComplexity int) int
		ID         func(childComplexity int) int
		LastUsedAt func(childComplexity int) int
		Query      func(childComplexity int) int
		Score      func(childComplexity int) int
	}

	AgentSummariesResponse struct {
		Agents     func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	AgentSummary struct {
		AgentID        func(childComplexity int) int
		LatestMemoryAt func(childComplexity int) int
		MemoriesCount  func(childComplexity int) int
	}

	Alert struct {
		Attributes  func(childComplexity int) int
		CreatedAt   func(childComplexity int) int
		Data        func(childComplexity int) int
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Schema      func(childComplexity int) int
		TagObjects  func(childComplexity int) int
		Tags        func(childComplexity int) int
		Ticket      func(childComplexity int) int
		Title       func(childComplexity int) int
	}

	AlertAttribute struct {
		Auto  func(childComplexity int) int
		Key   func(childComplexity int) int
		Link  func(childComplexity int) int
		Value func(childComplexity int) int
	}

	AlertCluster struct {
		Alerts      func(childComplexity int) int
		CenterAlert func(childComplexity int) int
		CreatedAt   func(childComplexity int) int
		ID          func(childComplexity int) int
		Keywords    func(childComplexity int) int
		Size        func(childComplexity int) int
	}

	AlertsConnection struct {
		Alerts     func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	AlertsResponse struct {
		Alerts     func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	ClusteringSummary struct {
		Clusters    func(childComplexity int) int
		ComputedAt  func(childComplexity int) int
		NoiseAlerts func(childComplexity int) int
		Parameters  func(childComplexity int) int
		TotalCount  func(childComplexity int) int
	}

	Comment struct {
		Content   func(childComplexity int) int
		CreatedAt func(childComplexity int) int
		ID        func(childComplexity int) int
		UpdatedAt func(childComplexity int) int
		User      func(childComplexity int) int
	}

	CommentsResponse struct {
		Comments   func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	DBSCANParameters struct {
		Eps        func(childComplexity int) int
		MinSamples func(childComplexity int) int
	}

	DashboardStats struct {
		OpenTickets        func(childComplexity int) int
		OpenTicketsCount   func(childComplexity int) int
		UnboundAlerts      func(childComplexity int) int
		UnboundAlertsCount func(childComplexity int) int
	}

	Finding struct {
		Reason         func(childComplexity int) int
		Recommendation func(childComplexity int) int
		Severity       func(childComplexity int) int
		Summary        func(childComplexity int) int
	}

	Knowledge struct {
		Author    func(childComplexity int) int
		AuthorID  func(childComplexity int) int
		CommitID  func(childComplexity int) int
		Content   func(childComplexity int) int
		CreatedAt func(childComplexity int) int
		Name      func(childComplexity int) int
		Slug      func(childComplexity int) int
		State     func(childComplexity int) int
		Topic     func(childComplexity int) int
		UpdatedAt func(childComplexity int) int
	}

	Mutation struct {
		ArchiveKnowledge            func(childComplexity int, topic string, slug string) int
		BindAlertsToTicket          func(childComplexity int, ticketID string, alertIds []string) int
		CreateKnowledge             func(childComplexity int, input graphql1.CreateKnowledgeInput) int
		CreateTag                   func(childComplexity int, name string) int
		CreateTicket                func(childComplexity int, title string, description string, isTest *bool) int
		CreateTicketFromAlerts      func(childComplexity int, alertIds []string, title *string, description *string) int
		DeleteTag                   func(childComplexity int, id string) int
		UpdateAlertTags             func(childComplexity int, alertID string, tagIds []string) int
		UpdateKnowledge             func(childComplexity int, input graphql1.UpdateKnowledgeInput) int
		UpdateMultipleTicketsStatus func(childComplexity int, ids []string, status string) int
		UpdateTag                   func(childComplexity int, input graphql1.UpdateTagInput) int
		UpdateTicket                func(childComplexity int, id string, title string, description *string) int
		UpdateTicketConclusion      func(childComplexity int, id string, conclusion string, reason string) int
		UpdateTicketStatus          func(childComplexity int, id string, status string) int
		UpdateTicketTags            func(childComplexity int, ticketID string, tagIds []string) int
	}

	Query struct {
		Activities             func(childComplexity int, offset *int, limit *int) int
		Alert                  func(childComplexity int, id string) int
		AlertClusters          func(childComplexity int, limit *int, offset *int, minClusterSize *int, eps *float64, minSamples *int, keyword *string) int
		Alerts                 func(childComplexity int, offset *int, limit *int) int
		AvailableTagColorNames func(childComplexity int) int
		AvailableTagColors     func(childComplexity int) int
		ClusterAlerts          func(childComplexity int, clusterID string, keyword *string, limit *int, offset *int) int
		Dashboard              func(childComplexity int) int
		GetAgentMemory         func(childComplexity int, agentID string, memoryID string) int
		KnowledgeTopics        func(childComplexity int) int
		KnowledgesByTopic      func(childComplexity int, topic string) int
		ListAgentMemories      func(childComplexity int, agentID string, offset *int, limit *int, sortBy *graphql1.MemorySortField, sortOrder *graphql1.SortOrder, keyword *string, minScore *float64, maxScore *float64) int
		ListAgentSummaries     func(childComplexity int, offset *int, limit *int, keyword *string) int
		Session                func(childComplexity int, id string) int
		SessionMessages        func(childComplexity int, sessionID string) int
		SimilarTickets         func(childComplexity int, ticketID string, threshold float64, offset *int, limit *int) int
		SimilarTicketsForAlert func(childComplexity int, alertID string, threshold float64, offset *int, limit *int) int
		Tags                   func(childComplexity int) int
		Ticket                 func(childComplexity int, id string) int
		TicketComments         func(childComplexity int, ticketID string, offset *int, limit *int) int
		TicketSessions         func(childComplexity int, ticketID string) int
		Tickets                func(childComplexity int, statuses []string, offset *int, limit *int) int
		UnboundAlerts          func(childComplexity int, threshold *float64, keyword *string, ticketID *string, offset *int, limit *int) int
	}

	Session struct {
		CreatedAt func(childComplexity int) int
		ID        func(childComplexity int) int
		Intent    func(childComplexity int) int
		Query     func(childComplexity int) int
		SlackURL  func(childComplexity int) int
		Status    func(childComplexity int) int
		TicketID  func(childComplexity int) int
		UpdatedAt func(childComplexity int) int
		User      func(childComplexity int) int
		UserID    func(childComplexity int) int
	}

	SessionMessage struct {
		Content   func(childComplexity int) int
		CreatedAt func(childComplexity int) int
		ID        func(childComplexity int) int
		SessionID func(childComplexity int) int
		Type      func(childComplexity int) int
		UpdatedAt func(childComplexity int) int
	}

	TagMetadata struct {
		Color       func(childComplexity int) int
		CreatedAt   func(childComplexity int) int
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Name        func(childComplexity int) int
		UpdatedAt   func(childComplexity int) int
	}

	TagObject struct {
		ID   func(childComplexity int) int
		Name func(childComplexity int) int
	}

	Ticket struct {
		Alerts          func(childComplexity int) int
		AlertsCount     func(childComplexity int) int
		AlertsPaginated func(childComplexity int, offset *int, limit *int) int
		Assignee        func(childComplexity int) int
		Comments        func(childComplexity int) int
		CommentsCount   func(childComplexity int) int
		Conclusion      func(childComplexity int) int
		CreatedAt       func(childComplexity int) int
		Description     func(childComplexity int) int
		Finding         func(childComplexity int) int
		ID              func(childComplexity int) int
		IsTest          func(childComplexity int) int
		Reason          func(childComplexity int) int
		SlackLink       func(childComplexity int) int
		Status          func(childComplexity int) int
		Summary         func(childComplexity int) int
		TagObjects      func(childComplexity int) int
		Tags            func(childComplexity int) int
		Title           func(childComplexity int) int
		UpdatedAt       func(childComplexity int) int
	}

	TicketsResponse struct {
		Tickets    func(childComplexity int) int
		TotalCount func(childComplexity int) int
	}

	TopicSummary struct {
		Count func(childComplexity int) int
		Topic func(childComplexity int) int
	}

	User struct {
		ID   func(childComplexity int) int
		Icon func(childComplexity int) int
		Name func(childComplexity int) int
	}
}

type Config

type Config struct {
	Schema     *ast.Schema
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type DirectiveRoot

type DirectiveRoot struct {
}

type FindingResolver

type FindingResolver interface {
	Severity(ctx context.Context, obj *ticket.Finding) (string, error)
}

type KnowledgeResolver added in v0.8.0

type KnowledgeResolver interface {
	Author(ctx context.Context, obj *graphql1.Knowledge) (*graphql1.User, error)
}

type MutationResolver

type MutationResolver interface {
	UpdateTicketStatus(ctx context.Context, id string, status string) (*ticket.Ticket, error)
	UpdateMultipleTicketsStatus(ctx context.Context, ids []string, status string) ([]*ticket.Ticket, error)
	UpdateTicketConclusion(ctx context.Context, id string, conclusion string, reason string) (*ticket.Ticket, error)
	UpdateTicket(ctx context.Context, id string, title string, description *string) (*ticket.Ticket, error)
	CreateTicket(ctx context.Context, title string, description string, isTest *bool) (*ticket.Ticket, error)
	CreateTicketFromAlerts(ctx context.Context, alertIds []string, title *string, description *string) (*ticket.Ticket, error)
	BindAlertsToTicket(ctx context.Context, ticketID string, alertIds []string) (*ticket.Ticket, error)
	UpdateAlertTags(ctx context.Context, alertID string, tagIds []string) (*alert.Alert, error)
	UpdateTicketTags(ctx context.Context, ticketID string, tagIds []string) (*ticket.Ticket, error)
	CreateTag(ctx context.Context, name string) (*graphql1.TagMetadata, error)
	DeleteTag(ctx context.Context, id string) (bool, error)
	UpdateTag(ctx context.Context, input graphql1.UpdateTagInput) (*graphql1.TagMetadata, error)
	CreateKnowledge(ctx context.Context, input graphql1.CreateKnowledgeInput) (*graphql1.Knowledge, error)
	UpdateKnowledge(ctx context.Context, input graphql1.UpdateKnowledgeInput) (*graphql1.Knowledge, error)
	ArchiveKnowledge(ctx context.Context, topic string, slug string) (bool, error)
}

type QueryResolver

type QueryResolver interface {
	Ticket(ctx context.Context, id string) (*ticket.Ticket, error)
	Tickets(ctx context.Context, statuses []string, offset *int, limit *int) (*graphql1.TicketsResponse, error)
	SimilarTickets(ctx context.Context, ticketID string, threshold float64, offset *int, limit *int) (*graphql1.TicketsResponse, error)
	SimilarTicketsForAlert(ctx context.Context, alertID string, threshold float64, offset *int, limit *int) (*graphql1.TicketsResponse, error)
	TicketComments(ctx context.Context, ticketID string, offset *int, limit *int) (*graphql1.CommentsResponse, error)
	Alert(ctx context.Context, id string) (*alert.Alert, error)
	Alerts(ctx context.Context, offset *int, limit *int) (*graphql1.AlertsResponse, error)
	UnboundAlerts(ctx context.Context, threshold *float64, keyword *string, ticketID *string, offset *int, limit *int) (*graphql1.AlertsResponse, error)
	Dashboard(ctx context.Context) (*graphql1.DashboardStats, error)
	Activities(ctx context.Context, offset *int, limit *int) (*graphql1.ActivitiesResponse, error)
	AlertClusters(ctx context.Context, limit *int, offset *int, minClusterSize *int, eps *float64, minSamples *int, keyword *string) (*graphql1.ClusteringSummary, error)
	ClusterAlerts(ctx context.Context, clusterID string, keyword *string, limit *int, offset *int) (*graphql1.AlertsConnection, error)
	Tags(ctx context.Context) ([]*graphql1.TagMetadata, error)
	AvailableTagColors(ctx context.Context) ([]string, error)
	AvailableTagColorNames(ctx context.Context) ([]string, error)
	KnowledgeTopics(ctx context.Context) ([]*graphql1.TopicSummary, error)
	KnowledgesByTopic(ctx context.Context, topic string) ([]*graphql1.Knowledge, error)
	TicketSessions(ctx context.Context, ticketID string) ([]*graphql1.Session, error)
	Session(ctx context.Context, id string) (*graphql1.Session, error)
	SessionMessages(ctx context.Context, sessionID string) ([]*graphql1.SessionMessage, error)
	ListAgentSummaries(ctx context.Context, offset *int, limit *int, keyword *string) (*graphql1.AgentSummariesResponse, error)
	ListAgentMemories(ctx context.Context, agentID string, offset *int, limit *int, sortBy *graphql1.MemorySortField, sortOrder *graphql1.SortOrder, keyword *string, minScore *float64, maxScore *float64) (*graphql1.AgentMemoriesResponse, error)
	GetAgentMemory(ctx context.Context, agentID string, memoryID string) (*graphql1.AgentMemory, error)
}

type Resolver

type Resolver struct {
	// contains filtered or unexported fields
}

Resolver serves as dependency injection point for the application.

func NewResolver

func NewResolver(repo interfaces.Repository, slackService *slack.Service, uc *usecase.UseCases) *Resolver

NewResolver creates a new resolver instance.

func (*Resolver) Activity

func (r *Resolver) Activity() ActivityResolver

Activity returns ActivityResolver implementation.

func (*Resolver) Alert

func (r *Resolver) Alert() AlertResolver

Alert returns AlertResolver implementation.

func (*Resolver) Comment

func (r *Resolver) Comment() CommentResolver

Comment returns CommentResolver implementation.

func (*Resolver) Finding

func (r *Resolver) Finding() FindingResolver

Finding returns FindingResolver implementation.

func (*Resolver) Knowledge added in v0.8.0

func (r *Resolver) Knowledge() KnowledgeResolver

Knowledge returns KnowledgeResolver implementation.

func (*Resolver) Mutation

func (r *Resolver) Mutation() MutationResolver

Mutation returns MutationResolver implementation.

func (*Resolver) Query

func (r *Resolver) Query() QueryResolver

Query returns QueryResolver implementation.

func (*Resolver) Session added in v0.8.0

func (r *Resolver) Session() SessionResolver

Session returns SessionResolver implementation.

func (*Resolver) Ticket

func (r *Resolver) Ticket() TicketResolver

Ticket returns TicketResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Activity() ActivityResolver
	Alert() AlertResolver
	Comment() CommentResolver
	Finding() FindingResolver
	Knowledge() KnowledgeResolver
	Mutation() MutationResolver
	Query() QueryResolver
	Session() SessionResolver
	Ticket() TicketResolver
}

type SessionResolver added in v0.8.0

type SessionResolver interface {
	User(ctx context.Context, obj *graphql1.Session) (*graphql1.User, error)
}

type TicketResolver

type TicketResolver interface {
	ID(ctx context.Context, obj *ticket.Ticket) (string, error)
	Status(ctx context.Context, obj *ticket.Ticket) (string, error)

	Assignee(ctx context.Context, obj *ticket.Ticket) (*graphql1.User, error)
	Alerts(ctx context.Context, obj *ticket.Ticket) ([]*alert.Alert, error)
	AlertsPaginated(ctx context.Context, obj *ticket.Ticket, offset *int, limit *int) (*graphql1.AlertsResponse, error)
	Comments(ctx context.Context, obj *ticket.Ticket) ([]*ticket.Comment, error)
	AlertsCount(ctx context.Context, obj *ticket.Ticket) (int, error)
	CommentsCount(ctx context.Context, obj *ticket.Ticket) (int, error)
	Conclusion(ctx context.Context, obj *ticket.Ticket) (*string, error)

	SlackLink(ctx context.Context, obj *ticket.Ticket) (*string, error)
	CreatedAt(ctx context.Context, obj *ticket.Ticket) (string, error)
	UpdatedAt(ctx context.Context, obj *ticket.Ticket) (string, error)

	Tags(ctx context.Context, obj *ticket.Ticket) ([]string, error)
	TagObjects(ctx context.Context, obj *ticket.Ticket) ([]*graphql1.TagObject, error)
}

Jump to

Keyboard shortcuts

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