iGRPIGRP 3.0Documentation

Projeto Next.js

O que vem num projeto frontend gerado pelo Studio — stack, estrutura de pastas, o que é gerado e o que é teu, configuração por variáveis de ambiente e como o correr.

Um projeto frontend criado no Studio parte do template @igrp/framework-next-template: uma aplicação Next.js 15 (App Router) já ligada à plataforma — autenticação, layout, menus e permissões do Access Management, i18n e o Design System. Esta página descreve o projeto; para o criar, ver Primeiro projeto, e para desenhar páginas, Studio · Frontend.

Stack

Next.js 15 + React 19App Router, Turbopack em dev e em build
Framework iGRP@igrp/framework-next, -next-auth, -next-ui, -next-types — ver Frontend
Design System@igrp/igrp-framework-react-design-system — ver Design System
AutenticaçãoNextAuth v4 com OIDC (Keycloak), ou sem autenticação para pré-visualização
Dados e formuláriosReact Query, React Hook Form + Zod
i18nnext-intl (pt, en, fr)
QualidadeTypeScript, Tailwind CSS v4, Biome

Estrutura

permissions.json
baseApp.json
layout.tsx
igrp.config.ts
layout.tsx
igrp.template.config.ts
middleware.ts
igrp-compose-<projeto>.yaml
.env.example

O que é do Studio e o que é teu

Pasta / ficheiroQuem escrevePara quê
.igrpstudio/StudioDefinição das páginas, permissões e app em JSON — a fonte do que o Page Builder mostra
src/app/(igrp)/(generated)/StudioCódigo das páginas desenhadas no Page Builder. Não edites à mão — é regenerado ao gravar
src/app/(myapp)/TuComponentes, funções, tipos e actions próprios, registados em igrp.config.ts — ver Custom Components
src/app/igrp.config.tsTuRegisto do que está em (myapp) para o Studio o oferecer
src/igrp.template.config.tsTemplateConfiguração do layout: header, sidebar, menus, Access Management, toasts
src/app/(auth)/, src/middleware.ts, src/lib/TemplateLogin, sessão, proteção de rotas e utilitários
src/app/(igrp)/(demo)/TemplatePáginas de exemplo (dashboard, permissões…) — podes removê-las
src/temp/TemplateUtilizador, menus e apps de exemplo para a pré-visualização sem autenticação
src/i18n/messages/TuTextos em pt, en e fr

Não edites (generated)

O que escreveres em src/app/(igrp)/(generated)/ perde-se na próxima gravação no Studio. Para lógica própria usa o Custom Code da página ou ficheiros em (myapp).

Configuração

Tudo se configura por variáveis de ambiente — o .env.example documenta cada uma. As principais:

Variável
AUTH_PROVIDERigrp-auth (Keycloak) ou none (sem autenticação)
IGRP_AUTH_ISSUER, IGRP_AUTH_CLIENT_ID, IGRP_AUTH_CLIENT_SECRETCliente OIDC da aplicação
NEXTAUTH_URL, NEXTAUTH_SECRETSessão NextAuth
IGRP_APP_CODECódigo da aplicação no Access Management
IGRP_ACCESS_MANAGEMENT_APIAPI do Access Management
IGRP_SYNC_ACCESS, IGRP_SYNC_ON_CODE_MENUS, IGRP_SYNC_PERMISSIONSSincronizar menus e permissões declarados no código
IGRP_PREVIEW_MODEPré-visualização com dados de exemplo, sem login
NEXT_PUBLIC_BASE_PATHPrefixo da app quando servida num subcaminho (ex.: /apps/<projeto>)

No workspace, o Studio trata disto

Num projeto criado dentro do workspace, o Studio regista o cliente OAuth e injeta estas variáveis ao fazer Deploy Docker — ver Projetos.

Correr

No cartão do projeto, ⋮ → Deploy Docker e depois Abrir no Navegador: a app fica em http://<slug>:<porta>/apps/<projeto>, ligada à plataforma local.

Script
pnpm devServidor de desenvolvimento
pnpm buildLint (Biome e i18n) e build de produção
pnpm startServir o build
pnpm lint / pnpm formatBiome

Documentação incluída

A pasta docs/ do projeto traz guias sobre a arquitetura, autenticação, Access Management, permissões, design system, tokens, i18n, header slots, Docker, variáveis de ambiente e migração.

Atualizar o template

Projetos criados com versões antigas do template atualizam-se com o @igrp/template-migrator.

How is this guide?

Última atualização: