npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

terra-lumina

v1.2.0

Published

LUMINA — Terra Ecosystem Identity, AWS IAM Policies & Auth Engine at $0 Cost

Readme


🌐 Visión y Filosofía

LUMINA es el motor central de identidad (IdP), control de acceso por roles (RBAC) y políticas granulares (ABAC estilo AWS IAM) del Ecosistema Terra. Ha sido concebido para eliminar por completo los costes recurrentes de plataformas como Auth0, Okta, Clerk o Supabase Auth.

Toda la base de identidades, políticas y sesiones se almacena de forma estructurada en tu propio repositorio privado .lumina-storage en GitHub, permitiendo una infraestructura de seguridad enterprise sin servidores y a coste cero.


🖼️ Demostración Visual y Consola Web

Accede a la consola web oficial en vivo 24/7:
👉 https://amglogicalis.github.io/lumina-repo-public/


🏛️ Sanctuaries — Aislamiento Multi-Entorno

LUMINA introduce el concepto de Sanctuaries (Santuarios), permitiendo aislar completamente usuarios, roles y políticas entre diferentes aplicaciones o entornos (por ejemplo production, staging, app-billing, internal-tools).

  • Sanctuary default: Creado automáticamente en la primera sesión para retrocompatibilidad instantánea.
  • Aislamiento Total: Los usuarios creados en un Sanctuary no existen en otros Santuarios.
  • Gestión Completa: Creación, cambio de contexto, renombrado y eliminación (con modales de confirmación con diseño dark glassmorphic).

🪲 Nomenclatura y Módulos Bioluminosos

| Módulo | Concepto Tradicional | Descripción | | :--- | :--- | :--- | | 🏛️ Sanctuaries | Multi-Tenancy / Environments | Aislamiento de identidades y políticas entre entornos (production, staging, etc.). | | 🌌 Photuris Vault | User Directory & Database | Directorio inmutable de usuarios en .lumina-storage con soporte de múltiples roles (roles: string[]). | | 💡 Luciole Engine | JWT & JWKS Signer | Motor criptográfico de firma HMAC-SHA256 y endpoint JWKS abierto para verificación offline sin latencia. | | 📋 Pyralis IAM | AWS IAM Policy Evaluator | Evaluador Allow/Deny con soporte de wildcards (*) sobre recursos arn:terra:... o nubes externas. | | 🏮 LanternLinks | Magic Links & OTP | Generación de enlaces mágicos sin contraseña con tokens únicos y protección anti-replay. | | ⚡ Glowworm | Break-Glass Emergency Access | Emisión de credenciales super-admin temporales de 15 minutos con audit log automático. | | 🐝 Coleoptera Bridge | Multicloud Identity Exporter | Broker de exportación hacia Auth0, Supabase Auth, AWS IAM y Firebase Auth. |


📦 Instalación y Configuración

1. Instalación Global del Paquete terra-lumina

npm install -g terra-lumina

2. Inicialización en tu Proyecto

cd mi-proyecto
npx lumina init

Esto creará el archivo lumina.config.json:

{
  "storageRepo": ".lumina-storage",
  "branch": "main",
  "issuer": "lumina.terra",
  "sanct": "default"
}

3. Abrir Consola Web Local (Offline en Localhost)

npx lumina studio
# o equivalente con puerto personalizado:
npx lumina console --port 4000

Inicia un servidor HTTP local en http://localhost:3720 (o puerto personalizado) para administrar el IdP de forma 100% privada e hiperrápida sin depender de Internet. Si el puerto está ocupado, detecta automáticamente el siguiente disponible.


🛠️ Ejemplos Prácticos del SDK

1. Inicialización y Selección de Sanctuary

import { Lumina } from 'terra-lumina';

const lumina = new Lumina({
  githubToken: process.env.GITHUB_TOKEN!,
  storageRepo: '.lumina-storage',
  sanct: 'production' // Conecta directamente al Sanct 'production'
});

await lumina.init();

2. Crear y Gestionar Usuarios Multi-Rol (Photuris Vault)

// Crear usuario con roles múltiples
const user = await lumina.createUser(
  '[email protected]',
  'María García',
  ['admin', 'developer']
);

// Editar parámetros de usuario existente
await lumina.updateUser(user.id, {
  name: 'María García-López',
  roles: ['admin', 'lead-developer']
});

3. Crear Políticas IAM Granulares y Evaluar Accesos (Pyralis IAM)

// Crear una política estilo AWS IAM
const policy = await lumina.createPolicy(
  'combase-db-admin',
  [
    {
      Effect: 'Allow',
      Action: ['combase:read', 'combase:write', 'combase:query'],
      Resource: 'arn:terra:combase:database_prod/*'
    },
    {
      Effect: 'Deny',
      Action: ['combase:dropDatabase'],
      Resource: '*'
    }
  ],
  'Permisos de administración de Combase DB'
);

// Evaluar permisos para un conjunto de roles
const evalResult = await lumina.evaluateForRoles(
  'combase:query',
  'arn:terra:combase:database_prod/table_users',
  ['admin']
);

console.log(evalResult.allowed ? '✅ ACCESO PERMITIDO' : '❌ DENIED');

4. Generar y Verificar Tokens Criptográficos (Luciole JWT)

// Generar JWT con expiración de 1 hora
const token = lumina.signToken({
  sub: user.id,
  email: user.email,
  roles: user.roles
}, 3600);

// Verificar token
const verification = lumina.verifyToken(token);
if (verification.valid) {
  console.log('Token válido para el usuario:', verification.payload.sub);
}

5. Crear Magic Links OTP sin Contraseña (LanternLinks)

const magic = lumina.createMagicLink('[email protected]', 300); // 5 minutos de validez
console.log('Enlace Mágico:', magic.url);

🖥️ Referencia Completa de la CLI

| Comando | Descripción | | :--- | :--- | | lumina init | Inicializa lumina.config.json en el directorio actual. | | lumina studio | Abre la consola web local en el navegador. | | lumina sanct ls | Lista todos los Sanctuaries y su número de usuarios. | | lumina sanct create <nombre> [desc] | Crea un nuevo Sanctuary aislado. | | lumina sanct use <nombre> | Cambia el Sanctuary activo para la CLI. | | lumina sanct rename <viejo> <nuevo> | Renombra un Sanctuary manteniendo sus identidades. | | lumina sanct rm <nombre> | Elimina un Sanctuary (salvo default). | | lumina photuris ls | Lista los usuarios del Sanctuary activo. | | lumina photuris create <email> <nombre> [roles] | Crea un usuario en el Sanctuary activo. | | lumina photuris rm <user_id> | Elimina un usuario por su ID. | | lumina pyralis policy ls | Lista las políticas IAM del Sanctuary activo. | | lumina pyralis eval <action> <resource> [roles] | Evalúa permisos estilo AWS IAM sobre un recurso. | | lumina luciole sign <user_id> [roles] | Genera y firma un JWT de acceso. | | lumina luciole jwks | Muestra la clave pública JWKS en formato JSON. | | lumina lantern <email> [ttl] | Genera un Magic Link sin contraseña. | | lumina glowworm <user_id> <motivo> | Emite credencial de emergencia de 15 minutos (Break-Glass). | | lumina coleoptera export <provider> | Exporta datos a Auth0, Supabase, AWS IAM o Firebase. |


📄 Licencia

Este proyecto se distribuye bajo la Licencia MIT — Libre para uso personal y comercial en cualquier entorno.