MCPcopy
hub / github.com/crowdsecurity/crowdsec / buildMetaCreates

Function buildMetaCreates

pkg/database/alerts.go:513–542  ·  view source on GitHub ↗
(ctx context.Context, logger log.FieldLogger, client *ent.Client, alertItem *models.Alert)

Source from the content-addressed store, hash-verified

511}
512
513func buildMetaCreates(ctx context.Context, logger log.FieldLogger, client *ent.Client, alertItem *models.Alert) ([]*ent.Meta, error) {
514 if len(alertItem.Meta) == 0 {
515 return nil, nil
516 }
517
518 metaBulk := make([]*ent.MetaCreate, len(alertItem.Meta))
519
520 for i, metaItem := range alertItem.Meta {
521 key := metaItem.Key
522 value := metaItem.Value
523
524 if len(metaItem.Value) > 4095 {
525 logger.Warningf("truncated meta %s: value too long", metaItem.Key)
526
527 value = value[:4095]
528 }
529
530 if len(metaItem.Key) > 255 {
531 logger.Warningf("truncated meta %s: key too long", metaItem.Key)
532
533 key = key[:255]
534 }
535
536 metaBulk[i] = client.Meta.Create().
537 SetKey(key).
538 SetValue(value)
539 }
540
541 return client.Meta.CreateBulk(metaBulk...).Save(ctx)
542}
543
544func (c *Client) buildDecisions(ctx context.Context, logger log.FieldLogger, client *ent.Client, alertItem *models.Alert, stopAtTime time.Time) ([]*ent.Decision, int, error) {
545 decisions := []*ent.Decision{}

Callers 1

createAlertBatchMethod · 0.85

Calls 5

SetValueMethod · 0.45
SetKeyMethod · 0.45
CreateMethod · 0.45
SaveMethod · 0.45
CreateBulkMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…