HomeChallengesRepsProblemsLeaderboardTake a challenge

The Application Boundary

The layer everyone gets wrong. It orchestrates and authorises; it does not decide. Two kinds of validation live in two different places and both are needed.

Intermediate20 min on the clock5 graded checks · 100 pointsLayered Architecture and Modular SystemsPro
Graded by reading your code against the checklist below.

What you build

  • Permission names as constants, plus a PermissionDefinitionProvider
  • Authorise at the class, tighten per method
  • Request validation on the input DTO with data annotations
  • Business rules on the entity, not in the service
  • Mapping declared once in a profile, not copied per method

Done means

Permissions are constants, the DTO validates the request, and the entity enforces the rules.

How it is graded

Published in full, before you start — every point is one of these and there is nothing else.

  1. Permissions are constants, not literals+20Roles and policies
  2. A PermissionDefinitionProvider declares them+20Roles and policies
  3. Authorised at the class and tightened per method+20Roles and policies
  4. The input DTO validates the request+20Form validation
  5. Mapping is declared once in a profile+20Layers and dependency direction

What it teaches

The rest of Layered Architecture and Modular Systems