mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-06 00:02:13 +00:00
The role save took an advisory lock of its own while principal cleanup took the settings row, so the two never excluded each other: a save could persist a permissions block it had computed before a group's deletion took that group off it. The settings form had the same shape with no lock at all — it carries the old permissions forward by construction. They all take the settings row now, before reading and until they have written, which is the lock the cleanups already used. One mechanism, so there is no ordering to get wrong, and the advisory lock goes away with its cached query. The tenant removal says what it does not do: it authorizes nothing, and the rules differ per caller — a workspace admin for a user, the owner for a group or folder, no identity for the system paths — so the name carries `_unchecked` the way the resolution helpers next to it do.
Windmill Backend
This folder holds all backend components, the src/ folder only contains files used to build the "root" binary.
Components
| name | description |
|---|---|
| windmill-api | The API server, exposing functionality to other components and the frontend |
| windmill-audit | Contains audit functionality, allowing different components to record important actions |
| windmill-common | Common code shared by all crates |
| windmill-queue | Contains job & flow queuing functionality, commonly written to by the API server and read from by workers |
| windmill-worker | The worker. Used to process and execute flows & jobs. |
| parsers | Contains code to parse signatures in different langauges. |
Compile sqlx for offline ci
cargo sqlx prepare --workspace -- --bin windmill --features enterprise