@oondemand/create-central-oon 0.5.6 → 0.6.1

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.
Files changed (73) hide show
  1. package/README.md +41 -89
  2. package/bin/cli.js +4 -17
  3. package/docs/ADVANCED_UX_PATTERNS.md +3 -2
  4. package/docs/AGENTS.md +4 -5
  5. package/docs/AGENT_WORKFLOW.md +1 -1
  6. package/docs/BACKEND_API.md +2 -4
  7. package/docs/BACKEND_PATTERNS.md +1 -2
  8. package/docs/BACKEND_PROCESS_MANIFEST.md +6 -6
  9. package/docs/CAPABILITIES.md +2 -3
  10. package/docs/CHECKLIST_IMPLEMENTACAO.md +4 -4
  11. package/docs/CORE_UPGRADE.md +2 -2
  12. package/docs/FRONTEND_API.md +20 -23
  13. package/docs/FRONTEND_CODE_FIRST.md +35 -0
  14. package/docs/FRONTEND_PATTERNS.md +13 -15
  15. package/docs/METADATA_CRUD_UI.md +1 -1
  16. package/docs/PORTAL_COCKPIT_PATTERNS.md +10 -145
  17. package/docs/REACTIVE_DOMAIN_FORMULAS.md +2 -2
  18. package/docs/releases/0.6.0.md +23 -0
  19. package/package.json +1 -1
  20. package/schemas/central.app.schema.json +2 -16
  21. package/src/conformance.js +42 -106
  22. package/src/index.js +4 -28
  23. package/src/render.js +4 -30
  24. package/templates/_base/README.md +7 -6
  25. package/templates/_base/backend/package.json +1 -1
  26. package/templates/_base/central.app.json +4 -9
  27. package/templates/_base/frontend/package.json +1 -1
  28. package/templates/_base/frontend/src/app/app.tsx +25 -0
  29. package/templates/_base/frontend/src/app/navigation.ts +5 -0
  30. package/templates/_base/frontend/src/app/routes.tsx +6 -0
  31. package/templates/_base/frontend/src/app/theme.ts +8 -0
  32. package/templates/_base/frontend/src/components/gitkeep +1 -0
  33. package/templates/_base/frontend/src/features/gitkeep +1 -0
  34. package/templates/_base/frontend/src/layouts/gitkeep +1 -0
  35. package/templates/_base/frontend/src/main.tsx +3 -8
  36. package/templates/_base/frontend/src/pages/HomePage.tsx +25 -0
  37. package/templates/_base/frontend/tsconfig.json +1 -1
  38. package/templates/_base/package.json +1 -1
  39. package/docs/CONNECTORS_AND_INTEGRATIONS.md +0 -66
  40. package/docs/FRONTEND_MANIFEST_REFERENCE.md +0 -487
  41. package/templates/_base/backend/src/integrations/gitkeep +0 -0
  42. package/templates/_base/frontend/central.ui.json +0 -58
  43. package/templates/_base/frontend/src/collections/gitkeep +0 -0
  44. package/templates/_base/frontend/src/dashboards/gitkeep +0 -0
  45. package/templates/_base/frontend/src/documents/gitkeep +0 -0
  46. package/templates/_base/frontend/src/overrides/gitkeep +0 -0
  47. package/templates/_base/frontend/src/pipelines/gitkeep +0 -0
  48. package/templates/basic/backend/src/models/Pessoa.js +0 -21
  49. package/templates/basic/frontend/central.ui.json +0 -8
  50. package/templates/documentos-fiscais/backend/central.config.js +0 -32
  51. package/templates/documentos-fiscais/backend/src/models/DocumentoFiscal.js +0 -23
  52. package/templates/documentos-fiscais/frontend/central.ui.json +0 -16
  53. package/templates/multi-moedas/backend/central.config.js +0 -32
  54. package/templates/multi-moedas/backend/src/models/Cotacao.js +0 -23
  55. package/templates/multi-moedas/backend/src/models/Moeda.js +0 -15
  56. package/templates/multi-moedas/frontend/central.ui.json +0 -11
  57. package/templates/omie-sidecar/backend/central.config.js +0 -33
  58. package/templates/omie-sidecar/backend/src/mappings/pessoa-cliente.js +0 -20
  59. package/templates/omie-sidecar/backend/src/models/Pessoa.js +0 -24
  60. package/templates/omie-sidecar/backend/src/triggers/Pessoa.js +0 -14
  61. package/templates/omie-sidecar/frontend/central.ui.json +0 -8
  62. package/templates/pedidos-marketplace/backend/central.config.js +0 -32
  63. package/templates/pedidos-marketplace/backend/src/models/Pedido.js +0 -22
  64. package/templates/pedidos-marketplace/backend/src/models/Produto.js +0 -16
  65. package/templates/pedidos-marketplace/frontend/central.ui.json +0 -10
  66. package/templates/servicos-prestados/backend/central.config.js +0 -32
  67. package/templates/servicos-prestados/backend/src/models/Cliente.js +0 -15
  68. package/templates/servicos-prestados/backend/src/models/ServicoPrestado.js +0 -22
  69. package/templates/servicos-prestados/frontend/central.ui.json +0 -10
  70. package/templates/servicos-tomados/backend/central.config.js +0 -32
  71. package/templates/servicos-tomados/backend/src/models/Pessoa.js +0 -15
  72. package/templates/servicos-tomados/backend/src/models/Servico.js +0 -22
  73. package/templates/servicos-tomados/frontend/central.ui.json +0 -10
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/@oondemand/create-central-oon/schemas/central.app.schema.json",
3
- "schemaVersion": 1,
3
+ "schemaVersion": 2,
4
4
  "id": "__SLUG__",
5
5
  "name": "__NAME__",
6
6
  "slug": "__SLUG__",
@@ -11,21 +11,16 @@
11
11
  "authorizationMode": "rbac",
12
12
  "deploymentMode": "dedicated",
13
13
  "modules": {
14
- "collections": true,
14
+ "collections": false,
15
15
  "documents": false,
16
16
  "pipelines": false,
17
- "integrations": false,
18
- "omie": false,
19
17
  "assistants": false,
20
18
  "currencies": false
21
19
  },
22
- "capabilities": [
23
- "core.collections"
24
- ],
20
+ "capabilities": [],
25
21
  "compatibility": {
26
22
  "core": {
27
- "minVersion": "0.5.0",
28
- "maxVersionExclusive": "0.6.0"
23
+ "minVersion": "0.6.0"
29
24
  }
30
25
  },
31
26
  "activation": {
@@ -11,7 +11,7 @@
11
11
  "sync:metadata": "oonCore-front sync:metadata"
12
12
  },
13
13
  "dependencies": {
14
- "@oondemand/oon-core-front": "^0.5.6",
14
+ "@oondemand/oon-core-front": "^0.6.1",
15
15
  "@chakra-ui/react": "^3.13.0",
16
16
  "@emotion/react": "^11.14.0",
17
17
  "@tanstack/react-query": "^5.65.0",
@@ -0,0 +1,25 @@
1
+ import { defineOonApp, type OonAppKind, type OonTenancyModel } from "@oondemand/oon-core-front";
2
+ import manifest from "../../../central.app.json";
3
+ import { navigation } from "./navigation";
4
+ import { routes } from "./routes";
5
+ import { theme } from "./theme";
6
+
7
+ export const app = defineOonApp({
8
+ app: {
9
+ id: manifest.id,
10
+ name: manifest.name,
11
+ title: manifest.name,
12
+ kind: manifest.appKind as OonAppKind,
13
+ tenancyModel: manifest.tenancyModel as OonTenancyModel,
14
+ capabilities: manifest.capabilities,
15
+ },
16
+ api: {
17
+ baseUrl: import.meta.env.VITE_API_URL ?? "/api",
18
+ meusAppsUrl: import.meta.env.DEV ? undefined : import.meta.env.VITE_MEUS_APPS_URL,
19
+ },
20
+ runtimeMode: import.meta.env.DEV ? "local" : "platform",
21
+ routes,
22
+ navigation,
23
+ theme,
24
+ shell: { shell: "default" },
25
+ });
@@ -0,0 +1,5 @@
1
+ import { defineOonNavigation } from "@oondemand/oon-core-front/routing";
2
+
3
+ export const navigation = defineOonNavigation([
4
+ { label: "Início", href: "/", order: 10 },
5
+ ]);
@@ -0,0 +1,6 @@
1
+ import { defineOonRoutes } from "@oondemand/oon-core-front/routing";
2
+ import { HomePage } from "../pages/HomePage";
3
+
4
+ export const routes = defineOonRoutes([
5
+ { path: "/", component: HomePage },
6
+ ]);
@@ -0,0 +1,8 @@
1
+ import { createOonTheme, oonDefaultTheme } from "@oondemand/oon-core-front/theme";
2
+
3
+ export const theme = createOonTheme({
4
+ id: "__SLUG__",
5
+ label: "__NAME__",
6
+ extends: oonDefaultTheme,
7
+ density: "comfortable",
8
+ });
@@ -1,9 +1,4 @@
1
- import { startCentralFromManifest } from "@oondemand/oon-core-front";
2
- import app from "../../central.app.json";
3
- import ui from "../central.ui.json";
1
+ import { startOonApp } from "@oondemand/oon-core-front";
2
+ import { app } from "./app/app";
4
3
 
5
- startCentralFromManifest({ app, ui }, {
6
- apiBaseUrl: import.meta.env.VITE_API_URL ?? "/api",
7
- runtimeMode: import.meta.env.DEV ? "local" : "platform",
8
- meusAppsUrl: import.meta.env.DEV ? undefined : import.meta.env.VITE_MEUS_APPS_URL,
9
- });
4
+ startOonApp(app);
@@ -0,0 +1,25 @@
1
+ import { Stack, Text } from "@chakra-ui/react";
2
+ import { CorePage, CorePageHeader, CoreStatusPanel, CoreSummaryCards } from "@oondemand/oon-core-front/ui";
3
+
4
+ export function HomePage() {
5
+ return (
6
+ <CorePage>
7
+ <CorePageHeader
8
+ title="Boas-vindas ao __NAME__"
9
+ description="A fundação técnica está pronta para receber a experiência e o domínio do app."
10
+ />
11
+ <Stack gap={6}>
12
+ <CoreSummaryCards items={[
13
+ { id: "core", label: "OonCore", value: "Pronto", description: "Shell, autenticação, sessão, tenant e RBAC." },
14
+ { id: "platform", label: "Plataforma Oon", value: "Governada", description: "Publicação, ambientes, acesso e proveniência." },
15
+ ]} />
16
+ <CoreStatusPanel
17
+ title="Próximos passos"
18
+ status="Code-first"
19
+ description="Crie páginas em src/pages, componentes em src/components e organize o domínio em src/features."
20
+ />
21
+ <Text color="text.muted">Menus, rotas, layouts e temas ficam em src/app e podem combinar componentes locais com blocos públicos do OonCore.</Text>
22
+ </Stack>
23
+ </CorePage>
24
+ );
25
+ }
@@ -13,5 +13,5 @@
13
13
  "isolatedModules": true,
14
14
  "types": ["vite/client"]
15
15
  },
16
- "include": ["src", "central.ui.json", "vite.config.ts"]
16
+ "include": ["src", "vite.config.ts"]
17
17
  }
@@ -13,6 +13,6 @@
13
13
  "dev:frontend": "npm run dev --prefix frontend"
14
14
  },
15
15
  "devDependencies": {
16
- "@oondemand/create-central-oon": "0.5.6"
16
+ "@oondemand/create-central-oon": "0.6.1"
17
17
  }
18
18
  }
@@ -1,66 +0,0 @@
1
- # Conectores e Integrações
2
-
3
- Toda integração deve ser modelada como um processo rastreável, não como chamada solta dentro de controller.
4
-
5
- ## Objetivo
6
-
7
- Transformar cada integração em:
8
-
9
- ```txt
10
- configuração + mapping + execução + status + rastreabilidade
11
- ```
12
-
13
- ## Estrutura recomendada
14
-
15
- ```txt
16
- backend/src/integrations/
17
- ├── <sistema>/
18
- │ ├── client.js
19
- │ ├── mappings/
20
- │ ├── services/
21
- │ └── README.md
22
- ```
23
-
24
- ## Client
25
-
26
- O client deve concentrar:
27
-
28
- - URL base;
29
- - autenticação;
30
- - headers;
31
- - timeout;
32
- - retry técnico;
33
- - normalização de erro.
34
-
35
- Não coloque regra de negócio no client.
36
-
37
- ## Mapping
38
-
39
- Mappings devem transformar dados entre a Central e o sistema externo.
40
-
41
- Regras:
42
-
43
- - mapping deve ser explícito;
44
- - campos obrigatórios devem ser validados antes do envio;
45
- - resposta externa deve ser normalizada;
46
- - erros devem ser compreensíveis para operação.
47
-
48
- ## Esteira de integração
49
-
50
- Toda integração relevante deve gerar registro operacional com:
51
-
52
- - origem;
53
- - destino;
54
- - payload resumido ou referência;
55
- - status;
56
- - tentativas;
57
- - erro normalizado;
58
- - data/hora;
59
- - usuário ou processo responsável.
60
-
61
- ## Segurança
62
-
63
- - Nunca versionar app key, secret, token ou credencial.
64
- - Não logar payloads sensíveis sem necessidade.
65
- - Não expor credenciais no frontend.
66
- - Usar `.env` e configuração de ambiente.