Skip to content

Remote mode: the server provides site configuration (machines, queues), so a client works out of the box #192

Open

Description

@ohlincha

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.

Activity

  1. added this to the v9 milestone on Sep 29, 2026
  2. ohlincha commented on Sep 30, 2026

    @ohlincha
    CollaboratorAuthor

    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.

  3. ohlincha commented on Oct 4, 2026

    @ohlincha
    CollaboratorAuthor

    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.

  4. ohlincha commented on Oct 7, 2026

    @ohlincha
    CollaboratorAuthor

    Decided (2026-10-07), as recommended in the design (all five):

    1. Reading the published site configuration requires a data-server login (9.x).
    2. After a one-time import, ecce -remote reads the user's machine registrations from the server copy, not from ~/.ECCE (except localhost).
    3. localhost always means the user's own computer; a server-published localhost is ignored and never uploaded.
    4. Per-machine login name, allocation account and directories (MachPrefs) are part of the user's server-side registrations.
    5. 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.
  5. ohlincha commented on Oct 8, 2026

    @ohlincha
    CollaboratorAuthor

    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).

  6. ohlincha commented on Oct 8, 2026

    @ohlincha
    CollaboratorAuthor

    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.

  7. ohlincha commented on Oct 8, 2026

    @ohlincha
    CollaboratorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions