Gerenciar aplicativos da biblioteca
Leia aplicativos e versões, edite metadados e tracks, e oculte ou restaure conteúdo publicado.
Acesso e escopo
Todas as rotas exigem X-API-Key com LIBRARY_MANAGE. A chave validada define a empresa; as requisições não têm parâmetro de tenant nem de empresa. Uma chave existente com LIBRARY_MANAGE pode usar estas rotas sem outra concessão. A permissão sensível vem desmarcada por padrão; chaves que não a têm não a recebem automaticamente.
LIBRARY_MANAGE é uma permissão sensível, válida para toda a empresa, para uploads de APK e gerenciamento de aplicativos. Ela não concede atribuição de políticas, comandos de dispositivo, provisionamento nem operações da conta.
LIBRARY_MANAGE cobre os uploads de APK e as rotas de gerenciamento de aplicativos descritas abaixo. As APIs públicas para arquivos, contatos e outros recursos da biblioteca ainda não estão disponíveis. Essa permissão não oferece atribuição de políticas, comandos de dispositivo, provisionamento nem administração da conta.
As edições de nome de exibição e de ícone usam rollouts de metadados adiados. Ocultar um aplicativo usa a varredura de remoção existente; restaurar conteúdo e adicionar tracks usam os caminhos de sincronização existentes. As edições de categoria atualizam os rótulos armazenados. Remover um track ou ocultar uma entre várias versões publicadas não agenda a sincronização imediata dos dispositivos. Uma resposta da API confirma a gravação no armazenamento, não a sincronização nem a instalação nos dispositivos.
Envie um APK assinado usando o guia separado de uploads de APK.
Endpoints
https://api.nomid.tech/emm/api/v1
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /library/apps | Lista os aplicativos visíveis em páginas; includeHidden pode incluir os aplicativos ocultos. |
| GET | /library/apps/{packageName} | Obtém um aplicativo, inclusive quando estiver oculto. |
| GET | /library/apps/{packageName}/versions | Lista as versões; includeHidden pode incluir as versões ocultas. |
| GET | /library/apps/{packageName}/versions/{versionCode} | Obtém uma versão, inclusive quando estiver oculta. Informe o environment dela quando não estiver vazio. |
| PATCH | /library/apps/{packageName}/display-name | Define um nome de exibição ou o redefine para o nome do APK. |
| PATCH | /library/apps/{packageName}/categories | Substitui os rótulos de categoria do aplicativo. |
| POST | /library/apps/{packageName}/icon | Envia um ícone como multipart form-data usando o campo file. |
| DELETE | /library/apps/{packageName}/icon | Remove o ícone personalizado. |
| DELETE | /library/apps/{packageName} | Oculta um aplicativo existente; retorna 204 e não o exclui fisicamente. |
| POST | /library/apps/{packageName}/publish | Restaura um aplicativo de forma idempotente; retorna o aplicativo. |
| DELETE | /library/apps/{packageName}/versions/{versionCode} | Oculta uma versão existente; retorna 204. Se for a última versão publicada, o aplicativo fica oculto, mas essa versão continua publicada para permitir a restauração. Informe o environment dela quando não estiver vazio. |
| POST | /library/apps/{packageName}/versions/{versionCode}/publish | Restaura uma versão e, quando necessário, o aplicativo dela. Informe o environment dela quando não estiver vazio. |
| GET | /library/apps/{packageName}/tracks | Lista a última versão publicada de cada track de um aplicativo publicado. Com códigos de versão iguais, prevalece o environment mais alto em ordem lexicográfica. |
| PUT | /library/apps/{packageName}/versions/{versionCode}/tracks/{trackName} | Atribui uma versão publicada a um track; retorna a atribuição. Informe o environment dela quando não estiver vazio. |
| DELETE | /library/apps/{packageName}/versions/{versionCode}/tracks/{trackName} | Remove a atribuição de um track; retorna 204. Informe o environment dela quando não estiver vazio. |
Requisições e respostas
GET /library/apps aceita page (padrão 0), size (padrão 50, máximo 100) e includeHidden (padrão false). A resposta contém content (AppDto[]), page, size, totalElements e totalPages.
A coleção de versões usa includeHidden=false por padrão e retorna versões com versionCode, environment, status, displayName, displayVersion, createdAt, sha256, fileSizeBytes, tracks e checkSummary (o status e a contagem de achados do relatório de verificação do último upload; é null para versões enviadas antes de as verificações existirem; consulte o guia de uploads de APK). Toda leitura, ocultação, publicação ou alteração de track direcionada a uma versão seleciona exatamente packageName, versionCode e environment. Omitir environment seleciona o environment vazio. Sempre informe-o para uma versão com environment não vazio, mesmo que o código de versão seja único.
O endpoint de nome de exibição aceita uma string displayName; um valor null ou vazio redefine o nome; caso contrário, o limite é de 100 caracteres. O endpoint de categorias exige um array categories com no máximo 50 rótulos não vazios de no máximo 100 caracteres cada. O upload do ícone usa o campo multipart file.
Os nomes de track são aparados e devem ter de 1 a 10 caracteres. As atribuições de track com PUT e DELETE exigem um aplicativo publicado e uma versão publicada. Sempre informe o environment da versão quando não estiver vazio.
Os ícones personalizados devem ser PNG ou JPEG, ter no máximo 1 MiB, pelo menos 192 pixels em cada lado e ser quadrados com tolerância de 2%. O servidor normaliza as imagens aceitas para um PNG de 512 pixels.
PATCH /library/apps/com.example.app/display-name
Content-Type: application/json
{"displayName":"Field App"}
PATCH /library/apps/com.example.app/categories
Content-Type: application/json
{"categories":["Field tools"]} Visibilidade e comportamento das versões
Excluir um aplicativo o oculta e mantém os dados dele. Publicar o aplicativo o restaura e pode ser repetido com segurança. O endpoint de um único aplicativo pode consultar um aplicativo oculto; a coleção de aplicativos lista os visíveis, a menos que includeHidden=true.
Excluir uma versão existente a oculta, exceto quando for a última versão publicada: nesse caso o aplicativo fica oculto e essa versão continua publicada para que o aplicativo possa ser restaurado. Uma versão oculta pode ser publicada novamente; publicar uma versão também pode restaurar o aplicativo dela.
A coleção de tracks retorna a última versão publicada por track de um aplicativo publicado. Quando os códigos de versão empatam, prevalece o environment mais alto em ordem lexicográfica. Alterações em tracks não criam atribuições de políticas.
Erros
401 significa que a chave está ausente, é inválida, expirou ou foi revogada. 403 significa que ela não tem LIBRARY_MANAGE. Verifique a configuração da chave sem imprimi-la.
404 significa que o aplicativo ou a versão solicitada não existe na empresa da chave, ou que a operação exige um aplicativo ou uma versão publicada. As edições de nome de exibição, categorias e ícone personalizado exigem um aplicativo publicado; restaure um aplicativo oculto antes de editar os metadados. As operações de track exigem um aplicativo e uma versão publicados. O identificador de outra empresa não é divulgado.
400 significa que um valor da requisição ou da consulta é inválido. Corrija-o antes de tentar novamente.