mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2025-12-06 23:32:47 +01:00
77 lines
1.6 KiB
Go
77 lines
1.6 KiB
Go
package migrations
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/pocketbase/dbx"
|
|
"github.com/pocketbase/pocketbase/daos"
|
|
"github.com/pocketbase/pocketbase/models"
|
|
)
|
|
|
|
func defaultDataUp(db dbx.Builder) error {
|
|
dao := daos.New(db)
|
|
|
|
for _, records := range [][]*models.Record{typeRecords(dao)} {
|
|
for _, record := range records {
|
|
if err := dao.SaveRecord(record); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func typeRecords(dao *daos.Dao) []*models.Record {
|
|
collection, err := dao.FindCollectionByNameOrId(TypeCollectionName)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
var records []*models.Record
|
|
|
|
record := models.NewRecord(collection)
|
|
record.SetId("incident")
|
|
record.Set("singular", "Incident")
|
|
record.Set("plural", "Incidents")
|
|
record.Set("icon", "Flame")
|
|
record.Set("schema", s(map[string]any{
|
|
"type": "object",
|
|
"properties": map[string]any{
|
|
"severity": map[string]any{
|
|
"title": "Severity",
|
|
"enum": []string{"Low", "Medium", "High"},
|
|
},
|
|
},
|
|
"required": []string{"severity"},
|
|
}))
|
|
|
|
records = append(records, record)
|
|
|
|
record = models.NewRecord(collection)
|
|
record.SetId("alert")
|
|
record.Set("singular", "Alert")
|
|
record.Set("plural", "Alerts")
|
|
record.Set("icon", "AlertTriangle")
|
|
record.Set("schema", s(map[string]any{
|
|
"type": "object",
|
|
"properties": map[string]any{
|
|
"severity": map[string]any{
|
|
"title": "Severity",
|
|
"enum": []string{"Low", "Medium", "High"},
|
|
},
|
|
},
|
|
"required": []string{"severity"},
|
|
}))
|
|
|
|
records = append(records, record)
|
|
|
|
return records
|
|
}
|
|
|
|
func s(m map[string]any) string {
|
|
b, _ := json.Marshal(m) //nolint:errchkjson
|
|
|
|
return string(b)
|
|
}
|