Projetos e escopo
Todos os caminhos são relativos a https://api.hashiro.ai/api/ e exigem X-HASHIRO-TOKEN.
Acesso
Leituras exigem acesso geral aos projetos ou associação ao projeto. Criação exige permissão geral. Escritas exigem as permissões correspondentes e propriedade do provedor ou um projeto gerenciado pelo próprio cliente. O cliente não altera a configuração de projetos do provedor.
Rotas
| Método | Caminho | Operação |
|---|---|---|
| GET | /projects/metrics | Listar projetos autorizados com métricas |
| GET | /projects/:projectName | Consultar projeto |
| PUT | /projects/:projectName | Criar projeto |
| PATCH | /projects/:projectName | Atualizar detalhes |
| DELETE | /projects/:projectName | Solicitar exclusão do projeto e dados associados |
| GET | /projects/:projectName/:scope | Consultar inscope ou outscope |
| POST | /projects/:projectName/:scope | Adicionar entradas de escopo |
| PATCH | /projects/:projectName/:scope/asset/:assetId | Atualizar entrada |
| DELETE | /projects/:projectName/:scope/asset/:assetId | Excluir entrada |
| PATCH | /projects/:projectName/members | Atualizar membros |
| PATCH | /projects/:projectName/displayName | Atualizar nome de exibição |
| POST | /projects/:projectName/report | Solicitar PDF |
| GET | /projects/:projectName/report/status | Consultar status do PDF |
| GET | /projects/:projectName/report/download | Baixar PDF pronto |
| GET | /projects/:projectName/download/:fileFormat | Baixar relatório no formato compatível |
Listar projetos
Use GET /projects/metrics?page=1&pageSize=10, a rota de listagem usada pelo Galileo. GET /projects/ não é o endpoint documentado de listagem.
Criar
Use um identificador com letras minúsculas, números e hífens, com até 50 caracteres. Não confunda identificador e nome de exibição. Corpo de exemplo para PUT /projects/my-project:
{
"platform": "pentest",
"type": "private",
"status": "active",
"definitions": {"category": "internal"}
}Provedores associam clientes autorizados por customer_id. Clientes não podem selecionar outra organização. Categorias e limites dependem das configurações e da licença.
Escopo
:scope é inscope ou outscope. Corpo para POST /projects/my-project/inscope:
{
"assets": [
{"asset": "app.example.com", "asset_type": "domain"}
]
}Os tipos incluem wildcard, domain, ip_address, cdir, ios, android, source e other. cdir é a grafia existente na API para CIDR. Use o ID retornado para atualizar ou excluir uma entrada.
Relatórios
As rotas atendem projetos de avaliação compatíveis gerenciados pelo provedor. Projetos do cliente não recebem automaticamente acesso a relatórios do provedor. Solicite, consulte o status e baixe após a conclusão. Downloads retornam arquivos, não JSON. Templates dependem da organização.
Exclusão
A exclusão inicia a remoção dos dados associados. Considere-a irreversível e aguarde a conclusão antes de reutilizar o identificador.