You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Remote mode: the server provides site configuration (machines, queues), so a client works out of the box #192
Mode 2 from #191 (Matt, #188): "the user points their client at a remote server that provides configuration, data, and messaging … install the client, point it at a server and everything just works, with machines and queues all configured."
Today:ecce -remote gets data and messaging from the server, but reads Machines, Queues, QueueManagers, CONFIG.* and submit.site from the client's own install (confirmed on #188). So every client install needs its own copies.
Wanted:
The server publishes its site configuration on its data server, e.g. under /Ecce/system/siteconfig/.
A -remote client fetches it at start and caches it per user, as a read-only overlay under the client's own siteconfig. Local user registrations (~/.ECCE/MyMachines) still take precedence.
Refreshed each start; works offline from the cache.
The server's ecce -admin edits are what everyone then sees.
This is essential for native Windows/macOS clients (v9, #186), which will have no useful local siteconfig.
Planned as part of #208: user machine registrations will be stored on the ECCE server next to the server-wide ones, and Machine Registration shows them as one list.
Note: this depends on the server-side copy of each user's machine registrations (#208), so the fix should be designed with that, not as a client-only change.
Decided (2026-10-07), as recommended in the design (all five):
Reading the published site configuration requires a data-server login (9.x).
After a one-time import, ecce -remote reads the user's machine registrations from the server copy, not from ~/.ECCE (except localhost).
localhost always means the user's own computer; a server-published localhost is ignored and never uploaded.
Per-machine login name, allocation account and directories (MachPrefs) are part of the user's server-side registrations.
Registrations are private to their owner and read-only while offline.
Implementation follows in stages: layer lookup, server INDEX + login, client cache, user layer, docs.
Stages 1 and 2 are on main (wip/192-site-config). Stage 1: Ecce::siteConfigLayers/siteConfigFile/userRegistrationDir/siteConfigDirs; RefMachine, QueueManager, RefQueueManager, the GatewayApp messages, MachinePreferences and gensub (ECCE_SITECONFIG_DIRS) use them; with no cache nothing changes. The cache key reads DataServers through remoteServerDir() (#240). Stage 2: INDEX (sha256, written last), StartupMessage/NewUserMessage published, Ecce/system/siteconfig needs a data-server login and is read-only over DAV, ecce -admin publishes, ecce-remote-setup writes only RemoteServer/ (--refresh is a no-op with a note). Until stage 3 a -remote client takes no machine list from the server (setup no longer copies it). Not done: WxMachineRegister read path, SiteAdminClient::refresh (machregister).
The copy by ecce-remote-setup stays until stage 3: the machine list is copied again (and --refresh refreshes it), now with a data-server login because the published folder needs one: --login NAME (password asked for or in ECCE_SETUP_PASSWORD), or ECCE_SETUP_LOGIN, or ~/.netrc. Without a login the address is written and nothing is copied. Layer lookup, INDEX, login-protected siteconfig and published messages are unchanged. Known gap: ecce -admin -remote's automatic refresh (SiteAdminClient, machregister) passes no login, so it succeeds only with ~/.netrc or ECCE_SETUP_LOGIN in its environment.
Update: the login requirement on Ecce/system/siteconfig moves to stage 3, together with the client cache that replaces the copy. On main the folder is served without a login again, read-only over DAV (PUT/DELETE refused); INDEX and the published messages stay. ecce-remote-setup copies the machine list without a login exactly as before (--login, ECCE_SETUP_LOGIN and ~/.netrc are used if given), and --refresh works as before, so SiteAdminClient's refresh is unchanged.
Activity
ohlincha commentedon Sep 30, 2026
Planned as part of #208: user machine registrations will be stored on the ECCE server next to the server-wide ones, and Machine Registration shows them as one list.
ohlincha commentedon Oct 4, 2026
Note: this depends on the server-side copy of each user's machine registrations (#208), so the fix should be designed with that, not as a client-only change.
ohlincha commentedon Oct 7, 2026
Decided (2026-10-07), as recommended in the design (all five):
ecce -remotereads the user's machine registrations from the server copy, not from ~/.ECCE (except localhost).localhostalways means the user's own computer; a server-published localhost is ignored and never uploaded.Implementation follows in stages: layer lookup, server INDEX + login, client cache, user layer, docs.
gui_test: -admin on a -remote client no longer relies on --refresh co…
gui_test: the client's copy is unchanged after a remote admin save (#192
ohlincha commentedon Oct 8, 2026
Stages 1 and 2 are on main (wip/192-site-config). Stage 1: Ecce::siteConfigLayers/siteConfigFile/userRegistrationDir/siteConfigDirs; RefMachine, QueueManager, RefQueueManager, the GatewayApp messages, MachinePreferences and gensub (ECCE_SITECONFIG_DIRS) use them; with no cache nothing changes. The cache key reads DataServers through remoteServerDir() (#240). Stage 2: INDEX (sha256, written last), StartupMessage/NewUserMessage published, Ecce/system/siteconfig needs a data-server login and is read-only over DAV, ecce -admin publishes, ecce-remote-setup writes only RemoteServer/ (--refresh is a no-op with a note). Until stage 3 a -remote client takes no machine list from the server (setup no longer copies it). Not done: WxMachineRegister read path, SiteAdminClient::refresh (machregister).
ecce-remote-setup copies the server's machine list again, with a data…
Tests check the machine list copy again, with a login (#192)
GETTING_STARTED: the machine list copy needs a login (#192)
ohlincha commentedon Oct 8, 2026
The copy by ecce-remote-setup stays until stage 3: the machine list is copied again (and --refresh refreshes it), now with a data-server login because the published folder needs one: --login NAME (password asked for or in ECCE_SETUP_PASSWORD), or ECCE_SETUP_LOGIN, or ~/.netrc. Without a login the address is written and nothing is copied. Layer lookup, INDEX, login-protected siteconfig and published messages are unchanged. Known gap: ecce -admin -remote's automatic refresh (SiteAdminClient, machregister) passes no login, so it succeeds only with ~/.netrc or ECCE_SETUP_LOGIN in its environment.
Ecce/system/siteconfig stays readable without a login until clients f…
ohlincha commentedon Oct 8, 2026
Update: the login requirement on Ecce/system/siteconfig moves to stage 3, together with the client cache that replaces the copy. On main the folder is served without a login again, read-only over DAV (PUT/DELETE refused); INDEX and the published messages stay. ecce-remote-setup copies the machine list without a login exactly as before (--login, ECCE_SETUP_LOGIN and ~/.netrc are used if given), and --refresh works as before, so SiteAdminClient's refresh is unchanged.