A mesma API REST sobre a qual o cliente web roda. Cada item é criptografado no seu navegador antes de sair do dispositivo — o servidor só vê texto cifrado e não tem como lê-lo. Use-a para criar seus próprios clientes ou para dar a uma integração acesso restrito e confirmável a alguns itens. Base URL: https://storage-p.com
Passo a passo completo do que o storage-p realmente faz — baseado no conjunto real de recursos, nada inventado.
Auto-hospedagem no seu próprio servidor
Rode o storage-p como um contêiner Docker atrás do Caddy no seu domínio. O Caddy serve o cliente estático e faz proxy reverso de /api para o backend; o banco de dados SQLite é criptografado em repouso com SQLCipher. Você o opera de ponta a ponta — ninguém mais tem as chaves.
Armazenar e gerar chaves SSH / TLS
Gere chaves SSH Ed25519 (formato OpenSSH) e certificados TLS autoassinados na aba Geradores, ou faça upload de arquivos de chave/certificado existentes (até 1 MB). O material privado é criptografado no navegador antes do upload, então ele nunca existe em texto puro no servidor.
Links de uso único que se autodestroem
Compartilhe um único item ou uma pasta inteira por um link cuja chave de descriptografia vive apenas no fragmento da URL (#…) — a parte que os navegadores nunca enviam ao servidor. Defina um TTL e um limite de visualizações; após a última visualização, os dados não podem mais ser abertos.
Tokens de API restritos com confirmação
Crie um token que pode ler apenas os itens ou projetos da sua lista de permissões. Ative a confirmação por leitura e cada acesso fica em espera até você aprovar pelo sino no app ou por uma mensagem do Telegram; adicione um limite de taxa e um prazo de expiração. A integração recebe o item ainda criptografado mais uma chave de acesso de uso único para descriptografá-lo localmente.
Projetos e acesso da equipe
Transforme uma pasta em um projeto com a sua própria chave. Conceda a outro usuário acesso de leitura ou escrita e a chave do projeto é selada para a chave pública dele (X25519), de modo que ele trabalha com os itens mais recentes sem que o servidor jamais veja uma cópia legível. Revogue qualquer concessão a qualquer momento.
TOTP / 2FA integrado
Guarde o segredo TOTP de um login ao lado dele e leia o código rotativo em tempo real no mesmo lugar — o storage-p também funciona como seu autenticador. Você também pode proteger sua própria conta com TOTP de duplo fator.
Importar de outro gerenciador
Traga um JSON do Bitwarden, um CSV do KeePass ou qualquer CSV com as colunas name/username/password/url/notes. A análise e a criptografia rodam no seu dispositivo, então as entradas são recriptografadas com a sua chave e nunca enviadas em texto claro.
Documentação da API · API
Autenticação
Obtenha um token de acesso via register/login e o envie como token Bearer. Os tokens de acesso têm vida curta (15 min); renove com o refresh token.
Authorization: Bearer <access_token>
Auth
Cadastre-se, entre e mantenha a sessão ativa. A senha mestra nunca sai do navegador — apenas um auth-hash Argon2id é enviado.
POST/api/v1/auth/register
Crie uma conta. O cliente escolhe os parâmetros do KDF e envia sua chave privada já criptografada.
Mova um item para a lixeira (exclusão lógica, reversível).
GET/api/v1/vault/trash Bearer
Liste os itens que estão na lixeira.
POST/api/v1/vault/:id/restore Bearer
Restaure um item da lixeira.
DELETE/api/v1/vault/:id/purge Bearer
Exclua um item permanentemente — não pode ser desfeito.
Sharing
Duas formas de entregar um segredo a outra pessoa: um link de uso único que se autodestrói após a leitura, ou uma entrega ponta a ponta sealed-box a outro usuário.
POST/api/v1/share Bearer
Crie um link de uso único. A chave de descriptografia vive no fragmento da URL e nunca chega ao servidor.
Liste as solicitações de acesso aguardando sua aprovação.
POST/api/v1/confirmations/:id/resolve Bearer
Aprove ou negue uma solicitação pendente.
Corpo{ decision: "approve"|"deny" }
GET/api/v1/api/vault/:id Bearer (scoped token)
Como uma integração lê um item restrito. Se a confirmação for necessária, a primeira chamada retorna um confirmation_id para consultar até você aprovar.
Tokens de API restritos (para integrações)
Crie um token restrito na interface (Tokens de API). Ele só pode ler itens da lista de permissões, e as leituras podem exigir confirmação. Fluxo: o primeiro GET retorna um confirmation_id com status pending_confirmation; o dono aprova no app ou pelo Telegram; repita o GET com ?confirmation_id= para receber o item (ainda criptografado no cliente).
Notas
meta_enc / body_enc são nonce(24)‖ciphertext, criptografados com a chave do cofre derivada da senha mestra. O servidor não consegue descriptografá-los.