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)
- Uma licença do Lacuna PKI SDK que cubra a versão usada pelo Digiploma (veja o histórico de versões)
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 comofalsese 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,epgouyby, 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): setrue, 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 arquivoweb.configtambé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). 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,BasicAuthenticationouBasicAuthenticationV2. - 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 comotruese 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 comofalsepara 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):
"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:
truequando a aplicação roda atrás de um proxy reverso, como na instalação em Linux. Nesse caso, os headersX-Forwarded-ForeX-Forwarded-Protosão respeitados. - AcceptForwardedHostHeader (padrão:
false): respeita também o headerX-Forwarded-Host. - ReverseProxyForwardLimit: número máximo de proxies nos headers
X-Forwarded-*. - HttpsMode: defina como
Optionalse o HTTPS estiver desativado.
Licenças
Na seção PkiSuite:
- SdkLicense: a licença do Lacuna PKI SDK, em Base64. Obrigatória.