Skip to main content

Artifact Schemas

Everything a maker builds in Parsware — a table, a view, a form, a query, a report, a process, an app — is underneath a plain JSON document, and each kind of document has a published JSON Schema (draft 2020-12). The designer is one way to write the document; an editor, a script or an AI assistant is another. Whichever wrote it, the platform checks it against the same schema, when it is saved and again when a solution carrying it is imported.

Each schema is served from this site at /schemas/<name>.schema.json, so any JSON Schema tool can check a file before it is sent:

npx ajv-cli validate --spec=draft2020 -s saved-query.schema.json -d visitors-by-purpose.json

A document that holds another document leaves that part to the other's schema, as the platform does: a saved query's query is a query document, checked against parsware-query. Check it there too.

A refusal from the platform names the same things a validator does: where in the document (a JSON Pointer such as /aggregate/measures/0/function) and what is wrong there.

Every schema​

DocumentSchemaPage
Tablemodel-driven-entityModel-Driven Entity Definition
Choice (option set)model-driven-option-setModel-Driven Option Set
Viewmodel-driven-viewModel-Driven View
Formmodel-driven-formModel-Driven Form
Model-driven appmodel-driven-appModel-Driven App
Queryparsware-query
Saved querysaved-query
Reportmodel-driven-report
Dashboardmodel-driven-dashboard
Studio appstudio-app
A Studio screen, compiledui-tree
Portal appportal-app
App guideapp-guide
Processbpms-process
Process drawingbpms-design
Client business rulebusiness-rule
Server plug-in stepplugin-stepServer Plugin Step
Solution scriptsolution-script
Scheduled jobscheduled-job
Custom APIcustom-apiCustom API
Security rolesecurity-role
Data policypolicy-definition
Environment variableenvironment-variable
Seed dataseed-data
Web resourceweb-resource-manifestWeb Resource Manifest
Custom appcustom-app-manifestCustom App Manifest
Custom controlcustom-control-manifestCustom Control Manifest
Custom app or control archive (parsware.json)artifact-packageArtifact Package
Solution packagesolution-packageSolution Package

Each schema's own description fields explain its members; a page exists where the shape needs more than that.

Older versions​

When a document's shape changes in a way old files cannot satisfy, the old schema is kept beside the new one, so a solution exported before the change still imports: model-driven-form-v1 and model-driven-view-v1 are frozen there.

These files are the platform's own​

The schemas here are copied from the ones each service validates with, and a test fails the build when a copy differs from its source. What you check against is what the platform checks against.