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 make every discovered plugin auditable before first use.

모든 것이 로컬에서 실행됩니다. 제품군의 어떤 패키지도 외부로 신호를 보내거나 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에서 이어서 확인하세요.