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:
Para executar esta Action, você precisa ser Account Holder ou Account Admin.
stk login
stk 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": "APPLICATION|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 (APPLICATIONpara 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.
pluginsInUse: lista de Plugins aplicados no recurso alvo relacionados a esta Connection Interface.- Se um plugin em
pluginsInUsetiverconnections.generatespreenchido, ele gera a Connection Interface. - Se tiver
connections.requirespreenchido, ele requer essa Connection Interface.
- Se um plugin em
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": "hello-s3-lambda-code",
"slug": "hello-s3-lambda-code",
"automaticallyGenerated": true,
"sharedInfraId": "01JA609KZMWN9AM16VC5KGPMZD",
"applicationId": null,
"targets": [
{
"targetId": "01JA609KZMWN9AM16VC5KGPMZD",
"targetType": "SHARED_INFRA",
"environment": {
"id": "01HNDPMW1876RHW0XJGS3A8MCN",
"name": "staging",
"description": "Staging environment",
"isProductive": false
},
"name": "hello-lambda",
"workspaceId": "01J8JJ98MD68VSP5HF2WXN53H0",
"pluginsInUse": [
{
"name": "idp-stg/core@0.0.1/s3-bucket",
"alias": "s3-bucket-source",
"pluginVersionId": "01JA5Z7H12GYD9D8N41R8CEYNF",
"stackVersionId": "01JA5Z8CDTG8BVWPV7ZPSTF9JX",
"connections": {
"requires": [],
"generates": [
{
"slug": "hello-s3-lambda-code",
"type": "aws-s3-conn",
"alias": "aws-s3-bucket-conn"
}
]
}
},
{
"name": "idp-stg/core@0.0.1/lambda-function-s3",
"alias": "lambda-function-s3-hello",
"pluginVersionId": "01JA5ZFYTNG93F5JNDRNE3Z8TV",
"stackVersionId": "01JA5Z8CDTG8BVWPV7ZPSTF9JX",
"connections": {
"requires": [
{
"slug": "hello-s3-lambda-code",
"type": "aws-s3-conn",
"alias": "s3-conn-source"
}
],
"generates": []
}
}
]
}
],
"attributesByEnv": [
{
"environment": {
"id": "01HNDPMW1876RHW0XJGS3A8MCN",
"name": "staging",
"description": "Staging environment",
"isProductive": false
},
"attributes": [
{
"key": "arn",
"value": "arn:aws:s3:::300543077521-hello-v1-lambda-code",
"sensitive": "False"
},
{
"key": "bucket_name",
"value": "300543077521-hello-v1-lambda-code",
"sensitive": "False"
}
]
}
],
"type": {
"typeId": "01GSAJ7M83WD35TNHTTMQJD8P7",
"slug": "aws-s3-conn",
"output": [
{
"name": "arn",
"type": "STRING",
"sensitive": false
},
{
"name": "bucket_name",
"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