106 lines
3.3 KiB
Markdown
106 lines
3.3 KiB
Markdown
# FoxyLink PoC Runbook (2026-03-22)
|
|
|
|
## Goal
|
|
|
|
Close hard check #2 with reproducible evidence:
|
|
|
|
- `posting -> subconto[1..3] -> counterparty / contract / item`
|
|
|
|
while keeping OData as the baseline read-only contour.
|
|
|
|
## Current Fact Baseline
|
|
|
|
- OData baseline is working.
|
|
- UT `UI.cfe` quick path is blocked for the current test contour.
|
|
- FoxyLink HTTP probe to `http://localhost/buh_test/hs/AppEndpoint/v1/Self/Query/SYNC`
|
|
currently returns `404` in this workspace baseline.
|
|
|
|
This usually means FoxyLink is not merged/published in the currently exposed infobase
|
|
or HTTP services are not enabled for the publication.
|
|
|
|
## Local Artifacts
|
|
|
|
- FoxyLink source: `external/FoxyLink/src`
|
|
- Probe script: `scripts/foxylink_probe_endpoint.py`
|
|
- Probe wrapper: `scripts/run_foxylink_probe.ps1`
|
|
- Probe report output: `logs/foxylink_probe_report.json`
|
|
- Payload template: `docs/snapshots/foxylink_slot3_payload_template.json`
|
|
|
|
## Step 1: Deploy FoxyLink in Isolated Test Base
|
|
|
|
1. Open test base in 1C Configurator.
|
|
2. Merge configuration from `external/FoxyLink/src` (`Compare, merge with configuration from file...`).
|
|
3. Update database configuration.
|
|
4. Re-publish the test infobase on IIS with HTTP services enabled.
|
|
|
|
## Step 2: Initialize and Check Predefined Objects
|
|
|
|
Confirm these descriptions exist in the target base (they are used in URL routing):
|
|
|
|
- Exchange: `Self`
|
|
- Operation: `Query`
|
|
- Channel: `Self (Files)`
|
|
|
|
If subsystem initial fill was not executed automatically, run FoxyLink initialization
|
|
inside the test base so predefined objects and handlers are ready.
|
|
|
|
## Step 3: Minimal PoC Routing Setup
|
|
|
|
Create one minimal read-only route for operation `Query` that outputs a slot3-focused dataset:
|
|
|
|
1. In exchange `Self`, ensure `InUse = true`.
|
|
2. For operation `Query`, define Data Composition Schema/Settings that returns:
|
|
- document ref + line number
|
|
- posting recorder + line number
|
|
- debit/credit account
|
|
- subconto slot 1..3 values/types (or equivalent semantic columns)
|
|
3. Bind operation `Query` to channel `Self (Files)`.
|
|
4. Set channel resources for file output:
|
|
- `Path = X:\1C\NDC_1C\logs\foxylink_out`
|
|
- `BaseName = slot3_probe`
|
|
- `Extension = .json`
|
|
- `AddTimestamp = true` (optional)
|
|
|
|
## Step 4: Endpoint Smoke Check
|
|
|
|
Run:
|
|
|
|
```powershell
|
|
cd X:\1C\NDC_1C
|
|
powershell -ExecutionPolicy Bypass -File .\scripts\run_foxylink_probe.ps1 --strict
|
|
```
|
|
|
|
Expected:
|
|
|
|
- `logs/foxylink_probe_report.json` has `classification = reachable`
|
|
- `response.status_code = 200`
|
|
|
|
If status is `404`, re-check merge/publication path:
|
|
|
|
- publication base name (`ONEC_INFOBASE`)
|
|
- `ONEC_FOXY_PATH` (default `/hs/AppEndpoint/`)
|
|
- FoxyLink merge into the exact published infobase
|
|
|
|
## Step 5: Parameterized Semantic Probe
|
|
|
|
1. Put request payload JSON into
|
|
`docs/snapshots/foxylink_slot3_payload_template.json` (or another file).
|
|
2. Run:
|
|
|
|
```powershell
|
|
cd X:\1C\NDC_1C
|
|
python scripts/foxylink_probe_endpoint.py --payload-file docs/snapshots/foxylink_slot3_payload_template.json --strict
|
|
```
|
|
|
|
3. Verify exported data file appears in `logs/foxylink_out`.
|
|
4. Use that file to update slot3 evidence and re-run the hard gate scripts.
|
|
|
|
## Acceptance for Promotion
|
|
|
|
Promotion to "FoxyLink deeper path ready" is allowed when all are true:
|
|
|
|
1. FoxyLink probe endpoint is reachable (`HTTP 200`).
|
|
2. Slot3 evidence is reproducible from FoxyLink output.
|
|
3. All three hard checks pass in `logs/deep_accounting_mvp_gate.json`.
|
|
|