Ferramenta pública, livre e de código aberto para ajudar administradores de repositórios a alterar URLs registradas no DataCite de forma simples e rápida.
Interface web moderna para gerenciar e atualizar URLs de DOIs do DataCite, totalmente alinhada com a documentação oficial do DataCite.
Esta ferramenta foi desenvolvida para facilitar a vida dos administradores de repositórios DataCite que precisam atualizar URLs de DOIs em massa ou individualmente. Com uma interface intuitiva e rápida, você pode:
- Visualizar todos os DOIs do seu repositório
- Identificar quais DOIs precisam de atualização
- Atualizar URLs individualmente ou em lote
- Fazer substituições automáticas de domínios
Tudo isso seguindo rigorosamente a documentação oficial da DataCite REST API.
- 📋 Listar todos os DOIs de um repositório DataCite
- 🔍 Filtrar DOIs que precisam de atualização
- ✏️ Editar URLs de DOIs individualmente
- 🔄 Atualização automática de URLs (substituição de domínio)
- 📊 Visualização de estados dos DOIs (draft, registered, findable)
- 🎨 Interface moderna e responsiva com shadcn/ui
- ⚡ Atualizações rápidas e eficientes
- Node.js 18+
- Conta DataCite com credenciais de repositório
- Repository/Client ID do DataCite
npm installCrie um arquivo .env.local na raiz do projeto com as seguintes variáveis:
# Credenciais DataCite (obrigatórias)
DATACITE_CLIENT_ID=ORGANIZACAO.REPOSITORIO # Repository/Client ID (formato: ORGANIZACAO.REPOSITORIO)
DATACITE_PASS=sua_senha # Senha do repositório
# Credenciais alternativas (opcional)
# Se DATACITE_USER não for definido, será usado DATACITE_CLIENT_ID
DATACITE_USER=ORGANIZACAO.REPOSITORIO # Opcional: username alternativo
# Ambiente (opcional)
DATACITE_USE_TEST=false # true para usar api.test.datacite.org| Variável | Obrigatória | Descrição | Exemplo |
|---|---|---|---|
DATACITE_CLIENT_ID |
✅ Sim | Repository/Client ID usado para listar DOIs e autenticação | ORGANIZACAO.REPOSITORIO |
DATACITE_PASS |
✅ Sim | Senha do repositório DataCite | sua_senha_secreta |
DATACITE_USER |
❌ Opcional | Username alternativo. Se não definido, usa DATACITE_CLIENT_ID |
ORGANIZACAO.REPOSITORIO |
DATACITE_USE_TEST |
❌ Opcional | Usar ambiente de teste (true) ou produção (false) |
false |
* Obrigatórias apenas se você usar a funcionalidade de atualização automática.
O DATACITE_CLIENT_ID deve estar no formato ORGANIZACAO.REPOSITORIO (com ponto):
- ✅ Correto:
ORGANIZACAO.REPOSITORIO - ❌ Incorreto:
ORGANIZACAO_REPOSITORIOouorganizacao.repositorio
Você pode encontrar seu Repository ID no DataCite Fabrica na seção de configurações do repositório.
npm run devAbra http://localhost:3000 no navegador.
Importante: Após modificar o arquivo .env.local, você precisa reiniciar o servidor Next.js para que as mudanças tenham efeito.
datacite-urls/
├── app/
│ ├── api/
│ │ └── dois/
│ │ ├── route.ts # GET: Listar DOIs
│ │ └── [id]/
│ │ ├── route.ts # PUT: Atualizar DOI individual
│ │ └── auto-update/
│ │ └── route.ts # PUT: Atualização automática em lote
│ ├── page.tsx # Página principal
│ └── layout.tsx # Layout da aplicação
├── components/
│ ├── ui/ # Componentes shadcn/ui
│ ├── doi-list.tsx # Componente de lista de DOIs
│ └── update-url-dialog.tsx # Dialog modal para editar URL
└── lib/
├── datacite.ts # Cliente e funções da API DataCite
├── types.ts # Tipos TypeScript
└── utils.ts # Funções utilitárias
A página principal exibe automaticamente todos os DOIs do repositório configurado ao carregar. Use o botão "Atualizar" para recarregar a lista.
Use os botões de filtro no topo da página:
- Todos: Mostra todos os DOIs do repositório
- Precisa Atualizar: Mostra apenas DOIs cuja URL contém o
URL_DOMAINconfigurado
- Clique no botão "Editar" ao lado do DOI desejado
- No modal que abrir, modifique a URL no campo de texto
- Clique em "Atualizar"
- A URL será atualizada diretamente na API do DataCite seguindo o formato oficial
Para DOIs que precisam de atualização (marcados com badge vermelho "Precisa atualizar"):
- Clique no botão "Atualizar" ao lado do DOI
- A URL será automaticamente atualizada substituindo
URL_DOMAINporNEW_URL_DOMAIN - Exemplo:
http://repositorio-antigo.org/doi/10.1234/example→http://repositorio-novo.org/doi/10.1234/example
Causa: Credenciais incorretas ou formato inválido.
Solução:
- Verifique se
DATACITE_CLIENT_IDestá no formato correto:ORGANIZACAO.REPOSITORIO - Confirme que a senha está correta
- Certifique-se de que não há espaços extras no
.env.local - Reinicie o servidor após modificar
.env.local
Causa: O usuário não tem permissão para atualizar o DOI específico.
Solução:
- Verifique se o DOI pertence ao repositório configurado
- Confirme que o Repository ID está correto
- Verifique as permissões no DataCite Fabrica
Causa: Variáveis de ambiente não encontradas.
Solução:
- Certifique-se de que o arquivo é
.env.local(não.env) - Verifique se as variáveis estão no formato correto (sem aspas, sem espaços)
- Reinicie o servidor
Causa: O DOI pode não existir no ambiente configurado ou estar em outro ambiente.
Solução:
- A aplicação continuará tentando atualizar mesmo se não conseguir buscar o DOI
- Verifique se
DATACITE_USE_TESTestá configurado corretamente - O PUT pode criar ou atualizar DOIs conforme a documentação do DataCite
Causa: Next.js não recarregou as variáveis.
Solução:
- Pare completamente o servidor (Ctrl+C)
- Inicie novamente com
npm run dev - Certifique-se de que o arquivo está na raiz do projeto (mesmo nível do
package.json)
- Next.js 16 - Framework React com App Router
- TypeScript - Tipagem estática
- shadcn/ui - Componentes UI modernos e acessíveis
- Tailwind CSS - Framework CSS utilitário
- Axios - Cliente HTTP para requisições
- DataCite REST API - API oficial do DataCite
Esta ferramenta está totalmente alinhada com a documentação oficial do DataCite:
- DataCite Support - Portal principal de suporte
- DataCite REST API Reference - Referência completa da API
- Atualizando Metadados com REST API - Guia de atualização
- DataCite Fabrica - Portal de gerenciamento
npm run dev # Inicia servidor de desenvolvimento
npm run build # Cria build de produção
npm run start # Inicia servidor de produção
npm run lint # Executa linterA aplicação usa API Routes do Next.js, seguindo os padrões da DataCite REST API:
GET /api/dois- Lista todos os DOIs do repositórioPUT /api/dois/[id]- Atualiza URL de um DOI específicoPUT /api/dois/[id]/auto-update- Atualização automática de domínio
Contribuições são bem-vindas! Este é um projeto de código aberto e livre.
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Para dúvidas, sugestões ou problemas, entre em contato:
📧 Email: marcosanjos.js@gmail.com
Este projeto é de código aberto e livre para uso. Sinta-se livre para usar, modificar e distribuir conforme necessário.
Desenvolvido para facilitar a gestão de URLs de DOIs no DataCite 🚀

