InTouch Hub · Blue Isle Software

OpenAPI → Tool

Generate a runnable InTouch connector tool from any OpenAPI/Swagger spec — deterministic, zero AI cost.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

codegendeveloper-devopsextractimportloadmetaopenapipipelinereportstatusswaggertransformvalidation

OpenAPI → Tool

Turn any OpenAPI/Swagger spec into a runnable InTouch connector — deterministically, at zero AI cost. The tool transcribes the spec (base URL, auth scheme, operations) into a data-driven InTouch tool; it never asks an LLM, so nothing is hallucinated.

This is the meta-tool behind InTouch's own hub-building pipeline: InTouch uses its own engine to generate its connector library.

What it produces

For input name=nasa-apod, writes <outDir>/nasa-apod/:

Inputs

Input Required Notes
specUrl yes OpenAPI spec URL or absolute file path (JSON; YAML if PyYAML present)
name yes kebab-case connector name
outDir yes absolute staging dir the server can write; output lands in <outDir>/<name>/
category no hub category (default General)
maxOps no max operations to transcribe, GETs first (default 6)
auth no override detected auth: basic | bearer | header:Name | query:name
base no override the base URL

Auth detection

Reads the spec's securitySchemes / securityDefinitions and emits one of: basic, bearer, header:<Name> (apiKey-in-header), or query:<name> (apiKey-in-query, e.g. NASA/NYTimes ?api-key=). Override with auth when a spec is wrong or ambiguous. OAuth2/JWT specs are out of scope — this scaffold authenticates with a single apiKey.

Validation (built in)

Before reporting success the tool runs a two-stage gate:

  1. py_compile the generated executor (syntax).
  2. Execute it with a bogus operation (no network) — it must emit clean JSON with an "unknown operation" error, not a Python traceback. This catches the runtime-but-not-syntax class of bugs (e.g. null vs None, a missing import) that a compile check alone passes.

status/valid reflect the gate; problem carries the reason on failure. A connector is only promotion-eligible when valid=true.

Outputs

status, valid, toolName, toolDir, base, auth, opsCount, operations, problem.

Example

specUrl: https://api.apis.guru/v2/specs/nasa.gov/apod/1.0.0/openapi.json
name:    nasa-apod
category: Reference
outDir:  /opt/intouch/hub-staging/tools

→ writes /opt/intouch/hub-staging/tools/nasa-apod/ with auth query:api_key, base https://api.nasa.gov/planetary, validated and ready to promote.

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
specUrl string yes — URL (or absolute file path) of the OpenAPI/Swagger spec (JSON, or YAML if PyYAML is present).
name string yes — Connector name (kebab-case). Becomes the tool/dir name, e.g. 'nasa-apod'.
category string no General Hub category, e.g. 'Finance', 'News', 'DevOps'.
maxOps string no 6 Max operations to transcribe (GETs picked first). Default 6.
outDir string yes — Absolute staging directory the server can write. The tool is written to //.
auth string no — Override the detected auth: basic | bearer | header:Name | query:name. Leave blank to auto-detect.
base string no — Override the base URL. Leave blank to derive from the spec's servers/host.
baseUrl string no — Path parameter for the operations whose URL contains {baseUrl}.
query string no — Query-string parameters as a JSON object string, e.g. {"limit": 50}. Parsed and url-encoded onto the request.