All notable changes to Audit.NET and its extensions will be documented in this file.
The format is based on Keep a Changelog.
- Audit.EntityFramework / Audit.EntityFramework.Core: Adding
ReloadDatabaseValues
configuration to AuditDbContextAttribute. (#53, #607) - Audit.NET.MongoDB: Exposing API to provide the entire MongoDB.Driver.MongoClientSettings instead of the connection string. (#614)
- Audit.EntityFramework / Audit.EntityFramework.Core: Adding
ReloadDatabaseValues
configuration setting to query the original values of the entities from the database explicitly to properly set the Original values when using DbContext'sUpdate
orRemove
methods. (#53, #167, #291, #335, #345, #606, #607)
- Audit.NET.AzureCosmos: Adding support to dynamically configure the Endpoint, AuthKey, Database and Container from the AuditEvent data.
- Audit.NET and all its extensions: Adding CancellationToken support for all the Async methods (#597)
- Audit.EntityFramework.Core: Fix to allow continuing with the audit process even if the DbContext got disposed within the SaveChanges operation (#589)
- Audit.EntityFramework: Fix to honor Override/Ignore/Format in entity properties for any mapper type (#584)
- Audit.EntityFramework: Fix EntityType null in the ExplicitMapper when using sync methods (#585)
- Audit.EntityFramework: Fix Property Matcher for entities with custom column name (#586)
- Audit.EntityFramework / Audit.EntityFramework.Core: Low-Level interceptors support to use the
.AuditDataProvider
property from theAuditDbContext
instance (#387)
- Audit.NET.SqlServer: Adding support for net462+ targeting EF Core 3 (#581)
- Audit.NET.PostgreSql: Upgrading PostgreSql driver (Npgsql) to vesion 7.0.2
- Audit.NET.SqlServer: Adding overload to
CustomColumn
configuration to allow passing a guard condition to determine when the column should be included/ignored (#576) - Audit.SignalR: Adding support for ASP .NET Core SignalR (#578)
- Audit.NET.PostgreSql: Adding overloads to EnumerateEvents to allow passing where, orderby, limit or select expression. (#569)
- Audit.NET.SqlServer: Adding net7.0 as a target framework and referencing EF Core 7 (#568)
- Audit.NET.PostgreSQL: Adding DataColumn override to allow changing the way to generate the JSON string from the Audit Event (#566)
- Audit.WebApi / Audit.WebApi.Core: Allow configuring the
AuditDataProvider
as a service in theIServiceCollection
(#557)
- Audit.EntityFramework.Core: Fixing issue with GetColumnName when a property is mapped to JSON using EF Core 7 (#555)
- Audit.Mvc: Adding
IncludeChildActions
configuration to theAuditAttribute
action filter for MVC 5 (#554)
- Audit.NET / Audit.EntityFramework.Core: Upgrade to net7.0 as target, adding support for EF Core 7.0.0 (#544)
- Audit.EntityFramework / Audit.EntityFramework.Core: Adding SaveChangesGetAudit methods in the AuditDbContext to allow obtaining the EF audit event when saving changes (#546, #547)
- Audit.EntityFramework / Audit.EntityFramework.Core: Adding new setting on the EntityFramework Data Provider to indicate if the audit DbContext should be disposed after saving (#539)
- Audit.WebApi: Adding missing SerializeActionParameters setting on the fluent API configurator for the global audit filter. (#538)
- Audit.NET: Adding InMemory data provider for testing purposes.
- Audit.WebApi.Core: Fix issue when serializing some action parameters that are not user input (i.e. CancellationToken) (#536)
- Audit.NET.MongoDB: Changing default serialization mechanism for BSON (#531)
- Audit.NET.Serilog: New data provider for Serilog (#532)
- Audit.EntityFramework: Adding OnScopeSaved virtual method on DbContext triggered after the scope is saved (#529)
- Audit.WebApi.Core: Use ReadFormAsync instead of Request.Form to avoid sync over async on net core (#534)
- Audit.NET.AzureStorageTable: New package for Azure Table data provider, using the latest client Azure.Data.Table (#528)
- Audit.EntityFramework / Audit.EntityFramework.Core: Adding overloads to
Format()
andOverride()
methods for Entity Framework config fluent API, to override entity values on the audit output (#526)
- Audit.SqlServer: Fixing compatibility with .NET 6 for Audit.SqlServer library (#522)
- Audit.EntityFramework.Core: Adding DbTransaction interceptor to log transaction events (
AuditTransactionInterceptor
).
- Audit.EntityFramework.Core: Allow optional logging for SQL read results. New setting for command interceptor
AuditCommandIntercaptor.IncludeReaderResults
(#515) - Audit.NET: Changing default IgnoreCycles reference handling for JSON serialization on .NET 6 (#517)
- Audit.WCF.Client: Adding .NET Core support to Audit.WCF.Client (#514)
- Audit.NET.log4net: Security upgrade log4net from 2.0.10 to 2.0.15 (#511)
- Audit.NET.ElasticSearch: Fix issue when pre-serializing the Target object (#509)
- Audit.NET.AzureStorageBlobs: Bump Azure.Storage.Blobs from 12.9.1 to 12.13.0 (#510)
- Audit.NET: Fix pre-serialization method on base AuditDataProvider
- Audit.NET.Redis: Adding Redis Stream provider to allow storing the audit events into Redis Streams.
- Audit.NET.Redis: Allow setting redis connection configuration via ConfigurationOptions (#493)
- Audit.MVC / Audit.MVC.Core: Adding extension methods on HttpContext to get the Audit Scope
Audit.Mvc.GetCurrentAuditScope()
(#492)
- Audit.EntityFramework / Audit.EntityFramework.Core:
Changes.NewValue
property on the EF Audit Event was not being updated with the final value from the database when the value changed was a foreign key to a new entity (#488)
- Audit.NET.JsonNewtonsoftAdapter: New
AuditContractResolver
configured by default on the Newtonsoft.Json adapter to enhance compatibility when targeting newer frameworks (.NET >= 5.0) and still using Newtonsoft.Json as the serializer. - Audit.NET.RavenDB: New data provider
Audit.NET.RavenDB
for storing Audit Events as documents on Raven DB. (#485)
- Audit.NET.Elasticsearch: Fix issue using Auto Generated IDs. Change to use an IndexRequest instead of a CreateRequest (#473)
- Audit.NET.PostgreSql: Fix issue when setting null to a custom column (#357)
- Audit.NET.AzureStorage: Azure Table Storage InsertEventAsync bug fix. Method was using sync version of EnsureTable. This was causing the thread to be blocked. (#474)
- Audit.NET.Redis: Ability to add custom Redis commands to the audit event saving batch (#471)
- Audit.NET.Redis: Adding ability to configure the redis database ID to use. Upgrade StackExchange.Redis references to version 2.2.88. (#471)
- Audit.EntityFramework / Audit.EntityFrameworkCore: Adding AuditEntityCreator configuration for EF Data Provider to allow custom audit entity creation (#468)
- Audit.NET / Audit.EntityFrameworkCore: Adding .NET 6.0 and Entity Framework Core 6.0 support (#400)
- Audit.WebApi: Audit Middleware disposing the response body stream if exception was thrown (#459)
- Audit.NET / Audit.EntityFrameworkCore: Adding .NET 6.0 and Entity Framework Core 6.0 support, release candidates (#400)
- Audit.EntityFrameworkCore: Adding
AuditCommandInterceptor
for low-level auditing of commands (reads, writes, non-query) on EF Core 3.0 and 5.0. (#100, #449)
- Audit.EntityFrameworkCore: Adding
AuditSaveChangesInterceptor
Save Changes Interceptor as an alternative to configure EF Core 5.0 auditing.
- Audit.NET.MongoDB: Added async methods for InsertEvent / ReplaceEvent
- Audit.NET.AzureCosmos: Added EnumerateEvents method to CosmosDB provider
- Audit.NET.AzureCosmos: Added support for .NET Standard 2.0 and .NET 5.0, using latest client library Microsoft.Azure.Cosmos (fixes #434)
- Audit.NET.AzureStorageBlobs: New library to store audit event on Azure Storage blobs, using the latest client Azure.Storage.Blobs.
- Audit.NET.AzureStorage: Adding support for configuring the Azure Blob Tier after upload, and to set Metadata associated with the blog (#429)
- Audit.WCF.Client: New extension providing client-side audit capabilities for WCF service calls (#427)
- Audit.NET.SqlServer: Adding support for providing the DbConnection instead of the connection string on .NET framework (#428)
- Audit.EntityFrameworkCore: Fix issue with OwnedEntities when using the EF data provider (#430)
- Audit.HttpClient: Removed Newtonsoft.json dependency from Audit.HttpClient
- Audit.NET and all the extensions: Changing the JSON serialization default library from Newtonsoft.Json to System.Text.Json for .NET >= 5.0. (#356)
- Audit.EntityFramework.Core: Fix error on SaveChanges() when using EntityFramework Core 5.0 Table-per-Type (#421)
- Audit.NET.MySql: Adding support for custom columns on MySql data provider (#415)
- Audit.EntityFramework: Fix "Sequence contains more than one element" exception for EF entities with inheritance, when more than one mapping fragment is defined on an entity (#409)
- Audit.WebApi: Fix to only read the request body stream when the stream can be seek (CanSeek = true) (#404)
- Audit.EntityFramework: Fix AuditEvent's entitytype not present for explicit mapping (#408)
- Audit.NET: Adding support for asynchronous global custom actions
- Audit.NET.MySql: Fix null reference exception for mySQL data provider when using custom transactions (#395)
- Audit.NET.EntityFramework / Audit.NET.EntityFramework.Core: Adding Support for asynchronous AuditEntityAction for the Entity Framework Data Provider (#397)
- Audit.NET.AzureCosmos: Deprecated
Audit.NET.AzureDocumentDB
package and replaced with newAudit.NET.AzureCosmos
- Audit.NET.AmazonQLDB: Update QLDB Provider to use Async API (#393)
- Audit.NET: Allow to set the data provider as a factory instead of passing the instance, so it creation can be delayed (#387)
- Audit.EntityFramework / Audit.EntityFramework.Core: Fix Property Matching error (An item with the same key has already been added) when entity objects have hidden base properties (#384)
- Audit.NET.AzureStorage: Call TableOperation.InsertOrMerge to avoid EntityAlreadyExists Conflict (409) exception
- Audit.EntityFramework / Audit.EntityFramework.Core: Explicit mapper enhancements for Entity Framework Data Provider. Allow mapping from entries not mapped to a type (i.e. implicitly created join tables) (#381)
- Audit.EntityFramework / Audit.EntityFramework.Core: Removing type constraint for EF configuration
ForContext<T>
to allow multiple DbContext to be audited without inheriting fromAuditDbContext
and allowing fluent configuration for each context separately (#207)
- Audit.Mvc / Audit.WebApi: Allow the use of AuditIgnore attribute on the return of the MVC actions
[return:AuditIgnore]
(#375)
- Audit.HttpClient: Allow injection of audited HttpClients through HttpClientFactory (#374)
- Audit.EntityFramework.Core: Fix EF Core when using multiple owned entities (#373)
- Audit.NET: Fix AuditScope DisposeAsync return value discrepancy when targeting net472 (#371)
- Audit.NET: Fix FileDataProvider SaveAsync method which was not respecting the JsonSerializerSetttings (#369)
- Audit.NET: Fix AuditScope creation when creating from an existing AuditEvent that has pre-assigned CustomFields (#364)
- Audit.EntityFramework: Set the event custom fields before the AuditScope creation so they are available from OnScopeCreated event (#364)
- Audit.NET.SqlServer: Fixed null values on custom columns (#357)
- Audit.EntityFramework.Identity.Core.v3: Fixed reference to Audit.EntityFramework.Core.v3 (#355)
- Audit.EntityFramework.Core: Fixed problem with Owned Entities relationships for EntityFramework Core 5 (#360)
- Audit.EntityFramework.Core: Fixed problem with Many-To-Many relationships without join entity for EntityFramework Core 5 (#360)
- Adding new packages
Audit.EntityFramework.Core.v3
andAudit.EntityFramework.Identity.Core.v3
for backward compatibility to be used when targeting EntityFramework Core 3 on .NET standard >= 2.0 (#355)
- Audit.Mvc / Audit.Mvc.Core: Changing body request read to be asynchronous. Avoiding exception when used on asp.net core 3 (System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead) (#259)
- Audit.NET: Adding net461 as base target framework for supporting
IAsyncDisposable
for .NET Framework >= 4.6.1 (#354)
- Audit.SqlServer: Adding support for Microsoft.EntityFrameworkCore 5.0.1 (#353)
- Audit.EntityFramework.Core: Adding support for Microsoft.EntityFrameworkCore 5.0.1 (#352)
- Audit.NET.SqlServer: New optional setting to specify the DbContextOptions for the internal DbContext. (#351)
- Audit.NET (Core): New optional global cofiguration to include the namespaces on the type names logged (#343)
- Audit.PostgreSql: Upgrade npgsql driver to latest version and allowing dynamic configuration of the postgreSQL data provider settings (#340)
- Audit.MongoDB: Adding
SerializeAsBson
setting to allow overriding the serialization method for the target object from JSON to BSON.
- Audit.AmazonQLDB: Update Amazon.QLDB.Driver to 1.0.1 as it supports .NET Framework 4.6.1 now (#334)
- Audit.NET.Kafka: New Apache Kafka data provider (#331)
- Audit.WebApi: Restore original body for upstream pipelines (#333)
- Audit.MVC / Audit.MVC.Core: Adding support for auditing Razor Pages (#329)
- Audit.MVC: Including minor fix from PR #327 (
GetCurrentAuditScope
extension method)
- Audit.WebApi / Audit.WebApi.Core: Fix for respecting creation policy on Audit WebApi Attribute and Middleware (#325).
- Audit.EntityFramework: Fix bug for ColumnValues and Changes when the entity property is a Complex Type (#321).
- Audit.NET: Adding fluent API for AuditScope creation.
- Audit.EntityFramework: Enhance CLR entity type resolve in EF Core (#320)
- Audit.EntityFramework: Adding boolean
EarlySavingAudit
setting to AuditDbContext to allow the audit event to be saved before the entity saving operation takes place. Related to #316. - Audit.NET.ElasticSearch: Upgrade NEST reference to version 7.8.2 to fix exception Could not load type Elasticsearch.Net.IInternalSerializerWithFormatter from assembly Elasticsearch.Net (#313)
- Audit.NET: Moving the AuditScope creation to an
AuditScopeFactory
implementing an interfaceIAuditScopeFactory
. Also addedIAuditScope
interface for unit testing. (#315, #319) - Audit.NET: Enable disposable async for netstandard2.0 (#318)
- Audit.EntityFramework.Core: Changing version for Microsoft.EntityFrameworkCore reference when targeting .NET Standard 2.0 or 2.1 (now referencing Microsoft.EntityFrameworkCore 3.1.0) (#310)
- Audit.NET.AmazonQLDB: Adding new data provider for Amazon QLDB.
- Audit.Mvc and Audit.WebApi: Remove obsolete package references for netcoreapp >= 3.0 (Microsofot.AspNetCore.*) (#297)
- Audit.Mvc and Audit.WebApi: MissingMethodException Method not found: 'AuditScope.DisposeAsync()' when referencing Audit.Mvc from an ASP.NET core 3.1 application. (#296)
- Audit.NET: Modified
ISystemClock
interface to return a DataTime instead of DateTimeOffset so the DateKind is preserved (#287)
- Audit.EntityFramework: Fix Stack Overflow problem when entity has validation errors. Only for the .NET framework EF. (#294)
- Audit.WebApi: Use GetCurrentAuditScope when an HttpContext is missing (#285)
- Audit.WebApi: Package reference
Microsoft.AspNetCore.Mvc
downgrade for to version 2.1.0 for compatibility with older net core 2.1 framework (#284)
- Audit.EntityFramework: Fix EF events not being audited when calling EF Core's
SaveChangesAsync(bool acceptAllChangesOnSuccess,CancellationToken cancellationToken = default)
overload on the AuditDbContext. (#277)
- Audit.EntityFramework: Fix audit error when auditing multiple types inheriting from the same entity/table (#273)
- Audit.Mvc: Fix audit event saving when an exception occurs on the action method being audited (ASP.NET) (#274)
- Audit.EntityFramework: EntityFrameworkProvider add the possibility to configure the property matching by type, object-wide. (#269)
- Audit.NET.AzureStorage: Change table mapping cache dictionary to be a ConcurrentDictionary (#268)
- Audit.NET: Renaming properties
SerializedOld
andSerializedNew
to beOld
andNew
respectively onAuditTarget
class. (#261) - Audit.EntityFramework / Audit.EntityFramework.Core: Adding net472 as target to allow targeting EF CORE 3 from the full .NET Framework. (#263)
- Audit.WebApi / Audit.WebApi.Core: Changing body request/response read to be asynchronous. Avoiding exception when used on asp.net core 3 (System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead) (#259)
- Audit.WebApi / Audit.WebApi.Core: Removing unneeded references (Microsoft.AspNetCore.Identity and Microsoft.Extensions.PlatformAbstractions) (#258)
- Audit.WebApi / Audit.WebApi.Core: Adding execution context getter to AuditApiAction (#257)
- Audit.EntityFramework: Fix 'Property set method not found.' for get-only properties on audit entities (#256)
- Audit.NET.AzureStorage: Fixed issue with non-concurrent collections (#223, #255)
- Audit.EntityFramework: Adding support for Net Standard >= 2.1 to point to the EntityFramework 6.3.0 library. (#249)
- Audit.NET.Elasticsearch: Updating for Elasticsearch 7 support. NEST library updated to latest release 7.3.1. (#248).
- Audit.NET.EntityFrameworkCore: Updating Microsoft.EntityFramework.Core library to 3.0.0.
- Audit.NET.MongoDB: Updating MongoDB.Driver library to latest release (2.9.1). This fixes problem when using mongo DB data provider in Net Core 3.0 (#246).
- Audit.EntityFramework: Adding ExcludeValidationResults setting to allow excluding entity validations on the audit output.
- Audit.SqlServer: Adding boolean configuration value (SetDatabaseInitializerNull) to specify if the initializer should be set to NULL on the constructor of the internal DbContext. Only for .NET Framework (#237)
- Audit.EntityFramework: EntityFramework Data Provider support to map a single entity to multiple audit entities.
- Audit.SqlServer: Adding NET Core 3 preview support (#234)
- Audit.EntityFramework.Core: Adding EF Core 3 support (#231)
- Audit.WebApi and Audit.WebApi.Core: Changed the default order on
AuditApiAttribute
andAuditApiGlobalFilter
to beint.MinValue
instead of0
. This allows usingthis.GetCurrentAuditScope()
on Controller overridesOnActionExecutionAsync
andOnActionExecuting
(#230)
- All: Changed nuget package to point to the base Audit.NET repository, so it can be uploaded to GitHub packages
- Audit.WebApi: Fix null reference exception when response is null and response headers are included (#229)
- Audit.NET: Added
ISystemClock
interface to allow testing code that depends onDateTime.UtcNow
, such as event start-date, end-date and duration. AddedAudit.Core.Configuration.SystemClock
static configuration property.
- Audit.NET.PostgreSql: Fix IdColumnName missing quotes (#226)
- Audit.NET.SqlServer: Update Microsoft.EntityFrameworkCore reference and remove SqlServer.Design reference for netstandard2.0. (#225)
- Audit.NET.NLog: New extension library to store the audit events using NLog�.
- Audit.EntityFramework: Update Microsoft.EntityFrameworkCore to 2.2.4. Fixed issue with non-concurrent collections in concurrent integration
- Audit.WebApi / Audit.WebApi.Core: Allowing the use of
[AuditIgnoreAttribute]
on controllers/action methods when using the Middleware or a mixed approach (Middleware+ActionFilter). (#218)
- Audit.HttpClient: New extension library to audit client calls to REST services when using
HttpClient
.
- Audit.Mvc and Audit.Mvc.Core: Added
AuditIngoreAttribute
to allow ignoring controllers, actions and/or parameters on the MVC audit output.
- Upgrade newtonsoft.json references to latest version (12.0.2)
- Audit.EntityFramework and Audit.EntityFramework.Core: Adding constructor to the EF Data Provider that allows fluent API configuration.
- Audit.EntityFramework and Audit.EntityFramework.Core: Adding
ExcludeTransactionId
setting to allow avoiding the retrieval of the contextual transaction id for the audit events.
- Audit.EntityFramework and Audit.EntityFramework.Core: Fix compatibility issue with EF Core's Proxied Lazy Loading (Microsoft.EntityFrameworkCore.Proxies) (#214).
- Audit.WebApi and Audit.WebApi.Core: Ignoring action parameters marked with
[FromServicesAttribute]
(#213).
- Audit.NET.PostgreSql: Adding ability to configure extra columns on the audit SQL table with
CustomColumn
fluent API.
- Audit.NET: Adding ability to re-assign the AuditEvent's Target object after the scope is created.
- Audit.NET.SqlServer: Adding ability to configure extra columns on the audit SQL table with
CustomColumn
fluent API, and making JsonColumn optional.
- Audit.EntityFramework: Fix race condition on EntityKeyHelper when obtaining the column names (#208)
- Audit.NET.AzureStorage: Added Azure Active Directory Authentication support via Access Token for the BLOB storage Data Provider.
- Audit.EntityFramework: Fixed #198, adding validation to avoid exception when multiple mapping fragments are found.
- Audit.AzureStorage: Added constructor overloads to
AzureTableDataProvider
andAzureBlobDataProvider
that accepts a fluent configuration. Useful for custom providers inheriting from those classes.
- Audit.WebApi and Audit.WebApi.Core: Added Response Headers to the event output (optional by
IncludeResponseHeaders
configuration, default is false). - Audit.Core: Added optional Custom Fields to
AuditEvent.Environment
.
- Audit.EntityFramework and Audit.EntityFramework.Core: Added Schema property on entries to complement table name (#182). Added optional Custom Fields to Entity Framework Event and Event.Entries.
- Audit.NET.MySql: Changed target frameworks to match those on MySqlConnector nuget version 0.47.1.
- Audit.Core: UTC standarization for dates: changing missing dates to be UTC (Event.StartDate, Event.EndDate).
- Audit.Core: Added
Configuration.Setup().Use()
shortcut method forUseCustomProvider()
andUseDynamicProvider()
.
- Audit.Core: Adding support to Xamarin/Mono. Fix incompatible calls to
System.Runtime.InteropServices.Marshal
. (#180)
- Audit.EntityFramework.Core: Fix bug when auditing tables with composite multiple froeign keys related to the same column (#178).
- Audit.EntityFramework and Audit.EntityFramework.Core: Fix parameter default for
IgnoreMatchedProperties(bool)
on configuration API to be true.
- Audit.EntityFramework and Audit.EntityFramework.Core: Allow mapping multiple entity types to the same audit type with independent actions. (#175)
- Audit.PostgreSQL: Fix casing for schema name, allowing case-sensitive schemas. (#174)
- Audit.MongoDB: Fix bug when deserializing custom fields (#173)
- Audit.WebApi and Audit.Mvc: Upgrading AspNetCore libraries from GitHub suggestion because of security vulnerability.
- Audit.AzureDocumentDB: Adding netstandard2.0 as target
- Audit.WebApi.Core: (#158) Moving
GetAuditScope
extension method toControllerBase
instead ofController
. - Audit.Template.WebApi and Audit.Template Mvc: Using the built-in extension for registering a IHttpContextAccessor (#160)
- Audit.WebApi.Core: (Fix bug #161) Empty http response when using IncludeResponseBody on both the middleware and the audit filter.
- Audit.WebApi / Audit.WebApi.Core: Have request/response bodies retrieval mutually exclusive between ActionFilter and MiddleWare.
- Audit.WebApi.Template: Adding middleware to webapi default template.
- Audit.WebApi / Audit.WebApi.Core: Added new middleware to complement the action filter audits and be able to log any request regardless if an action is reached or not.
- Audit.EntityFramework and Audit.EntityFramework.Core: Created new nuget packages
Audit.EntityFramework.Identity
andAudit.EntityFramework.Identity.Core
to remove the AspNet.Identity dependency.
- Audit.NET.DynamoDB: Adding new extension Audit.NET.DynamoDB to save audit events into Amazon DynamoDB using the
AWSSDK.DynamoDBv2
document model.
- Audit.Core: Adding GetXxxxxEvent() extensions to AuditScope in addition to the AuditEvent.
- Audit.EntityFramework: Added validation on EF Data Provider to ignore non EF events.
- Audit.EntityFramework: Fix #150: Race condition on Audit.EF .NET Framework version, when multiple threads are calling EF SaveChanges.
- Audit.EntityFramework and Audit.EntityFramework.Core: Allow setting up a different DbContext for storing the audit events on the EF Data Provider. Related to #148.
- Audit.WebApi: Fix bug #147 for Microsoft.AspNet.WebApi.Versioning package compatibility.
- Audit.EntityFramework.Core: Replace Microsoft.EntityFrameworkCore.SqlServer dependency in Audit.EntityFramework.Core with Microsoft.EntityFrameworkCore.Relational. (thanks to https://github.com/Deilan).
- Audit.WebApi: Fix bug #146 on IsActionIgnored for .NET framework WebApi.
- Audit.Core: Changing the exception serialization to include the stacktrace and inner exceptions.
- Audit.WebApi, Audit.WebApi.Core: Adding AuditIgnoreAttribute for controller, actions and arguments.
- Audit.EntityFramework: Adding DefaultAuditContext and documentation on readme.md about using the library without inheritance.
- Audit.EntityFramework and Audit.EntityFramework.Core: Removing SqlServer.Design dependency
- Audit.NET: Added FileDataProvider constructor overload with fluent API.
- Audit.NET.SqlServer: Added SqlDataProvider constructor overload with fluent API.
- Audit.NET.PostgreSql: Added PostgreSqlDataProvider constructor overload with fluent API.
- Audit.NET.MySql: Added MySqlDataProvider constructor overload with fluent API.
- Audit.NET.MongoDB: Added MongoDataProvider constructor overload with fluent API.
- Audit.NET.log4net: Added Log4netDataProvider constructor overload with fluent API.
- Audit.NET.ElasticSearch: Added ElasticSearchDataProvider constructor overload with fluent API.
- Audit.WebApi, Audit.WebApi.Core and Audit.Mvc.Core: Added
TraceId
field on the output, with the internal ASP.NET correlation id per request. - Added Audit.WebApi.Template dotnet new template.
- Audit.EntityFramework and Audit.EntityFramework.Core: Adding support for ambient transactions (i.e. TransactionScope) on EF Core 2.1. Added AmbientTransactionId field to EF event output.
- Audit.NET.AzureStorage: Adding new data provider for storing events on Azure Tables
AzureTableDataProvider
.
- Audit.EntityFramework: Fix #127: (For EF 6) Foreign keys are set to NULL when deleting a relation entity (many-to-many), this was making NULL the column values holding the foreign key. Adding a workaround to avoid updating the foreign column values from the foreign key values that are set to NULL by EF.
- Audit.WebApi and Audit.WebApi.Core: Fix #131. Swallow
InvalidDataException
when accessing the Request.Form getter and return NULL is case of that type of exception. Only for the asp.net core version
- Audit.NET.Udp: Fix #129. Allow specifying host name on the Udp Configuration as an alternative to the IP address.
- Audit.NET.EventLog.Core: Created this new assembly/package to output events to the windows eventlog when targeting net core 2.0.
- Audit.EntityFramework and Audit.EntityFramework.Core: Fix #128 to be compatible with new EF Core 2.1 lazy loading feature.
- Audit.NET: Removing Microsoft.Windows.Compatibility dependency from Audit.NET package
- Audit.Mvc and Audit.Mvc.Core: Adding request and response bodies to the logs, optional via IncludeRequestBody and IncludeResponseBody properties on the action filter attribute.
- Audit.NET.AzureDocumentDB: Fix #126: AzureDocumentDb not respecting the global JsonSettings.
- Audit.Core: Fix bug #126: FileDataProvider not respecting JsonSettings. Exposed JsonSettings as a property of the FileDataProvider and fixed async methods.
- Audit.EntityFramework: Fix bug on SaveAsync for EntityFrameworkDataProvide. Related to #122.
- Audit.WebApi: Adding
AuditApiGlobalFilter
a configurable global filter as an alternative to decorate the controllers withAuditApiAttribute
.
- Audit.WebApi: Adding
IncludeResponseBodyFor
andExcludeResponseBodyFor
property onAuditApiAttribute
to allow conditionally Including/Excluding the Response Body from the log, only when certain Http Status codes are returned.
- Audit.Core: Adding
AuditDisabled()
method to fluent configuration API. - Audit.WebApi: Bypassing the filter when audit is globally disabled.
- Audit.Mvc: Bypassing the filter when audit is globally disabled.
- Audit.WebApi: Adding context wrapper interface IContextWrapper and injection mechanism for Audit.WebApi on full framework. Related to #124.
- Audit.NET.AzureDocumentDB: Allowing builders to pass the connection string, database and collection.
- Audit.NET.Elasticsearch: Fixing project URL reference on nuget package.
- Audit.NET.Elasticsearch: New Elasticsearch data provider
- Audit.NET.AzureDocumentDB: Cosmos DB provider enhancements by ovidiu [AT] ovidiudiaconescu.com. Caching azure client and allow passing the connection policy.
- Audit.WebApi: (#124) Making GetRequestBody protected virtual
- Audit.EntityFramework: Fix #120 exposing internal properties EventEntry.Entry (GetEntry) and EntityFrameworkEvent.DbContext (GetDbContext) on model objects.
- Audit.EntityFramework: Fix #122 allow exlude entities via the audit entity action. Now the AuditEntityAction can be a Func that return a boolean indicating whether to include the entity.
- Audit.Core: Exposing the global JSON serializer settings as a Configuration option to allow changing the serialization behavior for audit events.
- Audit.Core: Added a global audit switch off
Configuration.AuditDisabled
. - Audit.Core: Added
NullDataProvider
as an anternative to disable the audit logging.
- Audit.NET.MongoDB: Fix #114 - MongoDB Dataprovider Date serialization. Changing serialization mechanism to store the .NET DateTime as mongo datetime.
- Audit.EntityFramework: Added built-in mechanism to Ignore columns and Override column values on the audit logs.
- Audit.EntityFramework: (Core) fix PrimaryKeys, ForeignKeys and ColumnValues to log the column name instead of the property name.
- Audit.EntityFramework - Fix [#106]: DbEntityValidationException causes AuditEntityAction StackOverflowException.
- Audit.NET.AzureDocumentDB - Fix [#103]: Added FeedOptions argument to DocumentDb QueryEvents.
- Audit.EntityFramework - Fix [#104]: Multiple foreing key using the same field as key, causing audit to fail.
- Audit.WebApi and Audit.Mvc - Fix [#102]: NULL validation on HttpContext.Connection.RemoteIpAddress
- Audit.WebApi. Fix [#99]: Output not including body value when type was Microsoft.AspNetCore.Mvc.JsonResult
- Audit.WebApi: Added GetCurrentAuditScope(this HttpContext httpContext) extension to get the web api audit scope directly from an HttpContext
- Audit.NET.Postgres: Fix the insert command for the Postgres provider (#98)
- Added request body for AspNet Core Web API 2 via IncludeRequestBody property.
- Adding NETSTANDARD2.0 support to Audit.NET
- EventLog data provider available on NETCORE 2.0
- EventLog new MessageBuilder property to allow customizing the logged message
- Audit.DynamicProxy: allow setting the creation policy.
- Fixed #97: WebAPI missing response body when the response was a type inherited from ObjectResult, etc.
- Audit.MySql: refactor by bgrainger [AT] gmail.com to use MySqlConnector instead of MySql.Data to support real async calls.
- Async support to the AuditScope and all the data providers.
- Async support for Audit.EntityFramework, Audit.WCF, Audit.WebAPI and Audit.MVC extensions.
- Data retrieval methods for most of the data providers.
- New Custom Action OnEventSaved triggered right after the event is saved.
- Audit.EntityFramework: bug fixing #92
- New Audit.NET.log4net extension to log events with Apache log4net.