Base for web apps on apelido and brisa: following the sub-chain, accounts, sessions, and the sign-in, sign-up, invite and password pages.
  • Go 93.2%
  • HTML 6.8%
Find a file
Ruben M. Damião 74c0ff296b credentials: the app asks for a power of attorney for each protocol it uses
apelido's grants have a scope now. The access code asks for the app's own
protocol, the cofre — a request to enter goes by it — and whatever else the
app says it publishes in (LoadConfigCom, ConfigLocal.OutrosProtocolos); the
Crachá gives one grant for each. An account holds with all of them, or with
the grant over everything of who gave it before there were scopes, and the
sign-up concludes with the last one. An app that names no Ambitos asks for
the total, as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:23:48 -03:00
auth credentials: the app asks for a power of attorney for each protocol it uses 2026-10-09 18:23:48 -03:00
cadeia cadeia: through apelido's relay, an app follows its own part of the sub-chain 2026-10-06 23:18:32 -03:00
config credentials: the app asks for a power of attorney for each protocol it uses 2026-10-09 18:23:48 -03:00
credentials credentials: a Crachá beside the browser answers a request to enter without the chain 2026-10-07 23:54:30 -03:00
templates no password: the Crachá lets a browser in 2026-10-05 21:20:24 -03:00
.gitignore iu: the base of web apps on apelido and brisa 2026-10-01 00:31:59 -03:00
CLAUDE.md iu: development notes 2026-10-01 22:04:15 -03:00
go.mod iu: the base of web apps on apelido and brisa 2026-10-01 00:31:59 -03:00
lab_test.go no password: the Crachá lets a browser in 2026-10-05 21:20:24 -03:00
LICENSE iu: the base of web apps on apelido and brisa 2026-10-01 00:31:59 -03:00
README.md no password: the Crachá lets a browser in 2026-10-05 21:20:24 -03:00

iu

A base das aplicações web sobre o apelido e o brisa: ligar-se à rede, saber quem tem conta, e as páginas de entrar, cadastrar e convidar. A aplicação escreve só o seu protocolo e as suas páginas.

Vem do iu do projeto setembro (sobre o handles e o breeze), adaptado ao protocolo de hoje.

O que dá a uma aplicação

pacote faz
cadeia segue a sub-cadeia do apelido (só ações aceites) e entrega à aplicação as instruções do seu protocolo, dentro da Void; publica em nome de um handle, assinando como procuradora
auth quem tem conta: registros e procurações vistos na rede, os pedidos de entrada, sessões, convites
credentials as páginas de entrar, primeiro acesso, código de acesso, convite, e o link de aceite que o Crachá chama
templates os modelos dessas páginas, para a aplicação estender
config lê o JSON da aplicação, a chave (.pem, criada se não existir), e monta tudo

Como uma pessoa entra numa aplicação

A identidade é a @ do apelido, e não há senha na aplicação: quem prova que a @ é da pessoa é o Crachá, que guarda a chave do dono.

A primeira vez. A pessoa escreve a @; a aplicação mostra um código de acesso (apelido.AccessCode: a chave da aplicação e um código sorteado). No Crachá, em dar acesso a um app pelo código, a pessoa cola-o (com um Crachá hospedado configurado, vai lá num clique): o Crachá dá procuração à aplicação com a impressão digital do código. Só a chave do dono assina procurações, e a aplicação, ao ver essa procuração passar na sub-cadeia, sabe que a @ é da pessoa e deixa entrar o navegador que pediu. Ter conta é ter a procuração em vigor.

Das vezes seguintes. A pessoa escreve a @ e a aplicação publica, em nome dela, um pedido de entrada (apelido/entrar): uma entrega do cofre selada para a chave do dono, com um link dentro. A página mostra um número de dois dígitos. O Crachá, que segue a cadeia, mostra o pedido; a pessoa escreve o número, e o Crachá chama o link por HTTPS. Só a chave do dono abre o pedido, por isso chamar o link é a prova; e só uma aplicação com procuração consegue pedir, porque o apelido recusa a Void de quem não fala pela @. O pedido vale 60 segundos (entrar.Window).

O número impede que a pessoa aceite às cegas um pedido feito por outro com a @ dela. Não impede um site falso que comece um pedido verdadeiro e lhe mostre o número.

Tirar o acesso no Crachá tira a entrada na aplicação, e os pedidos deixam de poder ser feitos.

Onde está o Crachá. O formulário de entrada tem um campo para a pessoa dizer onde está o Crachá dela: o endereço de um hospedado (a aplicação propõe o da sua configuração, cracha), ou vazio se é o de desktop. O navegador lembra-se (um cookie); não vai para a cadeia. Com endereço, o primeiro acesso leva o código até lá e a página de espera tem um botão para o abrir; sem ele, a pessoa cola o código e abre o Crachá no computador.

Validar o protocolo da aplicação

A aplicação valida as suas próprias regras, no seu processo, sobre o que cadeia.Segue entrega: a assinatura e o direito de quem assina falar pela @ já foram conferidos pelo apelido. No fim de cada bloco vem uma marca (FimDeBloco) — o sítio de incorporar o que se validou. Recomeco pede para voltar ao estado inicial: a rede desfez blocos, e o que continua válido vem de novo.

Testes

go test ./...
IU_LAB=lab.aslivres.social IU_LAB_GATEWAY_TOKEN=<token> go test -run Lab -v .   # contra o laboratório