<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>canna-br | Blog</title><description>OSS cannabis association management system — RDC 1.014 sandbox BR</description><link>https://canna-br.fonsecagabriel.com.br/</link><language>en</language><item><title>Como modelamos um ledger sem especulação usando Event Sourcing</title><link>https://canna-br.fonsecagabriel.com.br/en/blog/event-sourcing-ledger-sem-especulacao.md/</link><guid isPermaLink="true">https://canna-br.fonsecagabriel.com.br/en/blog/event-sourcing-ledger-sem-especulacao.md/</guid><description>O token-ledger do canna-br não é cripto e não é fintech. É contabilidade programável construída sobre event sourcing — para que toda posição econômica de uma associação seja auditável desde o primeiro evento.

</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;O canna-br precisava de um ledger desde o primeiro dia. Não por moda, não por ser “web3” — mas porque o problema que o sistema resolve exige rastreabilidade contábil imutável por obrigação legal.&lt;/p&gt;
&lt;p&gt;Quando a ANVISA fiscaliza uma associação de cannabis medicinal, ela quer saber: quem recebeu o quê, quando, de qual lote, com base em qual prescrição, com saldo disponível no momento da dispensação. Isso não é relatório gerencial. É trilha de auditoria que precisa sobreviver a questionamento judicial.&lt;/p&gt;
&lt;p&gt;A resposta óbvia seria um banco de dados relacional com tabelas de saldo. O problema é que tabelas de saldo mutáveis não respondem a uma pergunta simples: &lt;em&gt;o que aconteceu para o saldo chegar aqui?&lt;/em&gt; Você pode ter o número certo e não ter a história. Em ambiente regulatório, a história é o que importa.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-padrão&quot;&gt;O padrão&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A solução é Event Sourcing: em vez de salvar o estado atual, você salva cada fato que aconteceu. O estado é derivado. A história é imutável.&lt;/p&gt;
&lt;p&gt;No canna-br, cada operação emite um ou mais eventos de domínio. Uma dispensação gera &lt;code dir=&quot;auto&quot;&gt;DispensationRecorded&lt;/code&gt; e &lt;code dir=&quot;auto&quot;&gt;LotQuantityDeducted&lt;/code&gt; — dois fatos atômicos, imutáveis, com timestamp e metadados. Nenhum UPDATE em tabela de saldo. Nenhuma linha desaparece. A projeção (o saldo que você vê na tela) é computada a partir do stream de eventos, e pode ser recomputada a qualquer momento para auditoria.&lt;/p&gt;
&lt;p&gt;O engine de eventos é o NATS JetStream, configurado como append-only com retenção ilimitada (&lt;code dir=&quot;auto&quot;&gt;LimitsPolicy&lt;/code&gt; sem &lt;code dir=&quot;auto&quot;&gt;MaxAge&lt;/code&gt;). Duas armadilhas que aprendemos cedo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code dir=&quot;auto&quot;&gt;InterestPolicy&lt;/code&gt; apaga mensagens sem consumer ativo — destrói o histórico exatamente quando você precisa dele&lt;/li&gt;
&lt;li&gt;&lt;code dir=&quot;auto&quot;&gt;WorkQueuePolicy&lt;/code&gt; apaga no primeiro ack — idem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A configuração correta é &lt;code dir=&quot;auto&quot;&gt;LimitsPolicy&lt;/code&gt; sem teto. O histórico nunca some.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;por-que-não-blockchain&quot;&gt;Por que não blockchain&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A pergunta inevitável é: se você quer imutabilidade, por que não blockchain?&lt;/p&gt;
&lt;p&gt;A resposta está em quatro eixos:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Implementação.&lt;/strong&gt; Blockchain permissionada exige governança de nós, gestão de chaves, protocolo de consenso. Isso não está na capacidade operacional de uma associação de pacientes com três voluntários.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LGPD.&lt;/strong&gt; Dados de saúde em cadeia pública — ou mesmo permissionada compartilhada — criam problema sério de conformidade. O RGPD europeu já tem decisões sobre isso; a tendência LGPD aponta na mesma direção. Crypto-deletion (Art. 18 IV LGPD) em blockchain é tecnicamente inviável sem arquitetura específica.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Superfície regulatória.&lt;/strong&gt; “Blockchain” no contexto de cannabis no Brasil é lido como “cripto” por qualquer interlocutor regulatório. Isso cria ruído que não ajuda.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Custo-benefício.&lt;/strong&gt; O que a blockchain oferece (imutabilidade, auditoria distribuída) o event log local já oferece com menos complexidade. A diferença é o componente de &lt;em&gt;confiança distribuída&lt;/em&gt; — relevante quando há múltiplas partes não confiáveis. Internamente a uma associação, esse requisito não existe.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;a-camada-econômica&quot;&gt;A camada econômica&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Event sourcing resolve o &lt;em&gt;histórico operacional&lt;/em&gt;. Mas associações precisam também de &lt;em&gt;posições econômicas&lt;/em&gt;: saldo interno, cotas de compra coletiva, garantias, governança.&lt;/p&gt;
&lt;p&gt;Para isso existe o token-ledger — mas a palavra “token” aqui é técnica, não comercial. O que o usuário vê é “saldo”, “cota”, “garantia”, “nível”. O backend usa tipos contábeis (&lt;code dir=&quot;auto&quot;&gt;CREDIT&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;PO_SHARE&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;ESCROW&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;REPUTATION_SBT&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;GOVERNANCE_RIGHT&lt;/code&gt;) para manter as regras de transferibilidade, idempotência e segregação corretas.&lt;/p&gt;
&lt;p&gt;A lógica de dupla-entrada (débito, crédito, saldo que nunca fica negativo) é delegada a um engine de ledger pronto — TigerBeetle ou Formance. Não se reimplementa contabilidade de dupla-entrada. As armadilhas são conhecidas: idempotência em falha parcial, atomicidade cross-conta, overflow de ponto flutuante. Esses problemas já foram resolvidos por quem construiu esses engines.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-o-auditor-vê&quot;&gt;O que o auditor vê&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Quando a fiscalização chega, o sistema pode reproduzir o estado da associação em qualquer ponto no tempo. Cada dispensação tem um hash de checkpoint que vincula o evento ao snapshot do ledger naquele momento. O auditor pode verificar que nenhum evento foi retroativamente modificado.&lt;/p&gt;
&lt;p&gt;Isso não é feature de UX. É o produto. O sistema existe para tornar a operação de uma associação verificável por uma autoridade externa.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;arquitetura-em-camadas&quot;&gt;Arquitetura em camadas&lt;/h2&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Core AGPL (Emmett — TypeScript)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;↓ Domain Events&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;NATS JetStream — log imutável, fonte da verdade&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;↓&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Token-Ledger Service (TigerBeetle ou Formance)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;↓&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Projeções SurrealDB — saldo, cotas, extrato&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;↓&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Projection API → Interface&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div aria-live=&quot;polite&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;O frontend nunca acessa o JetStream diretamente. O usuário nunca vê evento bruto. A interface consome projeções — leituras desnormalizadas construídas para display. Quando a projeção está errada, você reprocessa o stream. O stream nunca muda.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-fica-travado-intencionalmente&quot;&gt;O que fica travado intencionalmente&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;O ledger da v0.1 não tem tipos financeiros. &lt;code dir=&quot;auto&quot;&gt;LOAN_POOL_SHARE&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;RECEIVABLE_SHARE&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;YIELD_RIGHT&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;PLANTING_INVESTMENT_POSITION&lt;/code&gt; — todos bloqueados. Não porque a arquitetura não suporte, mas porque produto financeiro exige estrutura regulada que ainda não existe. CVM classifica criptoativos como valores mobiliários pela substância econômica, não pelo nome. Errar aqui não é bug técnico.&lt;/p&gt;
&lt;p&gt;A arquitetura foi desenhada para que essa barreira seja um controle, não uma limitação acidental. Cada tipo econômico tem um flag &lt;code dir=&quot;auto&quot;&gt;regulated_flag&lt;/code&gt; e regras de transferibilidade explícitas. Nada sai bloqueado por esquecimento; sai bloqueado por decisão.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A documentação técnica completa está em &lt;a href=&quot;https://canna-br.fonsecagabriel.com.br/architecture/token-ledger/&quot;&gt;Token-Ledger (arquitetura)&lt;/a&gt; e &lt;a href=&quot;https://canna-br.fonsecagabriel.com.br/business/token-ledger/&quot;&gt;Token-Ledger v0.1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Se você quer construir essa infraestrutura junto ou conectar sua associação como piloto, &lt;a href=&quot;mailto:gabriel@devmagic.com.br&quot;&gt;entre em contato&lt;/a&gt;. O projeto é aberto, AGPL-3.0, e o código está em construção pública.&lt;/p&gt;</content:encoded><category>arquitetura</category><category>event-sourcing</category><category>ledger</category><category>oss</category></item><item><title>Por que AGPL e não MIT para infraestrutura de compliance</title><link>https://canna-br.fonsecagabriel.com.br/en/blog/por-que-agpl-nao-mit.md/</link><guid isPermaLink="true">https://canna-br.fonsecagabriel.com.br/en/blog/por-que-agpl-nao-mit.md/</guid><description>Escolher uma licença OSS não é decisão técnica — é decisão de negócio e de confiança. Para infraestrutura que processa dados sensíveis de saúde em setor regulado, AGPL-3.0 é a única escolha que fecha o argumento comercial mais forte que o canna-br tem.

</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Todo projeto OSS enfrenta a mesma conversa em algum momento: “por que não MIT? é mais simples, mais adotado, menos polêmico.”&lt;/p&gt;
&lt;p&gt;Para a maioria dos projetos, MIT é uma escolha razoável. Para o canna-br, seria um erro que destrói o argumento de venda mais forte do produto.&lt;/p&gt;
&lt;p&gt;Este post explica a lógica da licença — para contribuidores, para associações que vão rodar o sistema, e para quem pensa em fazer fork.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-argumento-central&quot;&gt;O argumento central&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Associações de cannabis medicinal operam em zona cinzenta regulatória. O maior risco operacional que uma diretoria carrega não é funcional — é &lt;strong&gt;perda de controle sobre dados sensíveis de saúde dos membros&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Um sistema fechado, mesmo que auditado por terceiros, não oferece garantia verificável. A diretoria precisa confiar na palavra do fornecedor. Se o fornecedor muda de dono, muda de política, vai à falência ou é pressionado por alguma autoridade — a associação não tem visibilidade.&lt;/p&gt;
&lt;p&gt;AGPL-3.0 transforma esse argumento em diferencial concreto:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Você pode ver cada linha de código que processa os dados dos seus membros. Qualquer advogado da associação pode revisar. Qualquer contribuidor pode auditar. Nenhum SaaS fechado consegue oferecer isso.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Esse argumento só funciona com AGPL. Com MIT, funciona na teoria mas não na prática — porque MIT permite que qualquer fork feche o código e rode como SaaS proprietário, sem obrigação de publicar modificações.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-limite-do-agpl-hosting-parasita&quot;&gt;O limite do AGPL: hosting parasita&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;AGPL protege de quem &lt;strong&gt;modifica e hospeda sem publicar o código&lt;/strong&gt;. Não protege de quem hospeda sem modificar.&lt;/p&gt;
&lt;p&gt;O risco real do canna-br não é um hyperscaler. É a consultoria local que pega o código, hospeda para cinco associações a R$ 500/mês e nunca contribui de volta — capturando valor sem pagar o custo da plataforma. Esse caso está fora do escopo de proteção do AGPL puro.&lt;/p&gt;
&lt;p&gt;Por isso adotamos o modelo Metabase: &lt;strong&gt;AGPL + licença comercial obrigatória via CLA&lt;/strong&gt; para os casos de hosting gerenciado de terceiros, embedding em soluções fechadas e integrações com certeza jurídica de obra derivada. O CLA é o instrumento que fecha esse ciclo sem abrir mão do reconhecimento OSI nem do trust moat de auditabilidade. Detalhes em &lt;a href=&quot;https://canna-br.fonsecagabriel.com.br/business/oss-model/&quot;&gt;Modelo OSS&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Sujeito a revisão jurídica antes de vigorar.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div&gt;&lt;h2 id=&quot;por-que-não-busl&quot;&gt;Por que não BUSL&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Business Source License é a alternativa favorita de projetos que querem “parecer OSS” sem ser OSS.&lt;/p&gt;
&lt;p&gt;BUSL torna o código disponível com restrições comerciais por um período (geralmente 4 anos), depois converte para licença mais permissiva. O problema é que advogados de associação não vão aprovar código com licença restritiva como base do sistema de saúde dos membros. “Disponível mas não open source” é a pior posição possível: perde os benefícios de auditabilidade real sem ganhar nenhuma proteção regulatória.&lt;/p&gt;
&lt;p&gt;Se o argumento comercial central é auditabilidade, BUSL o destrói.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;por-que-não-open-core&quot;&gt;Por que não Open-Core&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Open-core (núcleo gratuito, features premium pagas) funciona quando o comprador tem budget e incentivo para pagar por funcionalidades adicionais.&lt;/p&gt;
&lt;p&gt;O perfil das associações de cannabis brasileiras não tem esse padrão:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Budget apertado — toda receita vai para custo operacional do produto cannabis&lt;/li&gt;
&lt;li&gt;Decisão coletiva — a diretoria não vai aprovar upgrade para “tier Enterprise” em reunião&lt;/li&gt;
&lt;li&gt;Compliance é obrigação legal, não feature diferenciadora — não existe “Premium SNGPC” ou “LGPD Pro”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Open-core funciona com buyer corporativo que tem linha de aprovação de software e budget dedicado. Associação civil sem fins lucrativos não é esse perfil.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;a-fronteira-agplcomercial-na-prática&quot;&gt;A fronteira AGPL/Comercial na prática&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;AGPL-3.0 + CLA (Contributor License Agreement) é o modelo que permite que o canna-br tenha um negócio sustentável sem violar a lógica OSS.&lt;/p&gt;
&lt;p&gt;A fronteira funciona assim:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Core AGPL — tudo que é o produto:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cadastro de associação, membros, prescrições&lt;/li&gt;
&lt;li&gt;Rastreabilidade seed-to-dispensação&lt;/li&gt;
&lt;li&gt;Dispensação, controle de cotas, estoque&lt;/li&gt;
&lt;li&gt;RBAC, logs operacionais&lt;/li&gt;
&lt;li&gt;LGPD básico, SNGPC, relatórios&lt;/li&gt;
&lt;li&gt;APIs públicas, eventos de domínio, conectores MCP básicos&lt;/li&gt;
&lt;li&gt;Ledger técnico interno&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Comercial (serviço externo, não modificação fechada):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hosting gerenciado, backups, observabilidade, SLA&lt;/li&gt;
&lt;li&gt;Suporte e implantação&lt;/li&gt;
&lt;li&gt;Risk engine, cobrança, conciliação financeira&lt;/li&gt;
&lt;li&gt;Auditoria especializada, BI executivo&lt;/li&gt;
&lt;li&gt;Marketplace de fornecedores&lt;/li&gt;
&lt;li&gt;Agentes MCP financeiro/compliance avançado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A linha jurídica é clara: modificação do core AGPL rodando via rede exige publicação do código correspondente. Serviço separado que consome API ou eventos pode ser comercial fechado. Operação, hospedagem, suporte e auditoria são serviços — não precisam abrir playbook interno.&lt;/p&gt;
&lt;p&gt;Isso significa que a InfraCo pode cobrar por managed hosting, suporte e serviços complementares sem violar AGPL. O código core continua aberto. Qualquer associação pode self-hospedar sem pagar nada além de infraestrutura.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-o-cla-permite&quot;&gt;O que o CLA permite&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;CLA (Contributor License Agreement) é o mecanismo que permite dual-licensing. Quando você contribui para o canna-br e assina o CLA, você mantém seu copyright — mas concede à InfraCo o direito de usar sua contribuição em contextos comerciais (como o managed hosting).&lt;/p&gt;
&lt;p&gt;Isso é o mesmo modelo do Plausible, Bitwarden e GitLab CE. Não é incomum, mas precisa estar explícito antes de qualquer contribuição.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O que o CLA não permite:&lt;/strong&gt; fechar o código core. A InfraCo não pode pegar contribuições da comunidade e distribuí-las em versão proprietária sem publicar o fonte.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;trust-moat-em-dados-sensíveis&quot;&gt;Trust moat em dados sensíveis&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;O padrão de crescimento baseado em auditabilidade está validado em outros setores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bitwarden&lt;/strong&gt; cresceu como alternativa auditável ao LastPass. Cofre de senhas é exatamente o perfil de “dados sensíveis onde confiança não pode ser prometida, só demonstrada”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitLab&lt;/strong&gt; construiu crescimento enterprise com “você pode ver tudo, inclusive o código do GitLab”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sentry&lt;/strong&gt; tem ~90% dos usuários em self-host gratuito — o modelo de negócio funciona porque a confiança gerada pela transparência converte quando a escala cresce&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para dados de saúde em zona cinzenta regulatória, o trust moat é mais forte ainda. A diretoria da associação é &lt;strong&gt;pessoalmente responsável&lt;/strong&gt; por um vazamento de dados de saúde. Usar um sistema auditável reduz esse risco pessoal de forma demonstrável.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;uma-armadilha-clássica-o-modelo-professional-services&quot;&gt;Uma armadilha clássica: o modelo professional services&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;OpenMRS e Bahmni são sistemas OSS de saúde bem-sucedidos tecnicamente que foram capturados pelo modelo de consultoria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revenue veio majoritariamente de implementação e customizações&lt;/li&gt;
&lt;li&gt;A equipe core virou basicamente consultoria disfarçada de produto&lt;/li&gt;
&lt;li&gt;Escalabilidade zero: crescimento de receita = crescimento linear de pessoas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O canna-br tem um hard limit explícito: máximo 20% da receita de services. Qualquer serviço contratado (migração, treinamento, customização) tem um cronograma de eliminação via documentação e automação.&lt;/p&gt;
&lt;p&gt;Se o modelo de negócio depende de manter o cliente dependente de serviços, AGPL não resolve nada — o software pode ser aberto mas o conhecimento operacional fica trancado. O modelo certo é: o cliente cresce em autonomia ao longo do tempo, e a InfraCo cresce em escala, não em horas.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;como-contribuir&quot;&gt;Como contribuir&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;O repositório está em estruturação (organização dedicada prevista para v0.3, jul/2026). Enquanto isso, o desenvolvimento acontece em repositório de trabalho aberto.&lt;/p&gt;
&lt;p&gt;Para contribuir:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Leia os ADRs antes de propor mudanças de arquitetura — as decisões técnicas têm contexto regulatório que não é óbvio&lt;/li&gt;
&lt;li&gt;Qualquer contribuição ao core precisa respeitar AGPL-3.0&lt;/li&gt;
&lt;li&gt;O CLA será apresentado antes do merge — é necessário para o modelo de negócio funcionar&lt;/li&gt;
&lt;li&gt;Issues abertas aparecem no &lt;a href=&quot;https://canna-br.fonsecagabriel.com.br/roadmap/&quot;&gt;roadmap público&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Se você quer discutir a licença, o modelo de negócio ou como o canna-br pode se encaixar num projeto que você tem, &lt;a href=&quot;mailto:gabriel@devmagic.com.br&quot;&gt;escreve direto&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;E se sua associação quer fazer parte do piloto — usar o sistema desde o início e ajudar a moldar o produto —, &lt;a href=&quot;https://canna-br.fonsecagabriel.com.br/open/seed-associations/&quot;&gt;leia sobre o piloto&lt;/a&gt; e entre em contato.&lt;/p&gt;</content:encoded><category>oss</category><category>licença</category><category>agpl</category><category>contribuição</category><category>arquitetura</category></item><item><title>RDC 1.014/2026 na prática: o que muda para associações de cannabis</title><link>https://canna-br.fonsecagabriel.com.br/en/blog/rdc-1014-2026-na-pratica.md/</link><guid isPermaLink="true">https://canna-br.fonsecagabriel.com.br/en/blog/rdc-1014-2026-na-pratica.md/</guid><description>A RDC 1.014/2026 entrou em vigor em 4 de agosto de 2026 e criou o primeiro regime administrativo formal para associações de pacientes no Brasil. O que muda operacionalmente — e o que precisa estar no lugar antes da fiscalização chegar.

</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Aviso legal:&lt;/strong&gt; este post é informativo e não substitui orientação jurídica. Cada associação tem uma situação específica. Consulte advogado especializado antes de tomar decisões com base neste conteúdo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Por quase vinte anos, associações de cannabis medicinal no Brasil operaram sob um regime jurídico improvisado: Habeas Corpus coletivo concedido pelo judiciário local, renovado periodicamente, sem uniformidade nacional e sem fiscalização administrativa clara.&lt;/p&gt;
&lt;p&gt;Isso mudou com a RDC 1.014/2026.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-é-a-rdc-1014&quot;&gt;O que é a RDC 1.014&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A Resolução da Diretoria Colegiada 1.014/2026 da ANVISA criou o primeiro “sandbox regulatório” formal para associações de pacientes de cannabis medicinal no Brasil. Vigência: 4 de agosto de 2026.&lt;/p&gt;
&lt;p&gt;O que ela faz, na prática:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cria um regime de &lt;strong&gt;autorização administrativa&lt;/strong&gt; para associações aprovadas no sandbox&lt;/li&gt;
&lt;li&gt;Transfere a &lt;strong&gt;fiscalização primária do judiciário para a ANVISA&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Estabelece um conjunto de &lt;strong&gt;obrigações operacionais&lt;/strong&gt; que as associações precisam cumprir para manter a autorização&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes da RDC, a proteção era judicial — cada associação negociava seu HC com o judiciário local. Com a RDC, existe um caminho administrativo, mas ele vem com requisitos concretos.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-fica-igual&quot;&gt;O que fica igual&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Associações que não solicitarem o sandbox continuam no regime anterior: HC coletivo, risco penal sobre diretores, fiscalização indireta. A RDC não revoga o regime anterior — ela cria uma alternativa. Para quem está no sandbox, a lógica muda completamente.&lt;/p&gt;
&lt;p&gt;Também não muda o seguinte: cannabis continua sendo substância controlada. A regulação autoriza operação dentro de regras específicas; não descriminaliza em sentido amplo.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-muda-para-quem-entra-no-sandbox&quot;&gt;O que muda para quem entra no sandbox&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Fiscalização direta.&lt;/strong&gt; A ANVISA passa a ser a autoridade fiscalizadora. Isso significa visitas de inspeção, auditorias documentais e a possibilidade de suspensão ou cassação da autorização por não conformidade.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proibições absolutas que precisam estar no sistema:&lt;/strong&gt;&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Proibição&lt;/th&gt;&lt;th&gt;O que significa operacionalmente&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Comercialização vedada&lt;/td&gt;&lt;td&gt;Nenhuma transação financeira pelo produto cannabis em si&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Só para membros cadastrados&lt;/td&gt;&lt;td&gt;Dispensação restrita ao quadro associativo ativo&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sem fins lucrativos&lt;/td&gt;&lt;td&gt;Toda receita vai para operação e pesquisa; proibida distribuição de resultado&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Publicidade proibida&lt;/td&gt;&lt;td&gt;Sem material de divulgação de produtos ou serviços&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Rastreabilidade obrigatória.&lt;/strong&gt; A RDC exige que toda dispensação, transferência e evento de produto seja registrado e verificável. Isso inclui a cadeia completa: de onde veio o insumo, qual lote, qual COA (Certificate of Analysis), quem recebeu, em qual quantidade, com base em qual prescrição vigente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SNGPC.&lt;/strong&gt; O Sistema Nacional de Gerenciamento de Produtos Controlados — hoje usado por farmácias para registrar dispensação de substâncias controladas — passa a ser requisito para associações no sandbox. As associações precisam enviar registros periódicos de dispensação no formato ANVISA.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RBAC com segregação de funções.&lt;/strong&gt; A RDC implica que diferentes papéis dentro da associação (diretor, responsável técnico farmacêutico, cultivador, dispensador) precisam estar claramente definidos no sistema, com log de quem fez o quê. Não basta separar na prática — precisa estar no registro.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LGPD aplicada a dados sensíveis de saúde.&lt;/strong&gt; Dados dos membros (diagnóstico, prescrição, dosagem, histórico de uso) são dados sensíveis nos termos da LGPD (Art. 5 II). Isso exige: consentimento explícito, controle de acesso restrito, possibilidade de exclusão efetiva (Art. 18 IV), e — para quem usa sistema externo — contratos de processamento com o fornecedor.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;por-que-planilha-não-resolve-mais&quot;&gt;Por que planilha não resolve mais&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Associações que operam com Google Sheets, WhatsApp e planilhas paralelas estão em risco crescente por uma razão simples: esses sistemas não produzem trilha de auditoria verificável.&lt;/p&gt;
&lt;p&gt;Quando o fiscal ANVISA pede o histórico de dispensações do lote LT-001, a resposta não pode ser “deixa eu procurar nos registros”. Precisa ser: aqui está o evento com timestamp, hash, responsável, quantidade, vinculo à prescrição do paciente, dedução do estoque correspondente.&lt;/p&gt;
&lt;p&gt;Planilha não tem idempotência. Pode ser editada retroativamente. Não tem hash de verificação. Não tem RBAC. Em auditoria, a ausência dessas propriedades é um problema que nenhuma justificativa resolve.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-precisa-estar-no-lugar&quot;&gt;O que precisa estar no lugar&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Para uma associação que quer entrar no sandbox ou se preparar para a fiscalização administrativa, o checklist operacional mínimo é:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cadastro de membros&lt;/strong&gt; com consentimento LGPD documentado, dados de saúde segregados&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rastreabilidade de lotes&lt;/strong&gt; desde o insumo até a dispensação final&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Registro de dispensações&lt;/strong&gt; com vinculo a prescrição vigente, quantidade, lote, dispensador&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Controle de cotas&lt;/strong&gt; — cada membro tem um limite prescrito; o sistema precisa validar isso antes de registrar a dispensação&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SNGPC&lt;/strong&gt; — capacidade de gerar e enviar relatórios no formato ANVISA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit trail imutável&lt;/strong&gt; — histórico que não pode ser editado retroativamente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RBAC&lt;/strong&gt; — cada usuário só faz o que seu papel permite; tudo logado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso é exatamente o que o canna-br entrega, construído com a RDC como referência desde o início.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;responsabilidade-pessoal-dos-diretores&quot;&gt;Responsabilidade pessoal dos diretores&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Um ponto que não aparece no texto da resolução mas que qualquer advogado especializado vai mencionar: a RDC não elimina a responsabilidade pessoal dos diretores da associação.&lt;/p&gt;
&lt;p&gt;Em caso de vazamento de dados de saúde dos membros, a LGPD impõe responsabilidade civil e, em alguns casos, criminal. Em caso de irregularidade operacional grave, o HC coletivo pode ser contestado. A autorização administrativa do sandbox não é escudo para qualquer tipo de irregularidade.&lt;/p&gt;
&lt;p&gt;Usar um sistema que pode ser auditado publicamente — onde o código que processa os dados dos membros é aberto e verificável — é uma forma concreta de reduzir esse risco pessoal. A diretoria pode mostrar, para qualquer advogado ou auditor, exatamente o que o sistema faz com os dados.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;o-que-o-canna-br-está-construindo-agora&quot;&gt;O que o canna-br está construindo agora&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;O sistema está em v0.1.0 com 154 testes passando. Os módulos de dispensação, rastreabilidade de lotes e controle de cotas estão implementados. O SNGPC está em mock — o schema XSD específico para associações ainda não foi publicado pela ANVISA, mas a arquitetura está pronta para integração quando o documento sair.&lt;/p&gt;
&lt;p&gt;O piloto está sendo estruturado com associações que queiram construir esse padrão desde o início — não adaptar um sistema genérico depois que a fiscalização chegar.&lt;/p&gt;
&lt;p&gt;Se sua associação está avaliando como se preparar para o novo regime regulatório, &lt;a href=&quot;mailto:gabriel@devmagic.com.br&quot;&gt;entre em contato&lt;/a&gt; ou veja a documentação técnica de compliance em &lt;a href=&quot;https://canna-br.fonsecagabriel.com.br/build/compliance/&quot;&gt;/build/compliance/&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>regulação</category><category>rdc-1014</category><category>anvisa</category><category>compliance</category><category>associações</category></item></channel></rss>