Run fn with NO connection in scope, so its reads see the shared catalog.
One deliberate caller: action generation. An Action describes the vendor's API, not one tenant's
projection of it, so generating actions from whichever connection happened to be in scope would
make the generated surface depend on who ran it. Stated here rather than left implicit, because
from inside the generator the shared read looks like an oversight.
Run
fnwith NO connection in scope, so its reads see the shared catalog.One deliberate caller: action generation. An Action describes the vendor's API, not one tenant's projection of it, so generating actions from whichever connection happened to be in scope would make the generated surface depend on who ran it. Stated here rather than left implicit, because from inside the generator the shared read looks like an oversight.