Skip to main content

Security Playbook

Product Security Strategy

This document outlines the security strategy for the Line Dance Platform (LDP). It includes actionable principles, implemented policies, and future considerations.

RBAC vs ABAC

  • Security Roles: USER, ADMIN
  • Domain Roles: TEACHER (does not grant global write permissions)
  • Ownership/ABAC Patterns: Enforced at the service layer (BOLA).

Non-Negotiables Checklist

  • RFC7807 ProblemDetail: Standardized error responses, including 401/403.
  • X-Correlation-Id: Header and body field for traceability.
  • Field Errors: Only for 400 validation issues.
  • BOLA Enforcement: Ownership checks at the service layer.
  • Pagination Cap: Maximum size of 100.

Current Implemented Permission Policy

  • Public Endpoints: GET /api/** (except GET /api/users/me/** which requires authentication).
  • Catalog Writes: POST/PUT/DELETE restricted to ADMIN.
  • Location/Venue:
    • POST: Authenticated users (owner set server-side).
    • PUT: Owner or ADMIN (BOLA enforced).
    • DELETE: ADMIN only.

ADRs

Future Work

  • Membership tables for venues/events.
  • Potential CURATOR/EDITOR roles.
  • Testcontainers for integration testing.