See coordinator findings S-ImportCaps. ImportBoardCoreAsync validates the whole payload transactionally (good) but enforces no caps on column/card/label counts; the only bound is Kestrel MaxRequestBodySize (~30MB), which admits tens of thousands of cards in one request/transaction (authenticated self-serve DoS on shared DB/CPU). Assignee mappings are correctly restricted to self-or-unassigned. Suggested: cap columns/cards/labels/relations per import (with a clear 400/413 message), consistent with round-trip needs for legitimately large boards.
See coordinator findings S-ImportCaps. ImportBoardCoreAsync validates the whole payload transactionally (good) but enforces no caps on column/card/label counts; the only bound is Kestrel MaxRequestBodySize (~30MB), which admits tens of thousands of cards in one request/transaction (authenticated self-serve DoS on shared DB/CPU). Assignee mappings are correctly restricted to self-or-unassigned. Suggested: cap columns/cards/labels/relations per import (with a clear 400/413 message), consistent with round-trip needs for legitimately large boards.