Agent skill · Security

add-admin-endpoints

Add admin API endpoints with proper authorization, audit logging, and rate limiting (project)

majiayu000github.com/majiayu000GitHub ↗
claude-codeMIT
Install
npx skills add majiayu000/claude-skill-registry --skill add-admin-endpoints --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 2
SKILL.md size: 20 KB
Bundled scripts: none
Path: skills/api/add-admin-endpoints/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 534
Language: HTML

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Implements admin API endpoints for NovaTune with proper authorization, audit logging, and rate limiting. Provides grouped endpoints for users, tracks, analytics, and audit logs, including list/get/update/moderate/delete actions and admin-only access with an audit-enabled policy.

How it works

  • Adds admin authorization policies:
    • AdminOnly: requires role claim "Admin".
    • AdminWithAuditAccess: requires role "Admin" and permissions claim "audit.read".
  • Creates admin endpoints at /admin with subgroups:
    • /users: list, get, update status; each endpoint defines names, summaries, and response types; rate limits applied via policies: admin-user-list and admin-user-modify.
    • /tracks: list, get, moderate, delete; corresponding rate limits: admin-track-list and admin-track-modify.
    • /analytics: overview, top tracks, active users; rate limit policy admin-analytics.
    • /audit-logs: list, get, verify; requires AdminWithAuditAccess; rate limit admin-audit.
  • Implement handlers for each operation:
    • List users: builds query from query params, calls ListUsersAsync, returns Ok(result).
    • Update user status: validates ULID, validates reason code, prevents self-modification, calls UpdateUserStatusAsync, logs audit entry, returns Ok(result) or 404 if user not found.
    • Moderate track: validates track ID, reason code, calls ModerateTrackAsync, logs audit with action based on moderation status, returns Ok(result) or 404.
    • Delete track: validates track ID, calls DeleteTrackAsync, logs audit, returns 204 or 404.
    • Audit logs: list with filters, logs viewing action; verify integrity with optional date window, logs integrity check.
  • Rate limiting configured in Program.cs with sliding window limits for each operation group (admin-user-list, admin-user-modify, admin-track-list, admin-track-modify, admin-analytics, admin-audit, etc.).

When to use it

Use this skill when you need a structured admin API surface for NovaTune that enforces admin authorization, records audit trails for admin actions, and controls request rate to admin endpoints.

What it can touch

  • Endpoints under /admin, including /admin/users, /admin/tracks, /admin/analytics, /admin/audit-logs.
  • Tools referenced by the skill include: "claude-code" for code-oriented tasks (as declared).

Caveats

  • Uses role-based and claim-based authorization policies; enforcement relies on the hosting app configuring claims correctly.
  • Audit logging is performed on significant actions; exact audit payload structure is defined by CreateAuditRequest and related types in the hosting app.
  • Rate limiting policies must be supported by the runtime; misconfigurations may block legitimate requests if limits are too strict.
From the SKILL.md

# Add Admin Endpoints Skill Implement admin API endpoints for NovaTune with proper authorization, audit logging, and rate limiting. ## Overview Admin endpoints provide: - **User management**: List, view, and update user status - **Track moderation**: List, view, moderate, and delete tracks - **Analytics**: Dashboard overview and reports - **Audit logs**: View and verify audit trail ## Steps ### 1. Create Authorization Policies Location: `src/NovaTuneApp/NovaTuneApp.ApiService/Configuration/AuthorizationConfig.cs` ```csharp namespace NovaTuneApp.ApiService.Configuration; public static class AuthorizationConfig { public static IServiceCollection AddAdminAuthorization( this IServiceCollection services) { services.AddAuthorization(options => { // Basic admin access options.AddPolicy(PolicyNames.AdminOnly, policy => policy.RequireClaim(ClaimTypes.Role, "Admin")); // Admin with audit access permission options.AddPolicy(PolicyNames.AdminWithAuditAccess, policy => policy.RequireAssertion(context => context.User.HasClaim(ClaimTypes.Role, "Admin") && context.User.HasClaim("permissions", "audit.read"))); }); return services; } } public static class PolicyNames { public const string ActiveUser

What's inside
Steps it walks through
  1. Overview
  2. Steps
  3. 1. Create Authorization Policies
  4. 2. Create Admin Endpoints
  5. 3. Implement User Management Handlers
  6. 4. Implement Track Moderation Handlers
  7. 5. Implement Audit Log Handlers
  8. 6. Add Rate Limiting Policies
  9. 7. Register Endpoints in Program.cs
  10. 8. Add Query Parameter Records
  11. Error Response Format
  12. Security Checklist
  13. Testing
Ships with 1 file
  • metadata.json
More from claude-skill-registry
All skills →
About this skill
What does the add-admin-endpoints skill do?

Add admin API endpoints with proper authorization, audit logging, and rate limiting (project)

How do I install it?

Run `npx skills add majiayu000/claude-skill-registry --skill add-admin-endpoints --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going