Apicurio Registry artifact reference

This chapter provides reference information on the supported artifact types, states, and metadata that are stored in Apicurio Registry.

Additional resources

Apicurio Registry artifact types

You can store and manage a wide range of schema and API artifact types in Apicurio Registry.

Table 1. Apicurio Registry artifact types
Type Description

ASYNCAPI

AsyncAPI specification

AVRO

Apache Avro schema

GRAPHQL

GraphQL schema

JSON

JSON Schema

KCONNECT

Apache Kafka Connect schema

OPENAPI

OpenAPI specification

PROTOBUF

Google protocol buffers schema

WSDL

Web Services Definition Language

XML

Extensible Markup Language

XSD

XML Schema Definition

Apicurio Registry artifact states

The valid artifact states in Apicurio Registry are ENABLED, DISABLED, and DEPRECATED.

Table 2. Apicurio Registry artifact states
State Description

ENABLED

Basic state, all the operations are available.

DISABLED

The artifact and its metadata is viewable and searchable using the Apicurio Registry web console, but its content cannot be fetched by any client.

DEPRECATED

The artifact is fully usable but a header is added to the REST API response whenever the artifact content is fetched. The Apicurio Registry Rest Client will also log a warning whenever it sees deprecated content.

Apicurio Registry artifact metadata

When an artifact is added to Apicurio Registry, a set of metadata properties is created and stored along with the artifact 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 is created.

Table 3. Apicurio Registry system-generated metadata
Property Type Description

contentId

integer

Unique identifier of artifact 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 4 can be used by multiple artifact versions with the same content.

createdBy

string

The name of the user who created the artifact.

createdOn

date

The date and time when the artifact was created, for example, 2023-10-11T14:15:28Z.

globalId

integer

Globally unique identifier of an artifact version in Apicurio Registry. For example, a global ID of 1 is assigned to the first artifact version created in Apicurio Registry.

modifiedBy

string

The name of the user who modified the artifact.

modifiedOn

date

The date and time at which the artifact was modified, for example, 2023-10-11T14:15:28Z.

type

ArtifactType

The supported artifact type, for example, AVRO, OPENAPI, or PROTOBUF.

Table 4. Apicurio Registry user-provided or system-generated metadata
Property Type Description

groupId

string

Unique identifier of an artifact group in Apicurio Registry, for example, development or production. When creating an artifact by using the Apicurio Registry web console, if you do not provide a group ID, this is set to default. You must provide a group ID when using the Apicurio Registry REST API, Java client, or Maven plug-in.

id

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, 8d168cad-1865-4e6c-bb7e-04e8be005bea. Different versions of an artifact use the same artifact ID, but have different global IDs.

references

array of ArtifactReference

Optional set of artifact references contained in the artifact, which you can provide when creating the artifact. The following simple example shows a single artifact reference: [{"groupId":"my-group","artifactId":"ItemId","version":"1","name":"com.example.common.ItemId"}].

version

integer

The latest version of the artifact. You can use the generated version, for example, 3, or provide a version by using the Apicurio Registry REST API or Maven plug-in, for example, 2.1.6.

Table 5. Apicurio Registry editable metadata
Property Type Description

description

string

Optional meaningful description of the artifact, for example, This is a simple OpenAPI for testing. You can provide a description, or it can be automatically discovered from the info section of OpenAPI and AsyncAPI artifacts, if already provided.

labels

array of string

Optional comma-separated list of labels used to filter and search for the artifact, for example, test,protobuf. Provided by the user.

name

string

Optional human-readable name of the artifact, for example, My first Avro schema. You can provide a description, or it can be automatically discovered from the info section of OpenAPI and AsyncAPI artifacts, if the title field has a value.

properties

map

Optional list of user-defined name-value pairs associated with the artifact. The name and value must be strings, for example, my-key and my-value.

state

ArtifactState

The latest state of the artifact: ENABLED, DISABLED, or DEPRECATED. Defaults to ENABLED.

Updating artifact metadata
  • You can use the Apicurio Registry REST API or web console to update the set of editable metadata properties.

  • You can update the state property only by using the Apicurio Registry REST API.

Additional resources

For more details, see the /artifacts/{artifactId}/meta endpoint in the Apicurio Registry REST API documentation.