Technical notes
Part 5 of 5 · Shipping your own data in a manifest
Back: What is refused, and whyNext: the sample, S11 · Purchase Order approval
When your service is down, and when the till is offline
A manifest runs no code of its own, and the rules of this recipe keep anything it declares out of the till's own saves, so it cannot stop a sale. Its webhooks behave as every webhook does (recipes/webhook_receiver.md): three tries, then your reconciliation pull. A till key that reads your records is online-only: on an offline till it is dimmed.
What we would like to improve
- A till key declared from data, so a manifest can ship one with no code (the remote key covers keys answered by your server).
Technical notes
What was proven where
- The recipe's install, export, uninstall and reinstall were proven on our test bench with a manifest carrying every kind but the remote till key (
tools/manifest/tests/fixtures/full_v2_ok.json). extension_modules: not walked with this recipe.- Screenshots in step 5: our test bench; frame: Desk, 1440 wide.
- Export, on the bench: the export held the bin, its item record with its movement, and the Item field's value.
- Uninstall, measured on the bench: with those drops switched off, both tables and the column were still there; with them on, the site's schema after the uninstall equals the schema before the install, kind by kind. The retailer's own changes to your types: measured, all three swept, schema diff empty.
- The kept sale detail and the failed removal: both were measured by forcing the failure on the bench.
- Reinstall: on the bench a reinstall gave exactly the first install's schema, and none of the old data came back: no bin records, no old Item value.
- A custom block on a workspace (measured: such a block ran as the administrator).
- Offline: a till key that reads your records is online-only (on an offline till it is dimmed, per the till's own documentation; not run here).
Tests
python3 -m unittest discover -s tools/manifest/tests -p 'test_manifest_check.py': your manifest and the refusals, without a running iVendNext;test_allowbydefault.pyandtest_site_rules.pyin the same folder hold what is allowed and the install's three stops.
Back: What is refused, and whyNext: the sample, S11 · Purchase Order approval