Importar e exportar apps
Pacotes .keplinapp — levar uma app inteira para outra instalação, com ou sem segredos, e o que viaja em cada modo.
Uma app do Keplin cabe num ficheiro. O pacote .keplinapp leva tudo o
que a app é — o modelo de dados, os ecrãs, as APIs, os scripts, os
relatórios, os workflows, o tema, as traduções, os roles e as permissões —
pronto a instalar noutra instalação da plataforma. É a ferramenta para três
gestos:
- Passar de ambiente: desenvolver numa instalação e instalar na de produção do cliente.
- Entregar: enviar a app a quem a vai correr noutro servidor.
- Guardar: um pacote arquivado é uma cópia do desenho da app, que se reimporta quando for preciso.
A decisão importante está nos segredos: um pacote pode viajar limpo (recomendado) ou completo e cifrado com uma passphrase. As duas secções seguintes explicam o gesto; a tabela no meio diz exactamente o que segue em cada modo.
Exportar uma app
- Abre a app e clica no botão de engrenagem Definições da app, depois em Geral.
- Desce até ao painel Levar esta app — "Um ficheiro .keplinapp para instalar noutro lado." — e clica em Exportar.

Abre-se o diálogo Exportar app: "Gera um pacote
.keplinappcom tudo o que a app é — APIs, scripts, modelo de dados, enums e agendamentos — pronto a importar noutra instância."Em Segredos, escolhe um dos dois modos:
Modo O que significa Sem segredos (recomendado) "As ligações dos datasources e os secrets seguem por preencher, e as CONTAS dos utilizadores da app ficam nesta instalação — viaja a aplicação, com os roles e as permissões, não quem a usa." É o modo certo para entregar a app a terceiros. Com segredos, protegidos por passphrase "Os valores seguem cifrados com a passphrase que definires aqui; será pedida ao importar. É uma cópia COMPLETA: leva também as contas e o que lhes pertence." É o modo certo para mudar a app de servidor sem perder nada. Se escolheste o modo protegido, define a Passphrase (mínimo 8 caracteres).
Clica em Exportar pacote. O browser descarrega o ficheiro
gestao-clientes.keplinappe aparece a confirmação "Pacote exportado."

Atenção
"Sem a passphrase, os segredos do pacote são irrecuperáveis." Não há recuperação nem pedido de ajuda que valha: quem perde a passphrase fica com um pacote cujos segredos ninguém volta a ler. Guarda-a num gestor de palavras-passe, separada do ficheiro.
O que viaja no pacote
O pacote distingue três coisas: a aplicação (viaja sempre), o que é desta instalação (nunca viaja) e os dados das pessoas (só viajam no modo protegido).
| Conteúdo | Sem segredos | Com passphrase |
|---|---|---|
| Modelo de dados, ecrãs, APIs, scripts, relatórios, workflows, enums | Viaja | Viaja |
| Tema, traduções, roles e permissões | Viaja | Viaja |
| Agendamentos | Viajam desligados | Viajam desligados |
| Ligações a datasources e armazenamentos | A configuração fica por preencher | Viaja, cifrada com a passphrase |
| Secrets da app | Só as chaves, "por configurar" no destino | Viajam, cifrados |
| Dados das bases de dados internas da app | Só a estrutura das tabelas | Dados completos |
| Contas dos utilizadores da app, caixa de notificações, ficheiros enviados, processos a meio | Fica tudo nesta instalação | Viaja tudo |
| Histórico de execuções e telemetria | Fica | Fica |
| API keys | Ficam | Ficam |
| Publicação (hosts e versões servidas) | Fica | Fica |
Nota
Os agendamentos chegam sempre desligados ao destino — mesmo num pacote completo. É de propósito: no destino os datasources ainda não foram confirmados, e ninguém quer um processo automático a correr contra ligações por validar. Liga-os um a um, quando estiveres pronto.
Importar um pacote
A importação vive no mesmo modal da criação:
- Na barra lateral, clica em Nova app e escolhe o cartão Importar pacote (só administradores).
- Em Pacote, clica na área "Clica para escolher o ficheiro .keplinapp" e selecciona o ficheiro.
- Slug (opcional): deixa vazio para manter o slug original do pacote — "Obrigatório apenas se já existir uma app com o slug original." É assim que instalas uma segunda cópia da mesma app, lado a lado.
- Passphrase (se aplicável): "só para pacotes exportados com segredos". Um pacote limpo importa-se sem passphrase nenhuma.
- Clica em Importar. No fim aparece 'App "Gestão de Clientes" importada.' e a app abre-se, já na barra lateral.


Detalhes que valem a pena saber:
- O pacote pode ter no máximo 200 MB.
- Um pacote exportado numa versão antiga do Keplin é actualizado automaticamente ao entrar. Um pacote de uma versão mais recente é recusado com um pedido para actualizar a plataforma primeiro.
- Se algo falhar a meio, nada fica instalado — a importação limpa tudo o que tinha começado a criar e mostra o erro. Nunca fica meia-app.
Depois de importar
O próprio modal deixa o lembrete: "Depois de importar: confirma as ligações dos datasources e os secrets (se o pacote veio sem segredos ficam por preencher) e liga os agendamentos que quiseres — entram sempre desligados." Na prática, a lista de chegada é esta:
- Datasources — abre cada um e confirma (ou preenche) a ligação; num pacote sem segredos vêm por configurar.
- Secrets — as chaves existem, os valores estão vazios; preenche-os.
- Agendamentos — liga os que quiseres, um a um.
- Contas — num pacote sem segredos não vêm utilizadores; cria-os nas definições da app (Utilizadores da app) ou liga o registo público.
- Publicação e API keys — os hosts e as chaves são sempre desta instalação; publica a app e emite chaves novas para os consumidores.
Erros comuns
| Mensagem | O que se passa | O que fazer |
|---|---|---|
| "O ficheiro não é um pacote .keplinapp válido." | O ficheiro está corrompido ou não é um pacote. | Volta a exportar na origem e usa o ficheiro tal como foi descarregado. |
| "Este pacote foi exportado com segredos — indica a passphrase." | O pacote é do modo protegido e o campo ficou vazio. | Preenche a Passphrase e repete. |
| "Passphrase errada — os segredos do pacote não decifram." | A passphrase não é a da exportação. | Confirma com quem exportou; sem a passphrase certa o pacote não entra. |
| 'Já existe uma app com o slug "…" — escolhe outro slug para a importação.' | O slug original já está ocupado nesta instalação. | Preenche Slug (opcional) com um identificador novo. |
| "Pacote demasiado grande (máx 200 MB)." | O ficheiro passa o limite. | Exporta sem segredos (os dados ficam de fora) ou reduz os ficheiros da app na origem. |
| "O pacote é de uma versão mais recente do Keplin…" | A instalação de destino está desactualizada. | Actualiza a plataforma de destino e importa outra vez. |