@ibernoh/arkanjs
v0.2.6
Published
Backend API generator with RBAC, CLI scaffolding, and built-in structure. Just install and run.
Maintainers
Readme
ArkanJS — Modular APIs Generator com RBAC markdown
⚡ ArkanJS · Modular API Generator com RBAC, CLI e Desenvolvimento Vertical
ArkanJS é uma ferramenta de linha de comando (CLI) voltada para desenvolvedores que desejam construir backends expressivos e seguros com rapidez. Oferece suporte completo para autenticação com JWT, controle de acesso via papéis e permissões (RBAC), geração automatizada de recursos e documentação interativa.
🔐 Autenticação com RBAC
O sistema de autenticação do ArkanJS utiliza JWT combinado com RBAC (Role-Based Access Control), permitindo que usuários possuam múltiplos cargos e que cada cargo tenha permissões específicas atribuídas.
Estrutura relacional
users— usuários com campos como email, senha, is_activeroles— cargos: admin, editor, viewer...permissions— ações comocreate_user,edit_task, etc.role_users— ponte entre usuários e cargos (N:N)role_permissions— ponte entre cargos e permissões (N:N)
Middlewares disponíveis
authMiddleware— valida token JWTrequireRole("admin")— exige cargo específicorequirePermission("edit_user")— exige permissão específica
📦 Instalação
npm install @ibernoh/arkanjs🚀 Uso
Após a instalação, você pode usar o ArkanJS CLI para gerar a estrutura inicial do seu projeto.
Inicialização
Para iniciar um novo projeto, execute os seguintes comandos:
npx arkanjs generate:env
npx arkanjs generate:authO comando generate:env cria o arquivo .env com as variáveis de ambiente necessárias, e o generate:auth cria toda a estrutura de autenticação e RBAC.
Geradores disponíveis
🔒 generate:auth
Cria automaticamente:
- Models: User, Role, Permission, role_users, role_permissions
- Middlewares: autenticação e proteção RBAC
- Rota pública: POST /auth/login
- Usuário inicial: [email protected] com cargo admin e permissão manage_users
✨ generate:resource-auth
npx arkanjs generate:resource-auth tarefa --fields titulo:string,feito:booleanGera estrutura completa para recurso protegido por RBAC:
- CRUD vertical com controller, model e rota
- Proteção por cargo "admin" e permissões automáticas (create_tarefa, read_tarefa, etc.)
🧱 Banco e Migrations
Para rodar as migrations e seeds, utilize os comandos:
npx arkanjs migrate
npx arkanjs seedO seed inicial garante que o sistema tenha:
- Um usuário ativo
- A role "admin" pré-criada
- Permissões básicas
- Relacionamentos configurados
🗂️ Estrutura de diretórios src/ models/ auth/ → estrutura de autenticação + RBAC tarefa/ → exemplo de recurso protegido controllers/ middlewares/ routes/ 🔑 Uso básico da API Login http POST /auth/login Body: { "email": "[email protected]", "password": "secret123" } Rota protegida http GET /tarefa/ Headers: Authorization: Bearer → Protegida por cargo "admin" e permissão "read_tarefa" 📝 Documentação interativa bash http://localhost:3000/doc Serve o conteúdo Markdown do arquivo Doc.md renderizado em HTML para consulta via navegador.
💙 Filosofia do ArkanJS "Mais que gerar código, o ArkanJS cria estrutura, segurança e significado."
Com base modular, fluxo vertical e RBAC embutido, o ArkanJS nasceu pra escalar — seja pra criar um MVP rápido ou um painel administrativo completo.
🔧 Tecnologias Camada Tecnologia Servidor Express.js ORM Sequelize Autenticação JWT + Bcrypt CLI Generator Commander Templates EJS Ambiente dotenv Documentação marked 📝 Licença MIT © 2025 — Iberno Hoffmann ArkanJS nasceu da ideia de que backends merecem elegância. Construído com 💙, música clássica e arquitetura digital.
⚙️ Referência de Comandos CLI
arkanjs new <name>
📦 Cria um novo projeto ArkanJS.
Opções:
--no-docs: Pula a criação do arquivoDoc.mde da rota/doc.
Exemplo:
arkanjs new my-new-project --no-docsarkanjs make:resource <name>
📄 Gera um recurso público (model, controller e rota).
Opções:
--fields <fields>: Define os campos do modelo no formatonome:tipo,outroNome:outroTipo.
Exemplo:
arkanjs make:resource product --fields name:string,price:float,inStock:booleanarkanjs make:resource-auth <name>
🔐 Gera um recurso protegido por JWT e controle de acesso baseado em papéis (RBAC).
Opções:
--fields <fields>: Define os campos do modelo no formatotitulo:string,feito:boolean.
Exemplo:
arkanjs make:resource-auth task --fields title:string,completed:booleanarkanjs make:auth
🛡️ Gera um sistema completo de autenticação JWT com RBAC.
Exemplo:
arkanjs make:autharkanjs clean:auth
🧨 Remove todos os arquivos e pastas relacionados ao sistema de autenticação.
Exemplo:
arkanjs clean:autharkanjs clean:resource-auth <name>
🧼 Remove os arquivos e pastas de um recurso protegido.
Exemplo:
arkanjs clean:resource-auth taskarkanjs make:migration <name>
📦 Cria um novo arquivo de migração para o banco de dados.
Exemplo:
arkanjs make:migration add_users_tablearkanjs make:seed <name>
🌱 Cria um novo arquivo de seed para o banco de dados.
Exemplo:
arkanjs make:seed initial_admin_userarkanjs migrate
🧱 Executa todas as migrações pendentes no banco de dados.
Exemplo:
arkanjs migratearkanjs seed
🌿 Executa todos os arquivos de seed no banco de dados.
Exemplo:
arkanjs seedarkanjs reverse
📥 Realiza engenharia reversa de modelos a partir de um banco de dados existente.
Exemplo:
arkanjs reversearkanjs list
📂 Lista todos os recursos gerados no projeto.
Exemplo:
arkanjs list