Loading maintainers/maintainer-list.nix +5 −0 Original line number Diff line number Diff line Loading @@ -15559,6 +15559,11 @@ github = "ljxfstorm"; githubId = 7077478; }; lks = { name = "Lukas"; github = "1H0"; githubId = 37246258; }; llakala = { email = "elevenaka11@gmail.com"; github = "llakala"; Loading nixos/tests/web-apps/lasuite-docs.nix +37 −31 Original line number Diff line number Diff line { lib, ... }: let domain = "docs.local"; oidcDomain = "127.0.0.1:8080"; s3Domain = "127.0.0.1:9000"; oidcAddr = "127.0.0.1:8080"; s3Addr = "127.0.0.1:9000"; minioAccessKey = "a8dff633d164068418a5"; minioSecretKey = "d546ea5f9c9bfdcf83755a7c09f2f7fb"; garageAccessKey = "GKaaaaaaaaaaaaaaaaaaaaaaaa"; garageSecretKey = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; in { Loading @@ -24,7 +24,6 @@ in environment.systemPackages = with pkgs; [ jq minio-client ]; services.lasuite-docs = { Loading @@ -34,17 +33,17 @@ in postgresql.createLocally = true; inherit domain; s3Url = "http://${s3Domain}/lasuite-docs"; s3Url = "http://${s3Addr}/lasuite-docs"; settings = { DJANGO_SECRET_KEY_FILE = pkgs.writeText "django-secret-file" '' 8540db59c03943d48c3ed1a0f96ce3b560e0f45274f120f7ee4dace3cc366a6b ''; OIDC_OP_JWKS_ENDPOINT = "http://${oidcDomain}/dex/keys"; OIDC_OP_AUTHORIZATION_ENDPOINT = "http://${oidcDomain}/dex/auth/mock"; OIDC_OP_TOKEN_ENDPOINT = "http://${oidcDomain}/dex/token"; OIDC_OP_USER_ENDPOINT = "http://${oidcDomain}/dex/userinfo"; OIDC_OP_JWKS_ENDPOINT = "http://${oidcAddr}/dex/keys"; OIDC_OP_AUTHORIZATION_ENDPOINT = "http://${oidcAddr}/dex/auth/mock"; OIDC_OP_TOKEN_ENDPOINT = "http://${oidcAddr}/dex/token"; OIDC_OP_USER_ENDPOINT = "http://${oidcAddr}/dex/userinfo"; OIDC_RP_CLIENT_ID = "lasuite-docs"; OIDC_RP_SIGN_ALGO = "RS256"; OIDC_RP_SCOPES = "openid email"; Loading @@ -54,9 +53,9 @@ in LOGIN_REDIRECT_URL_FAILURE = "http://${domain}"; LOGOUT_REDIRECT_URL = "http://${domain}"; AWS_S3_ENDPOINT_URL = "http://${s3Domain}"; AWS_S3_ACCESS_KEY_ID = minioAccessKey; AWS_S3_SECRET_ACCESS_KEY = minioSecretKey; AWS_S3_ENDPOINT_URL = "http://${s3Addr}"; AWS_S3_ACCESS_KEY_ID = garageAccessKey; AWS_S3_SECRET_ACCESS_KEY = garageSecretKey; AWS_STORAGE_BUCKET_NAME = "lasuite-docs"; MEDIA_BASE_URL = "http://${domain}"; Loading @@ -72,7 +71,7 @@ in services.dex = { enable = true; settings = { issuer = "http://${oidcDomain}/dex"; issuer = "http://${oidcAddr}/dex"; storage = { type = "postgres"; config.host = "/var/run/postgresql"; Loading Loading @@ -101,25 +100,27 @@ in }; }; services.minio = { services.garage = { enable = true; rootCredentialsFile = "/etc/minio/minio-root-credentials"; package = pkgs.garage_2; settings = { rpc_bind_addr = "127.0.0.1:3901"; rpc_public_addr = "127.0.0.1:3901"; rpc_secret = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; replication_factor = 1; s3_api = { s3_region = "garage"; api_bind_addr = s3Addr; }; }; }; environment.etc."dex/lasuite-docs" = { mode = "0400"; user = "dex"; text = "lasuitedocsclientsecret"; }; environment.etc."minio/minio-root-credentials" = { mode = "0400"; text = '' MINIO_ROOT_USER=${minioAccessKey} MINIO_ROOT_PASSWORD=${minioSecretKey} ''; }; services.postgresql = { enable = true; ensureDatabases = [ "dex" ]; Loading @@ -135,25 +136,30 @@ in testScript = '' with subtest("Wait for units to start"): machine.wait_for_unit("dex.service") machine.wait_for_unit("minio.service") machine.wait_for_unit("garage.service") machine.wait_for_unit("lasuite-docs.service") machine.wait_for_unit("lasuite-docs-celery.service") machine.wait_for_unit("lasuite-docs-collaboration-server.service") with subtest("Create S3 bucket"): machine.succeed("mc alias set minio http://${s3Domain} ${minioAccessKey} ${minioSecretKey} --api s3v4") machine.succeed("mc mb lasuite-docs") machine.wait_for_open_port(3901) garage_node_id = machine.succeed("garage status | tail -n1 | awk '{ print $1 }'") machine.succeed(f"garage layout assign -c 100MB -z garage {garage_node_id}") machine.succeed("garage layout apply --version 1") machine.succeed("garage key import ${garageAccessKey} ${garageSecretKey} --yes") machine.succeed("garage bucket create lasuite-docs") machine.succeed("garage bucket allow --read --write --owner lasuite-docs --key ${garageAccessKey}") with subtest("Wait for web servers to start"): machine.wait_until_succeeds("curl -fs 'http://${domain}/api/v1.0/authenticate/'", timeout=120) machine.wait_until_succeeds("curl -fs '${oidcDomain}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid'", timeout=120) machine.wait_until_succeeds("curl -fs '${oidcAddr}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid'", timeout=120) with subtest("Login"): state, nonce = machine.succeed("curl -fs -c cjar 'http://${domain}/api/v1.0/authenticate/' -w '%{redirect_url}' | sed -n 's/.*state=\\(.*\\)&nonce=\\(.*\\)/\\1 \\2/p'").strip().split(' ') oidc_state = machine.succeed(f"curl -fs '${oidcDomain}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid+email&state={state}&nonce={nonce}' | sed -n 's/.*state=\\(.*\\)\">.*/\\1/p'").strip() oidc_state = machine.succeed(f"curl -fs '${oidcAddr}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid+email&state={state}&nonce={nonce}' | sed -n 's/.*state=\\(.*\\)\">.*/\\1/p'").strip() code = machine.succeed(f"curl -fs '${oidcDomain}/dex/auth/mock/login?back=&state={oidc_state}' -d 'login=admin&password=password' -w '%{{redirect_url}}' | sed -n 's/.*code=\\(.*\\)&.*/\\1/p'").strip() code = machine.succeed(f"curl -fs '${oidcAddr}/dex/auth/mock/login?back=&state={oidc_state}' -d 'login=admin&password=password' -w '%{{redirect_url}}' | sed -n 's/.*code=\\(.*\\)&.*/\\1/p'").strip() print(f"Got approval code {code}") machine.succeed(f"curl -fs -c cjar -b cjar 'http://${domain}/api/v1.0/callback/?code={code}&state={state}'") Loading pkgs/applications/editors/vscode/extensions/WakaTime.vscode-wakatime/default.nix +2 −2 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "vscode-wakatime"; publisher = "WakaTime"; version = "30.0.4"; hash = "sha256-5y7LTkiR7dnSHbL80pqsTb57rnLyEbIrHT4xzseVj84="; version = "30.0.5"; hash = "sha256-8K8EgdHOGL3sYW5j8hpfbZFifbInMNWEYe60F1UGsj4="; }; meta = { Loading pkgs/applications/editors/vscode/extensions/default.nix +2 −0 Original line number Diff line number Diff line Loading @@ -2413,6 +2413,8 @@ let jackmacwindows.craftos-pc = callPackage ./jackmacwindows.craftos-pc { }; jakestanger.corn = callPackage ./jakestanger.corn { }; james-yu.latex-workshop = callPackage ./james-yu.latex-workshop { }; jamesyang999.vscode-emacs-minimum = buildVscodeMarketplaceExtension { Loading pkgs/applications/editors/vscode/extensions/jakestanger.corn/default.nix 0 → 100644 +22 −0 Original line number Diff line number Diff line { vscode-utils, lib, }: vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "corn"; publisher = "JakeStanger"; version = "0.1.0"; hash = "sha256-6c9lxwJDVUuT3VKAbIohd0mRHFbfmfDgKfYJ+XET5hQ="; }; meta = { changelog = "https://marketplace.visualstudio.com/items/JakeStanger.corn/changelog"; description = "Visual Studio Code extension for Cornlang"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=JakeStanger.corn"; homepage = "https://github.com/corn-config/corn-vscode"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ drupol ]; }; } Loading
maintainers/maintainer-list.nix +5 −0 Original line number Diff line number Diff line Loading @@ -15559,6 +15559,11 @@ github = "ljxfstorm"; githubId = 7077478; }; lks = { name = "Lukas"; github = "1H0"; githubId = 37246258; }; llakala = { email = "elevenaka11@gmail.com"; github = "llakala"; Loading
nixos/tests/web-apps/lasuite-docs.nix +37 −31 Original line number Diff line number Diff line { lib, ... }: let domain = "docs.local"; oidcDomain = "127.0.0.1:8080"; s3Domain = "127.0.0.1:9000"; oidcAddr = "127.0.0.1:8080"; s3Addr = "127.0.0.1:9000"; minioAccessKey = "a8dff633d164068418a5"; minioSecretKey = "d546ea5f9c9bfdcf83755a7c09f2f7fb"; garageAccessKey = "GKaaaaaaaaaaaaaaaaaaaaaaaa"; garageSecretKey = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; in { Loading @@ -24,7 +24,6 @@ in environment.systemPackages = with pkgs; [ jq minio-client ]; services.lasuite-docs = { Loading @@ -34,17 +33,17 @@ in postgresql.createLocally = true; inherit domain; s3Url = "http://${s3Domain}/lasuite-docs"; s3Url = "http://${s3Addr}/lasuite-docs"; settings = { DJANGO_SECRET_KEY_FILE = pkgs.writeText "django-secret-file" '' 8540db59c03943d48c3ed1a0f96ce3b560e0f45274f120f7ee4dace3cc366a6b ''; OIDC_OP_JWKS_ENDPOINT = "http://${oidcDomain}/dex/keys"; OIDC_OP_AUTHORIZATION_ENDPOINT = "http://${oidcDomain}/dex/auth/mock"; OIDC_OP_TOKEN_ENDPOINT = "http://${oidcDomain}/dex/token"; OIDC_OP_USER_ENDPOINT = "http://${oidcDomain}/dex/userinfo"; OIDC_OP_JWKS_ENDPOINT = "http://${oidcAddr}/dex/keys"; OIDC_OP_AUTHORIZATION_ENDPOINT = "http://${oidcAddr}/dex/auth/mock"; OIDC_OP_TOKEN_ENDPOINT = "http://${oidcAddr}/dex/token"; OIDC_OP_USER_ENDPOINT = "http://${oidcAddr}/dex/userinfo"; OIDC_RP_CLIENT_ID = "lasuite-docs"; OIDC_RP_SIGN_ALGO = "RS256"; OIDC_RP_SCOPES = "openid email"; Loading @@ -54,9 +53,9 @@ in LOGIN_REDIRECT_URL_FAILURE = "http://${domain}"; LOGOUT_REDIRECT_URL = "http://${domain}"; AWS_S3_ENDPOINT_URL = "http://${s3Domain}"; AWS_S3_ACCESS_KEY_ID = minioAccessKey; AWS_S3_SECRET_ACCESS_KEY = minioSecretKey; AWS_S3_ENDPOINT_URL = "http://${s3Addr}"; AWS_S3_ACCESS_KEY_ID = garageAccessKey; AWS_S3_SECRET_ACCESS_KEY = garageSecretKey; AWS_STORAGE_BUCKET_NAME = "lasuite-docs"; MEDIA_BASE_URL = "http://${domain}"; Loading @@ -72,7 +71,7 @@ in services.dex = { enable = true; settings = { issuer = "http://${oidcDomain}/dex"; issuer = "http://${oidcAddr}/dex"; storage = { type = "postgres"; config.host = "/var/run/postgresql"; Loading Loading @@ -101,25 +100,27 @@ in }; }; services.minio = { services.garage = { enable = true; rootCredentialsFile = "/etc/minio/minio-root-credentials"; package = pkgs.garage_2; settings = { rpc_bind_addr = "127.0.0.1:3901"; rpc_public_addr = "127.0.0.1:3901"; rpc_secret = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; replication_factor = 1; s3_api = { s3_region = "garage"; api_bind_addr = s3Addr; }; }; }; environment.etc."dex/lasuite-docs" = { mode = "0400"; user = "dex"; text = "lasuitedocsclientsecret"; }; environment.etc."minio/minio-root-credentials" = { mode = "0400"; text = '' MINIO_ROOT_USER=${minioAccessKey} MINIO_ROOT_PASSWORD=${minioSecretKey} ''; }; services.postgresql = { enable = true; ensureDatabases = [ "dex" ]; Loading @@ -135,25 +136,30 @@ in testScript = '' with subtest("Wait for units to start"): machine.wait_for_unit("dex.service") machine.wait_for_unit("minio.service") machine.wait_for_unit("garage.service") machine.wait_for_unit("lasuite-docs.service") machine.wait_for_unit("lasuite-docs-celery.service") machine.wait_for_unit("lasuite-docs-collaboration-server.service") with subtest("Create S3 bucket"): machine.succeed("mc alias set minio http://${s3Domain} ${minioAccessKey} ${minioSecretKey} --api s3v4") machine.succeed("mc mb lasuite-docs") machine.wait_for_open_port(3901) garage_node_id = machine.succeed("garage status | tail -n1 | awk '{ print $1 }'") machine.succeed(f"garage layout assign -c 100MB -z garage {garage_node_id}") machine.succeed("garage layout apply --version 1") machine.succeed("garage key import ${garageAccessKey} ${garageSecretKey} --yes") machine.succeed("garage bucket create lasuite-docs") machine.succeed("garage bucket allow --read --write --owner lasuite-docs --key ${garageAccessKey}") with subtest("Wait for web servers to start"): machine.wait_until_succeeds("curl -fs 'http://${domain}/api/v1.0/authenticate/'", timeout=120) machine.wait_until_succeeds("curl -fs '${oidcDomain}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid'", timeout=120) machine.wait_until_succeeds("curl -fs '${oidcAddr}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid'", timeout=120) with subtest("Login"): state, nonce = machine.succeed("curl -fs -c cjar 'http://${domain}/api/v1.0/authenticate/' -w '%{redirect_url}' | sed -n 's/.*state=\\(.*\\)&nonce=\\(.*\\)/\\1 \\2/p'").strip().split(' ') oidc_state = machine.succeed(f"curl -fs '${oidcDomain}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid+email&state={state}&nonce={nonce}' | sed -n 's/.*state=\\(.*\\)\">.*/\\1/p'").strip() oidc_state = machine.succeed(f"curl -fs '${oidcAddr}/dex/auth/mock?client_id=lasuite-docs&response_type=code&redirect_uri=http://${domain}/api/v1.0/callback/&scope=openid+email&state={state}&nonce={nonce}' | sed -n 's/.*state=\\(.*\\)\">.*/\\1/p'").strip() code = machine.succeed(f"curl -fs '${oidcDomain}/dex/auth/mock/login?back=&state={oidc_state}' -d 'login=admin&password=password' -w '%{{redirect_url}}' | sed -n 's/.*code=\\(.*\\)&.*/\\1/p'").strip() code = machine.succeed(f"curl -fs '${oidcAddr}/dex/auth/mock/login?back=&state={oidc_state}' -d 'login=admin&password=password' -w '%{{redirect_url}}' | sed -n 's/.*code=\\(.*\\)&.*/\\1/p'").strip() print(f"Got approval code {code}") machine.succeed(f"curl -fs -c cjar -b cjar 'http://${domain}/api/v1.0/callback/?code={code}&state={state}'") Loading
pkgs/applications/editors/vscode/extensions/WakaTime.vscode-wakatime/default.nix +2 −2 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "vscode-wakatime"; publisher = "WakaTime"; version = "30.0.4"; hash = "sha256-5y7LTkiR7dnSHbL80pqsTb57rnLyEbIrHT4xzseVj84="; version = "30.0.5"; hash = "sha256-8K8EgdHOGL3sYW5j8hpfbZFifbInMNWEYe60F1UGsj4="; }; meta = { Loading
pkgs/applications/editors/vscode/extensions/default.nix +2 −0 Original line number Diff line number Diff line Loading @@ -2413,6 +2413,8 @@ let jackmacwindows.craftos-pc = callPackage ./jackmacwindows.craftos-pc { }; jakestanger.corn = callPackage ./jakestanger.corn { }; james-yu.latex-workshop = callPackage ./james-yu.latex-workshop { }; jamesyang999.vscode-emacs-minimum = buildVscodeMarketplaceExtension { Loading
pkgs/applications/editors/vscode/extensions/jakestanger.corn/default.nix 0 → 100644 +22 −0 Original line number Diff line number Diff line { vscode-utils, lib, }: vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "corn"; publisher = "JakeStanger"; version = "0.1.0"; hash = "sha256-6c9lxwJDVUuT3VKAbIohd0mRHFbfmfDgKfYJ+XET5hQ="; }; meta = { changelog = "https://marketplace.visualstudio.com/items/JakeStanger.corn/changelog"; description = "Visual Studio Code extension for Cornlang"; downloadPage = "https://marketplace.visualstudio.com/items?itemName=JakeStanger.corn"; homepage = "https://github.com/corn-config/corn-vscode"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ drupol ]; }; }