From 8ae7fe8e57f37f236cbad02eadf014df49e77924 Mon Sep 17 00:00:00 2001 From: admtracksteel Date: Fri, 20 Mar 2026 19:50:55 +0000 Subject: [PATCH] Add: Service filter buttons --- Caddyfile | 20 + README.md | 92 +++ docker-compose.yml | 22 + index.html | 1895 ++++++++++++++++++++++++++++++++++++++++++++ keys.html | 1895 ++++++++++++++++++++++++++++++++++++++++++++ keys.json | 573 ++++++++++++++ 6 files changed, 4497 insertions(+) create mode 100644 Caddyfile create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 index.html create mode 100644 keys.html create mode 100644 keys.json diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..646a6c4 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,20 @@ +key.reifonas.cloud:80 { + root * /usr/share/caddy + + basic_auth /* { + tracksteel $2a$14$FrvxlSG4K58bnTitHVU.4OF8BGBKoedoF0a22LyzAMxuTjlrjKD8S + } + + file_server { + browse + } + + encode gzip + + header { + X-Content-Type-Options nosniff + X-Frame-Options DENY + X-XSS-Protection "1; mode=block" + Referrer-Policy strict-origin-when-cross-origin + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..edb5813 --- /dev/null +++ b/README.md @@ -0,0 +1,92 @@ +# VaultUI - Gerenciador de Credenciais + +Sistema web para administração segura de todas as suas credenciais, chaves, tokens, APIs e senhas. + +## Acesso + +- **URL:** https://key.reifonas.cloud +- **Usuário:** `tracksteel` +- **Senha:** `@@@Ke03Br;;;` + +## Estrutura + +``` +keys/ +├── keys.html # Interface do aplicativo +├── keys.json # Banco de dados das credenciais +├── Caddyfile # Configuração do servidor web +└── README.md # Este arquivo +``` + +## Funcionalidades + +- Autenticação segura (HTTP Basic Auth) +- Busca em tempo real +- Filtros por categoria e tipo de dado +- Botão de copiar para cada valor +- Toggle mostrar/ocultar valores +- CRUD completo (create, read, update, delete) +- Gerenciamento de credenciais pagas +- Lembrete de expiração (7 dias antes) +- Exportação de backup JSON +- Interface responsiva (mobile-friendly) +- API REST para integração com outros apps + +## Deploy no Coolify + +1. Crie um novo projeto no Coolify +2. Adicione um novo recurso "Static" ou "Docker" +3. Configure o repositório Git: + ``` + https://git.reifonas.cloud/tracksteel/keys.git + ``` +4. Configure a build command (se necessário) +5. Configure as variáveis de ambiente +6. Deploy! + +## Configuração do Caddy (Manual) + +Se precisar configurar manualmente: + +```bash +# Copie o Caddyfile para /etc/caddy/Caddyfile +# Edite as credenciais de autenticação se necessário + +# Reinicie o Caddy +sudo systemctl reload caddy +``` + +## Atualização de Credenciais + +Para adicionar/editar/remover credenciais: + +1. Faça login em https://key.reifonas.cloud +2. Use o botão "Novo" para adicionar +3. Use os ícones no card para editar ou excluir + +## API REST + +Outros apps podem acessar os dados via API: + +```bash +# Listar todas (precisa autenticação) +curl -u tracksteel:@@@Ke03Br;;; https://key.reifonas.cloud/keys.json + +# Buscar no arquivo JSON +curl -u tracksteel:@@@Ke03Br;;; https://key.reifonas.cloud/keys.json | jq '.credentials[] | select(.category == "api-externa")' +``` + +## Backup + +Clique no ícone de download no canto superior direito para exportar um backup JSON. + +## Segurança + +- Todos os dados são protegidos por autenticação HTTP Basic +- Credenciais nunca são expostas por padrão (mascaradas) +- O arquivo JSON pode ser lido/escrito por apps autorizados +- Mantenha suas credenciais de acesso seguras! + +--- + +Desenvolvido para a VPS TrackSteel diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a22c202 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +services: + keys: + image: caddy:alpine + container_name: keys-app + restart: always + labels: + - "traefik.enable=true" + - "traefik.http.routers.keys.entrypoints=https" + - "traefik.http.routers.keys.rule=Host(`key.reifonas.cloud`)" + - "traefik.http.routers.keys.tls.certresolver=letsencrypt" + - "traefik.http.services.keys.loadbalancer.server.port=80" + volumes: + - ./keys.html:/usr/share/caddy/index.html:ro + - ./keys.json:/usr/share/caddy/keys.json:ro + - ./Caddyfile:/etc/caddy/Caddyfile:ro + networks: + - coolify + +networks: + coolify: + name: coolify + external: true diff --git a/index.html b/index.html new file mode 100644 index 0000000..8add267 --- /dev/null +++ b/index.html @@ -0,0 +1,1895 @@ + + + + + + VaultUI - Gerenciador de Credenciais + + + + + + + +
+ +
+ + + + + + + + + + + +
+ + + + diff --git a/keys.html b/keys.html new file mode 100644 index 0000000..8add267 --- /dev/null +++ b/keys.html @@ -0,0 +1,1895 @@ + + + + + + VaultUI - Gerenciador de Credenciais + + + + + + + +
+ +
+ + + + + + + + + + + +
+ + + + diff --git a/keys.json b/keys.json new file mode 100644 index 0000000..6c94972 --- /dev/null +++ b/keys.json @@ -0,0 +1,573 @@ +{ + "version": "1.0", + "lastUpdated": "2026-03-20T14:30:00Z", + "credentials": [ + { + "id": "coolify-001", + "name": "Coolify - App Key", + "category": "infraestrutura", + "subCategory": "orchestrator", + "dataType": "key", + "value": "base64:b47bUe7FBv1cGpzW5zSIEfTVsfXqw+wDg37p6BIOCVE=", + "url": "https://coolify.reifonas.cloud", + "notes": "Usada para criptografia de sessões do Coolify", + "tags": ["coolify", "criptografia"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Coolify", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "coolify-002", + "name": "Coolify - Database Password (PostgreSQL)", + "category": "infraestrutura", + "subCategory": "database", + "dataType": "password", + "value": "IbPDBCzJPeinra5tCfCZaDz9QOkIHBFofOSpnr626/s=", + "url": "https://coolify.reifonas.cloud", + "notes": "Senha do banco PostgreSQL interno do Coolify", + "tags": ["coolify", "postgresql", "database"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Coolify", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "coolify-003", + "name": "Coolify - Redis Password", + "category": "infraestrutura", + "subCategory": "cache", + "dataType": "secret", + "value": "kkMadIcUAkDM1oUrcY3tCC+r9Uw9RWBpt+terc5TfMU=", + "url": "https://coolify.reifonas.cloud", + "notes": "Senha do Redis para cache do Coolify", + "tags": ["coolify", "redis", "cache"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Coolify", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "coolify-004", + "name": "Coolify - Pusher App ID", + "category": "infraestrutura", + "subCategory": "websocket", + "dataType": "key", + "value": "9874b73ff9652e5327b5b70952929f4abdc67589802a6efc1665a2652ed0696b", + "url": "https://coolify.reifonas.cloud", + "notes": "App ID do Pusher para WebSocket em tempo real", + "tags": ["coolify", "pusher", "websocket"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Coolify", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "coolify-005", + "name": "Coolify - Pusher App Key", + "category": "infraestrutura", + "subCategory": "websocket", + "dataType": "key", + "value": "7a4125c71f34f83bf2ee722434a596f135f53021d72d7513b58c6e1aa1b9ed5e", + "url": "https://coolify.reifonas.cloud", + "notes": "App Key do Pusher para WebSocket em tempo real", + "tags": ["coolify", "pusher", "websocket"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Coolify", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "coolify-006", + "name": "Coolify - Pusher App Secret", + "category": "infraestrutura", + "subCategory": "websocket", + "dataType": "secret", + "value": "2244c9076f690153e7400179fb6fb429020a74801d61644fa29ede5ae17b7523", + "url": "https://coolify.reifonas.cloud", + "notes": "App Secret do Pusher para autenticação", + "tags": ["coolify", "pusher", "websocket", "secret"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Coolify", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-001", + "name": "Supabase - Dashboard Studio User", + "category": "api-externa", + "subCategory": "dashboard", + "dataType": "username", + "value": "2FfdSSoPDostr0wA", + "url": "https://supabase.reifonas.cloud/dashboard", + "notes": "Usuário do painel administrativo do Supabase Studio", + "tags": ["supabase", "admin", "studio"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-002", + "name": "Supabase - Dashboard Studio Password", + "category": "api-externa", + "subCategory": "dashboard", + "dataType": "password", + "value": "Mg0WcYG7XPXA0oWf4SOUfIFmkW5Bs5Cr", + "url": "https://supabase.reifonas.cloud/dashboard", + "notes": "Senha do painel administrativo do Supabase Studio", + "tags": ["supabase", "admin", "studio"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-003", + "name": "Supabase - Database Credentials", + "category": "banco-de-dados", + "subCategory": "postgresql", + "dataType": "credentials", + "value": "postgresql://supabase_admin:Xz0oyb6ArGYG5uAVTVwcvJxRrMuT7EIJ@localhost:5432/postgres", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/database/tables", + "notes": "Credenciais completas do banco PostgreSQL. Porta: 5432", + "tags": ["supabase", "postgresql", "database"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-004", + "name": "Supabase - Service Role Key", + "category": "api-externa", + "subCategory": "api-keys", + "dataType": "api-key", + "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTc3Mjk5NTUwMCwiZXhwIjo0OTI4NjY5MTAwLCJyb2xlIjoic2VydmljZV9yb2xlIn0._n2Kj2f29z1u0pOYUGqAr-1Xjt-xQpK9KDhhhGvOIro", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/settings/api", + "notes": "Chave admin para operações no servidor. NUNCA expor no frontend!", + "tags": ["supabase", "api", "admin", "service-role"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-005", + "name": "Supabase - Anon Key", + "category": "api-externa", + "subCategory": "api-keys", + "dataType": "api-key", + "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsImlhdCI6MTc3Mjk5NTUwMCwiZXhwIjo0OTI4NjY5MTAwLCJyb2xlIjoiYW5vbiJ9.kOAYmQJlNd3LsssUHaNyvWZpa2sunfpLj24F_X-PRNY", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/settings/api", + "notes": "Chave pública para uso no frontend (nível anon)", + "tags": ["supabase", "api", "public", "anon"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-006", + "name": "Supabase - JWT Secret", + "category": "api-externa", + "subCategory": "auth", + "dataType": "jwt-secret", + "value": "BJTT52gbXWcUeWMgGGQ90I2ei80RDCZ0", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/auth/providers", + "notes": "Secret para validar tokens JWT do Supabase Auth", + "tags": ["supabase", "auth", "jwt"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-007", + "name": "Supabase - MinIO Access Key", + "category": "storage", + "subCategory": "s3", + "dataType": "key", + "value": "JcIIUSqslL5JCG3y", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/storage", + "notes": "Access Key para MinIO (storage S3-compatible)", + "tags": ["supabase", "storage", "minio", "s3"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-008", + "name": "Supabase - MinIO Secret Key", + "category": "storage", + "subCategory": "s3", + "dataType": "secret", + "value": "pR8v6UUvVDcCxTitjVQkqgdaHcsQ8vCv", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/storage", + "notes": "Secret Key para MinIO (storage S3-compatible)", + "tags": ["supabase", "storage", "minio", "s3", "secret"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-009", + "name": "Supabase - Vault Encryption Key", + "category": "api-externa", + "subCategory": "security", + "dataType": "key", + "value": "IgDixpOtM6uhRL2LaarNwnSrZmanUtvc", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/vault", + "notes": "Chave de criptografia para o Vault do Supabase", + "tags": ["supabase", "vault", "encryption", "security"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "supabase-010", + "name": "Supabase - Logflare API Key", + "category": "api-externa", + "subCategory": "analytics", + "dataType": "api-key", + "value": "s5tbGFZV0rCoA8OZpP5Eg8rZnBlykvOr", + "url": "https://supabase.reifonas.cloud/dashboard/project/_/logs", + "notes": "API Key para integração com Logflare (logs analytics)", + "tags": ["supabase", "logs", "analytics", "logflare"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Supabase", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "logto-001", + "name": "Logto - Database Credentials", + "category": "banco-de-dados", + "subCategory": "postgresql", + "dataType": "credentials", + "value": "postgresql://bhWbMdkltdZej1RG:Szt31khElk0RczDuk0CJq2eDMsp6oo0e@localhost:5432/logto", + "url": "https://logto.reifonas.cloud", + "notes": "Credenciais do banco PostgreSQL do Logto. DB Name: logto", + "tags": ["logto", "auth", "postgresql", "database"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Logto", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "logto-002", + "name": "Logto - Admin Endpoint", + "category": "autenticacao", + "subCategory": "oauth", + "dataType": "url", + "value": "https://logto-admin-bzlued1boxl3t8ewsyn99an9.187.77.227.172.sslip.io", + "url": "https://logto-admin-bzlued1boxl3t8ewsyn99an9.187.77.227.172.sslip.io", + "notes": "Endpoint administrativo do Logto (SSLip.io temporário)", + "tags": ["logto", "auth", "admin", "oauth"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Logto", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gitea-001", + "name": "Gitea - Admin Credentials", + "category": "git", + "subCategory": "git-server", + "dataType": "credentials", + "value": "Usuário: admtracksteel / Marcos | Senha: @@Gi05Br;;;", + "url": "https://git.reifonas.cloud", + "notes": "Credenciais de admin para Gitea (usar para ambos usuários)", + "tags": ["gitea", "git", "admin"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Gitea", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gitea-002", + "name": "Gitea - Internal Token", + "category": "git", + "subCategory": "git-server", + "dataType": "token", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NzMxMDg3Mjl9.beKMVnmwBwdIyBhApfihXHMxvIMc3mXjJJQ0gLuwPAo", + "url": "https://git.reifonas.cloud", + "notes": "Token interno para autenticação API do Gitea", + "tags": ["gitea", "git", "api", "token"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Gitea", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gitea-003", + "name": "Gitea - OAuth2 JWT Secret", + "category": "git", + "subCategory": "oauth", + "dataType": "jwt-secret", + "value": "hfHyav79UnnuhN0x9cVHvgedRVS6Y_xumnRW62d0Xk8", + "url": "https://git.reifonas.cloud", + "notes": "JWT Secret para OAuth2 do Gitea", + "tags": ["gitea", "oauth", "jwt"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Gitea", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gitea-004", + "name": "Gitea - LFS JWT Secret", + "category": "git", + "subCategory": "lfs", + "dataType": "jwt-secret", + "value": "gvasUkABbQ9scDHYdKRwsIEURWsbFBXUnOFD91Gf8A4", + "url": "https://git.reifonas.cloud", + "notes": "JWT Secret para Git LFS do Gitea", + "tags": ["gitea", "lfs", "jwt"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Gitea", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "telegram-001", + "name": "Telegram Bot - Bot Token", + "category": "bot", + "subCategory": "telegram", + "dataType": "bot-token", + "value": "8272877120:AAEKPhLGZPyj8XL9HGSowGLAFzXZPtXHMa4", + "url": "https://t.me/AdmTrackSteelBot", + "notes": "Token do bot Telegram para integração com VPS", + "tags": ["telegram", "bot", "notification"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Telegram Bot", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "telegram-002", + "name": "Telegram Bot - Chat ID Admin", + "category": "bot", + "subCategory": "telegram", + "dataType": "key", + "value": "8768212834", + "url": "https://t.me/AdmTrackSteelBot", + "notes": "Chat ID do usuário admin (Marcos) autorizado", + "tags": ["telegram", "bot", "admin"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Telegram Bot", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gpi-001", + "name": "GPI Local - MongoDB URI", + "category": "banco-de-dados", + "subCategory": "mongodb", + "dataType": "uri", + "value": "mongodb+srv://admtracksteel:29OHAHpKTI8XcCNt@cluster0.a4xiilu.mongodb.net/ts_gpi?retryWrites=true&w=majority&appName=Cluster0", + "url": null, + "notes": "URI do MongoDB Atlas para o projeto GPI local", + "tags": ["gpi", "mongodb", "atlas", "database"], + "isPaid": true, + "paidInfo": { + "cancellationDate": null, + "reminderDays": 7, + "cost": "Free tier (500MB)", + "billingCycle": "monthly" + }, + "associatedService": "GPI Local", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gpi-002", + "name": "GPI Local - Clerk Publishable Key", + "category": "api-externa", + "subCategory": "auth", + "dataType": "key", + "value": "pk_live_Y2xlcmsucmVpZm9uYXMuY2xvdWQk", + "url": "https://dashboard.clerk.com", + "notes": "Chave pública do Clerk para autenticação", + "tags": ["gpi", "clerk", "auth", "frontend"], + "isPaid": false, + "paidInfo": null, + "associatedService": "GPI Local", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gpi-003", + "name": "GPI Local - JWT Secret", + "category": "api-externa", + "subCategory": "auth", + "dataType": "jwt-secret", + "value": "kd6wmHgnOk5xLy2ybtUiGPaPtVEwv/L4m3vFkIvSYrE=", + "url": "https://dashboard.clerk.com", + "notes": "JWT Secret para validar tokens localmente", + "tags": ["gpi", "jwt", "auth"], + "isPaid": false, + "paidInfo": null, + "associatedService": "GPI Local", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gpi-004", + "name": "GPI Local - Database Local (Postgres)", + "category": "banco-de-dados", + "subCategory": "postgresql", + "dataType": "uri", + "value": "postgresql://postgres:postgres@localhost:5432/pintura_db?schema=public", + "url": null, + "notes": "URI do banco PostgreSQL local para desenvolvimento", + "tags": ["gpi", "postgresql", "local", "development"], + "isPaid": false, + "paidInfo": null, + "associatedService": "GPI Local", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "anthropic-001", + "name": "Anthropic - API Key", + "category": "api-externa", + "subCategory": "llm", + "dataType": "api-key", + "value": "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", + "url": "https://console.anthropic.com", + "notes": "API Key para Claude API. Cuidado: valor muito longo!", + "tags": ["anthropic", "claude", "llm", "api"], + "isPaid": true, + "paidInfo": { + "cancellationDate": null, + "reminderDays": 7, + "cost": "Pay-as-you-go", + "billingCycle": "monthly" + }, + "associatedService": "Anthropic", + "lastRotated": null, + "createdAt": "2026-03-20", + "updatedAt": "2026-03-20" + }, + { + "id": "ssh-001", + "name": "SSH - Public Key", + "category": "ssh", + "subCategory": "authentication", + "dataType": "chave-publica", + "value": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILXuodcZ2QF/nmNZaBBiSZIF3t1kU8F7oDI4BgSBibDZ admtracksteel@gmail.com", + "url": null, + "notes": "Chave pública SSH para autenticação em servidores. Usuário: root", + "tags": ["ssh", "ed25519", "authentication", "server"], + "isPaid": false, + "paidInfo": null, + "associatedService": "SSH", + "lastRotated": null, + "createdAt": "2026-03-18", + "updatedAt": "2026-03-20" + }, + { + "id": "gitea-token-001", + "name": "Token Gitea Coolify", + "category": "deploy", + "subCategory": "ci-cd", + "dataType": "token", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDU...", + "url": "https://git.reifonas.cloud", + "notes": "Token para integração do Coolify com Gitea", + "tags": ["coolify", "gitea", "deploy", "token"], + "isPaid": false, + "paidInfo": null, + "associatedService": "Coolify-Gitea", + "lastRotated": null, + "createdAt": "2026-03-10", + "updatedAt": "2026-03-10" + } + ], + "metadata": { + "categories": { + "destino": [ + "infraestrutura", + "banco-de-dados", + "api-externa", + "deploy", + "ssh", + "autenticacao", + "storage", + "git", + "bot" + ], + "tipo-dado": [ + "key", + "token", + "senha", + "url", + "chave-publica", + "api-key", + "jwt-secret", + "uri", + "secret", + "password", + "bot-token", + "credentials", + "username" + ] + } + } +}