Repository navigation
Expand file tree
/
Copy pathDOCUMENTACAO_PROJETO.html
More file actions
59 lines (57 loc) · 11.8 KB
/
Copy pathDOCUMENTACAO_PROJETO.html
File metadata and controls
59 lines (57 loc) · 11.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>ProjectWizard — Documentação do Projeto</title>
<style>
:root{color-scheme:dark;--bg:#0b1020;--panel:#131b31;--text:#e7ecf7;--muted:#a9b4ca;--brand:#6ee7d8;--line:#2b3858;--code:#09101d}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,sans-serif}header,main,footer{max-width:1180px;margin:auto;padding:28px}header{padding-top:64px}h1{font-size:clamp(2.2rem,6vw,4rem);line-height:1.05;margin:0}h2{margin-top:3rem;border-bottom:1px solid var(--line);padding-bottom:.4rem}h3{color:var(--brand)}a{color:var(--brand)}.lead{color:var(--muted);font-size:1.2rem;max-width:820px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.metric{font-size:2rem;color:var(--brand);font-weight:700}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px;background:var(--panel)}th,td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--brand)}code,pre{background:var(--code);border:1px solid var(--line);border-radius:6px}code{padding:.1rem .35rem}pre{padding:16px;overflow:auto}.flow{font-family:ui-monospace,monospace;background:var(--panel);padding:18px;border-left:4px solid var(--brand)}nav{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0}footer{color:var(--muted)}
</style>
</head>
<body>
<header>
<h1>ProjectWizard</h1>
<p class="lead">IDE desktop JavaFX aberta, criada para construir e evoluir wizards de geração de projetos. O Cloud Wizard é seu primeiro subprojeto oficial, proprietário e pago, com nove providers públicos oficiais.</p>
<nav><a href="#arquitetura">Arquitetura</a><a href="#cloud">Cloud Wizard</a><a href="#templates">Templates</a><a href="#build">Build</a><a href="#api">API</a><a href="RELATORIO_ALTERACOES.md">Alterações</a></nav>
<div class="cards"><div class="card"><div class="metric">9</div>providers oficiais</div><div class="card"><div class="metric">16</div>capabilities portáveis</div><div class="card"><div class="metric">144</div>bindings oficiais</div><div class="card"><div class="metric">12</div>templates prontos</div></div>
</header>
<main>
<section id="visao"><h2>Visão geral</h2><p>O aplicativo principal organiza criação, abertura e trabalho em projetos. A interface reúne editor com realce de sintaxe, explorador de pacotes, terminal, Git, backups, preferências, dashboards e painéis auxiliares. Serviços de persistência e backup protegem o estado local; o ciclo de vida central encerra processos e executores ao trocar ou fechar projetos.</p><p>O repositório contém dois builds Maven independentes: a IDE na raiz e a biblioteca/gerador em <code>cloudwizard/</code>. O script <code>build-all.sh</code> valida ambos.</p></section>
<section id="arquitetura"><h2>Arquitetura do ProjectWizard</h2><div class="flow">JavaFX views → navegação/workspace → serviços → sistema de arquivos, SQLite, Git e processos<br>Templates visuais → wizards → geradores de projetos</div><div class="cards"><div class="card"><h3>core</h3>Contexto da aplicação, constantes, versão e navegação.</div><div class="card"><h3>view</h3>Janela, painéis, editor, explorer, dashboard e telas do fluxo de projetos.</div><div class="card"><h3>service</h3>Persistência, backups, arquivos, projetos, PDF, Git e diálogos.</div><div class="card"><h3>workspace</h3>Composição da área de desenvolvimento e gestão de seu ciclo de vida.</div></div></section>
<section id="cloud"><h2>Cloud Wizard</h2><p><strong>Produto proprietário, comercial e pago</strong>, regido por licença separada. O domínio declara a intenção por anotações. O leitor produz um modelo independente de fornecedor; o motor de regras resolve cada capability usando adaptadores registrados pela SPI do Java. O resultado é um <code>ResolutionPlan</code>.</p><div class="flow">anotações → modelo unificado → rules engine → AWS | Google | Azure | OCI | IBM | Alibaba | Tencent | Huawei | Yandex</div>
<h3>Matriz unificada — cinco providers ocidentais</h3><div class="table-wrap"><table><thead><tr><th>Capability / anotação</th><th>AWS</th><th>Google Cloud</th><th>Microsoft Azure</th><th>Oracle Cloud</th><th>IBM Cloud</th></tr></thead><tbody>
<tr><td>OBJECT_STORAGE<br><code>@CloudStorage</code></td><td>Amazon S3</td><td>Cloud Storage</td><td>Blob Storage</td><td>OCI Object Storage</td><td>Cloud Object Storage</td></tr>
<tr><td>SERVERLESS_FUNCTION<br><code>@CloudFunction</code></td><td>Lambda</td><td>Cloud Functions</td><td>Azure Functions</td><td>OCI Functions</td><td>Code Engine</td></tr>
<tr><td>MANAGED_SQL<br><code>@CloudDatabase</code></td><td>RDS</td><td>Cloud SQL</td><td>Azure SQL Database</td><td>Autonomous Database</td><td>Databases for PostgreSQL</td></tr>
<tr><td>NOSQL_DATABASE<br><code>@CloudNoSqlDatabase</code></td><td>DynamoDB</td><td>Firestore</td><td>Cosmos DB</td><td>NoSQL Database Cloud Service</td><td>Cloudant</td></tr>
<tr><td>MESSAGE_QUEUE<br><code>@CloudQueue</code></td><td>SQS</td><td>Pub/Sub</td><td>Service Bus</td><td>OCI Queue</td><td>Event Streams</td></tr>
<tr><td>SECRET_MANAGER<br><code>@CloudSecret</code></td><td>Secrets Manager</td><td>Secret Manager</td><td>Key Vault</td><td>OCI Vault</td><td>Secrets Manager</td></tr>
<tr><td>OBSERVABILITY<br><code>@CloudObservability</code></td><td>CloudWatch</td><td>Cloud Operations</td><td>Azure Monitor</td><td>OCI Monitoring</td><td>Cloud Monitoring</td></tr>
<tr><td>CONTAINER_ORCHESTRATION<br><code>@CloudContainer</code></td><td>EKS</td><td>GKE</td><td>AKS</td><td>OKE</td><td>Kubernetes Service</td></tr>
<tr><td>IDENTITY_ACCESS_MANAGEMENT<br><code>@CloudIdentity</code></td><td>AWS IAM</td><td>Cloud IAM</td><td>Azure RBAC + Entra ID</td><td>OCI IAM</td><td>Cloud IAM</td></tr>
<tr><td>API_GATEWAY<br><code>@CloudApiGateway</code></td><td>Amazon API Gateway</td><td>Google Cloud API Gateway</td><td>Azure API Management</td><td>OCI API Gateway</td><td>IBM API Connect</td></tr>
<tr><td>MANAGED_CACHE<br><code>@CloudCache</code></td><td>Amazon ElastiCache</td><td>Google Cloud Memorystore</td><td>Azure Managed Redis</td><td>OCI Cache</td><td>Databases for Redis</td></tr>
<tr><td>MANAGED_DNS<br><code>@CloudDns</code></td><td>Amazon Route 53</td><td>Google Cloud DNS</td><td>Azure DNS</td><td>OCI DNS and Traffic Management</td><td>Cloud DNS Services</td></tr>
<tr><td>MANAGED_LOAD_BALANCER<br><code>@CloudLoadBalancer</code></td><td>Elastic Load Balancing</td><td>Cloud Load Balancing</td><td>Azure Load Balancer</td><td>OCI Load Balancer</td><td>Load Balancer for VPC</td></tr>
<tr><td>CONTAINER_REGISTRY<br><code>@CloudContainerRegistry</code></td><td>Elastic Container Registry</td><td>Artifact Registry</td><td>Azure Container Registry</td><td>OCI Container Registry</td><td>Cloud Container Registry</td></tr>
<tr><td>KEY_MANAGEMENT<br><code>@CloudKeyManagement</code></td><td>AWS Key Management Service</td><td>Google Cloud KMS</td><td>Azure Key Vault Managed HSM</td><td>OCI Key Management Service</td><td>IBM Key Protect</td></tr>
<tr><td>CERTIFICATE_MANAGEMENT<br><code>@CloudCertificate</code></td><td>AWS Certificate Manager</td><td>Google Cloud Certificate Manager</td><td>Azure Key Vault Certificates</td><td>OCI Certificates</td><td>IBM Secrets Manager Certificates</td></tr>
</tbody></table></div><p>Alibaba Cloud, Tencent Cloud, Huawei Cloud e Yandex Cloud integram a mesma matriz oficial; seus 64 bindings estão detalhados na <a href="cloudwizard/assets/providers/PROVIDERS_CLOUD_PUBLICAS_ASIA.md">matriz operacional complementar</a>.</p><p><code>@CloudApplication</code> define aplicação e provedores; <code>@CloudRule</code> é o metadado das anotações especializadas; <code>@UnifiedCloudService</code> permanece como extensão genérica repetível.</p></section>
<section><h2>Modelo de negócios</h2><p>As nove clouds públicas oficiais formam a única matriz de referência mantida pelo produto. Outros nomes permanecem apenas no catálogo de descoberta, sem avaliação ativa. O documento <a href="cloudwizard/MODELO_NEGOCIOS.md">MODELO_NEGOCIOS.md</a> descreve planos, receitas, Provider Adapter Kit, OEM, marketplace e estados Community, Verified e Certified.</p></section>
<section id="templates"><h2>Templates do Cloud Wizard</h2><div class="table-wrap"><table><thead><tr><th>ID</th><th>Uso</th><th>ID</th><th>Uso</th></tr></thead><tbody>
<tr><td>minimal-storage</td><td>Objetos + IAM</td><td>static-site</td><td>Site estático observável</td></tr><tr><td>serverless-api</td><td>API serverless</td><td>portable-web-api</td><td>API em contêiner + SQL</td></tr><tr><td>event-driven</td><td>Serviço por eventos</td><td>data-platform</td><td>Plataforma de dados</td></tr><tr><td>microservice-kubernetes</td><td>Microsserviço Kubernetes</td><td>secure-file-processing</td><td>Arquivos protegidos</td></tr><tr><td>iot-backend</td><td>Backend IoT</td><td>batch-processing</td><td>Processamento em lote</td></tr><tr><td>multi-cloud-saas</td><td>Fundação SaaS</td><td>cloud-native-full</td><td>Todas as capabilities</td></tr>
</tbody></table></div><p>Arquivos de exemplo editáveis estão em <code>cloudwizard/templates/</code>. O catálogo Java valida IDs, imutabilidade e conjunto de capacidades.</p></section>
<section id="build"><h2>Build, execução e qualidade</h2><pre><code># Validar os dois projetos e atualizar os Javadocs
./build-all.sh
# Executar a IDE
mvn clean javafx:run
# Gerar projeto pelo Cloud Wizard
java -jar cloudwizard/target/cloudwizard-0.1.0-SNAPSHOT.jar \
/diretorio/de/saida meu-projeto cloud-native-full</code></pre><p>O Maven usa Java 21, JUnit Jupiter, Surefire e JaCoCo. O pacote principal é criado em <code>target/ProjectWizard-1.0.0.jar</code>. Diretórios <code>target</code> são produtos de build e não precisam ser versionados.</p></section>
<section id="api"><h2>Documentação de API e manutenção</h2><p>Todos os fontes Java possuem cabeçalho SPDX e documentação Javadoc de tipo ou pacote. O plugin Javadoc está ligado ao ciclo <code>verify</code> e publica:</p><ul><li><a href="javadoc/apidocs/index.html">API do ProjectWizard</a></li><li><a href="cloudwizard/javadoc/apidocs/index.html">API do Cloud Wizard</a></li></ul><p>Esta página, os dois READMEs e o <a href="RELATORIO_ALTERACOES.md">relatório permanente</a> formam a documentação viva e devem ser atualizados junto de mudanças futuras.</p></section>
<section><h2>Limites e próximos passos</h2><ul><li>Adicionar provisionadores como consumidores do plano resolvido, preservando o núcleo neutro.</li><li>Ampliar testes JavaFX para fluxos completos e processos externos.</li><li>Produzir distribuição nativa autocontida com <code>jpackage</code>.</li><li>Evoluir equivalências com regras semânticas: IAM, filas e bancos têm modelos diferentes entre fornecedores e não são intercambiáveis apenas pelo nome.</li></ul></section>
<section><h2>Catálogo de providers</h2><p>Um <a href="cloudwizard/assets/providers/README.md">asset reúne 88 nomes</a> em formato CSV. Somente AWS, Google Cloud, Microsoft Azure, Oracle Cloud, IBM Cloud, Alibaba Cloud, Tencent Cloud, Huawei Cloud e Yandex Cloud são referências oficiais <code>OFFICIAL_CORE</code>. Todos os demais estão como <code>DISCOVERY_ASSET</code>, <code>not-assessed</code> e <code>REQUIRES_VALIDATION</code>, sem equivalência atribuída.</p></section>
<section><h2>Providers oficiais asiáticos e eurasiático</h2><p>A <a href="cloudwizard/assets/providers/PROVIDERS_CLOUD_PUBLICAS_ASIA.md">matriz operacional complementar</a> registra Alibaba Cloud, Tencent Cloud, Huawei Cloud e Yandex Cloud com dezesseis capabilities, adapters, SPI e testes. A Yandex exige análise contínua de sanções, pagamentos, legislação e residência de dados.</p></section>
</main><footer>ProjectWizard — documentação viva, atualizada em 4 de agosto de 2026.</footer>
</body></html>