Apicurio Registry artifact reference
This chapter provides reference information on the supported artifact types, states, and metadata that are stored in Apicurio Registry.
Apicurio Registry artifact types
You can store and manage a wide range of schema and API artifact types in Apicurio Registry.
| Type | Description | Supported versions |
|---|---|---|
|
AsyncAPI specification |
|
|
Apache Avro schema |
|
|
GraphQL schema |
* |
|
JSON Schema |
|
|
Apache Kafka Connect schema |
|
|
MCP tool definitions (Model Context Protocol) |
|
|
AI/ML model input/output schema definitions |
|
|
OpenAPI specification |
|
|
LLM prompt templates with variable schemas |
|
|
Google protocol buffers schema |
|
|
Apache Thrift interface definition language |
* |
|
Web Services Definition Language |
|
|
Extensible Markup Language |
|
|
XML Schema Definition |
AI/ML artifact types
Apicurio Registry includes built-in support for AI/ML artifact types designed for LLMOps and prompt engineering workflows.
Apicurio Registry supports the following AI/ML artifact types:
MCP_TOOL-
MCP (Model Context Protocol) tool definitions. Use this artifact type to:
-
Store MCP tool definitions with input/output schemas
-
Track tool evolution with version history and compatibility checking
-
Enable discovery of tools via well-known endpoints
-
Validate tool definitions against the MCP specification
Content types:
application/json
-
MODEL_SCHEMA-
Defines and validates AI/ML model input/output schemas and metadata. Use this artifact type to:
-
Document model input/output contracts using JSON Schema
-
Track model capabilities (chat, vision, function calling)
-
Store provider information and context window limits
-
Ensure backward compatibility when updating model schemas
Content types:
application/json,application/x-yaml
-
PROMPT_TEMPLATE-
Version-controlled prompt templates with variable schemas. Use this artifact type to:
-
Store prompt templates with
{{variable}}syntax -
Define variable schemas with types, constraints, and defaults
-
Track prompt evolution with version history
-
Validate prompts have all required variables defined
Content types:
application/x-yaml,application/json,text/x-prompt-template
-
Apicurio Registry artifact version states
The valid artifact version states in Apicurio Registry are ENABLED, DISABLED, and DEPRECATED.
| State | Description |
|---|---|
|
Basic state, all the operations are available. |
|
The artifact version metadata is viewable and searchable using the Apicurio Registry web console, but its content cannot be fetched by any client. |
|
The artifact version is fully usable but a header is added to the REST API response whenever the artifact version content is fetched. |
Apicurio Registry group metadata
When a group is created in Apicurio Registry, a set of metadata properties is created and stored. This metadata consists of system-generated or user-generated properties that are read-only, and editable properties that you can update after the group is created.
| Property | Type | Description |
|---|---|---|
|
string |
The name of the user who created the group. |
|
date |
The date and time when the group was created, for example, |
|
string |
The name of the user who modified the group. |
|
date |
The date and time at which the group was modified, for example, |
| Property | Type | Description |
|---|---|---|
|
string |
Unique identifier of the artifact group in Apicurio Registry, for example, |
| Property | Type | Description |
|---|---|---|
|
string |
Optional meaningful description of the group, for example, |
|
map |
Optional list of user-defined name-value pairs associated with the group. The name and value must be strings, for example, |
You can update group metadata as follows:
-
You can use the Apicurio Registry REST API or web console to update the set of editable metadata properties.
-
You can update the
stateproperty only by using the Apicurio Registry REST API.
For more details, see the /groups/{groupId} endpoint in the Apicurio Registry REST API documentation.
Apicurio Registry artifact metadata
When an artifact is added to Apicurio Registry, a set of metadata properties is created and stored. This metadata consists of system-generated or user-generated properties that are read-only, and editable properties that you can update after the artifact is created.
| Property | Type | Description |
|---|---|---|
|
date |
The date and time when the artifact was created, for example, |
|
integer |
Globally unique identifier of an artifact version in Apicurio Registry. For example, a global ID of |
|
string |
The name of the user who modified the artifact. |
|
date |
The date and time at which the artifact was modified, for example, |
| Property | Type | Description |
|---|---|---|
|
string |
Unique identifier of an artifact group in Apicurio Registry, for example, |
|
string |
Unique identifier of an artifact in Apicurio Registry. You can provide an artifact ID or use the UUID generated by Apicurio Registry, for example, |
|
ArtifactType |
The supported artifact type, for example, |
| Property | Type | Description |
|---|---|---|
|
string |
Optional human-readable name of the artifact, for example, |
|
string |
Optional meaningful description of the artifact, for example, |
|
map |
Optional list of user-defined name-value pairs associated with the artifact. The name and value must be strings, for example, |
|
string |
The name of the user who owns the artifact. |
You can update artifact metadata as follows:
-
You can use the Apicurio Registry REST API or web console to update the set of editable metadata properties.
For more details, see the /groups/{groupId}/artifacts/{artifactId} endpoint in the Apicurio Registry REST API documentation.
Apicurio Registry artifact version metadata
When an artifact version is added to a Apicurio Registry artifact, a set of metadata properties is created and stored along with the artifact version content. This metadata consists of system-generated or user-generated properties that are read-only, and editable properties that you can update after the artifact version is created.
| Property | Type | Description |
|---|---|---|
|
string |
The name of the user who created the artifact version. |
|
date |
The date and time when the artifact version was created, for example, |
|
string |
The user who modified the artifact version. |
|
date |
The date and time at which the artifact version was modified, for example, |
|
integer |
Unique identifier of artifact version content in Apicurio Registry. The same content ID can be shared by multiple artifact versions when artifact versions have identical content. For example, a content ID of |
|
integer |
Globally unique identifier of an artifact version in Apicurio Registry. For example, a global ID of |
| Property | Type | Description |
|---|---|---|
|
string |
Unique identifier of an artifact group in Apicurio Registry, for example, |
|
string |
Unique identifier of an artifact in Apicurio Registry. |
|
integer |
The version string of the artifact version. If not provided, the system will generate a new sequential version. You can provide a version when using the Apicurio Registry REST API, SDKs, or Maven plug-in, for example, |
| Property | Type | Description |
|---|---|---|
|
string |
Optional human-readable name of the artifact version, for example, |
|
string |
Optional meaningful description of the artifact version, for example, |
|
map |
Optional list of user-defined name-value pairs associated with the artifact version. The name and value must be strings, for example, |
|
ArtifactState |
The state of the artifact version: |
You can update artifact version metadata as follows:
-
You can use the Apicurio Registry REST API or web console to update the set of editable metadata properties.
-
You can update the
stateproperty only by using the Apicurio Registry REST API.
For more details, see the /groups/{groupId}/artifacts/{artifactId}/versions/{versionId} endpoint in the Apicurio Registry REST API documentation.
