Pain001

Pain001은 macOS, Linux, Windows에서 Python 3.10, 3.11, 3.12로 동작하며, 각 버전은 CI에서 테스트됩니다. 필요한 것만 설치하세요. 모든 선택 기능은 엑스트라로 제공되므로 기본 설치는 가볍게 유지됩니다.


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]"
API용 Redis 기반 비동기 작업 큐 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에 배포됩니다. 컨테이너는 전용 비루트 사용자로 실행됩니다.

# 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 <name>으로 발견된 모든 플러그인을 최초 사용 전에 감사할 수 있습니다.

모든 것이 로컬에서 실행됩니다. 제품군의 어떤 패키지도 외부로 신호를 보내거나 SaaS API를 호출하거나 지급 데이터를 호스트 밖으로 옮기지 않습니다.


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은 파일이 바로 그 검사, 즉 스키마와 선택한 경우의 스킴 룰북을 통과했다는 뜻입니다. 은행 자체 프로파일과 채널 규칙은 이와 별개이며, 여전히 은행과의 테스트가 필요합니다. XML을 작성하려면 --dry-run을 빼세요.

모든 플래그와 엔드포인트는 기술 레퍼런스에서, 운영 관련 질문은 빠른 시작 FAQ에서 이어서 확인하세요.