Current status
At the moment, to manage private streams automatically within this repo, we add the rust-lang-owner user to the stream.
See:
|
add_rust_lang_owner_to_private_streams(&mut stream_definitions, &zulip_controller)?; |
This isn't great because users with access to the rust-lang-owner user credentials (i.e. the members of the infra-admins team) can log in with that user and read private conversations.
Proposed change
As noted in #t-infra > zulip Moderator vs mods @ 💬, there's a setting in zulip channels that allow to specify users that can add other people to the channel while not being part of the channel.

This means that rust-lang-owner could add people from the channel without being part of it. There's also the field "who can unsubscribe anyone from this channel", which would allow rust-lang-owner to also remove people from the channel.
Proof
- I created a test channel that only has me
- I added rust-lang in that setting field
- As you can see from the following picture, rust-lang-owner isn't present in the channel members:

How to
People who created the private stream could add rust-lang-owner to both those fields, so that from that point on, the stream can be managed in this repo.
Alternative
An alternative useful for streams that need to be created from scratch, is that:
rust-lang-owner creates the stream, setting itself as a stream administrator
- adds all the members to the stream
- removes itself from the stream members, leaving itself as stream administrator
More context
The only private stream configured through this repo we have at the moment is t-compiler/contrib-private:
|
name = "t-compiler/contrib-private" |
This is just a mitigation
Note that people with access to rust-lang-owner can still add themselves or rust-lang-owner to private streams and read the messages, but when doing so, at least they would leave a trace.
Current status
At the moment, to manage private streams automatically within this repo, we add the
rust-lang-owneruser to the stream.See:
team/sync-team/src/zulip/mod.rs
Line 33 in 353e763
This isn't great because users with access to the
rust-lang-owneruser credentials (i.e. the members of the infra-admins team) can log in with that user and read private conversations.Proposed change
As noted in #t-infra > zulip Moderator vs mods @ 💬, there's a setting in zulip channels that allow to specify users that can add other people to the channel while not being part of the channel.
This means that
rust-lang-ownercould add people from the channel without being part of it. There's also the field "who can unsubscribe anyone from this channel", which would allowrust-lang-ownerto also remove people from the channel.Proof
How to
People who created the private stream could add
rust-lang-ownerto both those fields, so that from that point on, the stream can be managed in this repo.Alternative
An alternative useful for streams that need to be created from scratch, is that:
rust-lang-ownercreates the stream, setting itself as a stream administratorMore context
The only private stream configured through this repo we have at the moment is
t-compiler/contrib-private:team/teams/compiler.toml
Line 141 in 353e763
This is just a mitigation
Note that people with access to
rust-lang-ownercan still add themselves orrust-lang-ownerto private streams and read the messages, but when doing so, at least they would leave a trace.