Service access modes
Waldur hands out services in two ways: users order offerings from the marketplace, or they apply
through calls for proposals, where a proposal is reviewed and, once accepted, turned into orders. How users
reach either is set by one deployment-wide setting, SERVICE_ACCESS_MODE. Three feature flags then decide
what each of those paths can do.
For what users see in each mode, see How you reach services.
The setting
SERVICE_ACCESS_MODE is a runtime setting under Marketplace visibility & access. In Helm deployments set
it in waldur.settingsOverrides — see Configuration overrides.
| Value | Marketplace in navigation | Calls section in navigation | Apply through an offering | Applicant wording |
|---|---|---|---|---|
both (default) |
Yes | Yes | Yes | Calls, rounds, proposals |
calls |
No | Yes | Yes, from a call's offerings | Calls, rounds, proposals |
marketplace |
Yes | Operators only | Yes | Access requests, submission deadlines |
- Apply through an offering — an offering that is open for proposals shows Apply for access next to
Order now. In
callsmode the offering page is reached from Calls for proposals → Available offerings, offers applying only, and leads back to the calls section; the marketplace shop itself (Add resource, the catalogue, categories, orders) is for staff only. - In
marketplacemode applicants never meet a call: their proposals are listed as access requests in their profile, and the proposal notifications are sent with theaccess_request_*templates instead — see Notifications. Reviewers, call managers and service providers keep the call vocabulary and, if call management is on, a sidebar section to work from. The call catalogue (/calls-for-proposals/,/calls/) is refused to everyone else, and an offering's team that assesses requests without holding a call role reaches its tasks under Access management → My reviews. - In every mode an applicant can withdraw a submitted proposal while it is still being evaluated. Its
unfinished steps are skipped, open reviews and assignments lapse, and the call managers are notified
(
proposal.proposal_withdrawn). Once an award awaits the applicant's answer, they decline it instead.
The setting changes navigation and wording only. The API serves the same data in every mode, and a proposal submitted in one mode keeps working after the mode changes.
Naming calls in marketplace-only mode
In marketplace mode the applicant never sees a call, but two things they do see are derived from it:
- The project created on approval is named
<prefix> - <round start date> - <request name>, where the prefix is the call's backend ID if set, and its slug otherwise. The slug is built from the call's name. - The request ID shown on the request page follows the call's proposal slug template (default
{round_slug}-{counter_padded}), and the round slug is built from the managing organization and the call's name.
A call named after an internal programme ("2026 Extreme Scale Access Call") therefore leaks into project names and request IDs. For calls that run behind offerings:
- name the call after the service it grants access to, as the applicant would call it;
- set its backend ID to a short, neutral prefix (for example the offering's short name), since it becomes the start of every project name;
- set the proposal slug template to something that does not name the call, for example
REQ-{year}{month}-{counter_padded}.
Change these before the call takes its first request: existing projects and request IDs are not renamed.
Feature flags that combine with it
These are toggled under Administration → User interface → Features, and are independent of the mode.
| Flag | What it does |
|---|---|
marketplace.show_call_management_functionality |
Turns on call management: the call-managing organization's workspace, service providers' requests for offerings, and proposal reports. Without it those screens are hidden, whatever the mode. |
marketplace.call_only |
The calls are run outside Waldur. Each call requires an external URL, and Apply sends the user there. The rounds tab, the call managers' proposal and review lists, the reviewers tab and My proposals are hidden. A call without an external URL offers no way to apply. |
marketplace.catalogue_only |
Offerings can be browsed but not ordered; order lists and the pricing tab are hidden, and anonymous visitors land on the marketplace instead of the login page. See Catalogue mode. |
Typical setups
| Deployment | Mode | Call management | call_only |
catalogue_only |
|---|---|---|---|---|
| Self-service cloud, no calls | marketplace |
Off | Off | Off |
| Marketplace plus calls for proposals | both |
On | Off | Off |
| Allocation portal, all access through calls | calls |
On | Off | Off |
| Offerings granted only after review, without exposing calls | marketplace |
On | Off | On |
| Directory of services and of calls run elsewhere | calls or both |
On | On | On |
In the fourth row, ordering is disabled but the offering page still offers Apply for access when the offering is open for proposals, so review is the only way in.
Upgrading from the feature flags
Before SERVICE_ACCESS_MODE existed, the same choice was spread over feature flags. On upgrade a migration
derives the mode from what the deployment was showing:
| Before the upgrade | Mode after the upgrade |
|---|---|
call_only on |
calls |
call_only off, call management on |
both |
| Both off | marketplace |
The flags themselves are kept and keep the meaning described above. Check the derived value after
upgrading: a deployment that had neither flag on is now in marketplace mode, so any proposals its applicants
made are shown to them as access requests.