Feature | Add Doctrine logging generic classes #96
+1,368
−11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR introduces a comprehensive Doctrine ORM audit logging framework with support for both database-backed and OpenTelemetry-based audit strategies.
Key Features
AuditContextclass that captures user, request, and application metadataAuditEventListenerthat intercepts Doctrine ORM events (insertions, updates, deletions, collection changes)AuditLogStrategy- Database persistence strategyAuditLogOtlpStrategy- OpenTelemetry/Elasticsearch integrationAbstractAuditLogFormatter- Base class for all formattersEmitAuditLogJobfor asynchronous audit log emissionFiles Added
app/Audit/AbstractAuditLogFormatter.phpapp/Audit/AuditContext.phpapp/Audit/AuditEventListener.phpapp/Audit/AuditLogFormatterFactory.phpapp/Audit/AuditLogOtlpStrategy.phpapp/Audit/AuditLogStrategy.phpapp/Audit/AuditLoggerFactory.phpapp/Audit/AuditProvider.phpapp/Audit/Interfaces/IAuditStrategy.phpapp/Audit/Interfaces/IAuditLogFormatter.phpapp/Audit/Interfaces/IAuditLogFormatterFactory.phpapp/Audit/Interfaces/ILogger.phpapp/Audit/ConcreteFormatters/EntityCreationAuditLogFormatter.phpapp/Audit/ConcreteFormatters/EntityUpdateAuditLogFormatter.phpapp/Audit/ConcreteFormatters/EntityDeletionAuditLogFormatter.phpapp/Audit/ConcreteFormatters/EntityCollectionUpdateAuditLogFormatter.phpapp/Audit/ConcreteFormatters/ChildEntityFormatters/IChildEntityAuditLogFormatter.phpapp/Audit/ConcreteFormatters/ChildEntityFormatters/ChildEntityFormatterFactory.phpapp/Jobs/EmitAuditLogJob.phpconfig/audit_log.phpFiles Modified
app/ModelSerializers/SerializerRegistry.php- Code formatting improvementsArchitecture Highlights
Configuration
The audit system checks for
opentelemetry.enabledconfiguration:Notes
Task:
Ref: https://app.clickup.com/t/86b7xy5fp