ericmj

ericmj

Elixir Core Team

Hex.pm is adding private packages and organizations

We are announcing the addition of private packages on Hex.pm. With private packages you can publish packages to Hex.pm that only your organization members can access and download. With your organization you get a repository namespace on Hex.pm so that your private packages will not conflict with packages in the global, public repository. Go check out the documentation https://hex.pm/docs/private to learn exactly how it works and go the sign up form https://hex.pm/dashboard/signup to request access to the beta.

Link to full announcement: https://hex.pm/blog/private-packages-and-organizations

Most Liked

ericmj

ericmj

Elixir Core Team

Thanks, it has been fixed now.

Yes, that’s what we are working on right now. Hexdocs requires more work since it needs to change from static file hosting to a server with authentication and needs subdomain isolation between organizations so that cookies cannot be stolen or XSS attacks performed.

ericmj

ericmj

Elixir Core Team

Hi @zazaian!

This is a very broad question so I will give a general description of some of our infrastructure, how we authenticate access, and store private information. Some if this applies in general to all of hex.pm and some of it is specific to private packages.

All communication to the hex.pm API and repository happens over HTTPS. When a user authenticates a new machine with mix hex.user auth we generate three keys:

  • A repository key used to authenticate against the repository when fetching private packages
  • An API key for performing read-only actions on the API
  • An API key encrypted with your passphrase for performing write actions on the API (for example publishing a new package)

All keys use HMAC, which means we never store your user secret.

Packages are stored on a private Amazon S3 bucket and we use Fastly as CDN to access the bucket. Based on the URL of the request to the repository we determine if the package requires authenticated access, if it does the CDN edge node makes a “preflight request” to the hex.pm API to verify the repository key against our database. Only if it succeeds do we continue with the request to the S3 bucket.

Our API servers run on Google Cloud servers and our database uses Google Cloud SQL with at rest encryption.

As I said this is a broad question so if you can elaborate on your security needs or if you have more specific questions you will probably get better answers. If you have any questions you cannot share in public please contact us on support@hex.pm.

All the code around organizations and private packages is open source so if you want to review the security the best thing may be to look at the sources themselves: https://github.com/hexpm/hexpm.

josevalim

josevalim

Creator of Elixir

This is unwelcoming and unfair for both the work being put on Hex and to @ryanwinchester which is completely within his rights to sell software.

ericmj

ericmj

Elixir Core Team

The pricing is not decided yet but it will be free to use while we are in beta which is expected to run for a few months. The price will be based on the costs of running the new infrastructure required to support private packages and the interest in the service during the beta. We will have a pricing model similar to NPM and GitHub where there is monthly fee based on the number of members in your organization.

Open source projects and organizations can use the service for free, but keep in mind that packages will only be visible to members of the organization.

hubertlepicki

hubertlepicki

Do you know what will be the pricing, if any?

Where Next?

Popular in News Top

Elixir
This release includes type inference of patterns to provide warnings for an initial set of constructs (binaries, maps, and atoms). It al...
New
josevalim
NOTE: this is a focused thread, so we appreciate if everybody stayed on topic. Feel free to comment anything in regards to calendar forma...
New
josevalim
Hello folks, There has been some doubts regarding StreamData and PropertyTesting in Elixir so we have decided to open up a thread to an...
New
Elixir
Release: https://github.com/elixir-lang/elixir/releases/tag/v1.9.2 1. Enhancements Mix [mix release] Allow {:from_app, app_name} as a v...
New
Elixir
1. Enhancements Elixir [Regex] Raise error message when regexes are used as default values in struct fields for compatibility with Erlan...
New
josevalim
This is a small release with important bug fixes for those using Cover and Dialyzer on Erlang 19. See the release notes for more info: ...
New
josevalim
Hello everyone, This past weekend we have released Ecto v2.1.0-rc.5, hopefully the last release candidate for Ecto v2.1: https://github...
New
Elixir
Release: https://github.com/elixir-lang/elixir/releases/tag/v1.11.0-rc.0 Over the last releases, the Elixir team has been focusing on th...
New
josevalim
Hi everyone, We are glad to announce that the first release candidate for Elixir v1.6.0 is out. Check out the CHANGELOG and give the ...
New
josevalim
Hello everyone, I would like to propose the addition of the Registry project to Elixir: https://github.com/elixir-lang/registry The...
New

Other popular topics Top

JDanielMartinez
Hi! May someone helps me, please! I have two apps into an umbrella project: the first one is Database, which manages queries, and the se...
New
peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 49522 488
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New

We're in Beta

About us Mission Statement