-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Description
I'm writing to address a critical issue involving the Go module proxy (proxy.golang.org
) and pkg.go.dev
caching packages from our monorepo, which is causing significant legal concerns for us.
First, I want to acknowledge that documentation exists on this topic, and I take full responsibility for any oversight on our part.
However, I hope you understand that the default behavior of automatically caching packages from public repositories is uncommon in other ecosystems and has led to unintended and problematic consequences in our case.
Context
Our project is a monorepo hosted on GitHub with multiple go.mod
files for internal modules intended strictly for internal development, not for external distribution.
Although the repository was public on GitHub, I did not consider this as "publishing" the packages. The automatic caching of our internal modules occurred without our explicit consent, simply because the repository was accessible, leading to unintended public exposure.
That poses legal issues for our organization, which we are trying to resolve upon request of the lawyer at the moment to prevent future hassle.
Please advise on how we can proceed through a private and secure channel to provide necessary details without risking further exposure.
Concerns
I am concerned about the default behavior of the proxy automatically caching any publicly accessible repository without an opt-in mechanism or explicit consent. That creates significant legal and operational challenges, and the current process for removing cached packages is suboptimal.
While I am, now, aware of the GOPRIVATE
environment variable, it is not practical for us.
It requires all contributors, including external freelancers using their own devices, to configure their environments appropriately, which isn't always enforceable. Unless I am misunderstanding the situation, I would appreciate your advise.
I believe that having an opt-in mechanism for caching packages—ideally specified in the go.mod
file rather than an environment variable, or any other static file that could be committed. I am not sure.
I understand the motivation behind it, and I support it fully, my personal concern is having such behavior without manually opting for it.
Especially that the lack of a private communication channel to resolve this matter complicates the situation, as we are hesitant to discuss sensitive legal concerns in a public forum. I tried to find an email but I couldn't find anything other than GitHub issues.