1 { stdenv, lib, fetchzip }:
3 stdenv.mkDerivation rec {
9 inherit (stdenv.hostPlatform) system;
10 selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}");
11 suffix = selectSystem {
12 x86_64-linux = "linux_amd64";
13 aarch64-linux = "linux_arm64";
14 x86_64-darwin = "darwin_amd64";
15 aarch64-darwin = "darwin_arm64";
17 sha256 = selectSystem {
18 x86_64-linux = "sha256-43Q69Pp5NLB4fITy2X8d0XHp5EX+gFLnwtHOontISoU=";
19 aarch64-linux = "sha256-z87peCBv50eJr/kiFWPZUOeb0WCN4X+0JnxCvn3lCXo=";
20 x86_64-darwin = "sha256-SAhlZNGq5rkNitKVd+EjLOeeTErhWg14tHFG4Bsexv8=";
21 aarch64-darwin = "sha256-2DJgOdgJY6eUR2sqWS47vNjdkQGXOEEsSXhZeUBZxxs=";
25 url = "https://releases.hashicorp.com/boundary/${version}/boundary_${version}_${suffix}.zip";
34 install -D boundary $out/bin/boundary
38 doInstallCheck = true;
39 installCheckPhase = ''
40 runHook preInstallCheck
41 $out/bin/boundary --help
42 $out/bin/boundary version
43 runHook postInstallCheck
47 dontPatchShebangs = true;
50 passthru.updateScript = ./update.sh;
53 homepage = "https://boundaryproject.io/";
54 changelog = "https://github.com/hashicorp/boundary/blob/v${version}/CHANGELOG.md";
55 description = "Enables identity-based access management for dynamic infrastructure";
57 Boundary provides a secure way to access hosts and critical systems
58 without having to manage credentials or expose your network, and is
61 Boundary is designed to be straightforward to understand, highly scalable,
62 and resilient. It can run in clouds, on-prem, secure enclaves and more,
63 and does not require an agent to be installed on every end host.
65 sourceProvenance = with sourceTypes; [ binaryNativeCode ];
66 license = licenses.bsl11;
67 maintainers = with maintainers; [ jk techknowlogick ];
68 platforms = platforms.unix;
69 mainProgram = "boundary";