Elamur Groupants⌕
☰

mova-serve-oauth-http

The groupant beside tools/mova-serve/src/oauth_http.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

Facts

Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

Components

componentlabelwhere
ApproximantpartialApproximant
Astpartialsyntax.json
Costsymbolic source derivedCost
DescriptantpresentDescriptant
InvariantpartialInvariant
Testsexecuted bounded checksTests

Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

relationtypelabelwhere
Behavior complementbehavior complementpartial source derived modelBehavior complement
Reverse reconstructionreverse reconstructionpartial source derived modelReverse reconstruction
Model presencemodel presencepartial source derived modelModel presence

Model text

Descriptant

The routes of the authorization server (cabinet host) and the resource server (MCP host): metadata, registration, authorize, consent, token, revoke, disconnect, the bearer challenge, the /account endpoint.

Approximant

authorize -> consent?rq iff client and redirect URI are registered; consent(allow, csrf, terms) -> redirect(code, state, iss); token -> JSON; bearer -> account on the MCP host only.

Invariant

An unregistered redirect URI is never redirected to; the consent form needs a session, an HMAC CSRF token, our origin and the terms box, and refuses framing; the root MCP endpoint never asks for credentials and answers 401 with resource_metadata only to an invalid token; /account answers 401 with the challenge to no credentials.

Cost

See the registry entry; lookups by token hash are O(log n).

Behavior complement

Never logs a token or code; never accepts an access token on the API host; no tokens in URLs except the code in the redirect.

Reverse reconstruction

The redirect and the cabinet list recover request and grants.

Model presence

Without Google settings authorization answers 503 and nothing is issued.

Tests

oauth_http::tests: metadata on the right hosts, registration, open-redirect and PKCE controls, consent controls, and the end-to-end flow register, authorize, consent, token, MCP call, refresh, replay, revoke, disconnect, account deletion, terms change; tool annotations, server info, icon.

Provenance

This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/tools/mova-serve/src/oauth_http.rs.groupant/