---
title: "Configurações do Digiploma"
description: "Configurações de uma instância on-premises do Digiploma: arquivo JSON por plataforma, variáveis de ambiente, requisitos, banco de dados e armazenamento."
canonical: "https://docs.lacunasoftware.com/articles/digiploma/on-premises/settings"
locale: "pt-BR"
product: "Digiploma"
last_updated: "2026-10-11"
---

# Configurações do Digiploma

Uma instância on-premises lê as configurações de um arquivo JSON:

| Plataforma | Arquivo |
|---|---|
| Windows (IIS) | `appsettings.iis.json`, na pasta da aplicação |
| Linux | `/etc/lacuna-digiploma/appsettings.linux.json` |

As variáveis de ambiente têm precedência sobre o arquivo, com `__` entre a seção e a chave (por exemplo, `General__SiteUrl`).

As seções abaixo estão agrupadas por finalidade. Chaves com grafia incomum, como `EnableIdentiferMaskingOnDegreeValidation`, devem ser
digitadas exatamente como aparecem aqui.

## Requisitos

* .NET 8 (ASP.NET Core Runtime), desde a versão 3.0.0
* SQL Server
* Uma instância do Lacuna Signer (veja [Configurar a integração com o Signer](https://docs.lacunasoftware.com/articles/digiploma/on-premises/signer-setup))
* Uma licença do Lacuna PKI SDK que cubra a versão usada pelo Digiploma (veja o [histórico de versões](https://docs.lacunasoftware.com/articles/digiploma/changelog))

## Banco de dados e armazenamento

* **ConnectionStrings:DefaultConnection**: connection string do banco de dados SQL Server, como
  `Data Source=SERVER;Initial Catalog=DATABASE;User ID=USERNAME;Password=PASSWORD`.
* **General:AutoUpdateDatabase** (padrão: `true`): depois de uma atualização, a aplicação aplica as alterações no modelo do banco de dados,
  quando necessário. Defina como `false` se a aplicação não tiver permissões de proprietário sobre o banco de dados.
* **BlobStorage:Type**: onde os arquivos são armazenados, como `FileSystem`.
* **BlobStorage:Path**: com `FileSystem`, a pasta em que os arquivos são armazenados; a aplicação precisa de permissão de escrita nela. No
  Linux, o padrão é `/var/lacuna-digiploma`; no Windows não há padrão, então defina esta chave.

## Configurações gerais

Na seção **General**:

* **SiteUrl**: URL pública do site (ex.: `https://digiploma.patorum.com/`). É usada nos links dos e-mails enviados, no endereço de validação
  e no QR code impressos nos documentos (a menos que um modelo defina os seus próprios) e nos links dos arquivos de fiscalização.
* **SiteName**: nome da instância, exibido nos títulos das páginas e na referência da API.
* **EncryptionKey**: chave de 256 bits, em Base64, usada para criptografar os segredos que a aplicação armazena. Gere uma, por exemplo com
  `openssl rand -base64 32`, e guarde-a: os segredos criptografados com ela não podem ser lidos com outra chave.
* **SupportEmailAddress**: endereço de e-mail de suporte (usado no rodapé dos e-mails enviados).
* **Theme**: esquema de cores da aplicação web: `mse`, `cgo`, `obg`, `epg` ou `yby`, ou vazio para o padrão.
* **UserManualUrl**: quando definida, a aplicação web mostra um botão para baixar o manual do usuário desse endereço.

### Integração com o Signer

* **SignerUrl**: URL do Signer em que os documentos serão criados.
* **UploadsPerRequest** (padrão: `50`): número de arquivos por requisição de criação de documentos enviada ao Signer. Os lotes são
  processados em grupos desse tamanho.
* **DisableCertificateLevelRequirementToSign** (v1.6.0): se `true`, desativa a exigência de que todos os certificados usados para assinar
  os documentos sejam A3. Os históricos escolares parciais nunca exigem certificado A3.

### Validação e publicação

* **DisableRecaptcha** (v1.6.0): se `true`, desativa o reCAPTCHA da página de validação, mesmo que as chaves dele estejam definidas.
* **EnableIdentiferMaskingOnDegreeValidation** (padrão: `true`): mascara o CPF do aluno na validação pública.
* **IsNonProductionEnvironment** (padrão: `false`): se `true`, os arquivos XML gerados declaram o ambiente *Homologação* em vez de
  *Produção*. Use em instâncias de teste.
* **GenerateCancellationListInDays** (padrão: `120`): uma nova lista de diplomas anulados é gerada quando faltam menos que esse número de
  dias para o prazo da lista atual, que vence 180 dias depois de gerada. Deve ser menor que 180.
* **DegreeFileTicketValidityPeriodInDays** (padrão: `14`): por quantos dias os links dos documentos nos arquivos de fiscalização continuam
  válidos.

### Registro

* **EnableRegistrationRequestAcceptStep** (padrão: `false`): as requisições de registro vindas de uma emissora ficam primeiro em
  **Aguardando aceitação**, antes da revisão.
* **RequireManualRegistrationAcceptance** (padrão: `false`): junto com a chave anterior, faz com que as requisições enviadas pela própria
  registradora também precisem ser aceitas.
* **AllowSkipSignatureValidation** (padrão: `false`): permite que a registradora pule a validação das assinaturas dos arquivos de
  documentação acadêmica que ela envia (**Pular validação das assinaturas**).

### Uploads

* **MaxUploadSizeInBytes** (padrão: `631242752`, cerca de 600 MB): tamanho máximo de uma requisição. No IIS, o arquivo `web.config` também
  limita esse tamanho, a 1,5 GB.
* **UploadedFilesValidityInDays** (padrão: `1`): por quanto tempo a aplicação web considera ainda disponível um arquivo enviado para um
  formulário.

### Geração de documentos

* **UseSocialNameInAcademicTrancript** (padrão: `true`): mostra o nome social do aluno na representação visual dos históricos escolares.

### Validação de arquivos e assinaturas

Estas chaves desligam verificações. Em produção, mantenha os valores padrão.

* **DisableDegreeXmlStructureValidationOnCreation**, **DisableAcademicDocXmlStructureValidationOnCreation**,
  **DisableAcademicTranscriptXmlStructureValidationOnCreation**, **DisableCurriculumXmlStructureValidationOnCreation** (padrão: `false`):
  pulam a validação, pelo schema XML do MEC, dos arquivos gerados pelo Digiploma.
* **DisableAcademicDocScructureValidationInRegistration**, **DisableUploadedDegreeXmlStructureValidationInEmission** (padrão: `false`):
  pulam a validação, pelo schema XML do MEC, dos arquivos de documentação acadêmica recebidos por uma registradora e dos arquivos de
  diploma recebidos por uma emissora.
* **DisableDegreeXmlExtensiveValidation** (padrão: `false`): pula as verificações ICP-Brasil das assinaturas dos arquivos XML recebidos e
  dos certificados das instituições.
* **AllowRevocationStatusUnknown** (padrão: `false`): aceita, com um alerta, assinaturas cujo status de revogação do certificado não pode
  ser verificado.
* **AllowPersonalCertificateInInstitute** (padrão: `false`): aceita um certificado e-CPF como certificado de uma instituição. Somente para
  testes.

## Configurações de lotes (v1.6.0)

Na seção **Batches**:

* **MaxDegreesInBatch** (padrão: `50000`): número máximo de documentos numa operação em massa, como um download em lote ou um arquivo de
  fiscalização.
* **MaxItemsRetrievedFromDatabase** (padrão: `10000`): número de documentos lidos do banco de dados em cada rodada de uma operação em massa
  e número máximo de documentos que podem ser selecionados de uma vez.

## Configurações do reCAPTCHA (v1.6.0)

Na seção **Recaptcha**, as chaves de um site do Google reCAPTCHA v2 do tipo *invisível*. A página de validação usa o reCAPTCHA quando as
duas chaves estão definidas (e **General:DisableRecaptcha** não é `true`).

* **SiteKey**: a chave do site do Captcha.
* **SecretKey**: a chave secreta do Captcha.

## Configurações de renotarização e carimbo de tempo

O Digiploma renova os carimbos de tempo de arquivamento dos documentos assinados antes que expirem (veja
[Renotarizações](https://docs.lacunasoftware.com/articles/digiploma/api/restamps)). Para isso, é preciso um servidor de carimbo de tempo, configurado na seção **Timestamper**:

* **Url**: URL do servidor de carimbo de tempo.
* **Type** (padrão: `BearerToken`): como se autenticar no servidor: `BearerToken`, `BasicAuthentication` ou `BasicAuthenticationV2`.
* **BearerToken**, ou **Username** e **Password**: as credenciais.
* **Enabled** (padrão: `false`): aplica carimbo de tempo também às assinaturas que o próprio Digiploma faz, nas listas de diplomas anulados e
  nos arquivos de fiscalização.
* **MaxAutoRetryCount** (padrão: `3`) e **RetryDelayInMilliseconds** (padrão: `1500`): novas tentativas de uma requisição que falhou.

Na seção **Restamp**:

* **DisableRestamp** (padrão: `false`): desliga a renotarização na instância inteira. Defina como `true` se a instância não tiver servidor
  de carimbo de tempo.
* **RestampDocumentsBeforeExpiringInDays** (padrão: `180`): quantos dias antes da expiração um documento é renotarizado.
* **EnableRegistrationRestamp** (padrão: `false`): renotariza também os arquivos de diploma das requisições de registro.
* **DisableWebhookSending** (padrão: `true`): defina como `false` para enviar os webhooks de renotarização.
* **DocumentsToRestampOnBusinessHours** / **DocumentsToRestampNotOnBusinessHours** (padrão: `10` / `50`) e
  **RestampsToCreateOnBusinessHours** / **RestampsToCreateNotOnBusinessHours** (padrão: `10` / `50`): quantos documentos cada execução dos
  jobs de renotarização processa.

Na seção **BusinessHours**, o horário comercial, em que os jobs em segundo plano processam menos itens:

* **StartHour** (padrão: `8`) e **EndHour** (padrão: `18`).
* **IsWeekendBusinessDays** (padrão: `false`).
* **TimeZoneId** (padrão: `E. South America Standard Time`): também é o fuso horário dos jobs noturnos de renotarização.

## Configurações da representação visual

Na seção **VisualRepresentation**, as margens padrão, em centímetros, sugeridas na criação de modelos de histórico escolar e de currículo:
**MarginTopInCentimeters** (`3.5`), **MarginBottomInCentimeters** (`1`), **MarginLeftInCentimeters** (`1`) e
**MarginRightInCentimeters** (`1`).

## Personalização da página de validação

Na seção **Customization**, a página de validação pode mostrar nome, logotipo e cores próprios de uma organização, num domínio próprio. Em
**Subscriptions**, adicione uma entrada cujo nome é o id da organização (ou `{id da organização}_{código MEC}`, para uma das instituições
dela):

```json
"Customization": {
  "Subscriptions": {
    "4c1e…": {
      "Name": "Universidade Exemplo",
      "Domains": "diplomas.exemplo.edu.br",
      "LogoUrl": "https://exemplo.edu.br/logo.png",
      "FaviconUrl": "https://exemplo.edu.br/favicon.ico",
      "Theme": "obg"
    }
  }
}
```

Uma requisição para um domínio diferente do que está em **General:SiteUrl** é redirecionada para a página de validação.

## Proxy reverso

Na seção **Bindings**:

* **UseReverseProxy**: `true` quando a aplicação roda atrás de um proxy reverso, como na instalação em Linux. Nesse caso, os headers
  `X-Forwarded-For` e `X-Forwarded-Proto` são respeitados.
* **AcceptForwardedHostHeader** (padrão: `false`): respeita também o header `X-Forwarded-Host`.
* **ReverseProxyForwardLimit**: número máximo de proxies nos headers `X-Forwarded-*`.
* **HttpsMode**: defina como `Optional` se o HTTPS estiver desativado.

## Licenças

Na seção **PkiSuite**:

* **SdkLicense**: a licença do Lacuna PKI SDK, em Base64. Obrigatória.
