Pain001

Pain001 chạy trên Python 3.10, 3.11 và 3.12 (mỗi phiên bản đều được kiểm thử trong CI) trên macOS, Linux và Windows. Chỉ cài những gì quý vị cần; mọi khả năng tuỳ chọn đều là một extra, nên bản cài cơ sở luôn gọn nhẹ.


01. PyPI#

Nhu cầu của quý vị Lệnh
CLI lõi & thư viện Python pip install pain001
Vi dịch vụ REST API (FastAPI + Uvicorn) pip install "pain001[api]"
Nạp dữ liệu Parquet (PyArrow) pip install "pain001[parquet]"
Tệp đầu vào mã hoá PGP (.gpg / .asc) pip install "pain001[gpg]"
Hàng đợi tác vụ bất đồng bộ dựa trên Redis cho API pip install "pain001[redis]"
Truy vết OpenTelemetry pip install "pain001[otel]"
Máy chủ MCP / LSP tối giản tích hợp sẵn pip install "pain001[mcp]" / "pain001[lsp]"

Các gói đồng hành được cài đặt riêng và đánh phiên bản độc lập:

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

Kiểm tra bản cài đặt và khám phá danh mục thông điệp:

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

02. Docker#

Các ảnh đa kiến trúc (linux/amd64, linux/arm64) được xuất bản lên GitHub Container Registry. Container chạy dưới một người dùng chuyên dụng không có quyền 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. Môi trường bị khoá chặt#

Các môi trường ngân hàng và ngân quỹ thường cấm nạp plugin động. Hai cơ chế kiểm soát tồn tại cho đúng trường hợp đó:

  • PAIN001_DISABLE_PLUGINS=1 vô hiệu hoá toàn bộ việc phát hiện plugin bên thứ ba; chỉ các bộ nạp đi kèm được chạy.
  • pain001 plugins list / pain001 plugins show make every discovered plugin auditable before first use.

Mọi thứ chạy cục bộ. Không gói nào trong bộ công cụ gửi dữ liệu về nhà sản xuất, gọi API SaaS hay chuyển dữ liệu thanh toán ra khỏi máy chủ.


04. Tệp đầu tiên trong ba lệnh#

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 xác thực theo JSON Schema, XSD và (với --scheme) một bộ quy tắc SEPA hoặc xuyên biên giới mà không ghi kết quả — mã thoát 0 nghĩa là tệp đã vượt qua chính những kiểm tra đó: lược đồ, và bộ quy tắc scheme khi được chọn. Hồ sơ riêng và quy tắc kênh của chính ngân hàng quý vị là chuyện tách biệt, và vẫn cần được kiểm thử với ngân hàng. Bỏ --dry-run để ghi XML.

Tiếp tục đến Tài liệu kỹ thuật để xem mọi cờ lệnh và điểm cuối, hoặc Hỏi đáp nhanh cho các câu hỏi vận hành.