Skip to content

Operational settings resolution (MHPAY-34) ​

Layers ​

text
env defaults (bootstrap)
  -> platform settings (DB singleton PlatformSettings)
    -> organization quota (OrganizationQuota)
      -> location override (future)

What belongs where ​

LayerExamplesStorage
Bootstrap / secretsJWT, Postgres, seed admin, Syrve connection passwordsEnv / secret provider only
Platform operationalUpload defaults and matching tolerance; legacy sync/write capability columns deprecatedPlatform env section + PlatformSettings table
Organization quotaPer-tenant limits; legacy Syrve/iiko capability columns deprecatedOrganizationQuotas table
Location (future)Per-location overridesNot implemented in MHPAY-34

Runtime controls ​

  • Bank statement upload: IEffectiveOperationalSettingsService + IOrganizationQuotaService.EnsureBankStatementUploadAllowedAsync (AND of platform + quota).
  • Syrve/iiko: registered Pay-host capabilities are always on. Legacy platform/quota capability columns are ignored. Payment execution remains protected by scoped RBAC, mandatory manual approval, idempotency, business/anomaly checks, server applicability and required transport preflight.

Audit ​

Updates to platform settings and organization quota write AuditLogEntry with field-level old/new values (no secrets).

RBAC ​

ActionPermission
View org quotaorganization.quotas.view
Update org quotaplatform.quotas.manage
View platform settingsplatform.settings.view
Update platform settingsplatform.settings.manage