O ai-memory é genial no laptop e
desajeitado no cluster. O AI Memory Ops fecha essa lacuna: empacota o engine
para rodar em Kubernetes do jeito que você de fato colocaria em produção — atrás
de OIDC, com o tráfego de máquinas e de pessoas separado de forma limpa, um ETL
git→wiki agendado o alimentando e uma web UI customizada já embutida. Um
helm upgrade e você tem uma memória compartilhada e autenticada para o time
inteiro.
O problema que resolve
Por padrão, o ai-memory não tem opinião sobre quem pode acessá-lo, como os segredos são tratados ou como o conhecimento entra. Rode-o como está em um cluster e você acaba improvisando ingress, auth e higiene de credenciais na mão. O AI Memory Ops toma essas decisões por você e as codifica em um chart: agentes se autenticam com JWTs OIDC, navegadores recebem um login interativo, o token real do engine nunca sai do cluster e segredos reais nunca encostam no repositório.
Arquitetura
flowchart LR client([Client]) --> ingress[Traefik ingress] ingress -->|/web| oauth[oauth2-proxy] ingress -->|/mcp| auth["mcp-auth · JWT validate, inject bearer"] oauth --> engine["ai-memory · engine + SPA"] auth --> engine repos[(Source repos)] -->|git ETL · CronJob| engine
Duas portas para um único engine. O /mcp é para máquinas: o sidecar mcp-auth
valida o JWT OIDC do chamador na borda e o troca pelo AI_MEMORY_AUTH_TOKEN
estático do engine, que nunca sai do pod. O /web é para pessoas: o
oauth2-proxy cuida do login OIDC interativo. Ambos chegam ao mesmo engine do
ai-memory, que também serve a SPA embutida.
O que tem dentro
- Helm chart (
charts/ai-memory-svc) — implanta o engine mais um sidecar de auth, um CronJob de ETL, um oauth2-proxy opcional e um ingress Traefik. images/ai-memory— constrói a imagem do engine e pode embutir uma SPA de web UI customizada via--web-ui-dir.images/mcp-auth— um pequeno sidecar em Go que valida JWTs Keycloak/OIDC na borda (TraefikforwardAuth) e injeta o bearer token de upstream para o/mcpe o/hook.images/etl— um ETL git→wiki que clona repositórios de origem e os ingere no ai-memory como páginas de wiki, rodando como CronJob.images/mcp-write— um proxy de escrita MCP opcional para escritas duráveis de páginas.deploy/rbac-deployer.yaml— umRole/RoleBindingescopado para que uma service account de CI rodehelm upgradesem precisar de cluster-admin.
Segredos ficam fora do git
O chart nunca templa segredos reais: secrets.create: false é o padrão,
então você os cria fora do repositório. Os overrides de ambiente (values-*.yaml)
são gitignored, e uma configuração .gitleaks.toml mais um hook de pre-commit
impedem que credenciais cheguem ao repositório. O menor privilégio segue até o CI,
que faz o deploy com um role escopado em vez de cluster-admin.
Stack
Go, Helm, Docker, Shell e Python. O frontend de referência que ele pode embutir é o AI Memory UI.
Disponibilidade
- Código: github.com/djalmajr/ai-memory-ops
- Relacionado: AI Memory UI — o frontend de referência
Source-available; o engine do ai-memory é licenciado pelo projeto original.