Repository navigation
clyops 0.12.0
URL schemas fetched and checked everywhere json:SCHEMA inputs are used, schemas shown and
checked in the web and desktop runners and in clyops-doc, and OpenAPI 3.1.
Breaking
- clyops-api serves OpenAPI 3.1 (was 3.0), whose schemas are JSON Schema 2020-12: nullable
fields aretype: [T, "null"]rather thannullable: true, binary bodies are strings
with acontentMediaTyperather thanformat: binary, and a json input in the query
string is JSON text with its schema ascontentSchema. A client generator that only reads
3.0 needs a 3.1-aware version. clyops-api generates it with zod-to-openapi's 3.1
generator, from plus-express's registry.
JSON input
- clyops-api and clyops-mcp fetch the URL schemas
json:SCHEMAinputs reference when
they load tools, and the schemas those reference (--schema-depth, default 3), so
those inputs are checked, not only documented (#51). On by default:
--no-fetch-schemasturns it off,--schema-hostslimits the hosts (redirects
included),--schema-cache(seconds, default 3600),--schema-timeout(5) and
--schema-max-bytes(1 MiB) bound it. A schema that can't be fetched is a warning and
leaves its input unchecked. The reserved example domains (RFC 2606) are never fetched.
In clyops-tools:loadTools/watchToolstakeschemas, plusfetchSchemaRefs,
inlineSchemaRefs,clearSchemaCacheandSchemaFetchError. - The web and desktop runners check
jsonandjson:SCHEMAfields as you type, with ajv:
the text is parsed, as the API does, and checked against the field's schema, and
problems block a run while the field is enabled (#52). A JSON field is a text area with
an "Expected JSON" view of its schema, and starts from the schema'sdefaultor first
examplesentry. clyops-schema'sinputIssuesdoes the parsing and messages with any
ajv-shaped validator, so the package keeps no dependencies;jsonSchemaView,
jsonSampleandFormField.jsongo with it. - The desktop runner fetches the URL schemas
json:SCHEMAinputs reference when a tool loads
(from Rust: the webview's fetch is bound by CORS), with the server flags as settings: fetch
on or off, depth, allowed hosts, cache, timeout and size limit (#51). The inlining moved
into clyops-schema (inlineSchemaRefs,fetchSchemaRefswith adownloadoption), so
clyops-tools and the desktop runner share it. - clyops-doc prints a
json:SCHEMAinput's schema under it in man pages, Markdown and HTML
(#52). - clyops-api's OpenAPI document gives a
json:SCHEMAinput's schema inline, with its#
references pointing at where it sits in the document (#52). - Fixed: the desktop runner dropped every
json:SCHEMAinput's schema when it read a tool's
--help-json-schema. - Fixed: the web runner rejected every
json:SCHEMAfield whose schema wasn't a string
schema, because it checked the field's text rather than its parsed value.
Downloads
| clyops runner | Linux: .deb, .rpm or .AppImage (x64 amd64/x86_64, arm64 arm64/aarch64) · macOS: _universal.dmg · Windows: _x64-setup.exe or _x64_en-US.msi |
| clyops-dispatch | clyops-dispatch-<version>-<platform>.tar.gz (Linux x64/arm64, macOS universal) or -windows-x64.zip |
| C | libclyops-<version>-<platform>.tar.gz (static library + header) or -src.tar.gz |
| Bash | clyops.sh |
| JavaScript / TypeScript | clyops-<version>.tgz (pnpm add ./clyops-<version>.tgz) |
| Python | clyops-<version>-py3-none-any.whl or the sdist |
| Rust | clyops-<version>.crate |
| Ruby | clyops-<version>.gem (gem install ./clyops-<version>.gem) |
| Java | clyops-<version>.jar |
| Go | go get github.com/wankdanker/clyops/packages/go@v<version> |
SHA256SUMS lists a checksum for every file.
The runner installers are not signed with a paid certificate yet. On macOS, right-click the app
and choose Open the first time (or run xattr -dr com.apple.quarantine "/Applications/clyops-runner.app").
On Windows, choose More info → Run anyway in the SmartScreen prompt.