jennifer registry

@jennifer/oauthext

Vendor OAuth2 for the oauth module: Google and Microsoft presets, Google service accounts

oauthoauth2googlemicrosoftentra

Depend on it

[decks]
"@jennifer/oauthext" = "^0.1.0"

Versions

VersionStatusKindPinRequiresEnginesCapabilities
0.1.0livegit96ff3d57e190-jennifer >=0.26.0net

License

LGPL-3.0-only

Source

Released from
0.1.0
Published under
@jennifer mplx
Repository owner
jennifer-language

Readme

@jennifer/oauthext

test Documentation release

Vendor-specific OAuth2 for the bundled oauth module of Jennifer: Config presets for Google and Microsoft Entra ID, and Google service-account logins from a JSON key file (the RFC 7523 JWT bearer grant), which open Google Cloud and Workspace APIs to a program with no user. The presets were oauth.google / oauth.microsoft in the bundled module up to Jennifer 0.25.

Documentation

Install

jvc add @jennifer/oauthext

This vendors the deck to vendor/<scope>/oauthext/. Without jvc, unpack the src/ subtree of a release archive (<scope>-oauthext-<version>.tar.gz) there.

Usage

import "oauth.j" as oauth;
import "@jennifer/oauthext/" as oauthext;

def tok as oauth.Token init oauthext.googleServiceAccount(
    fs.readString("service-account.json"),
    "https://www.googleapis.com/auth/cloud-platform");

def cfg as oauth.Config init oauthext.microsoft("common", $clientId, "",
    "https://outlook.office.com/IMAP.AccessAsUser.All offline_access");

Requirements

Jennifer 0.26.0 or newer, the default jennifer binary (the deck needs net; the stock jennifer-tiny has no network driver). RS256 signing for service accounts is in the default binary.

Development

tools/check-all.sh                   # the full gate, as CI runs it
jennifer test src/oauthext_test.j      # the test overlay
tools/check-docs.sh                  # docs against the code
tools/pack.sh dist                   # build the release archive

Licence

LGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <[email protected]>.

tools/check-headers.sh checks every source file's SPDX header against deck.toml.

This deck as JSON