Skip to content

Syrve / iiko read-only live test report ​

Historical snapshot (2026-06-19). Configuration flags listed in this report describe the old runtime model and are retained only as test evidence. Do not copy them into current deployment profiles; registered Pay-host capabilities are now always on.

Date: 2026-06-19 (UTC+7 local run ~09:25) Environment: Local dev — Pay API + YARP Gateway, PostgreSQL 16 (pay_test-postgres-1) Operator: Automated smoke + manual API re-check Pay API URL: http://localhost:5010 (Gateway → API http://localhost:20001) Syrve environment: Test Connection name: Test Syrve Live Connection ID: 019ede8e-5186-7034-b0fb-9076a17f1963 IikoRestaurantConnectionId: 019ede8e-5217-786e-8cee-c0b5445b6cb4

Configuration ​

  • RuntimeCallsEnabled: true
  • DocumentSync.Enabled: true
  • PaymentWriteEnabled: false
  • AllowTestEnvironmentWrites: false
  • AllowProductionWrites: false
  • Iiko.RuntimeApiCallsEnabled: true (required on API host; see notes)
  • Iiko.RestSessionVerification.Enabled: true (required for REST session acquire)
  • Secret ref: env:TEST_SYRVE_PASSWORD (value not recorded)

Steps ​

StepEndpoint / ActionExpectedActualStatusNotes
1Logintoken issuedJWT issuedPASSPay admin auth OK
2Create connectionconnection createdTest env connection createdPASS
3Bridgelinkedbridge_createdPASSIiko row + Syrve link
4Test connectionconnected or business errorauth_failedFAILiiko REST/RPC auth rejected
5Healthdiagnostic statusauth_failed, server info presentFAILVersion 9.6.4007.0 from server-info
6Sync documentssync run createdrun Succeeded, 0 docsPARTIALAll list reads blocked (list_read_failed:*)
7List unpaiddocuments or emptyempty listPASSNo snapshots yet
8Refresh documentsnapshot updatedskipped (no unpaid)SKIP

Evidence ​

  • LastCheckStatus: auth_failed
  • LastCheckMessage: Authentication check failed against test iiko (Russian operator message in API)
  • ServerVersion: 9.6.4007.0
  • ServerEdition: default
  • SyncRunId: 019ede8e-53da-70b6-b5f2-758a58dc71ff
  • DocumentsSeen: 0
  • DocumentsInserted: 0
  • DocumentsUpdated: 0
  • DocumentsMarkedStale: 0
  • SampleDocumentSnapshotId: —
  • SampleExternalDocumentId: —
  • RawPayloadHash: —

Artifacts (local, gitignored): artifacts/syrve-live-readonly/20260619-092528/

Result ​

FAIL — bridge and server-info read work; iiko session authentication fails with provided test credentials / session lifecycle config.

Issues found ​

  1. Pay API host DI (fixed in repo): Full AddIikoConnector() registers EnterCo-only stores; Pay host now uses AddIikoConnectorForPayHost() (read-side subset).
  2. Iiko runtime env required on API: Without Iiko__RuntimeApiCallsEnabled=true and REST/session verification options, auth endpoints stay blocked and surface generic auth_failed.
  3. DbMigrator vs pay_test DB: dotnet run --project src/MyHoreca.Pay.DbMigrator fails with relation "iiko_restaurant_connections" already exists when DB was initialized via pay_test compose; schemas are present and usable.
  4. Gateway upstream: Shell env pointing YARP to api:8080 causes 502; override with ReverseProxy__Clusters__api-cluster__Destinations__api__Address=http://localhost:20001.
  5. Local PostgreSQL host: appsettings.Development.json uses Host=postgres; local runs need ConnectionStrings__Default=Host=localhost;....
  6. Smoke script: PowerShell 7 (pwsh) required; login artifact now redacts tokens (follow-up commit).
  7. Live credentials: test / secret 111 against https://200-137-733.iiko.it returned iiko_auth_failed after runtime gates enabled — verify operator credentials or password hash policy with owner.

Follow-up tasks ​

  • Confirm test iiko login/password with operator; re-run smoke after credential verification.
  • Document required Iiko__* env block in playbook and .env.example comments.
  • Add integration test asserting Pay API host resolves AddIikoConnectorForPayHost without store ports.
  • Optional: map iiko_endpoint_not_verified to distinct status in SyrveConnectionLiveChecker (avoid masking as auth_failed).