Documentation
¶
Index ¶
- func DataLoaderMiddleware(repo interfaces.Repository, slackClient interfaces.SlackClient) func(http.Handler) http.Handler
- func GetAlert(ctx context.Context, alertID types.AlertID) (*alert.Alert, error)
- func GetTicket(ctx context.Context, ticketID types.TicketID) (*ticket.Ticket, error)
- func GetUser(ctx context.Context, userID string) (*graphql1.User, error)
- func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
- type ActivityResolver
- type AlertResolver
- type CommentResolver
- type ComplexityRoot
- type Config
- type DirectiveRoot
- type FindingResolver
- type KnowledgeResolver
- type MutationResolver
- type QueryResolver
- type Resolver
- func (r *Resolver) Activity() ActivityResolver
- func (r *Resolver) Alert() AlertResolver
- func (r *Resolver) Comment() CommentResolver
- func (r *Resolver) Finding() FindingResolver
- func (r *Resolver) Knowledge() KnowledgeResolver
- func (r *Resolver) Mutation() MutationResolver
- func (r *Resolver) Query() QueryResolver
- func (r *Resolver) Session() SessionResolver
- func (r *Resolver) Ticket() TicketResolver
- type ResolverRoot
- type SessionResolver
- type TicketResolver
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 NewExecutableSchema ¶
func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
Types ¶
type ActivityResolver ¶
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 KnowledgeResolver ¶ added in v0.8.0
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 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)
}