@oondemand/create-central-oon 0.2.0 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,14 +2,18 @@
2
2
 
3
3
  📖 **[Documentação completa → ooncoredoc.vercel.app](https://ooncoredoc.vercel.app)**
4
4
 
5
- Gerador de **Centrais Oon**. Cria, a partir do nome da Central, um `backend/` e
6
- um `frontend/` **mínimos** — só domínio e declaração — prontos para consumir o
7
- Core (`@oondemand/oon-core-back` e `@oondemand/oon-core-front`).
5
+ Gerador de **Centrais Oon**. Cria, a partir do nome da Central, um `backend/` de domínio e um `frontend/` declarativo prontos para consumir o Core (`@oondemand/oon-core-back` e `@oondemand/oon-core-front`).
8
6
 
9
- Substitui os geradores legados `@oondemand/create-ooncore-back|front`, que
10
- copiavam o app inteiro. Aqui só nasce o esqueleto: nada de `server.js`,
11
- `app.js`, `db.js`, middlewares, Dockerfile, manifestos k8s à mão ou router
12
- manual isso tudo vive no Core.
7
+ Toda Central gerada nasce com o padrão visual e operacional consolidado na **Central Minexco**:
8
+
9
+ - identidade visual Oon/CST com Poppins, azul `#0474AF` e fundo `#F8F9FA`;
10
+ - menu lateral compacto, responsivo e agrupado por seções;
11
+ - datagrids densos com busca, ordenação, paginação, badges e ações;
12
+ - formulários em diálogo, duas colunas e validação detalhada por campo;
13
+ - campos relacionados com seleção pesquisável;
14
+ - esteiras horizontais com colunas `#E8ECEF` e cartões operacionais brancos.
15
+
16
+ O padrão fica no `@oondemand/oon-core-front`; os templates funcionais apenas declaram domínio, coleções, documentos e esteiras. Assim, não é necessário copiar ou manter um frontend diferente para cada Central.
13
17
 
14
18
  ## Uso
15
19
 
@@ -24,15 +28,17 @@ Aliases: o binário também responde por `scaffold-central-oon`.
24
28
 
25
29
  ### Opções
26
30
 
27
- | Flag | Efeito |
31
+ | Flag | Efeito |
28
32
  | ---------------- | ------------------------------------------------------------- |
29
- | `--template=<t>` | Template inicial (default: `basic`). Veja `--list`. |
33
+ | `--template=<t>` | Template funcional inicial (default: `basic`). Veja `--list`. |
30
34
  | `--here` | Gera na pasta atual em vez de criar `<nome>/`. |
31
35
  | `--force` | Sobrescreve uma pasta existente não-vazia. |
32
- | `--no-install` | Não roda `npm install` nos projetos gerados. |
36
+ | `--no-install` | Não roda `npm install` nos projetos gerados. |
33
37
  | `--list` | Lista os templates e sai. |
34
38
 
35
- ## Templates
39
+ ## Templates funcionais
40
+
41
+ Todos utilizam o mesmo frontend padrão Minexco.
36
42
 
37
43
  | Template | O que gera |
38
44
  | --------------------- | ------------------------------------------------------------- |
@@ -49,24 +55,23 @@ Aliases: o binário também responde por `scaffold-central-oon`.
49
55
  ```txt
50
56
  <central>/
51
57
  ├── README.md
52
- ├── backend/ # consome @oondemand/oon-core-back
58
+ ├── backend/ # consome @oondemand/oon-core-back
53
59
  │ ├── central.config.js # identidade + módulos + paths de domínio
54
60
  │ ├── central.manifest.json # valores de deploy (render no Core)
55
61
  │ └── src/{models,validations,triggers,hooks,mappings,documents,
56
62
  │ pipelines,integrations,routes,controllers,services}/
57
- └── frontend/ # consome @oondemand/oon-core-front
58
- ├── central.ui.json # declaração das telas (coleções/esteiras/docs)
63
+ └── frontend/ # consome o frontend padrão Minexco do OonCore
64
+ ├── central.ui.json # menu e telas (coleções/esteiras/documentos)
59
65
  └── src/
60
- ├── main.tsx # só `startFromManifest(manifest, { apiBaseUrl })`
66
+ ├── main.tsx # startFromManifest(manifest, { apiBaseUrl })
61
67
  └── {collections,documents,pipelines,dashboards,overrides}/
62
68
  ```
63
69
 
64
70
  ## Próximos passos após gerar
65
71
 
66
72
  ```bash
67
- cd <central>/backend && cp .env.example .env && npm run dev # expõe /core/metadata
68
- cd ../frontend && cp .env.example .env && npm run dev # renderiza pela metadata
73
+ cd <central>/backend && cp .env.example .env && npm run dev
74
+ cd ../frontend && cp .env.example .env && npm run dev
69
75
  ```
70
76
 
71
- Evoluir = criar models em `backend/src/models` e declarar telas em
72
- `frontend/central.ui.json`. Grid, form, rotas e menu são montados pelo Core.
77
+ Evoluir a Central significa criar models em `backend/src/models` e declarar as telas em `frontend/central.ui.json`. Menu, rotas, datagrids, formulários e esteiras são montados pelo Core mantendo o padrão Minexco.
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@oondemand/create-central-oon",
3
- "version": "0.2.0",
3
+ "version": "0.3.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/oondemand/oon-platform.git",
7
7
  "directory": "packages/create-central-oon"
8
8
  },
9
- "description": "Gerador de Centrais Oon: cria backend + frontend mínimos (só domínio + declaração) prontos para consumir @oondemand/oon-core-back e @oondemand/oon-core-front.",
9
+ "description": "Gerador de Centrais Oon com backend declarativo e frontend padrão Central Minexco: menu, datagrids, formulários e esteiras.",
10
10
  "main": "src/index.js",
11
11
  "exports": {
12
12
  ".": "./src/index.js"
@@ -21,6 +21,8 @@ const devAuth =
21
21
  : undefined;
22
22
 
23
23
  module.exports = {
24
+ ecosystem: { role: "member" },
25
+ activation: { enabled: true, configurationVersion: 1, fields: [] },
24
26
  name: "__NAME__",
25
27
  slug: "__SLUG__",
26
28
 
@@ -4,6 +4,8 @@
4
4
  "IMAGE": "ghcr.io/oondemand/__SLUG__-backend",
5
5
  "IMAGE_TAG": "latest",
6
6
  "HOST": "__SLUG__.oondemand.com",
7
+ "CENTRAL_ATIVACAO_URL": "https://central-ativacao.example.com",
8
+ "APP_CODE": "__SLUG__",
7
9
  "REPLICAS": "1",
8
10
  "HPA_MIN": "1",
9
11
  "HPA_MAX": "3"
@@ -7,10 +7,13 @@ NODE_ENV=development
7
7
  # Banco
8
8
  MONGO_URI=mongodb://localhost:27017/__SLUG__
9
9
 
10
- # Autenticação (provedor padrão: Meus Apps)
11
- MEUS_APPS_BACKEND_URL=https://meus-apps.example.com
12
- APP_KEY=
10
+ # Autenticação e autorização pela Central de Ativações
11
+ # Deve apontar para o backend da Central de Ativações, nunca para este Core.
12
+ CENTRAL_ATIVACAO_URL=http://localhost:4100
13
+ APP_CODE=__SLUG__
14
+ AUTH_PROVIDER_TIMEOUT_MS=10000
15
+ # Compatibilidade temporária: MEUS_APPS_BACKEND_URL e APP_KEY também são aceitas.
13
16
 
14
- # Token de desenvolvimento local (sem Meus Apps)
15
- # Acesse: http://localhost:5173/?code=dev-local
17
+ # Token de desenvolvimento local (quando a Central sobrescrever verifyToken).
18
+ # Deve ser igual ao VITE_DEV_TOKEN configurado no frontend.
16
19
  DEV_TOKEN=dev-local
@@ -12,6 +12,6 @@
12
12
  "deploy": "oonCore-back deploy"
13
13
  },
14
14
  "dependencies": {
15
- "@oondemand/oon-core-back": "^0.2.0"
15
+ "@oondemand/oon-core-back": "^0.3.3"
16
16
  }
17
17
  }
@@ -1,5 +1,9 @@
1
1
  # URL do backend da Central (oonCore-back)
2
2
  VITE_API_URL=http://localhost:4000
3
3
 
4
- # Login externo (Meus Apps) redirecionamento quando sem sessão
5
- VITE_MEUS_APPS_URL=https://meus-apps.example.com
4
+ # Opcional: login externo/SSO. Sem essa variável, o Core usa /login.
5
+ # VITE_MEUS_APPS_URL=https://login.example.com
6
+
7
+ # Desenvolvimento local: deve ser igual ao DEV_TOKEN do backend.
8
+ # O frontend envia este token para /auth/validar-token antes de qualquer redirect.
9
+ VITE_DEV_TOKEN=dev-local
@@ -4,12 +4,11 @@
4
4
  <meta charset="UTF-8" />
5
5
  <link rel="icon" type="image/png" href="/favicon.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <meta name="theme-color" content="#0474AF" />
8
+ <meta name="description" content="__NAME__ — Central Oon para governança e automação operacional." />
7
9
  <link rel="preconnect" href="https://fonts.googleapis.com" />
8
10
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
- <link
10
- href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,300;1,400;1,500;1,700;1,900&display=swap"
11
- rel="stylesheet"
12
- />
11
+ <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&display=swap" rel="stylesheet" />
13
12
  <title>__NAME__</title>
14
13
  </head>
15
14
  <body>
@@ -10,7 +10,7 @@
10
10
  "sync:metadata": "oonCore-front sync:metadata"
11
11
  },
12
12
  "dependencies": {
13
- "@oondemand/oon-core-front": "^0.2.0",
13
+ "@oondemand/oon-core-front": "^0.3.3",
14
14
  "@chakra-ui/react": "^3.13.0",
15
15
  "@emotion/react": "^11.14.0",
16
16
  "@tanstack/react-query": "^5.65.0",
@@ -9,4 +9,7 @@ import manifest from "../central.ui.json";
9
9
  startFromManifest(manifest, {
10
10
  apiBaseUrl: import.meta.env.VITE_API_URL ?? "http://localhost:4000",
11
11
  meusAppsUrl: import.meta.env.VITE_MEUS_APPS_URL,
12
+ // O valor só entra no bundle servido pelo Vite em modo de desenvolvimento.
13
+ // O backend continua validando se ele coincide com DEV_TOKEN.
14
+ devToken: import.meta.env.DEV ? (import.meta.env.VITE_DEV_TOKEN ?? "dev-local") : undefined,
12
15
  });
@@ -3,6 +3,8 @@
3
3
  * do Core (aprovação, anexos, status).
4
4
  */
5
5
  module.exports = {
6
+ ecosystem: { role: "member" },
7
+ activation: { enabled: true, configurationVersion: 1, fields: [] },
6
8
  name: "__NAME__",
7
9
  slug: "__SLUG__",
8
10
 
@@ -3,6 +3,8 @@
3
3
  * (cotações, conversão).
4
4
  */
5
5
  module.exports = {
6
+ ecosystem: { role: "member" },
7
+ activation: { enabled: true, configurationVersion: 1, fields: [] },
6
8
  name: "__NAME__",
7
9
  slug: "__SLUG__",
8
10
 
@@ -4,6 +4,8 @@
4
4
  * declaramos o mapping de domínio.
5
5
  */
6
6
  module.exports = {
7
+ ecosystem: { role: "member" },
8
+ activation: { enabled: true, configurationVersion: 1, fields: [] },
7
9
  name: "__NAME__",
8
10
  slug: "__SLUG__",
9
11
 
@@ -3,6 +3,8 @@
3
3
  * esteira de pedidos.
4
4
  */
5
5
  module.exports = {
6
+ ecosystem: { role: "member" },
7
+ activation: { enabled: true, configurationVersion: 1, fields: [] },
6
8
  name: "__NAME__",
7
9
  slug: "__SLUG__",
8
10
 
@@ -3,6 +3,8 @@
3
3
  * dos serviços prestados ao cliente.
4
4
  */
5
5
  module.exports = {
6
+ ecosystem: { role: "member" },
7
+ activation: { enabled: true, configurationVersion: 1, fields: [] },
6
8
  name: "__NAME__",
7
9
  slug: "__SLUG__",
8
10
 
@@ -3,6 +3,8 @@
3
3
  * (pipelines) do Core para acompanhar o processamento dos serviços.
4
4
  */
5
5
  module.exports = {
6
+ ecosystem: { role: "member" },
7
+ activation: { enabled: true, configurationVersion: 1, fields: [] },
6
8
  name: "__NAME__",
7
9
  slug: "__SLUG__",
8
10