@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.
- package/README.md +41 -89
- package/bin/cli.js +4 -17
- package/docs/ADVANCED_UX_PATTERNS.md +3 -2
- package/docs/AGENTS.md +4 -5
- package/docs/AGENT_WORKFLOW.md +1 -1
- package/docs/BACKEND_API.md +2 -4
- package/docs/BACKEND_PATTERNS.md +1 -2
- package/docs/BACKEND_PROCESS_MANIFEST.md +6 -6
- package/docs/CAPABILITIES.md +2 -3
- package/docs/CHECKLIST_IMPLEMENTACAO.md +4 -4
- package/docs/CORE_UPGRADE.md +2 -2
- package/docs/FRONTEND_API.md +20 -23
- package/docs/FRONTEND_CODE_FIRST.md +35 -0
- package/docs/FRONTEND_PATTERNS.md +13 -15
- package/docs/METADATA_CRUD_UI.md +1 -1
- package/docs/PORTAL_COCKPIT_PATTERNS.md +10 -145
- package/docs/REACTIVE_DOMAIN_FORMULAS.md +2 -2
- package/docs/releases/0.6.0.md +23 -0
- package/package.json +1 -1
- package/schemas/central.app.schema.json +2 -16
- package/src/conformance.js +42 -106
- package/src/index.js +4 -28
- package/src/render.js +4 -30
- package/templates/_base/README.md +7 -6
- package/templates/_base/backend/package.json +1 -1
- package/templates/_base/central.app.json +4 -9
- package/templates/_base/frontend/package.json +1 -1
- package/templates/_base/frontend/src/app/app.tsx +25 -0
- package/templates/_base/frontend/src/app/navigation.ts +5 -0
- package/templates/_base/frontend/src/app/routes.tsx +6 -0
- package/templates/_base/frontend/src/app/theme.ts +8 -0
- package/templates/_base/frontend/src/components/gitkeep +1 -0
- package/templates/_base/frontend/src/features/gitkeep +1 -0
- package/templates/_base/frontend/src/layouts/gitkeep +1 -0
- package/templates/_base/frontend/src/main.tsx +3 -8
- package/templates/_base/frontend/src/pages/HomePage.tsx +25 -0
- package/templates/_base/frontend/tsconfig.json +1 -1
- package/templates/_base/package.json +1 -1
- package/docs/CONNECTORS_AND_INTEGRATIONS.md +0 -66
- package/docs/FRONTEND_MANIFEST_REFERENCE.md +0 -487
- package/templates/_base/backend/src/integrations/gitkeep +0 -0
- package/templates/_base/frontend/central.ui.json +0 -58
- package/templates/_base/frontend/src/collections/gitkeep +0 -0
- package/templates/_base/frontend/src/dashboards/gitkeep +0 -0
- package/templates/_base/frontend/src/documents/gitkeep +0 -0
- package/templates/_base/frontend/src/overrides/gitkeep +0 -0
- package/templates/_base/frontend/src/pipelines/gitkeep +0 -0
- package/templates/basic/backend/src/models/Pessoa.js +0 -21
- package/templates/basic/frontend/central.ui.json +0 -8
- package/templates/documentos-fiscais/backend/central.config.js +0 -32
- package/templates/documentos-fiscais/backend/src/models/DocumentoFiscal.js +0 -23
- package/templates/documentos-fiscais/frontend/central.ui.json +0 -16
- package/templates/multi-moedas/backend/central.config.js +0 -32
- package/templates/multi-moedas/backend/src/models/Cotacao.js +0 -23
- package/templates/multi-moedas/backend/src/models/Moeda.js +0 -15
- package/templates/multi-moedas/frontend/central.ui.json +0 -11
- package/templates/omie-sidecar/backend/central.config.js +0 -33
- package/templates/omie-sidecar/backend/src/mappings/pessoa-cliente.js +0 -20
- package/templates/omie-sidecar/backend/src/models/Pessoa.js +0 -24
- package/templates/omie-sidecar/backend/src/triggers/Pessoa.js +0 -14
- package/templates/omie-sidecar/frontend/central.ui.json +0 -8
- package/templates/pedidos-marketplace/backend/central.config.js +0 -32
- package/templates/pedidos-marketplace/backend/src/models/Pedido.js +0 -22
- package/templates/pedidos-marketplace/backend/src/models/Produto.js +0 -16
- package/templates/pedidos-marketplace/frontend/central.ui.json +0 -10
- package/templates/servicos-prestados/backend/central.config.js +0 -32
- package/templates/servicos-prestados/backend/src/models/Cliente.js +0 -15
- package/templates/servicos-prestados/backend/src/models/ServicoPrestado.js +0 -22
- package/templates/servicos-prestados/frontend/central.ui.json +0 -10
- package/templates/servicos-tomados/backend/central.config.js +0 -32
- package/templates/servicos-tomados/backend/src/models/Pessoa.js +0 -15
- package/templates/servicos-tomados/backend/src/models/Servico.js +0 -22
- 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":
|
|
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":
|
|
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.
|
|
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.
|
|
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 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import app from "
|
|
3
|
-
import ui from "../central.ui.json";
|
|
1
|
+
import { startOonApp } from "@oondemand/oon-core-front";
|
|
2
|
+
import { app } from "./app/app";
|
|
4
3
|
|
|
5
|
-
|
|
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
|
+
}
|
|
@@ -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.
|