AgentStack
SKILL verified MIT Self-run

Abp Audit Logging

skill-burakdmir-abp-skills-abp-audit-logging · by burakdmir

ABP Framework v10.4 audit logging: AbpAuditingOptions, entity history, IAuditingStore, audit log storage and filtering. Use when configuring audit trails, audit logs, or entity history in ABP.

No reviews yet
0 installs
2 views
0.0% view→install

Install

$ agentstack add skill-burakdmir-abp-skills-abp-audit-logging

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Abp Audit Logging? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

ABP Audit Logging Skill

Trigger

Audit logging, audit trails, entity history, AbpAuditingOptions, IAuditingStore, tracking changes.


Quick Reference

Configuration

Configure(options =>
{
    options.IsEnabled = true;
    options.IsEnabledForGetRequests = false;
    options.ApplicationName = "MyApp";
    options.EntityHistorySelectors.AddAllEntities();
});

Entity History (OFF by default — must enable explicitly)

// All entities
options.EntityHistorySelectors.AddAllEntities();

// Specific entities
options.EntityHistorySelectors.Add(new NamedTypeSelector("MySelector",
    type => typeof(IEntity).IsAssignableFrom(type)));

// Per entity
[Audited] public class MyEntity : Entity { }
[DisableAuditing] public class SecretEntity : Entity { }

// Specific properties
[DisableAuditing] public string Password { get; set; }
[Audited] public string Name { get; set; }  // Only log this

Disable Auditing

[DisableAuditing] public class MyController : AbpController { }
[DisableAuditing] public async Task DoWorkAsync() { }

IAuditingStore (custom implementation)

public class MyStore : IAuditingStore, ITransientDependency
{
    public async Task SaveAsync(AuditLogInfo auditInfo) { /* custom storage */ }
}

Contributors

public class MyContributor : AuditLogContributor
{
    public override Task PreContributeAsync(AuditLogContributionContext ctx)
    {
        ctx.AuditLog.ExtraProperties["CorrelationId"] = CorrelationId;
        return Task.CompletedTask;
    }
}
Configure(o => o.Contributors.Add());

AlwaysLog Selectors

options.AlwaysLogSelectors.Add(new NamedTypeSelector("Critical",
    type => typeof(ICriticalService).IsAssignableFrom(type)));

ASP.NET Core Options

Configure(o =>
{
    o.IgnoredUrls.Add("/health");
});

AuditLogInfo Key Fields

  • UserId, TenantId, ExecutionTime, ExecutionDuration
  • ClientIpAddress, BrowserInfo, HttpMethod, Url
  • ExceptionMessage, EntityChanges, EntityPropertyChanges

Best Practices

  • Entity history OFF by default — enable explicitly
  • Use AddAllEntities() only if needed (storage intensive)
  • Disable auditing on sensitive properties (passwords, tokens)
  • Set ApplicationName for multi-app audit databases
  • Don't log GET requests unless debugging
  • Monitor storage growth with entity history
  • Blazor Server entity history has known limitations (#11682)

Related

[Infrastructure](../abp-infrastructure/SKILL.md) · [DDD](../abp-ddd/SKILL.md) · [Multi-Tenancy](../abp-multitenancy/SKILL.md) · Docs: https://abp.io/docs/latest/framework/infrastructure/audit-logging

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.