summaryrefslogtreecommitdiff
path: root/pkgs/servers/sql/postgresql/ext/pgjwt.nix
blob: 575bfd3bafc88daca9292ea487d6b6ffbd00c14f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
  fetchFromGitHub,
  lib,
  nixosTests,
  postgresql,
  postgresqlBuildExtension,
  postgresqlTestExtension,
  unstableGitUpdater,
}:

postgresqlBuildExtension (finalAttrs: {
  pname = "pgjwt";
  version = "0-unstable-2023-03-02";

  src = fetchFromGitHub {
    owner = "michelp";
    repo = "pgjwt";
    rev = "f3d82fd30151e754e19ce5d6a06c71c20689ce3d";
    hash = "sha256-nDZEDf5+sFc1HDcG2eBNQj+kGcdAYRXJseKi9oww+JU=";
  };

  passthru.updateScript = unstableGitUpdater { };

  passthru.tests = lib.recurseIntoAttrs {
    pgjwt = nixosTests.postgresql.pgjwt.passthru.override postgresql;

    extension = postgresqlTestExtension {
      inherit (finalAttrs) finalPackage;
      sql = ''
        CREATE EXTENSION pgjwt CASCADE;
        SELECT sign('{"sub":"1234567890","name":"John Doe","admin":true}', 'secret');
      '';
    };
  };

  meta = {
    description = "PostgreSQL implementation of JSON Web Tokens";
    longDescription = ''
      sign() and verify() functions to create and verify JSON Web Tokens.
    '';
    license = lib.licenses.mit;
    platforms = postgresql.meta.platforms;
    maintainers = with lib.maintainers; [ spinus ];
  };
})