Technical Specification

Technical overview of the current data-driven REST contract and the GraphQL adapter and composition layer above it. This sheet documents the available CRUD core, the GraphQL capabilities, and the limits of each runtime.

Implementation Status

ComponentStatusScope
Relational metamodelImplementedStructured databases, schemas, tables, columns, and relationships
Visual modelingImplementedArtificial Interface Studio
OpenAPI generationImplementedOpenAPI/Swagger documentation from the data model
Swagger UI and Mermaid ERDImplementedVisualizes the contract and relational structure
Contract exportImplementedDownload and handoff to your own Git/CI/CD processes
REST runtimeIn developmentSeparate project for executing the data-driven contract
GraphQL runtimeIn developmentDynamic adapter and composition layer over the Swagger-based REST interface
MCP integrationIn developmentStructured access for AI agents
Contract diff, policies, SDKs, mock servers, and contract testsPlanned / not presented as finishedNo completed product promises

Validation Scope

Current Studio validation checks, among other things:

  • missing and duplicate names for databases, schemas, tables, and columns,
  • empty tables and missing or invalid data types,
  • invalid length and numeric ranges,
  • complete and existing references to a schema, table, and column,
  • different reference types as a warning and missing id columns as a warning.

This does not currently mean automatic breaking-change analysis, organization-specific policies, security governance, or a general guarantee of production readiness.

Boundary Between Data Model and API

The current implementation is deliberately data-driven: relational schemas, tables, and columns are mapped closely to CRUD resources. The OpenAPI extensions x-database-schema and x-database-table make that mapping explicit.

Relational model
        ↓ current mapping
OpenAPI CRUD contract
        ↓
REST runtime
        ↓
GraphQL adapter and composition layer

Artificial Interface should therefore be understood today as a controlled Database-to-CRUD Contract layer. Independent domain resources, composed API resources, computed fields, and commands are possible extensions, but are not current promises of this specification.

REST Specifications

NameData-Driven REST API
API TypeRESTful CRUD API
Project StatusActively evolving; specific production environments require their own security, operations, and performance review
Specification StandardOpenAPI 2.0 / Swagger 2.0, OpenAPI 3.0
Data FormatJSON
AuthenticationFlexibly configurable; for example, API key, bearer auth, or custom authentication methods
Example Authentication Headersx-api-key, Authorization: Bearer <token>
Content-Typeapplication/json
Endpoint Pattern/schema_name/entity
Single Resource/schema_name/entity/{id}
Supported HTTP MethodsGET, POST, PATCH, DELETE
GET FunctionRetrieve, filter, sort, and paginate entities
POST FunctionCreate one or more entities
PATCH FunctionPartially update one or more entities
DELETE FunctionDelete one or more entities by ID
Batch ProcessingSupported for POST and PATCH through JSON arrays
Transactional ProcessingVersioned ordered REST workflows with RFC 6901 bindings and atomic commit/rollback; nested GraphQL writes use the same workflow internally
FilteringExact filters, multiple values, date ranges, LIKE searches, and combined filters
Horizontal FilteringThrough $select
SortingThrough $orderBy
PaginationThrough $limit and $offsetId
Multiple Query Parameter ValuesPipe-delimited, for example id=1|2|3
Date FormatZULU/ISO time format, for example 2023-01-01T00:00:00Z
LIKE Wildcards% for any character sequence, _ for a single character
Database MappingRelational database structures with schemas, tables, fields, and relationships
OpenAPI Extensionsx-swagger-router-controller, x-database-schema, x-database-table
Controller ModelGeneric controller, for example, GenericController
Default Success Status200 OK
Error Status Codes400 Bad Request, 401 Unauthorized, 500 Internal Server Error
Schema SupportData types, required fields, constraints, unique values, and relationships
Client CompatibilitySuitable for OpenAPI/Swagger-based client generation
Documentation CompatibilitySuitable for Swagger UI and OpenAPI-compatible tools
Primary PurposeStandardized API layer for managing relational data through CRUD operations
Typical Use CasesCRUD backends, data-driven applications, internal enterprise APIs, and API-first development
Current Building BlocksVisual data modeling, OpenAPI generation, Swagger UI, Mermaid ERD, data-driven REST runtime, GraphQL adapter and composition layer, and MCP access
Automation OptionsOpenAPI contract export and CI/CD integration; further targets such as clients, SDKs, mock servers, and contract tests are not presented as completed product features
Technical FocusReproducible model-to-contract transformation with explicit mapping to relational structures and standardized CRUD operations

GraphQL Runtime

The GraphQL runtime is a dynamically generated adapter and composition layer over the REST runtime. It has no data store of its own: the REST API remains the operational interface for data access and CRUD operations.

GraphQL client
        ↓
GraphQL runtime
  schema generation · translation · relationship resolution · batching
        ↓
REST runtime
        ↓
Database
Schema SourceSwagger-2-style API contract with definitions, paths, and relational extensions
QueriesDynamic GraphQL fields for defined *.get operations
MutationsPOST, PATCH, and supported DELETE paths; batched data is supported
Field SelectionTranslates selected GraphQL fields into REST $select parameters
Query ArgumentsList-based field filters, _orderBy, and _limit with offset and amount
RelationshipsForward and reverse relationships with multiple nesting levels from x-relation-* metadata
BatchingRequest-scoped DataLoaders deduplicate IDs and batch relationship queries to the REST API
Nested MutationsRelated records are created in sequence or updated when an existing ID is provided
Type SafetyGraphQL validates field names, arguments, and data types; standard introspection is supported
AuthenticationAuthorization and x-api-key are forwarded; authorization is not implemented by this runtime itself

Current Limits

  • /transaction is not exposed as a GraphQL mutation.
  • The REST parameters $filter and $offsetId are not official GraphQL arguments.
  • Automatic mapping focuses on database-oriented CRUD resources, not arbitrary domain commands or freely defined endpoints.
  • Typed nested POST/PATCH mutations are compiled into one ordered REST /transaction workflow and execute atomically; direct REST CRUD calls remain available independently.
  • General native OpenAPI 3 processing is not assumed; the runtime currently expects a Swagger-2-style structure.
  • Delete paths used for schema generation should currently use the /{id} spelling.

Source

This sheet refers to the current Artificial Interface building blocks: the data and API model, the Studio, OpenAPI generation, the REST/GraphQL runtime, and MCP access. Detailed endpoint semantics are described in the API documentation.