Merge master into staging-next
This commit is contained in:
@@ -16285,6 +16285,16 @@
|
||||
githubId = 53029739;
|
||||
name = "Joshua Ortiz";
|
||||
};
|
||||
Sorixelle = {
|
||||
email = "ruby+nixpkgs@srxl.me";
|
||||
matrix = "@ruby:isincredibly.gay";
|
||||
name = "Ruby Iris Juric";
|
||||
github = "Sorixelle";
|
||||
githubId = 38685302;
|
||||
keys = [{
|
||||
fingerprint = "2D76 76C7 A28E 16FC 75C7 268D 1B55 6ED8 4B0E 303A";
|
||||
}];
|
||||
};
|
||||
sorki = {
|
||||
email = "srk@48.io";
|
||||
github = "sorki";
|
||||
@@ -18510,7 +18520,7 @@
|
||||
githubId = 60148;
|
||||
};
|
||||
water-sucks = {
|
||||
email = "varun@cvte.org";
|
||||
email = "varun@snare.dev";
|
||||
name = "Varun Narravula";
|
||||
github = "water-sucks";
|
||||
githubId = 68445574;
|
||||
|
||||
@@ -93,6 +93,8 @@
|
||||
|
||||
- [audiobookshelf](https://github.com/advplyr/audiobookshelf/), a self-hosted audiobook and podcast server. Available as [services.audiobookshelf](#opt-services.audiobookshelf.enable).
|
||||
|
||||
- [ZITADEL](https://zitadel.com), a turnkey identity and access management platform. Available as [services.zitadel](#opt-services.zitadel.enable).
|
||||
|
||||
## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
|
||||
|
||||
- The `boot.loader.raspberryPi` options have been marked deprecated, with intent for removal for NixOS 24.11. They had a limited use-case, and do not work like people expect. They required either very old installs ([before mid-2019](https://github.com/NixOS/nixpkgs/pull/62462)) or customized builds out of scope of the standard and generic AArch64 support. That option set never supported the Raspberry Pi 4 family of devices.
|
||||
|
||||
@@ -6,7 +6,7 @@ let
|
||||
cfg = config.services.locate;
|
||||
isMLocate = hasPrefix "mlocate" cfg.locate.name;
|
||||
isPLocate = hasPrefix "plocate" cfg.locate.name;
|
||||
isMorPLocate = (isMLocate || isPLocate);
|
||||
isMorPLocate = isMLocate || isPLocate;
|
||||
isFindutils = hasPrefix "findutils" cfg.locate.name;
|
||||
in
|
||||
{
|
||||
@@ -216,18 +216,18 @@ in
|
||||
setgid = true;
|
||||
setuid = false;
|
||||
};
|
||||
mlocate = (mkIf isMLocate {
|
||||
mlocate = mkIf isMLocate {
|
||||
group = "mlocate";
|
||||
source = "${cfg.locate}/bin/locate";
|
||||
});
|
||||
plocate = (mkIf isPLocate {
|
||||
};
|
||||
plocate = mkIf isPLocate {
|
||||
group = "plocate";
|
||||
source = "${cfg.locate}/bin/plocate";
|
||||
});
|
||||
};
|
||||
in
|
||||
mkIf isMorPLocate {
|
||||
locate = mkMerge [ common mlocate plocate ];
|
||||
plocate = (mkIf isPLocate (mkMerge [ common plocate ]));
|
||||
plocate = mkIf isPLocate (mkMerge [ common plocate ]);
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.locate ];
|
||||
|
||||
@@ -1302,6 +1302,7 @@
|
||||
./services/web-apps/writefreely.nix
|
||||
./services/web-apps/youtrack.nix
|
||||
./services/web-apps/zabbix.nix
|
||||
./services/web-apps/zitadel.nix
|
||||
./services/web-servers/agate.nix
|
||||
./services/web-servers/apache-httpd/default.nix
|
||||
./services/web-servers/caddy/default.nix
|
||||
|
||||
@@ -0,0 +1,223 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.zitadel;
|
||||
|
||||
settingsFormat = pkgs.formats.yaml { };
|
||||
in
|
||||
{
|
||||
options.services.zitadel =
|
||||
let inherit (lib) mkEnableOption mkOption mkPackageOption types;
|
||||
in {
|
||||
enable = mkEnableOption "ZITADEL, a user and identity access management platform.";
|
||||
|
||||
package = mkPackageOption pkgs "ZITADEL" { default = [ "zitadel" ]; };
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "zitadel";
|
||||
description = "The user to run ZITADEL under.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "zitadel";
|
||||
description = "The group to run ZITADEL under.";
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to open the port specified in `listenPort` in the firewall.
|
||||
'';
|
||||
};
|
||||
|
||||
masterKeyFile = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
Path to a file containing a master encryption key for ZITADEL. The
|
||||
key must be 32 bytes.
|
||||
'';
|
||||
};
|
||||
|
||||
tlsMode = mkOption {
|
||||
type = types.enum [ "external" "enabled" "disabled" ];
|
||||
default = "external";
|
||||
example = "enabled";
|
||||
description = ''
|
||||
The TLS mode to use. Options are:
|
||||
|
||||
- enabled: ZITADEL accepts HTTPS connections directly. You must
|
||||
configure TLS if this option is selected.
|
||||
- external: ZITADEL forces HTTPS connections, with TLS terminated at a
|
||||
reverse proxy.
|
||||
- disabled: ZITADEL accepts HTTP connections only. Should only be used
|
||||
for testing.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = lib.types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
options = {
|
||||
Port = mkOption {
|
||||
type = types.port;
|
||||
default = 8080;
|
||||
description = "The port that ZITADEL listens on.";
|
||||
};
|
||||
|
||||
TLS = {
|
||||
KeyPath = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "Path to the TLS certificate private key.";
|
||||
};
|
||||
Key = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
The TLS certificate private key, as a base64-encoded string.
|
||||
|
||||
Note that the contents of this option will be added to the Nix
|
||||
store as world-readable plain text. Set
|
||||
[KeyPath](#opt-services.zitadel.settings.TLS.KeyPath) instead
|
||||
if this is undesired.
|
||||
'';
|
||||
};
|
||||
CertPath = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "Path to the TLS certificate.";
|
||||
};
|
||||
Cert = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
The TLS certificate, as a base64-encoded string.
|
||||
|
||||
Note that the contents of this option will be added to the Nix
|
||||
store as world-readable plain text. Set
|
||||
[CertPath](#opt-services.zitadel.settings.TLS.CertPath) instead
|
||||
if this is undesired.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
Port = 8123;
|
||||
ExternalDomain = "example.com";
|
||||
TLS = {
|
||||
CertPath = "/path/to/cert.pem";
|
||||
KeyPath = "/path/to/cert.key";
|
||||
};
|
||||
Database.cockroach.Host = "db.example.com";
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
Contents of the runtime configuration file. See
|
||||
https://zitadel.com/docs/self-hosting/manage/configure for more
|
||||
details.
|
||||
'';
|
||||
};
|
||||
|
||||
extraSettingsPaths = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
A list of paths to extra settings files. These will override the
|
||||
values set in [settings](#opt-services.zitadel.settings). Useful if
|
||||
you want to keep sensitive secrets out of the Nix store.
|
||||
'';
|
||||
};
|
||||
|
||||
steps = mkOption {
|
||||
type = settingsFormat.type;
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
FirstInstance = {
|
||||
InstanceName = "Example";
|
||||
Org.Human = {
|
||||
UserName = "foobar";
|
||||
FirstName = "Foo";
|
||||
LastName = "Bar";
|
||||
};
|
||||
};
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Contents of the database initialization config file. See
|
||||
https://zitadel.com/docs/self-hosting/manage/configure for more
|
||||
details.
|
||||
'';
|
||||
};
|
||||
|
||||
extraStepsPaths = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
A list of paths to extra steps files. These will override the values
|
||||
set in [steps](#opt-services.zitadel.steps). Useful if you want to
|
||||
keep sensitive secrets out of the Nix store.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [{
|
||||
assertion = cfg.tlsMode == "enabled"
|
||||
-> ((cfg.settings.TLS.Key != null || cfg.settings.TLS.KeyPath != null)
|
||||
&& (cfg.settings.TLS.Cert != null || cfg.settings.TLS.CertPath
|
||||
!= null));
|
||||
message = ''
|
||||
A TLS certificate and key must be configured in
|
||||
services.zitadel.settings.TLS if services.zitadel.tlsMode is enabled.
|
||||
'';
|
||||
}];
|
||||
|
||||
networking.firewall.allowedTCPPorts =
|
||||
lib.mkIf cfg.openFirewall [ cfg.settings.Port ];
|
||||
|
||||
systemd.services.zitadel =
|
||||
let
|
||||
configFile = settingsFormat.generate "config.yaml" cfg.settings;
|
||||
stepsFile = settingsFormat.generate "steps.yaml" cfg.steps;
|
||||
|
||||
args = lib.cli.toGNUCommandLineShell { } {
|
||||
config = cfg.extraSettingsPaths ++ [ configFile ];
|
||||
steps = cfg.extraStepsPaths ++ [ stepsFile ];
|
||||
masterkeyFile = cfg.masterKeyFile;
|
||||
inherit (cfg) tlsMode;
|
||||
};
|
||||
in
|
||||
{
|
||||
description = "ZITADEL identity access management";
|
||||
path = [ cfg.package ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
script = ''
|
||||
zitadel start-from-init ${args}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
|
||||
users.users.zitadel = lib.mkIf (cfg.user == "zitadel") {
|
||||
isSystemUser = true;
|
||||
group = cfg.group;
|
||||
};
|
||||
users.groups.zitadel = lib.mkIf (cfg.group == "zitadel") { };
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ Sorixelle ];
|
||||
}
|
||||
@@ -23,7 +23,7 @@ let
|
||||
in
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "flexget";
|
||||
version = "3.9.10";
|
||||
version = "3.9.11";
|
||||
format = "pyproject";
|
||||
|
||||
# Fetch from GitHub in order to use `requirements.in`
|
||||
@@ -31,7 +31,7 @@ python.pkgs.buildPythonApplication rec {
|
||||
owner = "Flexget";
|
||||
repo = "Flexget";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-cUcfXoqNKe5Ok0vDqe0uCpV84XokKe4iXbWeTm1Qv14=";
|
||||
hash = "sha256-0ONjRIMSfHKvaO05hhurfnS/waNNRZEVq7BodeV00kU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-cliff";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "orhun";
|
||||
repo = "git-cliff";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-HD/g9zXE7w9x8o0ERBym5OZvODQ6n4a/bkzf457QPxM=";
|
||||
hash = "sha256-DzlCy8Y3OW3FiXO45wuUh3t87Za2jWQ4rnztZGRySYA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-tTH5FMlOHv+T9rd0C7O2WaPkp2nUTQ3Ulsi16WiwbdE=";
|
||||
cargoHash = "sha256-+XyZqxjiOAIyc+FmnexIdV1RMzc+iqmo8nPahzUo43E=";
|
||||
|
||||
# attempts to run the program on .git in src which is not deterministic
|
||||
doCheck = false;
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchYarnDeps
|
||||
, makeWrapper
|
||||
, nodejs
|
||||
, prefetch-yarn-deps
|
||||
, yarn
|
||||
, chromium
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mermaid-cli";
|
||||
version = "10.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mermaid-js";
|
||||
repo = "mermaid-cli";
|
||||
rev = version;
|
||||
hash = "sha256-mzBN/Hg/03+jYyoAHvjx33HC46ZA6dtHmiSnaExCRR0=";
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/yarn.lock";
|
||||
hash = "sha256-RQsRGzkuPgGVuEpF5lzv26XKMPLX2NrsjVkGMMkCbO4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
nodejs
|
||||
prefetch-yarn-deps
|
||||
yarn
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
yarn config --offline set yarn-offline-mirror "$offlineCache"
|
||||
fixup-yarn-lock yarn.lock
|
||||
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
|
||||
patchShebangs node_modules
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
yarn --offline prepare
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
yarn --offline --production install
|
||||
|
||||
mkdir -p "$out/lib/node_modules/@mermaid-js/mermaid-cli"
|
||||
cp -r . "$out/lib/node_modules/@mermaid-js/mermaid-cli"
|
||||
|
||||
makeWrapper "${nodejs}/bin/node" "$out/bin/mmdc" \
|
||||
'' + lib.optionalString (lib.meta.availableOn stdenv.targetPlatform chromium) ''
|
||||
--set PUPPETEER_EXECUTABLE_PATH '${lib.getExe chromium}' \
|
||||
'' + ''
|
||||
--add-flags "$out/lib/node_modules/@mermaid-js/mermaid-cli/src/cli.js"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Generation of diagrams from text in a similar manner as markdown";
|
||||
homepage = "https://github.com/mermaid-js/mermaid-cli";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "mmdc";
|
||||
maintainers = with lib.maintainers; [ ysndr ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{ generateProtobufCode
|
||||
, version
|
||||
, zitadelRepo
|
||||
}:
|
||||
|
||||
{ mkYarnPackage
|
||||
, fetchYarnDeps
|
||||
, lib
|
||||
}:
|
||||
|
||||
let
|
||||
protobufGenerated = generateProtobufCode {
|
||||
pname = "zitadel-console";
|
||||
workDir = "console";
|
||||
bufArgs = "../proto --include-imports --include-wkt";
|
||||
outputPath = "src/app/proto";
|
||||
hash = "sha256-s0dzmcjKd8ot7t+KlRlNVA9oiIDKVMnGOT/HjdaUjGI=";
|
||||
};
|
||||
in
|
||||
mkYarnPackage rec {
|
||||
name = "zitadel-console";
|
||||
inherit version;
|
||||
|
||||
src = "${zitadelRepo}/console";
|
||||
|
||||
packageJSON = ./package.json;
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/yarn.lock";
|
||||
hash = "sha256-48IC4LxqbkH+95k7rCmhRWT+qAlJ9CDXWwRjbric9no=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/styles.scss \
|
||||
--replace "/node_modules/flag-icons" "flag-icons"
|
||||
|
||||
substituteInPlace angular.json \
|
||||
--replace "./node_modules/tinycolor2" "../../node_modules/tinycolor2"
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
mkdir deps/console/src/app/proto
|
||||
cp -r ${protobufGenerated}/* deps/console/src/app/proto/
|
||||
yarn --offline build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp -r deps/console/dist/console $out
|
||||
'';
|
||||
|
||||
doDist = false;
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"name": "console",
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
"ng": "ng",
|
||||
"start": "node prebuild.development.js && ng serve",
|
||||
"build": "ng build --configuration production --base-href=/ui/console/",
|
||||
"prelint": "npm run generate",
|
||||
"lint": "ng lint && prettier --check src",
|
||||
"lint:fix": "prettier --write src",
|
||||
"generate": "buf generate ../proto --include-imports --include-wkt"
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "^16.2.0",
|
||||
"@angular/cdk": "^16.2.0",
|
||||
"@angular/common": "^16.2.0",
|
||||
"@angular/compiler": "^16.2.0",
|
||||
"@angular/core": "^16.2.0",
|
||||
"@angular/forms": "^16.2.0",
|
||||
"@angular/material": "^16.2.0",
|
||||
"@angular/material-moment-adapter": "^16.2.0",
|
||||
"@angular/platform-browser": "^16.2.0",
|
||||
"@angular/platform-browser-dynamic": "^16.2.0",
|
||||
"@angular/router": "^16.2.0",
|
||||
"@angular/service-worker": "^16.2.0",
|
||||
"@ctrl/ngx-codemirror": "^6.1.0",
|
||||
"@grpc/grpc-js": "^1.8.14",
|
||||
"@ngx-translate/core": "^14.0.0",
|
||||
"angular-oauth2-oidc": "^15.0.1",
|
||||
"angularx-qrcode": "^16.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
"codemirror": "^5.65.8",
|
||||
"cors": "^2.8.5",
|
||||
"file-saver": "^2.0.5",
|
||||
"flag-icons": "^6.7.0",
|
||||
"google-proto-files": "^3.0.3",
|
||||
"google-protobuf": "^3.21.2",
|
||||
"grpc-web": "^1.4.1",
|
||||
"i18n-iso-countries": "^7.6.0",
|
||||
"libphonenumber-js": "^1.10.30",
|
||||
"material-design-icons-iconfont": "^6.1.1",
|
||||
"moment": "^2.29.4",
|
||||
"opentype.js": "^1.3.4",
|
||||
"ngx-color": "^9.0.0",
|
||||
"rxjs": "~7.8.0",
|
||||
"tinycolor2": "^1.6.0",
|
||||
"tslib": "^2.4.1",
|
||||
"uuid": "^9.0.0",
|
||||
"zone.js": "~0.13.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^16.2.0",
|
||||
"@angular-eslint/builder": "16.1.0",
|
||||
"@angular-eslint/eslint-plugin": "16.1.0",
|
||||
"@angular-eslint/eslint-plugin-template": "16.1.0",
|
||||
"@angular-eslint/schematics": "16.1.0",
|
||||
"@angular-eslint/template-parser": "16.1.0",
|
||||
"@angular/cli": "^16.2.0",
|
||||
"@angular/compiler-cli": "^16.2.0",
|
||||
"@angular/language-service": "^16.2.0",
|
||||
"@bufbuild/buf": "^1.23.1",
|
||||
"@types/file-saver": "^2.0.2",
|
||||
"@types/google-protobuf": "^3.15.3",
|
||||
"@types/jasmine": "~4.3.3",
|
||||
"@types/jasminewd2": "~2.0.10",
|
||||
"@types/jsonwebtoken": "^9.0.1",
|
||||
"@types/node": "^18.15.11",
|
||||
"@types/opentype.js": "^1.3.4",
|
||||
"@types/qrcode": "^1.5.0",
|
||||
"@types/uuid": "^9.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "^5.59.11",
|
||||
"@typescript-eslint/parser": "^5.60.1",
|
||||
"codelyzer": "^6.0.2",
|
||||
"eslint": "^8.44.0",
|
||||
"jasmine-core": "~4.6.0",
|
||||
"jasmine-spec-reporter": "~7.0.0",
|
||||
"karma": "^6.4.2",
|
||||
"karma-chrome-launcher": "^3.2.0",
|
||||
"karma-coverage-istanbul-reporter": "^3.0.3",
|
||||
"karma-jasmine": "^5.1.0",
|
||||
"karma-jasmine-html-reporter": "^2.1.0",
|
||||
"prettier": "^2.8.7",
|
||||
"prettier-plugin-organize-imports": "^3.2.2",
|
||||
"protractor": "~7.0.0",
|
||||
"typescript": "^4.9.5"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
{ stdenv
|
||||
, buildGo121Module
|
||||
, callPackage
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
|
||||
, buf
|
||||
, cacert
|
||||
, grpc-gateway
|
||||
, protoc-gen-go
|
||||
, protoc-gen-go-grpc
|
||||
, protoc-gen-validate
|
||||
, sass
|
||||
, statik
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.37.2";
|
||||
zitadelRepo = fetchFromGitHub {
|
||||
owner = "zitadel";
|
||||
repo = "zitadel";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-iWEL7R7eNDV4c1CZhmxxiHHI9ExwU6gnmHI6ildaXWY=";
|
||||
};
|
||||
goModulesHash = "sha256-lk4jEiI85EKk0G4JCHvCazqBBTfiNJqSfzvrJgDZ1Nc=";
|
||||
|
||||
buildZitadelProtocGen = name:
|
||||
buildGo121Module {
|
||||
pname = "protoc-gen-${name}";
|
||||
inherit version;
|
||||
|
||||
src = zitadelRepo;
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = goModulesHash;
|
||||
|
||||
buildPhase = ''
|
||||
go install internal/protoc/protoc-gen-${name}/main.go
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/main $out/bin/protoc-gen-${name}
|
||||
'';
|
||||
};
|
||||
|
||||
protoc-gen-authoption = buildZitadelProtocGen "authoption";
|
||||
protoc-gen-zitadel = buildZitadelProtocGen "zitadel";
|
||||
|
||||
# Buf downloads dependencies from an external repo - there doesn't seem to
|
||||
# really be any good way around it. We'll use a fixed-output derivation so it
|
||||
# can download what it needs, and output the relevant generated code for use
|
||||
# during the main build.
|
||||
generateProtobufCode =
|
||||
{ pname
|
||||
, nativeBuildInputs ? [ ]
|
||||
, bufArgs ? ""
|
||||
, workDir ? "."
|
||||
, outputPath
|
||||
, hash
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
name = "${pname}-buf-generated";
|
||||
|
||||
src = zitadelRepo;
|
||||
|
||||
nativeBuildInputs = nativeBuildInputs ++ [ buf ];
|
||||
|
||||
buildPhase = ''
|
||||
cd ${workDir}
|
||||
export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
|
||||
HOME=$TMPDIR buf generate ${bufArgs}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp -r ${outputPath} $out
|
||||
'';
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = hash;
|
||||
};
|
||||
|
||||
protobufGenerated = generateProtobufCode {
|
||||
pname = "zitadel";
|
||||
nativeBuildInputs = [
|
||||
grpc-gateway
|
||||
protoc-gen-authoption
|
||||
protoc-gen-go
|
||||
protoc-gen-go-grpc
|
||||
protoc-gen-validate
|
||||
protoc-gen-zitadel
|
||||
];
|
||||
outputPath = ".artifacts";
|
||||
hash = "sha256-+9UFBWBuSYNbfimKwJUSoiUh+8bDHGnPdx1MKDul1U4=";
|
||||
};
|
||||
in
|
||||
buildGo121Module rec {
|
||||
name = "zitadel";
|
||||
inherit version;
|
||||
|
||||
src = zitadelRepo;
|
||||
|
||||
nativeBuildInputs = [ sass statik ];
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = goModulesHash;
|
||||
|
||||
# Adapted from Makefile in repo, with dependency fetching and protobuf codegen
|
||||
# bits removed
|
||||
buildPhase = ''
|
||||
mkdir -p pkg/grpc
|
||||
cp -r ${protobufGenerated}/grpc/github.com/zitadel/zitadel/pkg/grpc/* pkg/grpc
|
||||
mkdir -p openapi/v2/zitadel
|
||||
cp -r ${protobufGenerated}/grpc/zitadel/ openapi/v2/zitadel
|
||||
|
||||
go generate internal/api/ui/login/static/resources/generate.go
|
||||
go generate internal/api/ui/login/statik/generate.go
|
||||
go generate internal/notification/statik/generate.go
|
||||
go generate internal/statik/generate.go
|
||||
|
||||
mkdir -p docs/apis/assets
|
||||
go run internal/api/assets/generator/asset_generator.go -directory=internal/api/assets/generator/ -assets=docs/apis/assets/assets.md
|
||||
|
||||
cp -r ${passthru.console}/* internal/api/ui/console/static
|
||||
CGO_ENABLED=0 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.version=${version}'"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
install -Dm755 zitadel $out/bin/
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
console = callPackage
|
||||
(import ./console.nix {
|
||||
inherit generateProtobufCode version zitadelRepo;
|
||||
})
|
||||
{ };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Identity and access management platform";
|
||||
homepage = "https://zitadel.com/";
|
||||
downloadPage = "https://github.com/zitadel/zitadel/releases";
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
license = licenses.asl20;
|
||||
sourceProvenance = [ sourceTypes.fromSource ];
|
||||
maintainers = with maintainers; [ Sorixelle ];
|
||||
};
|
||||
}
|
||||
@@ -46,6 +46,7 @@ mapAliases {
|
||||
"@google/clasp" = pkgs.google-clasp; # Added 2023-05-07
|
||||
"@maizzle/cli" = pkgs.maizzle; # added 2023-08-17
|
||||
"@medable/mdctl-cli" = throw "@medable/mdctl-cli was removed because it was broken"; # added 2023-08-21
|
||||
"@mermaid-js/mermaid-cli" = pkgs.mermaid-cli; # added 2023-10-01
|
||||
"@nerdwallet/shepherd" = pkgs.shepherd; # added 2023-09-30
|
||||
"@nestjs/cli" = pkgs.nest-cli; # Added 2023-05-06
|
||||
alloy = pkgs.titanium-alloy; # added 2023-08-17
|
||||
@@ -98,6 +99,7 @@ mapAliases {
|
||||
markdownlint-cli = pkgs.markdownlint-cli; # added 2023-07-29
|
||||
inherit (pkgs) markdownlint-cli2; # added 2023-08-22
|
||||
mdctl-cli = self."@medable/mdctl-cli"; # added 2023-08-21
|
||||
inherit (pkgs) mermaid-cli; # added 2023-10-01
|
||||
musescore-downloader = pkgs.dl-librescore; # added 2023-08-19
|
||||
inherit (pkgs) near-cli; # added 2023-09-09
|
||||
node-inspector = throw "node-inspector was removed because it was broken"; # added 2023-08-21
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
"@babel/cli" = "babel";
|
||||
"@commitlint/cli" = "commitlint";
|
||||
"@gitbeaker/cli" = "gitbeaker";
|
||||
"@mermaid-js/mermaid-cli" = "mmdc";
|
||||
"@prisma/language-server" = "prisma-language-server";
|
||||
"@tailwindcss/language-server" = "tailwindcss-language-server";
|
||||
"@uppy/companion" = "companion";
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
, "@babel/cli"
|
||||
, "@commitlint/cli"
|
||||
, "@commitlint/config-conventional"
|
||||
, "@mermaid-js/mermaid-cli"
|
||||
, "@microsoft/rush"
|
||||
, "@shopify/cli"
|
||||
, "@tailwindcss/aspect-ratio"
|
||||
|
||||
+1776
-3087
File diff suppressed because it is too large
Load Diff
@@ -169,21 +169,6 @@ final: prev: {
|
||||
'';
|
||||
};
|
||||
|
||||
mermaid-cli = prev."@mermaid-js/mermaid-cli".override (
|
||||
if stdenv.isDarwin
|
||||
then {}
|
||||
else {
|
||||
nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
|
||||
prePatch = ''
|
||||
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
|
||||
'';
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/mmdc \
|
||||
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium
|
||||
'';
|
||||
});
|
||||
|
||||
|
||||
node-gyp = prev.node-gyp.override {
|
||||
nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
|
||||
# Teach node-gyp to use nodejs headers locally rather that download them form https://nodejs.org.
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiowaqi";
|
||||
version = "1.1.1";
|
||||
version = "2.0.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "joostlek";
|
||||
repo = "python-waqi";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-JB1GtDLfz9FHVS7XEkHUCN2jwXvIwBBgoBisNuOpjL0=";
|
||||
hash = "sha256-WEcCv4PCJ1gmRkQbjhIxx8qi1zps2Z65iFrdBHXPPvA=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyftpdlib";
|
||||
version = "1.5.7";
|
||||
version = "1.5.8";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-fqPOQTfbggmvH2ueoCBZD0YsY+18ehJAvVluTTp7ZW4=";
|
||||
hash = "sha256-v22rtn3/MrP/BA4oJf/7xrjecDc7ydm1U0gMxNdQTWw=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pymyq";
|
||||
version = "3.1.10";
|
||||
version = "3.1.11";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "Python-MyQ";
|
||||
repo = "Python-MyQ";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-rHe7iBk+u+HHnBPdN+fX9FdFhBMYjtit1Z9AYXZ9EHI=";
|
||||
hash = "sha256-hQnIrmt4CNxIL2+VenGaKL6xMOb/6IMq9NEFLvbbYsE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "scooby";
|
||||
version = "0.7.3";
|
||||
version = "0.7.4";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "banesullivan";
|
||||
repo = "scooby";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-lu+iuO0871DpFRDPzDGClKXYnB8w/lVsUCc39JXDmNo=";
|
||||
hash = "sha256-BgQwsgAYtRgxxjo7NHbgNME1maoZQpocGGBW7Vddr+o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -47,6 +47,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Multilingual Sentence & Image Embeddings with BERT";
|
||||
homepage = "https://github.com/UKPLab/sentence-transformers";
|
||||
changelog = "https://github.com/UKPLab/sentence-transformers/releases/tag/${src.rev}";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ dit7ya ];
|
||||
};
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zeroconf";
|
||||
version = "0.115.0";
|
||||
version = "0.115.1";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
owner = "jstasiak";
|
||||
repo = "python-zeroconf";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-KZ9KnXOXQIbW+gEWeDyhShUvPkHu9UXvUkZ7UsTXLOg=";
|
||||
hash = "sha256-3dKF0DERxybhDZiwPpre1yrumZGILp0EIWur9WIkhhQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "typos";
|
||||
version = "1.16.16";
|
||||
version = "1.16.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crate-ci";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Xi6J5/qb76fYhruE+G1YYuXUdyM99DHf/cB8bqctlRA=";
|
||||
hash = "sha256-T7JekWWSGetaREhbYeh5LygXWaI5vwSSmMIFvzBtB3k=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ZelcIx1FMHuzzQGvzD/+8eJ5AC5AO6c6DR6y5HJoopI=";
|
||||
cargoHash = "sha256-aYhdTNtvKfvgmt9Y1YTNEKYQy3m5bH9tsUbbL87crqw=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Source code spell checker";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, iptables, iproute2, procps, shadow, getent }:
|
||||
|
||||
let
|
||||
version = "1.50.0";
|
||||
version = "1.50.1";
|
||||
in
|
||||
buildGoModule {
|
||||
pname = "tailscale";
|
||||
@@ -11,7 +11,7 @@ buildGoModule {
|
||||
owner = "tailscale";
|
||||
repo = "tailscale";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-twHQVZ7ahlyQEhFyHm4vaBSilWUmSa29LjOX5oD9U6M=";
|
||||
hash = "sha256-YosV9zyWbZ18xeiKJ6/4ZzSSfcoACWadZQsqGBD/hZ4=";
|
||||
};
|
||||
vendorHash = "sha256-aVtlDzC+sbEWlUAzPkAryA/+dqSzoAFc02xikh6yhf8=";
|
||||
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.7.2";
|
||||
version = "1.8";
|
||||
pname = "goaccess";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "allinurl";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-LYvdxVlGL4dVfhYkeR+TmYSvey0ArJrkC37t5BIIJfE=";
|
||||
sha256 = "sha256-nZqjC6PEpD/md+mWRhuro2hAxVAGiUhETfZMVHlfP5o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -5,10 +5,14 @@ stdenv.mkDerivation rec {
|
||||
version = "0.26";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://releases.pagure.org/mlocate/${pname}-${version}.tar.xz";
|
||||
url = "https://releases.pagure.org/mlocate/mlocate-${version}.tar.xz";
|
||||
sha256 = "0gi6y52gkakhhlnzy0p6izc36nqhyfx5830qirhvk3qrzrwxyqrh";
|
||||
};
|
||||
|
||||
makeFlags = [
|
||||
"dbfile=/var/cache/locatedb"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Merging locate is an utility to index and quickly search for files";
|
||||
homepage = "https://pagure.io/mlocate";
|
||||
|
||||
@@ -29,6 +29,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
mesonFlags = [
|
||||
"-Dsystemunitdir=${placeholder "out"}/etc/systemd/system"
|
||||
"-Dsharedstatedir=/var/cache"
|
||||
"-Ddbpath=locatedb"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "starry";
|
||||
version = "2.0.1";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-CPEMjg70MXlV+ruYnEHpTmqlc27NMTUKTR4/fpQmYcI=";
|
||||
hash = "sha256-/ZUmMLEqlpqu+Ja/3XjFJf+OFZJCz7rp5MrQBEjwsXs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-d6icXOgju4qEV2+J+G09/xeQMIX3/4XUFmuWfD/Cqhc=";
|
||||
cargoHash = "sha256-L6s1LkWnjht2VLwq1GOFiIosnZjFN9tDSLpPtokmj9o=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{ lib
|
||||
, bash
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, installShellFiles
|
||||
, nix-update-script
|
||||
, nixosTests
|
||||
@@ -12,29 +11,20 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "sudo-rs";
|
||||
version = "0.2.0";
|
||||
version = "0.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "memorysafety";
|
||||
repo = "sudo-rs";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Kk5D3387hdl6eGWTSV003r+XajuDh6YgHuqYlj9NnaQ=";
|
||||
hash = "sha256-EQEdNDUXEMMiFZKuu9LR9ywjvKWyM5bWcRHHUB9+gp4=";
|
||||
};
|
||||
cargoHash = "sha256-yeMK37tOgJcs9pW3IclpR5WMXx0gMDJ2wcmInxJYbQ8=";
|
||||
cargoHash = "sha256-Zs9/A7u4yMLKY4cAUCnsqRHgkxI8R3w1JwkAd2lw0eo=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles pandoc ];
|
||||
|
||||
buildInputs = [ pam ];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# @R-VdP's patch to work with NixOS' suid wrappers
|
||||
name = "Skip self_check when executed as root.patch";
|
||||
url = "https://github.com/R-VdP/sudo-rs/commit/a44541dcb36b94f938daaed66b3ff06cfc1c2b40.patch";
|
||||
hash = "sha256-PdmOqp/NDjFy8ve4jEOi58e0N9xUnaVKioQwdC5Jf1U=";
|
||||
})
|
||||
];
|
||||
|
||||
# Don't attempt to generate the docs in a (pan)Docker container
|
||||
postPatch = ''
|
||||
substituteInPlace util/generate-docs.sh \
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "trufflehog";
|
||||
version = "3.57.0";
|
||||
version = "3.58.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "trufflesecurity";
|
||||
repo = "trufflehog";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-EzzjtrorfFYO6mEe8F/lYbHP96G04pFIRc6fzLa8eeY=";
|
||||
hash = "sha256-S6KoGPVtB7iBSG2HWH5AQngGyv/1h9wdx7VDW/xnSKk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-iCCk5ngXsAyVaPeCllIrT1KjoM0KlNlgCiLeASquMco=";
|
||||
vendorHash = "sha256-PbKkRVBDpHG9HYUSBY+VhnqvU3k9ephU3PJgJ8xOIrw=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
Reference in New Issue
Block a user