This directory contains JSON Schema definitions for all Pydantic models in the Qontinui library. These schemas can be used by TypeScript/JavaScript frontends for type validation, code generation, and IDE support.
qontinui-schemas.json - Contains all model definitions in JSON Schema format (draft-07)
You can use tools like json-schema-to-typescript to generate TypeScript types:
npm install -g json-schema-to-typescript
json2ts schemas/qontinui-schemas.json -o src/types/qontinui.d.tsimport Ajv from 'ajv';
import schemas from './schemas/qontinui-schemas.json';
const ajv = new Ajv();
// Validate an Action object
const actionSchema = schemas.definitions.Action;
const validate = ajv.compile(actionSchema);
const action = {
id: 'action1',
type: 'CLICK',
name: 'Click Login Button',
config: {
target: {
type: 'image',
imageId: 'login-button'
}
}
};
if (validate(action)) {
console.log('Action is valid!');
} else {
console.error('Validation errors:', validate.errors);
}Convert JSON Schema to Zod schemas using json-schema-to-zod:
npm install json-schema-to-zodimport { Validator } from 'jsonschema';
import schemas from './schemas/qontinui-schemas.json';
const validator = new Validator();
// Validate a Workflow
const workflowSchema = schemas.definitions.Workflow;
const result = validator.validate(myWorkflow, workflowSchema);
if (result.valid) {
console.log('Workflow is valid!');
} else {
console.error('Errors:', result.errors);
}The schemas include definitions for:
- Action - Individual action definition
- Workflow - Complete workflow with actions and connections
All action types have corresponding configuration schemas:
- ClickActionConfig
- MouseMoveActionConfig
- MouseDownActionConfig
- MouseUpActionConfig
- DragActionConfig
- ScrollActionConfig
- TypeActionConfig
- KeyPressActionConfig
- KeyDownActionConfig
- KeyUpActionConfig
- HotkeyActionConfig
- FindActionConfig
- FindStateImageActionConfig
- VanishActionConfig
- ExistsActionConfig
- WaitActionConfig
- IfActionConfig
- LoopActionConfig
- BreakActionConfig
- ContinueActionConfig
- SwitchActionConfig
- TryCatchActionConfig
- SetVariableActionConfig
- GetVariableActionConfig
- SortActionConfig
- FilterActionConfig
- MapActionConfig
- ReduceActionConfig
- StringOperationActionConfig
- MathOperationActionConfig
- GoToStateActionConfig
- RunWorkflowActionConfig
- ScreenshotActionConfig
- ImageTarget
- RegionTarget
- TextTarget
- CoordinatesTarget
- StateStringTarget
- CurrentPositionTarget
- Region
- Coordinates
- LoggingOptions
- SearchOptions
- VerificationConfig
- BaseActionSettings
- ExecutionSettings
- Connection
- Connections
- WorkflowMetadata
- Variables
- WorkflowSettings
If the Pydantic models are updated, regenerate the schemas by running:
cd path/to/qontinui
python scripts/export_schemas.pyOr from the project root:
python -m scripts.export_schemasThe generated qontinui-schemas.json file has the following structure:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Qontinui Schema Definitions",
"description": "JSON Schema definitions for Qontinui Pydantic models",
"version": "1.0.0",
"definitions": {
"Action": { ... },
"Workflow": { ... },
"ClickActionConfig": { ... },
...
}
}Each definition in the definitions object is a complete JSON Schema that can be used independently or referenced by other schemas.
The schemas respect the Pydantic field aliases, using camelCase naming (e.g., mouseButton, clickTarget) which is standard in JavaScript/TypeScript, while the Python models use snake_case (e.g., mouse_button, click_target).
For issues or questions about the schemas:
- Check the Pydantic models in
src/qontinui/config/schema.py - Refer to the main Qontinui documentation
- File an issue in the repository
These schemas are part of the Qontinui library and are subject to the same license.