Pain001

Pain001 ทำงานบน Python 3.10, 3.11 และ 3.12 (ทดสอบครบทุกเวอร์ชันใน CI) ทั้งบน macOS, Linux และ Windows ติดตั้งเฉพาะส่วนที่คุณต้องการใช้ เนื่องจากความสามารถเสริมทุกอย่างเป็นส่วนเสริมแยกต่างหาก การติดตั้งพื้นฐานจึงมีขนาดเล็ก


01. PyPI#

สิ่งที่คุณต้องการ คำสั่ง
CLI หลักและไลบรารี Python pip install pain001
ไมโครเซอร์วิส REST API (FastAPI + Uvicorn) pip install "pain001[api]"
การนำเข้าข้อมูล Parquet (PyArrow) pip install "pain001[parquet]"
ไฟล์นำเข้าที่เข้ารหัสด้วย PGP (.gpg / .asc) pip install "pain001[gpg]"
คิวงานอะซิงโครนัสที่ใช้ Redis สำหรับ API pip install "pain001[redis]"
การติดตามการทำงานด้วย OpenTelemetry pip install "pain001[otel]"
เซิร์ฟเวอร์ MCP / LSP ขนาดเล็กที่มาพร้อมในตัว pip install "pain001[mcp]" / "pain001[lsp]"

แพ็กเกจเสริมติดตั้งแยกต่างหากและกำหนดเวอร์ชันอย่างเป็นอิสระ:

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

ตรวจสอบผลการติดตั้งและสำรวจรายการข้อความที่รองรับ:

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

02. Docker#

อิมเมจแบบหลายสถาปัตยกรรม (linux/amd64, linux/arm64) เผยแพร่บน GitHub Container Registry คอนเทนเนอร์ทำงานภายใต้ผู้ใช้เฉพาะที่ไม่ใช่ 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. สภาพแวดล้อมที่ควบคุมเข้มงวด#

สภาพแวดล้อมของธนาคารและฝ่ายบริหารเงินมักห้ามการโหลดปลั๊กอินแบบพลวัต จึงมีกลไกควบคุมสองอย่างสำหรับกรณีนี้โดยเฉพาะ:

  • PAIN001_DISABLE_PLUGINS=1 ปิดการค้นหาปลั๊กอินจากบุคคลที่สามทั้งหมด เหลือเพียงตัวโหลดที่มาพร้อมในตัวเท่านั้นที่ทำงาน
  • pain001 plugins list / pain001 plugins show make every discovered plugin auditable before first use.

ทุกอย่างทำงานภายในเครื่อง ไม่มีแพ็กเกจใดในชุดนี้ส่งข้อมูลกลับไปยังผู้พัฒนา เรียกใช้ API ของบริการ SaaS หรือย้ายข้อมูลการชำระเงินออกจากเครื่องที่ติดตั้ง


04. ไฟล์แรกในสามคำสั่ง#

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 จะตรวจสอบกับ JSON Schema, XSD และ (เมื่อใช้ร่วมกับ --scheme) กฎเกณฑ์ของ SEPA หรือการโอนข้ามพรมแดน โดยไม่เขียนไฟล์ผลลัพธ์ — รหัสสถานะการออก 0 หมายความว่าไฟล์ผ่านการตรวจสอบเหล่านั้นแล้ว ได้แก่ สกีมา และกฎเกณฑ์ของ scheme เมื่อเลือกใช้ ส่วนโปรไฟล์และกฎของช่องทางที่ธนาคารของคุณกำหนดเองนั้นแยกต่างหาก และยังคงต้องทดสอบกับธนาคาร หากต้องการเขียนไฟล์ XML ให้ตัด --dry-run ออก

อ่านต่อที่เอกสารอ้างอิงทางเทคนิคสำหรับรายละเอียดของทุกแฟล็กและทุก endpoint หรือที่คำถามที่พบบ่อยสำหรับการเริ่มต้นใช้งานสำหรับคำถามด้านการปฏิบัติงาน