)]}'
{
  "log": [
    {
      "commit": "21d687c822ca84bc6aa8872c09aa99d5c9da2bde",
      "tree": "d8b1c9e1ec215674e635b66352cdee4f1583ac2d",
      "parents": [
        "3ff0df9cb52e94820a3d084e294e62dd9dc98e6f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 17 18:51:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 18:51:15 2026 +0200"
      },
      "message": "OF: tooling is now a working ldap entity, no need to hardcode"
    },
    {
      "commit": "3ff0df9cb52e94820a3d084e294e62dd9dc98e6f",
      "tree": "ba3382a06f056d4a8aa3177c381c535890fb6966",
      "parents": [
        "2e699439393b30b41f2fcb852e2707c04ec9d229"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Jun 05 11:21:38 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Jun 05 11:21:38 2026 -0500"
      },
      "message": "strip query strings when matching URIs\n"
    },
    {
      "commit": "2e699439393b30b41f2fcb852e2707c04ec9d229",
      "tree": "f06c32b9a66c0ba607c4d0dc16d51d62ce1e6857",
      "parents": [
        "101474721bd86106be5c81fd8e0c716b3163a06a"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 13:03:14 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 13:03:14 2026 -0500"
      },
      "message": "remove requirements.txt, not needed\n"
    },
    {
      "commit": "101474721bd86106be5c81fd8e0c716b3163a06a",
      "tree": "fafae1c2a00b62e2bc27c1768902ad6e9a957989",
      "parents": [
        "64b111ff53c9e4e8198258691c55ebc5a65302e7"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 13:01:59 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 13:01:59 2026 -0500"
      },
      "message": "ignore dot things\n"
    },
    {
      "commit": "64b111ff53c9e4e8198258691c55ebc5a65302e7",
      "tree": "3989ab860313a69690da76f7614fd7e780ba7773",
      "parents": [
        "6b7b3aa41bb248ef8f2a6c14df57ecec4604cc2e"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:56:19 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:56:19 2026 -0500"
      },
      "message": "add in client api auth\n\nsplit into teams and bearer tokens and allow different roles per team\n"
    },
    {
      "commit": "6b7b3aa41bb248ef8f2a6c14df57ecec4604cc2e",
      "tree": "946f6ba14d5faf1f0fc1e1910e1070f66e2ee44c",
      "parents": [
        "1ef076f174954346ef6e67a29c21b293132140ba"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:41:04 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:41:04 2026 -0500"
      },
      "message": "remove debug\n"
    },
    {
      "commit": "1ef076f174954346ef6e67a29c21b293132140ba",
      "tree": "48831522e739455ee4a650f98ab8dbd14330831c",
      "parents": [
        "f09e23e38fc7d13a03eff914bfcb46bcdc91f2fb"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:30:57 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:30:57 2026 -0500"
      },
      "message": "log token access as well\n"
    },
    {
      "commit": "f09e23e38fc7d13a03eff914bfcb46bcdc91f2fb",
      "tree": "94ec45d44418919a209d5e2dce7ede45e20ad259",
      "parents": [
        "56f061eef3deb6be963c8c87f01b0af8f06417f0"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:16:12 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:16:12 2026 -0500"
      },
      "message": "make sure we log the nonce for mapping back\n"
    },
    {
      "commit": "56f061eef3deb6be963c8c87f01b0af8f06417f0",
      "tree": "4f98e51e9ef843132c37c0c8193fc8696d12b98c",
      "parents": [
        "1237056cfed7cee5acc3f4aa7c1703d0d8b3c0db"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:14:30 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:14:30 2026 -0500"
      },
      "message": "add client/app registry plus enforcement features\n\nThis adds databases and endpoints for registering clients (for enforcing\napp access) and establishing audit trails for events.\n\nAuth is still TBD.\n"
    },
    {
      "commit": "1237056cfed7cee5acc3f4aa7c1703d0d8b3c0db",
      "tree": "f44a7533f21e2e9d6d7a68381ef05bd9f4291463",
      "parents": [
        "6c9e6450e32e35dea125e83df8647717e1a79934"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:11:19 2026 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Jun 03 12:11:19 2026 -0500"
      },
      "message": "switch to running with uv\n"
    },
    {
      "commit": "6c9e6450e32e35dea125e83df8647717e1a79934",
      "tree": "7ca8458e046fad202909e32346eb93a4c3c64dee",
      "parents": [
        "fafb5887bccd894e762d0925dde44b66bec8f668",
        "c74dd6756d9133cbb1bc20fb19adc2a03907f6d6"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebbASF@users.noreply.github.com",
        "time": "Sun Mar 29 18:36:19 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 29 18:36:19 2026 +0100"
      },
      "message": "Merge pull request #4 from apache/sebbASF-patch-1\n\nRedundant escape"
    },
    {
      "commit": "c74dd6756d9133cbb1bc20fb19adc2a03907f6d6",
      "tree": "7ca8458e046fad202909e32346eb93a4c3c64dee",
      "parents": [
        "fafb5887bccd894e762d0925dde44b66bec8f668"
      ],
      "author": {
        "name": "Sebb",
        "email": "sebbASF@users.noreply.github.com",
        "time": "Sat Jan 10 16:56:37 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 10 16:56:37 2026 +0000"
      },
      "message": "Redundant escape\n\n\u0027.\u0027 is not a meta-character inside []"
    },
    {
      "commit": "fafb5887bccd894e762d0925dde44b66bec8f668",
      "tree": "6c2473a8b2aa3afe0122954c1bc2c8dd51bcb2c3",
      "parents": [
        "a9a47a00a158210534844aeb8c51b7147a5671e8"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Oct 08 18:30:51 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 18:30:51 2025 +0200"
      },
      "message": "Update oauth.py, fix scopes..fully"
    },
    {
      "commit": "a9a47a00a158210534844aeb8c51b7147a5671e8",
      "tree": "ca42571b511d5b00e75c78fcc37a88b4e88611a6",
      "parents": [
        "f133ca9df51d1f4051246f2b92c3baf6c89f3b62"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Oct 08 18:25:40 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 18:25:40 2025 +0200"
      },
      "message": "Update oauth.py, fix scopes so that preferred_username actually works"
    },
    {
      "commit": "f133ca9df51d1f4051246f2b92c3baf6c89f3b62",
      "tree": "5f35c77309a3a352e570e2118d100351e2060ec0",
      "parents": [
        "5522edb1f786df182e67ddda02d5e9eff8fdd0fb"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Oct 08 01:00:49 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 01:00:49 2025 +0200"
      },
      "message": "Update oauth.py, we are using \u0027username\u0027 for this oidc.."
    },
    {
      "commit": "5522edb1f786df182e67ddda02d5e9eff8fdd0fb",
      "tree": "547fa066e0dbf726f00485afdc4c3d1eee6b800a",
      "parents": [
        "8135fb5d328c38d06737845cb0cbe68665f6afb5"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed Oct 08 00:56:58 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 00:56:58 2025 +0200"
      },
      "message": "Update oauth.py, fix copypasto"
    },
    {
      "commit": "8135fb5d328c38d06737845cb0cbe68665f6afb5",
      "tree": "bb2531e62224a5f9af5bb1f8ddf0156bacb6af82",
      "parents": [
        "a0b84a3c52cd35843d630408002d74ee05f1a349"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Oct 07 23:07:53 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 07 23:07:53 2025 +0200"
      },
      "message": "OF: fix URI paths"
    },
    {
      "commit": "a0b84a3c52cd35843d630408002d74ee05f1a349",
      "tree": "d7b1ecbeb1d703e0c72649cbd783bdbdd3944545",
      "parents": [
        "391688a0a2159537744aa97d221de82c3c79877f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri Jul 25 18:18:18 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 25 18:18:18 2025 +0200"
      },
      "message": "add origin_uri to credentials for client self-validation"
    },
    {
      "commit": "391688a0a2159537744aa97d221de82c3c79877f",
      "tree": "d818c68f5efaabb9fdfb42a0d21c9beea689a108",
      "parents": [
        "541d46ce08b5ff49c5dd464c4f6df83cb715a2a1"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Tue Feb 11 08:59:20 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 11 08:59:20 2025 +0100"
      },
      "message": "NR: Add tooling as a project/committee in oauth"
    },
    {
      "commit": "541d46ce08b5ff49c5dd464c4f6df83cb715a2a1",
      "tree": "229ef7c92af341457c0aff5814a322ce6cdfbe23",
      "parents": [
        "e1e1d9a55d7b80fc2662ebec7e9c32271d466ac3",
        "cc0b9126d2b8fe13dcca5bd4a114fa54670acb60"
      ],
      "author": {
        "name": "fluxo",
        "email": "clambertus@users.noreply.github.com",
        "time": "Mon Mar 04 11:16:54 2024 -0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 04 11:16:54 2024 -0800"
      },
      "message": "Merge pull request #1 from apache/humbedooh/2fa-guess\n\nGuesstimate 2FA status for OIDC logins"
    },
    {
      "commit": "cc0b9126d2b8fe13dcca5bd4a114fa54670acb60",
      "tree": "229ef7c92af341457c0aff5814a322ce6cdfbe23",
      "parents": [
        "e1e1d9a55d7b80fc2662ebec7e9c32271d466ac3"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Mon Mar 04 17:56:03 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 04 17:56:03 2024 +0100"
      },
      "message": "Guesstimate 2FA status for OIDC logins"
    },
    {
      "commit": "e1e1d9a55d7b80fc2662ebec7e9c32271d466ac3",
      "tree": "7cb678b2636b9671535fedb20f8b911246da6d20",
      "parents": [
        "b3d81a2ec6dc163a01d132fc275dec9cfd13f356"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun Mar 03 15:54:08 2024 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 03 15:54:08 2024 +0100"
      },
      "message": "Add a marker to OIDC-backed oauth vs old style oauth"
    },
    {
      "commit": "b3d81a2ec6dc163a01d132fc275dec9cfd13f356",
      "tree": "8130fe2b7017a3528dc10ee8f04ed91cd3fecffb",
      "parents": [
        "8b52edf380143f2b7ac4ffcaa5b4a899ec92c52e"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun May 21 09:48:32 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Sun May 21 09:48:32 2023 -0500"
      },
      "message": "remove extra rule, we\u0027ll set it in thtpd\n\nquart doesn\u0027t like dupes...\n"
    },
    {
      "commit": "8b52edf380143f2b7ac4ffcaa5b4a899ec92c52e",
      "tree": "c4ec63822ebdfa9d470135b5e5293ed0d7e95fe7",
      "parents": [
        "337f1693e59237f15fab279e2a9bef9d81206f67"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:47:44 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:47:44 2023 -0500"
      },
      "message": "Enforce 10 minute expiry window\n"
    },
    {
      "commit": "337f1693e59237f15fab279e2a9bef9d81206f67",
      "tree": "963654f3825f3e114194743f4b44dcd3fcfe6474",
      "parents": [
        "b21274cac5ad9be5768806206858389c68fc35a3"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:43:46 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:43:46 2023 -0500"
      },
      "message": "formatting tweaks\n"
    },
    {
      "commit": "b21274cac5ad9be5768806206858389c68fc35a3",
      "tree": "33e6ce5a49e7b6a0337002739266eeba446d1f77",
      "parents": [
        "ed0f1ff97692b4ba4818d1158b3567cb45f252ed"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:41:34 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:41:34 2023 -0500"
      },
      "message": "Expand Readme, add python3 example script\n"
    },
    {
      "commit": "ed0f1ff97692b4ba4818d1158b3567cb45f252ed",
      "tree": "6edcc661448da2ea89b28a1c8ca0b3948e41dc81",
      "parents": [
        "4ae20622b1a08a2cd3c19e1d3788556aaae5a90a"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:31:31 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Fri May 19 12:31:31 2023 -0500"
      },
      "message": "Backwards compat (URL used to be auth, not oauth)\n"
    },
    {
      "commit": "4ae20622b1a08a2cd3c19e1d3788556aaae5a90a",
      "tree": "1186a5699a6a6e5db3ac4e253c91c34dd6604209",
      "parents": [
        "32597d55596d48bf0fba90ac9a53c70ae76c1a83"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu May 18 12:04:28 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu May 18 12:04:28 2023 -0500"
      },
      "message": "remove debug print\n"
    },
    {
      "commit": "32597d55596d48bf0fba90ac9a53c70ae76c1a83",
      "tree": "e68021c24430e96f5fd85ce68422d08d82313495",
      "parents": [
        "28224dc4e7d501239bcf1117411282b72a390f7f"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu May 18 11:28:55 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu May 18 11:28:55 2023 -0500"
      },
      "message": "one dot too many\n"
    },
    {
      "commit": "28224dc4e7d501239bcf1117411282b72a390f7f",
      "tree": "a4cfbf8f91d5eee25a728421db2c12c47d2490bd",
      "parents": [
        "cd38a8105e9ab63cbc57a1359d6ea19de83eb6e7"
      ],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu May 18 10:49:33 2023 -0500"
      },
      "committer": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Thu May 18 10:49:33 2023 -0500"
      },
      "message": "Initial WIP oauth service\n"
    },
    {
      "commit": "cd38a8105e9ab63cbc57a1359d6ea19de83eb6e7",
      "tree": "8f6ef152f6cb13d5d18587ed045b933cdc76a3b7",
      "parents": [],
      "author": {
        "name": "Daniel Gruno",
        "email": "humbedooh@apache.org",
        "time": "Wed May 17 12:55:39 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 17 12:55:39 2023 -0500"
      },
      "message": "Create README.md"
    }
  ]
}
