Concepts

Glossary

The one word these docs use for each concept, what it means and which page explains it.

These docs use one word for each concept. This page lists those words, and every other page links here the first time it uses one.

Each row gives the term, its meaning and the page that explains it in full. The last column lists the words the docs used before. Avoid them in new text. A dash means there is no old word to avoid.

Apps and modules

TermMeaningWhere it is explainedInstead of
host appThe Nuxt app that installs Frigear modules and configures them. Pages for app developers may say "your app".Architecturehost application, consuming app, consuming application
hosting platformWhere you deploy the host app, such as Cloudflare, Vercel or a Node server.Deploymentthe host's environment
moduleA Nuxt module published as @frigear-nu/<name> that adds one feature to a host app.Modulesbuilding block
packageAny npm package in the repository, named in install and publish steps and for tooling that is not a module.Architecture—
base layerThe shared Nuxt layer a host app extends for config, interface defaults and content pages. Its package is @frigear-nu/base.Base layer—
optionsModule options sit under the module's config key in nuxt.config.ts. Option tables show the full path from that key.Documentation—
Frigear repositoryThis monorepo, Frigear-nu/frigear-nu.Overview—
starterA ready-made project in .starters/ that you copy to start a new host app, such as the workspace starter.Installationboilerplate
your workspaceThe pnpm workspace a starter creates for you.Project structure—
frigear.nuThe live Frigear service, which is also the default issuer.Frigear website appFrigear SSO
Frigear website appThe reference host app in apps/website that runs frigear.nu.Frigear website appfrigear.nu website
test fixtureA minimal Nuxt app under test/fixtures/ that installs a module from source so tests can boot it.Testingfixture app, test app
playgroundA dev app under packages/<name>/playground for working on one package. It is not a test fixture.Scaffold—

People and permissions

TermMeaningWhere it is explainedInstead of
permissionA resource:action string such as events:manage, registered by a module or the host app. The only thing code checks.Access controlability, privilege, right
roleA named bundle of permissions in authorization.roles (grant, inherit, requirements, auto). A user holds several.Access controlrole column, user role
policyCode that refines one permission against a record (definePolicy, defineSharedPolicy). It can deny, never grant.Access controlability, policy gate, policy hook
before hookauthorization:before: the single hook the host app answers to allow or deny any check. Listeners call allow() or deny().Access controlpolicy hook, <module>:authorize
sensitive permissionA permission that a wildcard never covers, such as forms:pii. It is granted by name.Access controlPII scope
sessionOnlyA permission setting: only a cookie session may use it, never a token.Access control—
staffPeople your host app lets into management screens and APIs. They are the people whose roles hold the module's permissions, such as events:update; there is no separate staff check.Access controlback office users, privileged users
admin areaThe screens under /admin, drawn by the Admin module and gated by admin:access.Adminback office, back-office, admin UI, user admin
admin roleA role name in authorization.roles. It is a name, not a synonym for staff.Authorization—
route ruleA routeRules entry with permission, authenticated or guest. Auth enforces it on the server. In client mode it only shapes the interface.Access controlpage guard, role guard
principalWho made a request: the signed-in user, how they proved it and the permissions that proof carries. In code it is AuthPrincipal.Access controlauthenticated user
signed-in userThe person behind a principal, when only the person matters.Access controllogged-in user
visitorSomeone with no valid credential.Access controlguest

The old words ability, staff guard, policy gate and ceiling are gone from the API. The migration guide maps each to its replacement.

Signing in

TermMeaningWhere it is explainedInstead of
sign in / sign-in"Sign in" is the verb and "sign-in" the noun or adjective. Sign up and sign out follow the same pattern.Authenticationlog in, log out, Log in with frigear.nu
Sign in with frigear.nuAuth's built-in sign-in against frigear.nu for previews and local development. Its option is oauth.frigear.OAuth providersLog in with frigear.nu, frigear SSO
server modeAuth signs users in on the host app's own server and keeps them in a cookie session. This is the default.Authserver-rendered mode, confidential mode
client modeAuth for an app without its own server, such as a single-page application (SPA) or a Capacitor app. It signs in at an issuer and keeps the tokens.Client modeSPA mode, public client mode
sessionA sealed cookie that keeps a person signed in to one host app in server mode. It may do whatever the user's roles allow.Access control—
issuerThe server where users sign in and which issues tokens to other apps. Frigear's issuer is the OAuth Server module.Identityidentity provider, Frigear OAuth server
OAuth ServerThe module that turns a host app into an issuer, always capitalised and linked.OAuth Server—
OAuth providerA third-party sign-in service that Auth supports through nuxt-auth-utils, such as GitHub, Google or a generic OpenID Connect server.OAuth providers—
OAuth applicationAn app registered at an issuer so its users can sign in through it. It is stored in oauth_applications.Routes and clientsOAuth client
public / confidentialThe two OAuth application types, fixed at creation. A confidential one is a server that keeps a client secret, and a public one has no secret.Identitypublic client, confidential client
configured clientA public OAuth application defined in the clients option of OAuth Server instead of in the admin area.Routes and clientsconfig client, static client

The routes /login and /register keep their names as code. Quote "Create account" only when you quote the interface.

Tokens and scopes

TermMeaningWhere it is explainedInstead of
API tokenA long-lived token a user creates on their account page for scripts and agents. It starts with fnu_ by default.Auth server APIuser API token, personal token
access tokenA short-lived signed JSON Web Token (JWT) that an issuer gives an OAuth application for a signed-in user. Not a form access token (ffk_), which Forms owns.Access controlOAuth token, bearer JWT
scopeWhat an API token or an access token may do: a permission, a wildcard, or a named scope that expands to permissions (tickets) or to none (openid).Access controlpermission (for a token's limit)

Extension points

TermMeaningWhere it is explainedInstead of
extension pointA place where one module adds things to another without importing it, either a registry or a hook.Extension pointsplug-in point, contribution point
registryA build-time list that modules add entries to, such as menus, widgets, tabs, permissions, roles, scopes and Model Context Protocol (MCP) tools.Extension pointsvirtual registry
hookA runtime hook (Nitro or app) that a module calls and that listeners in the host app or other modules answer, such as authorization:before.Extension points—
widget areaA named slot where the Widget module renders the components modules add.Widget—

Database

TermMeaningWhere it is explainedInstead of
migrationA generated SQL (Structured Query Language) file that changes the database schema. You commit one whenever a module adds or changes tables.Databaseschema change file
dialectThe database type a schema is written for: SQLite or PostgreSQL.Database—
NuxtHubThe module that gives the host app its database and blob storage. Its package is @nuxthub/core.Database—
DrizzleThe TypeScript object-relational mapper (ORM) that modules use to define tables and generate migrations.Module Kit database—

Tools and acronyms

TermMeaningWhere it is explainedInstead of
NitroNuxt's server engine, where server routes, server plugins and hooks run.Glossaryserver runtime
PKCEProof Key for Code Exchange: a one-time secret that proves the app finishing a sign-in is the app that started it.Identity—
SPASingle-page application: a browser app with no server of its own.Identity—
JWKSJSON Web Key Set: the public keys an issuer publishes at /.well-known/jwks.json so others can verify its tokens.Signing keys—
PIIPersonally identifiable information (personal data). Permissions such as events:pii guard it. They are sensitive, so wildcards never include them.Access controlpersonal data scope, personal-data scope
ACLAccess control list. In the starter, NUXT_ACL_ADMINS lists the emails that always get the admin role.Authentication—

How to use a term

Link a term to this page the first time a page uses it, then write it plainly. Put the plain word first and the code name once after it, as the writing rules explain.

Next steps

  • Documentation – the writing rules these terms belong to.
  • Access control – the permission, role, scope and policy terms in context.
  • Identity – the signing-in terms across apps.
Copyright © 2026