Ecosystem

Overview

The OpenApe package ecosystem.

Ecosystem

OpenApe isn't a monolith β€” it's a set of small, focused packages you compose as needed. Use one. Use all. Each works standalone.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            Framework Modules                β”‚
β”‚       nuxt-auth-idp      nuxt-auth-sp       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚            Protocol Packages                β”‚
β”‚         @openape/auth    @openape/grants    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚              Foundation                     β”‚
β”‚              @openape/core                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Packages

PackageDescriptionFramework
@openape/coreDNS discovery, crypto, PKCE, JWT utilitiesNone
@openape/authOIDC login protocol β€” IdP and SP sidesNone
@openape/grantsGrant lifecycle, AuthZ-JWT issuanceNone
@openape/nuxt-auth-idpDrop-in Nuxt module: run your own IdP (includes grant routes + pages)Nuxt
@openape/nuxt-auth-spDrop-in Nuxt module: login via OpenApeNuxt
openape-escapes (escapes)Rust binary for privilege elevationOS-level

The older standalone @openape/nuxt-grants package has been consolidated into nuxt-auth-idp β€” see Grants for the migration note.

Combinations

Use CasePackages
App with OpenApe loginnuxt-auth-sp
Run your own IdP (with grant flows)nuxt-auth-idp
One IdP, many domainsnuxt-auth-idp + the multi-tenant pattern
SP with grant requestsnuxt-auth-sp + IdP-side grant routes
Non-Nuxt integration@openape/auth + @openape/grants
Local privilege elevationopenape-escapes (escapes)

Design Principles

  1. Separation β€” Auth β‰  Grants. Not every app needs both.
  2. Layered β€” Core β†’ Protocol packages β†’ Framework modules β†’ Apps
  3. Stateless SP β€” Service providers need zero server storage.
  4. Framework-agnostic core β€” Nuxt modules are convenience, not requirement.
  5. Passkeys-only β€” No passwords. NIS2 compliant by design.
  6. Minimal tokens β€” AuthN says who, AuthZ says what may they do.