• Mahmoud Aglan's avatar
    docs: separate structural changes from record changes · d20598a2
    Mahmoud Aglan authored
    I reached for a migration to delete rows — stale API tokens — because the change
    needed to apply to every client. That is the wrong test, and the rule it violated
    was written down nowhere.
    
    The deciding question is structure or records, never reach. Schema belongs in a
    migration because it is structure. Rows belong in the client's own database
    because they are that client's data, even when several clients need the same
    correction. A migration that edits rows edits them on every tenant at once, with
    no review and no way to do it for one client only — and this product is one
    install per client, each running the same software over their own records.
    
    Also states plainly that we do not deploy: code is committed and pushed, and the
    platform ships it. Nothing here triggers a CapRover build.
    
    Records the code cannot run without — a permission it checks, a default setting
    it reads — are genuinely ambiguous, and the repo has precedent both ways. Noted
    as a grey area to ask about rather than pretending the line is clean.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    d20598a2
CLAUDE.md 9.06 KB