Appearance
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
| Step | Endpoint / Action | Expected | Actual | Status | Notes |
|---|---|---|---|---|---|
| 1 | Login | token issued | JWT issued | PASS | Pay admin auth OK |
| 2 | Create connection | connection created | Test env connection created | PASS | |
| 3 | Bridge | linked | bridge_created | PASS | Iiko row + Syrve link |
| 4 | Test connection | connected or business error | auth_failed | FAIL | iiko REST/RPC auth rejected |
| 5 | Health | diagnostic status | auth_failed, server info present | FAIL | Version 9.6.4007.0 from server-info |
| 6 | Sync documents | sync run created | run Succeeded, 0 docs | PARTIAL | All list reads blocked (list_read_failed:*) |
| 7 | List unpaid | documents or empty | empty list | PASS | No snapshots yet |
| 8 | Refresh document | snapshot updated | skipped (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
- Pay API host DI (fixed in repo): Full
AddIikoConnector()registers EnterCo-only stores; Pay host now usesAddIikoConnectorForPayHost()(read-side subset). - Iiko runtime env required on API: Without
Iiko__RuntimeApiCallsEnabled=trueand REST/session verification options, auth endpoints stay blocked and surface genericauth_failed. - DbMigrator vs pay_test DB:
dotnet run --project src/MyHoreca.Pay.DbMigratorfails withrelation "iiko_restaurant_connections" already existswhen DB was initialized via pay_test compose; schemas are present and usable. - Gateway upstream: Shell env pointing YARP to
api:8080causes 502; override withReverseProxy__Clusters__api-cluster__Destinations__api__Address=http://localhost:20001. - Local PostgreSQL host:
appsettings.Development.jsonusesHost=postgres; local runs needConnectionStrings__Default=Host=localhost;.... - Smoke script: PowerShell 7 (
pwsh) required; login artifact now redacts tokens (follow-up commit). - Live credentials:
test/ secret111againsthttps://200-137-733.iiko.itreturnediiko_auth_failedafter 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.examplecomments. - Add integration test asserting Pay API host resolves
AddIikoConnectorForPayHostwithout store ports. - Optional: map
iiko_endpoint_not_verifiedto distinct status inSyrveConnectionLiveChecker(avoid masking asauth_failed).