Exportar Connection Interfaces da StackSpot
Nesta página, você encontra os passos para exportar as Connection Interfaces da sua conta StackSpot.
A Action StackSpot Connection Interface Exporter permite exportar todas as Connection Interfaces configuradas em sua conta da StackSpot. Você pode fazer backup de suas Connection Interfaces, analisar a configuração entre Workspaces ou migrar suas conexões.
Use esta Action para manter um histórico seguro e estruturado de todas as suas Connection Interfaces.
Pré-requisitos
Antes de começar, certifique-se de que você:
-
Possui uma conta ativa na StackSpot;
-
Tem permissão de Account Holder ou Account Admin para acessar todas as Connection Interfaces da conta;
-
Instalou o STK CLI;
-
Está autenticado no STK CLI:
stk loginstk exit workspace
Como usar
Execução
-
No diretório do seu projeto, execute:
stk run action stackspot-core/stackspot-connection-interface-exporter -
A Action iniciará automaticamente o processo de exportação.
-
Confira o progresso na tela, com informações sobre cada workspace sendo processado:
2026-04-24 11:03:37,636 - INFO - ## 69 de 1042. Processando workspace 01HQM9FAM9842VJ4BTF5P58ARE2026-04-24 11:03:38,721 - INFO - ## 1 de 7. Processando Connection Interfaces bucket-hello-word2026-04-24 11:03:40,145 - INFO - ## 2 de 7. Processando Connection Interfaces eks-operation... -
Os arquivos serão salvos no diretório
output/dentro da pasta onde você executou o comando.
Idempotência
A Action implementa um mecanismo de segurança para evitar reprocessamento. A ação sempre busca todos os workspaces da conta e começa a processar as Connection Interfaces para cada um deles. Sempre que termina de processar um workspace, salva um arquivo com um nome padrão na pasta output/ no diretório em que foi executado o comando.
Como funciona:
- Na primeira execução, todas as Connection Interfaces de todos os Workspaces são exportadas.
- Se ocorrer um erro durante a execução, você pode reexecutar a Action normalmente. Ela pulará automaticamente todos os workspaces que já tiverem arquivos salvos em
/output, economizando tempo e recursos. - Apenas novos Workspaces ou aqueles sem arquivo gerado serão processados.
- Para reprocessar tudo do zero: Delete a pasta
/outputantes de executar novamente. Isso removerá todos os arquivos salvos e forçará o reprocessamento completo de todos os workspaces.
Estrutura dos arquivos exportados
Os arquivos exportados são organizados no diretório output/ com um arquivo JSON por workspace. O diretório output/ será criado automaticamente no diretório em que você executou o comando stk run action.
Nomeação dos arquivos
Cada arquivo segue o padrão:
workspace_{workspaceId}_{nomeSanitizado}.json
Exemplo:
output/
├── workspace_01J8JJ98MD68VSP5HF2WXN53H0_idp.json
├── workspace_01HQM9FAM9842VJ4BTF5P58ARE_cli-eng.json
├── workspace_01HJ16VY5V95XEQ4KD4DC90DVW_Front.json
└── workspace_01J4MC0FC1VF3SGAEE23FKQPC6_chiaretto-workspace.json
Schema do arquivo JSON
Cada arquivo JSON contém a estrutura completa do Workspace e suas Connection Interfaces:
{
"id": "workspace-id-único",
"name": "nome-do-workspace",
"connectionInterfaces": [
{
"connectionInterfaceId": "identificador-da-interface",
"slug": "slug-da-interface",
"automaticallyGenerated": false,
"sharedInfraId": "id-opcional-da-infraestrutura-compartilhada",
"applicationId": null,
"targets": [
{
"targetId": "id-do-recurso-alvo",
"targetType": "APP|SHARED_INFRA",
"environment": {
"id": "id-do-ambiente",
"name": "nome-do-ambiente",
"description": "descricao-do-ambiente",
"isProductive": true
},
"name": "nome-do-recurso",
"workspaceId": "workspace-id-do-recurso"
}
],
"attributesByEnv": [
{
"environment": {
"id": "id-do-ambiente",
"name": "nome-do-ambiente",
"description": "descricao-do-ambiente",
"isProductive": true
},
"attributes": [
{
"key": "nome-do-atributo",
"value": "valor-do-atributo",
"sensitive": "False|True"
}
]
}
],
"type": {
"typeId": "id-do-tipo-de-conexao",
"slug": "slug-do-tipo",
"output": [
{
"name": "nome-da-saida",
"type": "STRING|NUMBER|OBJECT",
"sensitive": false
}
]
}
}
]
}
Detalhes dos campos
Workspace
id: identificador único do Workspace na StackSpot.name: nome do Workspace.
Connection Interface
connectionInterfaceId: identificador único da Connection Interface.slug: identificador textual amigável da Connection Interface.automaticallyGenerated: indica se a interface foi gerada automaticamente (true) ou configurada manualmente (false).sharedInfraId: ID da infraestrutura compartilhada associada (se aplicável).applicationId: ID da aplicação associada (se aplicável).
Targets (Alvo)
targetId: identificador do recurso que utiliza a Connection Interface.targetType: Tipo do recurso (APPpara aplicações,SHARED_INFRApara Infraestruturas Compartilhadas).environment: objeto contendo informações do ambiente:id: identificador do ambiente.name: nome do ambiente.description: descrição do ambiente.isProductive: boolean indicando se é um ambiente produtivo.
name: nome do recurso alvo.workspaceId: Workspace do recurso alvo.
Attributes By Environment (Atributos por Ambiente)
environment: objeto contendo informações do ambiente:id: identificador do ambiente.name: nome do ambiente.description: descrição do ambiente.isProductive: boolean indicando se é um ambiente produtivo.
attributes: lista de atributos de configuração, cada um com:key: nome do atributo (ex: "bucket_name", "region", "api_key").value: valor do atributo.sensitive: indica se o valor é sensível (credenciais, tokens, etc.).
Type (Tipo de Conexão)
typeId: identificador único do tipo de conexão.slug: slug do tipo (ex: "aws-s3-conn", "aws-eks-conn", "aws-rds-conn").output: define os atributos que esta Connection Interface exporta:name: nome do atributo exportado.type: tipo de dado (STRING, NUMBER, OBJECT, etc.).sensitive: se for um valor sensível.
Exemplo completo
Confira um exemplo real de um arquivo exportado com as Connection Interfaces em uso:
{
"id": "01J8JJ98MD68VSP5HF2WXN53H0",
"name": "idp",
"connectionInterfaces": [
{
"connectionInterfaceId": "bucket-hello-word",
"slug": "bucket-hello-word",
"automaticallyGenerated": true,
"sharedInfraId": "01JA600D0EJ3ZMZEAPJR747VZG",
"applicationId": null,
"targets": [
{
"targetId": "01J8N92SDSRFNF7Q790003CVMX",
"targetType": "SHARED_INFRA",
"environment": {
"id": "01HE68EQV55FDN5095AHAS84BN",
"name": "dev",
"description": "Environment de desenvolvimento",
"isProductive": false
},
"name": null,
"workspaceId": null
}
],
"attributesByEnv": [
{
"environment": {
"id": "01HNDPMW1876RHW0XJGS3A8MCN",
"name": "prod",
"description": "Environment de produção",
"isProductive": true
},
"attributes": [
{
"key": "arn",
"value": "arn:aws:s3:::300543077521-hello-world-v1",
"sensitive": "False"
},
{
"key": "bucket_name",
"value": "300543077521-hello-world-v1",
"sensitive": "False"
}
]
}
],
"type": {
"typeId": "01GSAJ7M83WD35TNHTTMQJD8P7",
"slug": "aws-s3-conn",
"output": [
{
"name": "arn",
"type": "STRING",
"sensitive": false
},
{
"name": "bucket_name",
"type": "STRING",
"sensitive": false
}
]
}
},
{
"connectionInterfaceId": "eks-operation",
"slug": "eks-operation",
"automaticallyGenerated": false,
"sharedInfraId": null,
"applicationId": null,
"targets": [],
"attributesByEnv": [
{
"environmentId": "01HNDPMW1876RHW0XJGS3A8MCN",
"attributes": [
{
"key": "cluster_name",
"value": "stackspot",
"sensitive": "False"
},
{
"key": "region",
"value": "sa-east-1",
"sensitive": "False"
}
]
}
],
"type": {
"typeId": "01GSAJ7M83WD35TNHTTMQJD8P2",
"slug": "aws-eks-conn",
"output": [
{
"name": "cluster_name",
"type": "STRING",
"sensitive": false
},
{
"name": "region",
"type": "STRING",
"sensitive": false
}
]
}
}
]
}
Se ocorrer algum erro e quiser saber mais detalhes, execute o comando a seguir com a flag --debug ou --trace:
stk run action stackspot-core/stackspot-connection-interface-exporter --debug
Isso gera um arquivo de log na raiz do comando. É só enviar para o suporte da StackSpot analisar.
Você também pode consultar o log geral:
cat $HOME/.stk/logs/logs.log