Loading
Let orchestra_api and orchestra_client run without the Orchestra engine, moving server-only code to orchestra_server_api and the request limits and remote pages under Web services
Closes https://www.drupal.org/project/orchestra/issues/3631390
A site that only calls a remote Orchestra (for example one hosting the forms a workflow on another site collects) can now install orchestra_api and orchestra_client without the engine. Nothing those two modules hold is specific to the answering side.
One commit per step:
- Move
LocalOrchestraClientand its contract binding toorchestra_server_api.orchestra_client'salter()still wins the binding on a peer site (engine + server API + client), andClientBindingTestnow ordersorchestra_clientbeforeorchestra_server_api, the order in which a YAML alias would lose. - Move
AcceptedIdentitySchemesandIdentitySchemeResolverInterfacetoorchestra_server_api: serviceorchestra_server_api.accepted_identity_schemes, tagorchestra_server_api.identity_scheme_resolver. - Move
FloodGuardtoorchestra_api(orchestra_api.flood_guard). Its switch and period move fromorchestra.settingstoorchestra_api.settings, and the Request limits section of the Orchestra settings form becomes its own page, Configuration > Web services > Orchestra request limits, with the permissionadminister orchestra request limits.orchestra_interactionnow depends onorchestra_api. - Drop
orchestra:orchestrafromorchestra_api.orchestra_clientgets its own permission,administer orchestra remotes, and its pages move to Configuration > Web services (Remote Orchestras, Orchestra notices). Its kernel tests leave the engine out, andClientSiteWithoutEngineTestinstalls it the way a site does and checks the engine stays out.
Deploying
- Run
drush en orchestra_apibeforedrush cron any site withorchestra_interaction: it now depends onorchestra_api, and its services needorchestra_api.flood_guard. - Request limits that were switched on in
orchestra.settingsare off again until switched on at the new page (no update hook before beta). The old keys stay behind as orphans:drush config:delete orchestra.settings floodremoves them. - Grant
administer orchestra remotesandadminister orchestra request limitsto whoever administered them throughadminister orchestra.
Other projects
Kernel tests that enable orchestra_interaction must now enable orchestra_api too: 21 classes in yoyaku and 1 in pdv.
AI-Generated: Yes (Claude Code was used to help write the change, its tests and this description. I reviewed them, and the new tests were confirmed to fail when the engine dependency is put back or the form saves the wrong key.)
Edited by Frank Mably