# 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`.

