mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-05 16:03:47 +00:00
A fork made while a data table was unpermissioned carries a verbatim copy of the config, still pointing at this workspace's database. Opting in never reached that copy, so the fork went on resolving through the connection that owns everything there — for every member of the fork, including members this workspace does not have. The fork strip only covers forks made after the opt-in. Enabling permissions now converts those copies into pointers, over the whole descendant tree. Conservative by construction: a copy is taken only when it still names this workspace's database, was not cloned into one of its own, and the fork has not opted in on it itself — the other three are data tables the fork owns. It runs after the save commits, one fork at a time under that fork's own settings lock, so it cannot deadlock against a save there; it is idempotent, and the next save retries whatever failed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S5arH3G2Sa1Qqm32veJQ1n