gb/setup_zitadel.sh

194 lines
6.3 KiB
Bash
Executable file

#!/bin/bash
# Script para configurar domínios, organizações e usuários no Zitadel via API
# Uso: ./setup_zitadel.sh <PAT_TOKEN>
PAT_TOKEN=$1
INSTANCE_ID="367250249682552560"
BASE_URL="http://10.157.134.240:8080"
if [ -z "$PAT_TOKEN" ]; then
echo "ERRO: É necessário fornecer um PAT token válido"
echo "Uso: $0 <PAT_TOKEN>"
echo ""
echo "Para obter um PAT token, acesse:"
echo "https://login.pragmatismo.com.br/ui/console"
echo "Login: admin / Admin123!"
echo "Depois vá em Profile -> Personal Access Tokens -> New"
exit 1
fi
echo "=== Configuração do Zitadel via API ==="
echo ""
# 1. Adicionar domínios à instância
echo "1. Adicionando domínios à instância..."
echo " a) Adicionando domínio pragmatismo.com.br..."
curl -s -X PUT "$BASE_URL/management/v1/instances/$INSTANCE_ID/domains/pragmatismo.com.br" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"isVerified": true,
"isPrimary": true,
"generator": false
}' | python3 -m json.tool
echo ""
echo " b) Adicionando domínio salesianos.br..."
curl -s -X PUT "$BASE_URL/management/v1/instances/$INSTANCE_ID/domains/salesianos.br" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"isVerified": true,
"isPrimary": false,
"generator": false
}' | python3 -m json.tool
echo ""
# 2. Criar organização Pragmatismo
echo "2. Criando organização Pragmatismo..."
PRAGMATISMO_ORG_RESPONSE=$(curl -s -X POST "$BASE_URL/management/v1/orgs" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"name": "Pragmatismo"
}')
echo "$PRAGMATISMO_ORG_RESPONSE" | python3 -m json.tool
PRAGMATISMO_ORG_ID=$(echo "$PRAGMATISMO_ORG_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin)['id'])")
echo " Org ID: $PRAGMATISMO_ORG_ID"
echo ""
# 3. Adicionar domínio pragmatismo.com.br à organização Pragmatismo
echo "3. Adicionando domínio pragmatismo.com.br à organização Pragmatismo..."
curl -s -X POST "$BASE_URL/management/v1/orgs/$PRAGMATISMO_ORG_ID/domains" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"domain": "pragmatismo.com.br",
"isVerified": true,
"isPrimary": true
}' | python3 -m json.tool
echo ""
# 4. Criar organização Salesianos
echo "4. Criando organização Salesianos..."
SALESIANOS_ORG_RESPONSE=$(curl -s -X POST "$BASE_URL/management/v1/orgs" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"name": "Salesianos"
}')
echo "$SALESIANOS_ORG_RESPONSE" | python3 -m json.tool
SALESIANOS_ORG_ID=$(echo "$SALESIANOS_ORG_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin)['id'])")
echo " Org ID: $SALESIANOS_ORG_ID"
echo ""
# 5. Adicionar domínio salesianos.br à organização Salesianos
echo "5. Adicionando domínio salesianos.br à organização Salesianos..."
curl -s -X POST "$BASE_URL/management/v1/orgs/$SALESIANOS_ORG_ID/domains" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"domain": "salesianos.br",
"isVerified": true,
"isPrimary": true
}' | python3 -m json.tool
echo ""
# 6. Criar usuário rodriguez@pragmatismo.com.br
echo "6. Criando usuário rodriguez@pragmatismo.com.br..."
RODRIGUEZ_USER_RESPONSE=$(curl -s -X POST "$BASE_URL/management/v1/users" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"userName": "rodriguez",
"email": "rodriguez@pragmatismo.com.br",
"profile": {
"firstName": "Rodriguez",
"lastName": "Pragmatismo"
},
"isEmailVerified": true,
"password": "imago10$",
"passwordChangeRequired": false
}')
echo "$RODRIGUEZ_USER_RESPONSE" | python3 -m json.tool
RODRIGUEZ_USER_ID=$(echo "$RODRIGUEZ_USER_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin)['userId'])")
echo " User ID: $RODRIGUEZ_USER_ID"
echo ""
# 7. Adicionar rodriguez à organização Pragmatismo com roles
echo "7. Adicionando rodriguez à organização Pragmatismo com roles..."
curl -s -X POST "$BASE_URL/management/v1/orgs/$PRAGMATISMO_ORG_ID/members/$RODRIGUEZ_USER_ID" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"roles": ["ORG_OWNER"]
}' | python3 -m json.tool
echo ""
# 8. Criar usuário marcelo.alves@salesianos.br
echo "8. Criando usuário marcelo.alves@salesianos.br..."
MARCELO_USER_RESPONSE=$(curl -s -X POST "$BASE_URL/management/v1/users" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"userName": "marcelo.alves",
"email": "marcelo.alves@salesianos.br",
"profile": {
"firstName": "Marcelo",
"lastName": "Alves"
},
"isEmailVerified": true,
"password": "imago10$",
"passwordChangeRequired": false
}')
echo "$MARCELO_USER_RESPONSE" | python3 -m json.tool
MARCELO_USER_ID=$(echo "$MARCELO_USER_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin)['userId'])")
echo " User ID: $MARCELO_USER_ID"
echo ""
# 9. Adicionar marcelo à organização Salesianos com roles
echo "9. Adicionando marcelo à organização Salesianos com roles..."
curl -s -X POST "$BASE_URL/management/v1/orgs/$SALESIANOS_ORG_ID/members/$MARCELO_USER_ID" \
-H "Authorization: Bearer $PAT_TOKEN" \
-H "Host: 10.157.134.240" \
-H "Content-Type: application/json" \
-d '{
"roles": ["ORG_OWNER"]
}' | python3 -m json.tool
echo ""
echo "=== Configuração concluída! ==="
echo ""
echo "Resumo:"
echo "- Domínios adicionados: pragmatismo.com.br, salesianos.br"
echo "- Organização Pragmatismo criada (ID: $PRAGMATISMO_ORG_ID)"
echo "- Organização Salesianos criada (ID: $SALESIANOS_ORG_ID)"
echo "- Usuário rodriguez@pragmatismo.com.br criado (ID: $RODRIGUEZ_USER_ID)"
echo "- Usuário marcelo.alves@salesianos.br criado (ID: $MARCELO_USER_ID)"
echo ""
echo "Senha para ambos os usuários: imago10$"
echo ""
echo "Para fazer login, acesse: https://login.pragmatismo.com.br/ui/console"