in_pub library

Classes

App
AuthConfig
Everything the auth layer needs to run, assembled from command line flags and environment variables in bin/in_pub.dart.
AuthenticatedUser
The identity of a person, as the provider currently describes them.
AuthService
Assembles the auth layer and exposes the two things the server needs from it: a gate to put in front of every route, and the handler for /auth/.
AuthStore
Persistence for users, sessions and access tokens.
DocStore
Generates and caches dartdoc API documentation for package versions on demand.
FileStore
GoogleCredentialResolver
Checks the original Google credential — the one unpub_auth obtains, and the only scheme a server running without --auth has.
HostedUrlCompat
Rewrites the repository urls that a published pubspec names, so that packages published under an earlier address of this repository resolve against the address it answers on today.
IdentityProvider
The parts of an OpenID Connect provider the auth layer depends on.
IssuedToken
A freshly issued token. value is the only time the secret exists in a readable form; only its hash is kept.
MetaStore
MongoAuthStore
Mongo-backed AuthStore, living in the same database as the package metadata so a deployment still has exactly one datastore to run.
MongoStore
OidcTokens
Tokens as returned by the provider's token endpoint.
PackageStore
StoredSession
One browser session.
StoredToken
A bearer token for the pub client.
StoredUser
A user as this server remembers them between requests.
TokenResolution
The outcome of examining a bearer token.
TokenService
Issues and checks the bearer tokens the pub client uses.
UnpubPackage
UnpubQueryResult
UnpubRecentPublication
One version of one package going up.
UnpubVersion

Enums

DocStatus
Generation state of a package version's API documentation.
TokenKind
What a token stands for.
UserStatus
Why a user is currently denied access.

Constants

authOnlyRoutes → const Set<String>
Client-side routes that only mean anything once --auth is on.
authSessionCollection → const String
authTokenCollection → const String
authUserCollection → const String
publishHandshakePaths → const Set<String>
The three routes dart pub publish walks through, in order: ask for an upload url, POST the archive, finish.

Properties

packageCollection → String
final
statsCollection → String
final

Functions

identity(DateTime x) → DateTime
looksLikeEmailAddress(String value) → bool
Enough of a check to catch a name typed where an address belongs.
normalizeAddress(String email) → String
How this server decides two email addresses are the same one.
storedAddressPattern(String email) → String
The pattern that matches a stored address equal to email, for the two queries that cannot go through a folded key.

Exceptions / Errors

DocGenerationException
Thrown internally when doc generation fails; message is safe to show to the user (the full tool output is written to stderr).
IdentityRevokedException
Raised when the provider positively says a grant is no longer good — invalid_grant from the token endpoint, or a 401/403 from userinfo.
IdentityUnavailableException
Raised when the provider could not be reached or answered with a server error. Callers retry rather than revoke.
TokenIssueRefused
Raised when a token may not be issued for the identity it would carry.