Skip to main content

API and Public Surfaces

Documentation Map

API and Public Surfaces

Tool / Contract Summary

jhf-tenter does not expose a native long-running service API of its own. The useful public surfaces in this repo are:

  • repo artifacts
  • verify commands
  • canonical stack files
  • consumed external read surfaces that the repo verifies against

Business Value

  • Prevents the repo from pretending to be a service it is not.
  • Gives website, governance, and operator consumers one place to see the real routes and commands that matter.
  • Keeps repo-owned surfaces separate from Fabric-owned, OpenClaw-owned, and deployment-executed surfaces.

Current Verified State

  • Fabric contracts and combinations surfaces are reachable on <internal-runtime-redacted>:28080.
  • OpenClaw health is reachable on <internal-runtime-redacted>:18789.
  • Asterisk ARI is reachable on <internal-runtime-redacted>:19088.
  • Asterisk GUI runtime is exposed on <internal-runtime-redacted>:19089.

Available now

Repo-owned command surfaces

  • python3 scripts/ci/verify_repo.py
  • bash scripts/fabric-selfcheck.sh
  • python3 scripts/export-fabric-metadata.py --check
  • python3 scripts/ci/verify_asterisk_stack_source_of_truth.py
  • python3 scripts/ci/verify_fabric_contract_adoption.py
  • python3 scripts/ci/verify_fabric_combination_profiles.py
  • python3 scripts/ci/verify_voice_live_call.py

Repo-owned file and artifact surfaces

  • fabric-manifest.json
  • docs/CAPABILITIES.md
  • runtime/asterisk-ari-live/docker-compose.yml
  • runtime/asterisk-gui-live/docker-compose.yml
  • runtime/asterisk-gui-live/app/server.py

Optional / Extended

  • Package publication to Gitea Packages.
  • GUI operator surface when deployment executes the checked-in stack.
  • Optional sipgate carrier slice through Fabric-published optional-slice truth.

Planned / Not in current scope

  • No native jhf-tenter HTTP API.
  • No webhook receiver.
  • No MCP server.

Public Surfaces

Fabric-owned read surfaces consumed by this repo

SurfacePurposeCurrent use
GET /api/v1/contracts/matrixProducer/consumer matrixVerify accepted contract families and versions
GET /api/v1/contracts/docs-standardDocs governance truthVerify docs-standard adoption read-only
GET /api/v1/voice/contracts/eventsVoice event family truthVerify event-family compatibility read-only
GET /api/v1/combinations/profilesCombination truthVerify bundle/profile compatibility read-only
GET /api/v1/combinations/optional-slicesOptional-slice catalogVerify optional slices exist read-only
GET /api/v1/combinations/optional-slices/sipgate-carrier-ctiOptional carrier sliceVerify disabled/planned/enabled state read-only

OpenClaw and telephony read surfaces consumed by this repo

SurfacePurposeInputs / outputsFail / degraded semantics
GET http://<internal-runtime-redacted>:18789/healthzOpenClaw liveness evidenceNo input; returns JSON statusIf unavailable, host-near voice verification is blocked
GET ari/asterisk/infoARI runtime evidenceRequires ARI auth for 200; 401 still proves protected endpoint existsWrong port or refusal is runtime drift
http://<internal-runtime-redacted>:19089/GUI operator surface rootBrowser or HTTP GETReachability alone does not replace SSO or deployment verify

Contract Families

  • VOICE_ROUTER_RUNTIME_SLICE
  • VOICE_ASTERISK_ARI_ADAPTER_SLICE
  • VOICE_STT_TTS_OPENCLAW_FLOW_SLICE
  • VOICE_RUNTIME_VALIDATION_MATRIX
  • FABRIC_COMBINATION_PROFILE_CONSUMER
  • FABRIC_PRODUCER_CONSUMER_ADOPTION
  • ASTERISK_RUNTIME_STACK_SOURCE_OF_TRUTH

Producer-/Consumer-Zuordnung

  • Producer here:
    • docs and file artifacts listed above
    • verify commands and repo-local evidence
  • Consumer here:
    • Fabric contract and combination surfaces
    • OpenClaw live health
    • Asterisk live runtime evidence

Compatibility Window

  • Fabric-owned contract and combination surfaces must match what the current verifiers accept.
  • Stack ports 19088 and 19089 are static-required and are not negotiable at runtime.

Lifecycle Status

  • Repo-owned command and file surfaces:
    • active
  • Native network API:
    • not applicable
  • Deployment-executed GUI/ARI runtime:
    • live-readback required

Readiness / Drift / Monitoring

  • Drift is present when the host routes do not match the stack contract or when Fabric surfaces no longer match declared adoption.
  • Monitoring must remain read-only and evidence-based.

Deployment / Verify

python3 scripts/ci/verify_repo.py
python3 scripts/ci/verify_fabric_contract_adoption.py --fabric-base-url http://<internal-runtime-redacted>:28080
python3 scripts/ci/verify_fabric_combination_profiles.py --fabric-base-url http://<internal-runtime-redacted>:28080
python3 scripts/ci/verify_asterisk_stack_source_of_truth.py --check-live --host <internal-runtime-redacted> --host-checkout /home/administrator/jhf-tenter

Known Limits

  • A repo-owned service API would be a false claim today.
  • Some public-looking routes are deployment- or host-owned, not native tenter routes.

Exceptions / Waivers

  • None.
  • jhf-tenter#86
  • jhf-tenter#87
  • jhf-tenter#88
  • jhf-tenter#90