Fix zero UUID and storage metrics issues\n\n- Add ID generation in signAndCreateCommand to prevent zero UUIDs\n- Fix storage metrics metadata field (remove pq.Array)\n- Add IdempotencyKey field to AgentCommand model\n\nThese issues were causing duplicate key violations and storage page errors.
This commit is contained in:
@@ -32,6 +32,19 @@ func NewSubsystemHandler(sq *queries.SubsystemQueries, cq *queries.CommandQuerie
|
||||
|
||||
// signAndCreateCommand signs a command if signing service is enabled, then stores it in the database
|
||||
func (h *SubsystemHandler) signAndCreateCommand(cmd *models.AgentCommand) error {
|
||||
// Generate ID if not set (prevents zero UUID issues)
|
||||
if cmd.ID == uuid.Nil {
|
||||
cmd.ID = uuid.New()
|
||||
}
|
||||
|
||||
// Set timestamps if not set
|
||||
if cmd.CreatedAt.IsZero() {
|
||||
cmd.CreatedAt = time.Now()
|
||||
}
|
||||
if cmd.UpdatedAt.IsZero() {
|
||||
cmd.UpdatedAt = time.Now()
|
||||
}
|
||||
|
||||
// Sign the command before storing
|
||||
if h.signingService != nil && h.signingService.IsEnabled() {
|
||||
signature, err := h.signingService.SignCommand(cmd)
|
||||
|
||||
Reference in New Issue
Block a user