-
Notifications
You must be signed in to change notification settings - Fork 7
Document which secrets each server process actually needs #652
Description
Problem
The secrets.yaml file contains both database credentials and service (Windows remote) credentials. It's unclear which server processes need which entries, leading to confusion about what needs to be deployed where and potential security exposure from distributing more credentials than necessary.
Questions to answer
-
Which processes need the database password?
Presumably all of them (ACQ_0, ACQ_1, STM, CTR) since they all open SSH-tunneled database connections for message queue polling and logging. -
Which processes need the service/server passwords?
The service passwords (ServerConfig.password) are used innetcomm/client.pyfor remote process management —tasklist,taskkill,SCHTASKS, andWMICcommands via/Uand/Pflags. This is only used by the CTR/GUI process when it launches and manages the ACQ and STM servers. The ACQ and STM servers themselves should not need these passwords. -
What are the "wang" passwords and why do they work?
The service passwords that currently work for remote process management (WMIC, tasklist, schtasks) don't match the actual Windows login passwords for those machines. Need to document what these passwords actually authenticate against and why the working values differ from the interactive login credentials.
Proposed deliverable
- Add a section to
docs/arch/system_configuration.md(or a new doc) that maps each secret to:- Which process(es) consume it
- What it authenticates against
- Whether it's required or optional for each server role
- Minimize the secrets distributed to each machine (e.g., ACQ/STM machines should not need CTR's remote management passwords)