pm-module-sdk-go

module
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2026 License: Apache-2.0

README

ProcessModule Go SDK

Общая техническая библиотека для backend-модулей ProcessModule.

Назначение

SDK предоставляет переиспользуемые инфраструктурные компоненты:

  • конфигурацию подключения к PostgreSQL;
  • создание пула соединений;
  • HTTP observability и request ID;
  • health handlers;
  • раздачу frontend bundle модуля и cache policy для хешированных assets;
  • общие технические HTTP-примитивы;
  • выполнение PostgreSQL-транзакций, advisory transaction locks и embedded Goose-миграций;
  • нормализацию текстовых, контактных значений и календарных дат;
  • валютно-нейтральные денежные значения и проверяемую целочисленную арифметику;
  • получение доверенной системной runtime-конфигурации от Core.
  • безопасную проверку и заполнение DOCX-шаблонов с ограничением распакованного содержимого.
  • проверку банковских реквизитов и формирование stateless-полезной нагрузки платёжного QR ST00012.

Границы

SDK не содержит:

  • бизнес-сущностей;
  • бизнес-правил;
  • SQL-миграций модулей;
  • репозиториев предметной области;
  • ролей и правил доступа;
  • моделей тарификации, правил округления и конвертации валют;
  • зависимостей от Core или конкретного модуля.

Каждый модуль сохраняет собственную базу данных, миграции и бизнес-логику.

Версионирование

SDK использует Semantic Versioning. Модули подключают конкретную версию через Go Modules.

v0.9.0: общий часовой пояс

Runtime-конфигурация получает системную валюту и часовой пояс IANA от Core. runtimeconfig.Require проверяет доверенные заголовки и передаёт часовой пояс в стандартный контекст запроса. runtimeconfig.Today(ctx) возвращает текущую календарную дату, а DateAt(ctx, instant) — дату указанного момента в системном поясе. Фоновые задачи передают пояс явно через WithTimezone. Календарные даты остаются датами, сохранённые моменты событий не изменяются. База часовых поясов встроена в SDK и доступна в минимальных runtime images.

Изменение совместимости: middleware теперь требует заголовок X-ProcessModule-Timezone в дополнение к X-ProcessModule-Currency-Code. При отсутствующем или некорректном поясе запрос получает HTTP 503. Для модулей с этим middleware требуется Core 1.1.0 или новее. Обновление SDK само по себе не переносит настройки и не меняет данные модулей.

Directories

Path Synopsis
Package contact normalizes common contact values without applying module business rules.
Package contact normalizes common contact values without applying module business rules.
Package datevalue provides timezone-independent helpers for calendar dates.
Package datevalue provides timezone-independent helpers for calendar dates.
Package docxtemplate validates and renders DOCX templates containing {{placeholder}} values.
Package docxtemplate validates and renders DOCX templates containing {{placeholder}} values.
Package httpinput parses common scalar values received through HTTP path and query parameters.
Package httpinput parses common scalar values received through HTTP path and query parameters.
Package migrations runs module-owned embedded database migrations.
Package migrations runs module-owned embedded database migrations.
Package moduleui serves the immutable frontend bundle of a ProcessModule module.
Package moduleui serves the immutable frontend bundle of a ProcessModule module.
Package money provides currency-aware integer monetary values and checked arithmetic.
Package money provides currency-aware integer monetary values and checked arithmetic.
Package paymentqr builds transport payloads for payment QR codes.
Package paymentqr builds transport payloads for payment QR codes.
Package requestidentity extracts trusted Core account identity from module proxy headers.
Package requestidentity extracts trusted Core account identity from module proxy headers.
Package runtimeconfig extracts trusted system-level configuration forwarded by ProcessModule Core to module API requests.
Package runtimeconfig extracts trusted system-level configuration forwarded by ProcessModule Core to module API requests.
Package serviceidentity authenticates capability-scoped calls between modules.
Package serviceidentity authenticates capability-scoped calls between modules.
Package textvalue normalizes common text values received by modules.
Package textvalue normalizes common text values received by modules.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL