Skip to content

TECH: Generisches Hitobito Log #1840

@mtnstar

Description

@mtnstar

Für applikationsinternes Logging wie Ausführung von z.B. Webhook Runs oder EBICS Importe soll ein neues Log erstellt werden:

  • Log kann unter Einstellungen > Hitobito Log eingesehen werden
  • Zugriff darauf haben nur Personen mit :admin permission
  • Es wird vorerst nur eine Liste (:index) angezeigt, kein :show
  • Die Liste kann nach Kategorie gefiltert werden (z.B. via Tab pro Kategorie)
  • Sortiert wird nach timestamps (updated_at, created_at)
  • message feld mit Zeilenumbrüchen
  • Daten können idealerweise nach Datum (created_at, updated_at) sowie kind gefiltert werden
  • Pagination
  • Helper um Logeintrag zu erstellen (z.B. Hitobito.logger, logger.info, ggf. inspiriert von Rails Logger)

Tech-Spec

Neues model HitobitoLog:

  • id, primary key, int
  • timestamps
  • category, int, enum: [:webhook, :ebics, :mail, ...], null: false
  • kind, int, enum: [:info, :error, :debug], null: false, index: true, default: :info
  • message, text, null: false
  • subject_id, in, null: true, subject id, (z.B. person_id, message id, ...)
  • subject_type, string, (z.B. Person, PaymentProviderConfig, Message, ...)
  • has_one: :subject, polymorphic

Erstellen eines Log-Eintrags könnte dann in etwa so aussehen:

logger = Hitobito.logger.new
logger.info(:webhook, 'Donman API Person: Updated person attributes ...', subject: person)

ToDo

  • Erstellen DB Migration und Model
  • Crud Index Table inkl. Permission Check
    • Filterbar nach Datum/Zeit
    • Paginierung
    • Tab pro verfügbare Kategorie
  • Erstellen Helper um Logeinträge zu erstellen
  • ChangeLog entry

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions