Pular para o conteúdo principal

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ê:

  1. Possui uma conta ativa na StackSpot;

  2. Tem permissão de Account Holder ou Account Admin para acessar todas as Connection Interfaces da conta;

  3. Instalou o STK CLI;

  4. Está autenticado no STK CLI:

    stk login
    stk exit workspace

Como usar

Execução

  1. No diretório do seu projeto, execute:

    stk run action stackspot-core/stackspot-connection-interface-exporter
  2. A Action iniciará automaticamente o processo de exportação.

  3. 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 01HQM9FAM9842VJ4BTF5P58ARE
    2026-04-24 11:03:38,721 - INFO - ## 1 de 7. Processando Connection Interfaces bucket-hello-word
    2026-04-24 11:03:40,145 - INFO - ## 2 de 7. Processando Connection Interfaces eks-operation
    ...
  4. 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 /output antes 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 (APP para aplicações, SHARED_INFRA para 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
}
]
}
}
]
}
Dica de debug

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