The data handling microservices are responsible for querying and manipulating data in cenTaur. The web browser sends requests via GraphQL-based calls. GraphQL defines the APIs for data-driven browser requests. Other microservice can send requests using public REST APIs or internal gRPC or Java calls.  

GraphQL Gateway

The GraphQL Gateway microservice is the entry point for data requests in cenTaur. GraphQL schemas define, which data can be requested or manipulated. The GraphQL Gateway is a Node.js-based microservice that runs an Apollo GraphQL server.

The GraphQL Gateway can combine GraphQL schemas that are provided by different GraphQL endpoints. This is called schema stitching. Currently, only the GraphQL Asset API microservice endpoint is available. For development purposes, the GraphQL Gateway can integrate a Mock Server as another GraphQL endpoint.

For more information, see GraphQL Gateway.

GraphQL Asset API

The GraphQL Asset API microservice executes the GraphQL data requests. For each data field of a GraphQL schema, a resolver function exists that defines how to handle the request for this field. A resolver can execute request directly or delegate them to other microservices to get data, perform a calculation or transformation. 

For more information, see GraphQL Asset API.

Query service

The Query Service microservice handles complex data queries. In the Hybrid Mode, the Query Service engine delegates the queries to a censhare Server via the Legacy Bridge.

The Query service offers a REST API. The response includes among others:

  • Asset IDs. The requesting source can use these IDs to request further asset information (properties, relations, files).
  • Total number of assets found

For more information, see Query Service.

Asset Management

The Asset Management microservice is the interface in cenTaur for all operations on assets: Create, Read, Update, and Delete (CRUD). Other microservices use the Asset Management for asset handling. There is a REST interface to access Asset Management.

Asset Management enables the following:

  • Create and get assets and asset relations
  • Update assets and asset relations
  • Delete assets and asset relations

For more information, see Asset Management.

File service

The File Microservice provides an interface to manage asset files. With the File Microservice, other microservices do not need to know where to upload or download a file. Instead, the File Microservice delivers an presigned URL where to upload or download. The requesting resource uses this URL to access the file system directly.

The File Microservice requires an Amazon S3-compatible storage system as file system. This can be Min.io or Amazon S3, for example.

The REST interface for the File Microservice allows the following:

  • Upload files
  • Provide links to to download asset files
  • Copy, move, and delete files on the various asset file systems
  • Create and access hotfolders

For more information, see the File service.

MinIO

The MinIO microservice is an open-source object storage for the Kubernetes microservice platform that offers an S3-compatible storage interface. Microservices can directly download or upload files with a presigned URL that points to the location in the storage. The File Microservice delivers the URLs for asset files, for example Master or preview files.

For more information, see MinIO.