Pain001

O Pain001 roda em Python 3.10, 3.11 e 3.12 (cada versão testada na CI) em macOS, Linux e Windows. Instale o que precisar; cada capacidade opcional é um extra, então a instalação base permanece enxuta.


01. PyPI#

O que você precisa Comando
CLI principal e biblioteca Python pip install pain001
Microsserviço de API REST (FastAPI + Uvicorn) pip install "pain001[api]"
Ingestão de Parquet (PyArrow) pip install "pain001[parquet]"
Arquivos de entrada criptografados com PGP (.gpg / .asc) pip install "pain001[gpg]"
Fila de jobs assíncronos com Redis para a API pip install "pain001[redis]"
Rastreamento OpenTelemetry pip install "pain001[otel]"
Servidores MCP / LSP mínimos embutidos pip install "pain001[mcp]" / "pain001[lsp]"

Os pacotes complementares são instalados separadamente e versionados de forma independente:

pip install pain001-loader-xlsx    # Excel ingestion (auto-discovered plugin)
pip install pain001-loader-mt101   # SWIFT MT101 parsing library
pip install pain001-mcp            # Full 17-tool MCP server for AI agents
pip install pain001-lsp            # Full six-feature editor language server

Verifique a instalação e explore o catálogo de mensagens:

pain001 --version
pain001 versions          # list all 11 supported message definitions
pain001 init pain.001.001.09   # scaffold a starter CSV template

02. Docker#

Imagens multiarquitetura (linux/amd64, linux/arm64) são publicadas no GitHub Container Registry. O contêiner roda como um usuário dedicado sem privilégios de root.

# Generate XML from a local CSV
docker run --rm -v "$PWD:/data" -w /data \
  ghcr.io/sebastienrousseau/pain001:latest \
  generate -t pain.001.001.09 -d payments.csv -o out/

# Launch the REST API
docker run --rm -p 8000:8000 \
  ghcr.io/sebastienrousseau/pain001:latest \
  serve --host 0.0.0.0 --port 8000

03. Ambientes restritos#

Ambientes de bancos e tesourarias costumam proibir o carregamento dinâmico de plugins. Existem dois controles exatamente para esse caso:

  • PAIN001_DISABLE_PLUGINS=1 desativa toda a descoberta de plugins de terceiros; apenas os loaders incluídos são executados.
  • pain001 plugins list / pain001 plugins show make every discovered plugin auditable before first use.

Tudo executa localmente. Nenhum pacote da suíte telefona para casa, chama uma API SaaS ou move dados de pagamento para fora do host.


04. Primeiro arquivo em três comandos#

pip install pain001
pain001 init pain.001.001.09 -o work/
pain001 -t pain.001.001.09 -d work/template.csv -o work/ --dry-run

--dry-run valida contra o JSON Schema, o XSD e (com --scheme) um rulebook SEPA ou transfronteiriço sem gravar saída — o código de saída 0 significa que o arquivo passou nessas verificações: o esquema e, quando selecionado, o rulebook do scheme. O perfil próprio do seu banco e suas regras de canal são separados e ainda exigem testes com o banco. Remova --dry-run para gravar o XML.

Continue na Referência técnica para cada flag e endpoint, ou nas FAQs de início rápido para questões operacionais.