Saltar para o conteúdo
megapromotingVamos falar

Soluções · Instituições & administração

As secções que a decisão do governo exige, escritas em código e atualizadas pelo funcionário — não adicionadas no fim, como anexo.

Uma câmara municipal ou uma instituição tem uma lista fixa de secções obrigatórias, uma obrigação de transparência decisória e um funcionário que tem de publicar um anúncio sem chamar um programador. Construímos exatamente isso, com registo de auditoria que se apaga sozinho no prazo e com limite às tentativas de autenticação.

Já construídoDouă platforme proprii, publice și verificabile azi. Prima e site-ul oficial al unei primării de comună: Laravel 12 pe PHP 8.2 cu MySQL 8, 40 de șabloane, 32 de rute, 10 migrări, cu conținutul editorial care se schimbă rar ținut într-un singur fișier de configurare de 1.613 linii și cu cel care se schimbă des în bază, editabil din panou; autentificarea în panou e limitată la 5 cereri pe minut, iar jurnalul de audit se șterge zilnic după 12 luni, cu trimitere explicită la temeiul legal. Antetele de securitate se pot citi din exterior chiar acum. A doua e o platformă civică în producție, cu 65 de rute de interfață de programare, peste 50 de migrări, 103 fișiere de test pe partea de server și 59 de scenarii capăt-la-capăt, cu verificare de accesibilitate în teste. Ce nu trecem la „livrat”: interoperabilitatea cu serviciile de stat — codul de autentificare federată și de semnătură electronică e scris și testat, dar oprit, pentru că lipsesc contractul cu autoritatea și certificatul de sistem.

Um site de instituição pública não se julga pela aparência, mas por uma lista. A Decisão do Governo 728/2023 estabelece que secções têm de existir: transparência decisória, projetos e decisões, anúncios, documentos, contactos, orçamento. São obrigatórias, são verificadas e não são negociáveis. Por isso, construímo-las desde o início, como estrutura, e não as adicionamos no final — adicionadas no fim saem formais e inúteis, e isso vê-se imediatamente.

A segunda condição é mais prática: a instituição tem de poder publicar sozinha. Um anúncio de concurso, um projeto de decisão colocado em consulta, uma fotografia de um evento — se tudo passa por um programador, a informação de interesse público fica no papel ou num grupo de rede social, e o site torna-se uma montra morta. Separamos de propósito dois tipos de conteúdo: o editorial que muda raramente — geografia, histórico, instituições, contactos, orçamento — fica num único ficheiro de configuração lido diretamente pelos modelos; o que muda frequentemente fica na base de dados e é editado a partir do painel.

A terceira condição é aquela sobre a qual ninguém pergunta no caderno de encargos: o que acontece aos dados. Um painel de administração pública precisa de um limite às tentativas de autenticação — ao sexto pedido num minuto a partir do mesmo endereço, a resposta é 429, e isso é coberto por um teste automático, não presumido. O diário de auditoria contém endereços IP, portanto é um dado pessoal: uma tarefa programada limpa-o diariamente de tudo o que tem mais de doze meses, com a base legal escrita no comentário do código, não num documento separado que ninguém abre.

E, por fim, a parte sobre a qual preferimos falar antes do concurso: a interoperabilidade com os serviços governamentais. A autenticação federada e a assinatura eletrónica estão escritas e testadas por nós, mas desligadas por um comutador, porque faltam o contrato com a autoridade e o certificado de sistema — falta o papel, não o código. Para a plataforma de pagamentos do Estado, a via de interoperabilidade e o gabinete do cidadão, não temos nenhum código, em nenhum repositório, e escrevemos isso como tal.

Qué incluye

O que muda concretamente em instituições e administração

As secções obrigatórias, construídas como estrutura desde o início

Transparência decisória, projectos e decisões, anúncios, documentos, contactos, orçamento, além da declaração de acessibilidade, da informação sobre o tratamento de dados, da secção de dados abertos e do mapa do site. A conformidade com a decisão do governo está escrita em código — em templates e na configuração — e não apenas afirmada na proposta.

Dois tipos de conteúdo, dois locais diferentes

O que muda raramente — dados sobre a localidade, histórico, instituições, composição do conselho, contactos, orçamento — fica num único ficheiro de configuração de 1.613 linhas, lido diretamente pelos templates; o que muda frequentemente — anúncios, galeria, projectos e decisões, documentos, definições de transparência — fica na base de dados e é editado a partir do painel. A separação não é estética: reduz ao mínimo o que alguém pode estragar com uma edição errada.

O funcionário publica sozinho, sem um programador na cadeia

O painel cobre exatamente as operações que se fazem semanalmente numa câmara municipal: um novo anúncio, um projecto de decisão colocado em consulta, um documento carregado, algumas fotografias. Cada ação de administração entra numa tabela de auditoria — quem, o quê, quando — porque, numa instituição pública, a pergunta „quem publicou isto” tem, mais cedo ou mais tarde, uma resposta que importa.

Limite na autenticação, verificado por um teste

Cinco pedidos por minuto a partir do mesmo endereço para o formulário de autenticação; o sexto recebe 429. Não é uma definição que afirmamos: existe um teste automático que verifica exatamente a devolução do código 429. A diferença entre uma medida configurada e uma medida testada só se vê quando alguém altera uma rota e se esquece dela.

Cabeçalhos de segurança presentes na resposta real, e não apenas na configuração

Em produção, são lidos externamente: proibição de enquadramento, `nosniff`, política de referência rigorosa, transporte seguro imposto por um ano com subdomínios, política de permissões que fecha a geolocalização, o microfone e a câmara, além de uma política de conteúdo explícita. Verificamo-los com um pedido, e não com uma promessa.

Minimização de dados como tarefa agendada, com o fundamento ao lado

Os registos de auditoria contêm endereços IP. Uma tarefa é executada diariamente e elimina tudo o que tiver mais de doze meses, com a referência ao fundamento legal escrita no comentário do código. É a diferença entre uma política de confidencialidade que diz „guardamos pelo tempo necessário” e um sistema em que o prazo é realmente aplicado por si próprio.

Acessibilidade verificada automaticamente em cada entrega

Na plataforma cívica, a verificação corre nos testes automáticos com os critérios WCAG 2.0 A e AA mais 2.1 A e AA, com uma linha de referência por página: qualquer problema novo impede a entrega, mesmo que o nível geral não tenha mudado. Para uma instituição pública, a acessibilidade não é uma opção de imagem, e a declaração de acessibilidade não se escreve sem que algo tenha corrido.

Os dados estruturados que dizem a uma máquina que você é uma instituição

A página inicial publica dados estruturados do tipo organização governamental, com a morada postal. Isso conta para a forma como a instituição aparece nos resultados e para os sistemas que leem automaticamente; é também uma das poucas categorias para as quais a documentação do motor ainda mostra o resultado enriquecido com perguntas frequentes — mas „bem conhecido e autoritário” não é uma caixa que assinalamos nós, por isso não o vendemos como entregável.

O que não fazemos, dito antes da licitação

Não declaramos como entregue a ligação com a plataforma de pagamentos do Estado, com a espinha dorsal de interoperabilidade ou com o gabinete do cidadão: não temos código para eles em nenhum repositório. A autenticação federada e a assinatura eletrónica estão escritas e testadas, mas desativadas — faltam o contrato com a autoridade e o certificado do sistema. E o alojamento na infraestrutura do Estado, onde é obrigatório, é um requisito de procedimento, não uma opção técnica.

Traseul

Como um pedido passa pelo sistema.

01

Mapeamos os requisitos antes do design

A primeira entrega é a lista das secções obrigatórias para o seu tipo de instituição e a sua correspondência com o que vocês publicam hoje. A partir daí vê-se o que falta, o que existe no papel e o que está publicado num lugar que não pode ser citado. O design vem depois da lista, e não o contrário.

02

Separamos o conteúdo editorial do operacional

O que muda raramente vai para a configuração, o que muda com frequência vai para a base, com painel. Entregamos a estrutura preenchida com os dados reais da instituição — não com texto de enchimento — porque um site de instituição com conteúdo provisório não pode ser avaliado por ninguém e, de regra, fica assim.

03

Definimos os gates: limite de autenticação, auditoria, cabeçalhos, prazos

O limite no formulário de autenticação com teste que o verifica, o registo de auditoria com eliminação agendada no prazo, os cabeçalhos de segurança verificados a partir do exterior, a página de informação sobre o tratamento de dados com os fundamentos indicados. Entregamos o resultado das verificações, não apenas a configuração.

04

Entregamos com formação para quem publica

Entregamos o repositório, o documento de colocação em funcionamento e os acessos, mais uma formação para a pessoa que vai publicar os anúncios. A entrega não se considera concluída até um funcionário ter publicado sozinho um anúncio que apareça no site.

1Server web cu antete verificate din exterior2aplicație cu rutele publice și panoul3conținut editorial într-un fișier de configurare, conținutoperațional în bază4jurnal de audit cu ștergere programată la 12 luni
4 straturi

Os dados

Qué tocamos, dónde están y cuánto se quedan

As regras diferem de setor para setor. Estas são as que se aplicam em instituições & administração.

O conteúdo é da instituição; nós construímos a estrutura
Os dados sobre a localidade, a composição do conselho, os contactos de serviço e o orçamento são fornecidos pela instituição e continuam a ser dela. Os números de telefone de serviço e os nomes dos funcionários são públicos no site da instituição, mas não são usados em materiais de marketing — nem por nós, nem no portfólio.
O registo de auditoria contém dados pessoais
O endereço IP no registo é um dado pessoal. Por isso tem um prazo: apaga-se diariamente tudo o que tenha mais de doze meses, com o fundamento legal escrito ao lado do código. O registo guarda o ator, o seu papel, o tipo de evento e se é interno ou público — essa separação é importante quando uma parte do registo tem de ser mostrada ao cidadão.
O que é publicado e o que fica no dossier interno
Na plataforma cívica, os elementos de identificação — por exemplo, um número de matrícula — seguem para o dossier para a autoridade e nunca aparecem publicamente; a posição pública é arredondada; nenhuma fotografia chega ao site sem um desfoque aprovado por uma pessoa, e quem redige não é quem aprova. As regras são restrições na base, não instruções para o operador.
Os prazos de conservação, com o texto publicado ao lado
Cada prazo mantém, na mesma tabela, o texto publicado palavra por palavra e o fundamento legal — média bruta 90 dias, média redigida 3 anos, identidade de quem reporta 3 anos, digitalizações de etiqueta 12 meses. A função de limpeza indica implicitamente o que apagaria; a eliminação real exige um argumento explícito.
Os direitos da pessoa em causa como rotas, não como endereço de e-mail
A exportação, a eliminação e o registo dos pedidos existem como funções. Uma instituição que recebe um pedido de acesso deve poder cumpri-lo sem abrir manualmente a base de dados — caso contrário, o prazo legal consome-se à espera de um programador.

Un caso

Um prazo de conservação que se aplica sozinho, todas as noites

A situação

O painel de administração de um site de câmara municipal mantém um registo de auditoria: quem publicou, o quê e quando. O registo contém endereços IP, logo contém dados pessoais. Quase todos os sites deste tipo resolvem o problema numa frase da política de privacidade — „conservamos os dados enquanto for necessário” — e com isso termina.

Qué construimos

Escrevi o termo como tarefa programada: uma rotina corre diariamente e apaga do registo tudo o que tiver mais de doze meses, com a referência ao fundamento legal escrita no comentário acima do código. Na mesma etapa defini o limite no formulário de autenticação — cinco pedidos por minuto a partir do mesmo endereço — e um teste automático que verifica a devolução do código 429, para que a medida não desapareça em silêncio numa refatorização.

Qué salió

A política publicada e o comportamento do sistema dizem a mesma coisa, e a diferença pode ser verificada: o termo é uma linha de código que corre todas as noites, não uma intenção. Os cabeçalhos de segurança podem ser lidos do exterior com um único pedido.

Qué no dice el caso

A hospedagem, os artefactos de publicação e a configuração do servidor continuam a ser informação interna. E o conteúdo — os dados sobre a localidade, a composição do conselho, o orçamento — pertence à instituição e é fornecido por ela: nós construímos a estrutura e o painel, não os dados.

Perguntas

O que alguém das instituições & administração pergunta

Que secções são obrigatórias e quem verifica?

A lista vem da Resolução do Governo 728/2023: transparência decisória, projetos e decisões, anúncios, documentos, contactos, orçamento, além das páginas de acessibilidade e de informação sobre o tratamento de dados. Nós construímo-las como estrutura desde o início. No trabalho que citamos, a conformidade está escrita no código — nos modelos e na configuração — e não apenas afirmada na proposta.

Podemos publicar nós próprios um anúncio, sem vos telefonar?

Sim, e isso é metade do trabalho. Os anúncios, os projetos de decisão, os documentos e a galeria são editados no painel. O que fica na configuração é o conteúdo que muda raramente — histórico, geografia, composição do conselho — precisamente para que uma edição de rotina não possa estragar a estrutura.

Quem publicou um anúncio e quando — isso pode ser apurado?

Sim. Cada ação de administração entra numa tabela de auditoria, com o ator, o cargo, o tipo de evento e o momento. O registo contém também o endereço IP, portanto é dado pessoal e tem prazo: apaga-se diariamente tudo o que tiver mais de doze meses.

O que acontece se alguém tentar adivinhar a palavra-passe do painel?

Ao sexto pedido num minuto a partir do mesmo endereço, recebe 429. Não é uma afirmação: um teste automático verifica exatamente este código de resposta. Além disso, os cabeçalhos de segurança da resposta real podem ser lidos a partir do exterior — a proibição de enquadramento em frame, `nosniff`, a política de referência, o transporte seguro imposto e uma política de conteúdo explícita.

Podem ligar o site à autenticação governamental e à assinatura eletrónica?

O código está escrito e testado, mas desligado por um interruptor, e o teste predefinido verifica precisamente que o estado desligado não deixa sair nada. O que falta não é o código: faltam o contrato com a autoridade e o certificado do sistema. A variante que funciona hoje é o cidadão assinar no portal oficial e carregar de volta o documento assinado. Preferimos dizer isto antes do concurso, não depois.

E os pagamentos para o orçamento, através da plataforma do Estado?

Não temos código para ela, em nenhum repositório — o mesmo se aplica à via de interoperabilidade e ao gabinete do cidadão. Verificámos isso com uma pesquisa por palavra inteira em todos os nossos projetos. Quando uma instituição precisa deles, é um trabalho de integração com as suas próprias condições e o seu próprio calendário de acordos, e é assim que o escrevemos na proposta.

O site tem de ser hospedado na infraestrutura do Estado?

Onde isso é obrigatório por resolução do governo, sim, e é um requisito de procedimento, não uma escolha técnica. Tratamo-lo como tal desde o início, porque muda o modo de publicação e a lista de acordos necessários, não apenas o endereço do servidor.

Como é que vocês mostram que o site é acessível?

Com uma verificação que corre nos testes automatizados, com base nos critérios WCAG 2.0 A e AA mais 2.1 A e AA, com uma linha de referência por página: qualquer problema novo bloqueia a entrega. A declaração de acessibilidade é escrita depois de a verificação correr, não antes — caso contrário, é um texto que contradiz a página onde está.

O que acontece com as fotografias enviadas pelos cidadãos?

Na plataforma cívica, a fotografia bruta permanece prova privada; só a versão redigida chega ao público, com a proveniência preservada e com aprovação explícita de um moderador, e quem redige não é quem aprova. Se o estado de uma imagem se tornar inseguro, o dossier é retirado automaticamente do público. São restrições na base de dados, não instruções para o operador.

O que gostaria que funcionasse melhor?

Conte-nos o seu processo. Em conjunto decidimos o que vale a pena construir, o que podemos ligar e como verificamos o resultado.

Vamos falar