BACKEND: - Implementa [CredentialsHandler](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/api/handlers/credentials_handler.go:9:0-11:1) e rotas /api/v1/system/credentials para gestão segura de chaves. - Adiciona criptografia RSA no [CredentialsService](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/services/credentials_service.go:17:0-22:1) para proteger chaves de API (Stripe, Cloudflare, etc). - Automatiza geração de pares de chaves RSA no .env via script. FRONTEND: - Refatora /dashboard/backoffice organizando em Abas: Dashboard, Planos, Stripe e Sistema. - Implementa CRUD completo para gestão de Planos (criar, editar, remover). - Adiciona visualização de status do Stripe e botão para limpar cache Cloudflare. - Ajusta formatação de data nos logs para fuso horário America/Sao_Paulo. - Atualiza pi.ts para suportar novos endpoints de planos e credenciais.
61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"crypto/rsa"
|
|
"crypto/x509"
|
|
"encoding/base64"
|
|
"encoding/pem"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
// Generate Key
|
|
privateKey, err := rsa.GenerateKey(rand.Reader, 2048)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// Validate Key
|
|
if err := privateKey.Validate(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// Dump Private Key
|
|
privDER := x509.MarshalPKCS1PrivateKey(privateKey)
|
|
privBlock := pem.Block{
|
|
Type: "RSA PRIVATE KEY",
|
|
Bytes: privDER,
|
|
}
|
|
privPEM := pem.EncodeToMemory(&privBlock)
|
|
privBase64 := base64.StdEncoding.EncodeToString(privPEM)
|
|
|
|
// Dump Public Key
|
|
pubDER, err := x509.MarshalPKIXPublicKey(&privateKey.PublicKey)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
pubBlock := pem.Block{
|
|
Type: "PUBLIC KEY",
|
|
Bytes: pubDER,
|
|
}
|
|
pubPEM := pem.EncodeToMemory(&pubBlock)
|
|
pubBase64 := base64.StdEncoding.EncodeToString(pubPEM)
|
|
|
|
// Append to .env
|
|
f, err := os.OpenFile(".env", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer f.Close()
|
|
|
|
if _, err := f.WriteString(fmt.Sprintf("\nRSA_PRIVATE_KEY_BASE64=%s\n", privBase64)); err != nil {
|
|
panic(err)
|
|
}
|
|
if _, err := f.WriteString(fmt.Sprintf("RSA_PUBLIC_KEY_BASE64=%s\n", pubBase64)); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println("✅ Keys appended to .env successfully")
|
|
}
|