/
routes.go
211 lines (176 loc) · 9.33 KB
/
routes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
package router
import (
"net/http"
"github.com/go-chi/chi/v5"
_ "github.com/myrteametrics/myrtea-engine-api/v5/docs" // docs is generated by Swag CLI, you have to import it.
"github.com/myrteametrics/myrtea-engine-api/v5/internals/handlers"
)
func adminRouter() http.Handler {
r := chi.NewRouter()
// security
r.Get("/security/users", handlers.GetUsers)
r.Get("/security/users/{id}", handlers.GetUser)
r.Post("/security/users/validate", handlers.ValidateUser)
r.Post("/security/users", handlers.PostUser)
r.Put("/security/users/{id}", handlers.PutUser)
r.Delete("/security/users/{id}", handlers.DeleteUser)
// r.Get("/security/users/{id}/roles", handlers.GetUserRoles)
r.Put("/security/users/{id}/roles", handlers.SetUserRoles)
r.Get("/security/roles", handlers.GetRoles)
r.Get("/security/roles/{id}", handlers.GetRole)
r.Post("/security/roles/validate", handlers.ValidateRole)
r.Post("/security/roles", handlers.PostRole)
r.Put("/security/roles/{id}", handlers.PutRole)
r.Delete("/security/roles/{id}", handlers.DeleteRole)
r.Get("/security/roles/{id}/permissions", handlers.GetRolePermissions)
r.Put("/security/roles/{id}/permissions", handlers.SetRolePermissions)
r.Get("/security/permissions", handlers.GetPermissions)
r.Get("/security/permissions/{id}", handlers.GetPermission)
r.Post("/security/permissions/validate", handlers.ValidatePermission)
r.Post("/security/permissions", handlers.PostPermission)
r.Put("/security/permissions/{id}", handlers.PutPermission)
r.Delete("/security/permissions/{id}", handlers.DeletePermission)
r.Get("/engine/issues_all", handlers.GetIssues)
return r
}
func engineRouter(services Services) http.Handler {
r := chi.NewRouter()
r.Get("/security/myself", handlers.GetUserSelf)
r.Get("/models", handlers.GetModels)
r.Get("/models/{id}", handlers.GetModel)
r.Post("/models", handlers.PostModel)
r.Post("/models/validate", handlers.ValidateModel)
r.Put("/models/{id}", handlers.PutModel)
r.Delete("/models/{id}", handlers.DeleteModel)
// r.Get("/crons", handlers.GetAllCron)
// r.Post("/crons/start", handlers.StartAllCron)
// r.Post("/crons/stop", handlers.StopAllCron)
// r.Get("/cron", handlers.GetCron)
// r.Post("/cron/{instance}/{logicalIndex}/start", handlers.StartCron)
// r.Post("/cron/{instance}/{logicalIndex}/stop", handlers.StopCron)
r.Get("/facts", handlers.GetFacts)
r.Get("/facts/{id}", handlers.GetFact)
r.Post("/facts/validate", handlers.ValidateFact)
r.Post("/facts", handlers.PostFact)
r.Put("/facts/{id}", handlers.PutFact)
r.Delete("/facts/{id}", handlers.DeleteFact)
r.Get("/facts/{id}/execute", handlers.ExecuteFact) // ?time=2019-05-10T12:00:00.000+02:00 debug=<boolean>
r.Post("/facts/execute", handlers.ExecuteFactFromSource) // ?time=2019-05-10T12:00:00.000 debug=<boolean>
r.Get("/facts/{id}/hits", handlers.GetFactHits) // ?time=2019-05-10T12:00:00.000 debug=<boolean>
r.Get("/facts/{id}/es", handlers.FactToESQuery)
r.Post("/facts/streamedexport", handlers.ExportFactStreamed)
r.Get("/situations", handlers.GetSituations)
r.Get("/situations/{id}", handlers.GetSituation)
r.Post("/situations/validate", handlers.ValidateSituation)
r.Post("/situations", handlers.PostSituation)
r.Put("/situations/{id}", handlers.PutSituation)
r.Delete("/situations/{id}", handlers.DeleteSituation)
r.Get("/situations/{id}/facts", handlers.GetSituationFacts)
r.Get("/situations/{id}/rules", handlers.GetSituationRules)
r.Put("/situations/{id}/rules", handlers.SetSituationRules)
r.Get("/situations/{id}/evaluation", handlers.GetSituationEvaluation)
r.Get("/situations/{id}/instances", handlers.GetSituationTemplateInstances)
r.Post("/situations/{id}/instances", handlers.PostSituationTemplateInstance)
r.Put("/situations/{id}/instances/{instanceid}", handlers.PutSituationTemplateInstance)
r.Put("/situations/{id}/instances", handlers.PutSituationTemplateInstances)
r.Delete("/situations/{id}/instances/{instanceid}", handlers.DeleteSituationTemplateInstance)
r.Get("/externalconfigs", handlers.GetExternalConfigs)
r.Get("/externalconfigs/{id}", handlers.GetExternalConfig)
r.Get("/externalconfigs/name/{name}", handlers.GetExternalConfigByName)
r.Post("/externalconfigs", handlers.PostExternalConfig)
r.Put("/externalconfigs/{id}", handlers.PutExternalConfig)
r.Delete("/externalconfigs/{id}", handlers.DeleteExternalConfig)
r.Get("/connectorconfigs", handlers.GetConnectorConfigs)
r.Get("/connectorconfigs/{id}", handlers.GetConnectorConfig)
r.Post("/connectorconfigs", handlers.PostConnectorConfig)
r.Put("/connectorconfigs/{id}", handlers.PutConnectorConfig)
r.Delete("/connectorconfigs/{id}", handlers.DeleteConnectorConfig)
r.Get("/rules", handlers.GetRules)
r.Get("/rules/{id}", handlers.GetRule)
r.Get("/rules/{id}/versions/{versionid}", handlers.GetRuleByVersion)
r.Post("/rules/validate", handlers.ValidateRule)
r.Post("/rules", handlers.PostRule)
r.Put("/rules/{id}", handlers.PutRule)
r.Delete("/rules/{id}", handlers.DeleteRule)
r.Get("/rules/{id}/situations", handlers.GetRuleSituations)
r.Post("/rules/{id}/situations", handlers.PostRuleSituations)
r.Get("/rules/{id}/debug", handlers.TestRule)
r.Get("/issues", handlers.GetIssuesByStatesByPage)
r.Get("/issues/{id}", handlers.GetIssue)
r.Get("/issues/{id}/history", handlers.GetIssueHistory)
r.Get("/issues/{id}/facts_history", handlers.GetIssueFactsHistory)
r.Post("/issues", handlers.PostIssue)
r.Get("/issues/{id}/recommendation", handlers.GetIssueFeedbackTree)
r.Post("/issues/{id}/feedback", handlers.PostIssueCloseWithFeedback)
r.Post("/issues/{id}/draft", handlers.PostIssueDraft)
r.Post("/issues/draft", handlers.PostIssuesDraft)
r.Post("/issues/{id}/close", handlers.PostIssueCloseWithoutFeedback)
r.Post("/issues/close", handlers.PostIssuesCloseWithoutFeedback)
r.Post("/issues/{id}/detection/feedback", handlers.PostIssueDetectionFeedback)
r.Put("/issues/{id}/comment", handlers.UpdateIssueComment)
r.Post("/scheduler/start", handlers.StartScheduler)
r.Post("/scheduler/trigger", handlers.TriggerJobSchedule)
r.Get("/scheduler/jobs", handlers.GetJobSchedules)
r.Get("/scheduler/jobs/{id}", handlers.GetJobSchedule)
r.Post("/scheduler/jobs/validate", handlers.ValidateJobSchedule)
r.Post("/scheduler/jobs", handlers.PostJobSchedule)
r.Put("/scheduler/jobs/{id}", handlers.PutJobSchedule)
r.Delete("/scheduler/jobs/{id}", handlers.DeleteJobSchedule)
r.Put("/notifications/{id}/read", handlers.UpdateRead)
r.HandleFunc("/notifications/ws", handlers.NotificationsWSRegister)
r.HandleFunc("/notifications/sse", handlers.NotificationsSSERegister)
r.Get("/notifications", handlers.GetNotifications)
r.Post("/notifications/trigger", handlers.TriggerNotification)
r.Get("/rootcauses", handlers.GetRootCauses)
r.Get("/rootcauses/{id}", handlers.GetRootCause)
r.Post("/rootcauses/validate", handlers.ValidateRootCause)
r.Post("/rootcauses", handlers.PostRootCause)
r.Put("/rootcauses/{id}", handlers.PutRootCause)
r.Delete("/rootcauses/{id}", handlers.DeleteRootCause)
r.Get("/actions", handlers.GetActions)
r.Get("/actions/{id}", handlers.GetAction)
r.Post("/actions/validate", handlers.ValidateAction)
r.Post("/actions", handlers.PostAction)
r.Put("/actions/{id}", handlers.PutAction)
r.Delete("/actions/{id}", handlers.DeleteAction)
// r.Post("/search", handlers.Search)
r.Get("/search/last", handlers.SearchLast)
r.Get("/search/last/byinterval", handlers.SearchLastByInterval)
r.Get("/search/last/bycustominterval", handlers.SearchLastByCustomInterval)
r.Post("/history/facts/today/result", handlers.GetFactResultForTodayByCriteria)
r.Post("/history/facts/date/result", handlers.GetFactResultByDateCriteria)
r.Get("/calendars", handlers.GetCalendars)
r.Get("/calendars/{id}", handlers.GetCalendar)
r.Get("/calendars/{id}/contains", handlers.IsInCalendarPeriod) // ?time=2019-05-10T12:00:00.000
r.Get("/calendars/resolved/{id}", handlers.GetResolvedCalendar)
r.Post("/calendars", handlers.PostCalendar)
r.Put("/calendars/{id}", handlers.PutCalendar)
r.Delete("/calendars/{id}", handlers.DeleteCalendar)
r.Get("/connector/{id}/executions/last", handlers.GetlastConnectorExecutionDateTime)
// exports
r.Get("/exports", services.ExportHandler.GetExports)
r.Get("/exports/{id}", services.ExportHandler.GetExport)
r.Get("/exports/{id}/download", services.ExportHandler.DownloadExport)
r.Delete("/exports/{id}", services.ExportHandler.DeleteExport)
r.Post("/exports/fact", services.ExportHandler.ExportFact)
r.Get("/variablesconfig", handlers.GetVariablesConfig)
r.Get("/variablesconfig/{id}", handlers.GetVariableConfig)
r.Get("/variablesconfig/key/{key}", handlers.GetVariableConfigByKey)
r.Post("/variablesconfig", handlers.PostVariableConfig)
r.Put("/variablesconfig/{id}", handlers.PutVariableConfig)
r.Delete("/variablesconfig/{id}", handlers.DeleteVariableConfig)
r.Get("/services", services.ServiceHandler.GetServices)
r.Get("/services/{id}/status", services.ServiceHandler.GetStatus)
r.Post("/services/{id}/restart", services.ServiceHandler.Restart)
r.Post("/services/{id}/reload/{component}", services.ServiceHandler.Reload)
return r
}
func serviceRouter(services Services) http.Handler {
r := chi.NewRouter()
r.Post("/objects", handlers.PostObjects)
r.Post("/aggregates", services.ProcessorHandler.PostAggregates)
r.Get("/externalconfigs", handlers.GetExternalConfigs)
r.Get("/externalconfigs/{id}", handlers.GetExternalConfig)
r.Get("/externalconfigs/name/{name}", handlers.GetExternalConfigByName)
return r
}