Cedalio
Search
K

Glossary

Here are some key concepts that may need clarification for a better understanding of the documentation

Cedalio specific concepts

Account: In Cedalio, an account is a container that holds a set of projects. It can have various types of projects including Hobby, Builder, or Enterprise Projects. All invoicing for these projects is issued directly to the Account.
Project: In the context of Cedalio, a project is a container for creating and managing decentralized databases. A project also has an associated GraphQL schema from which databases (that use that schema) can be created. Most probably a project has a 1 to 1 correspondance to an application that a developer is building.
Studio: The Cedalio Studio is a web application designed to make the creation and management of decentralized databases seamless and intuitive.
Database: A structured set of data. In Cedalio, databases are decentralized and can be created and managed through the Studio. Every database has it's own smart contract that contains the access control rules for that specific database. It has at least an owner and a delegate (Cedalio).
Operations: In Cedalio, they are GraphQL operations representeing the actions performed in a database. They can be tracked and managed through the Studio.
Explorer: A tool in the Cedalio Studio that allows developers to manage their database in an easy and interactive way. It supports some GraphQL operation types and provides a Schema Navigator to help understand the data schema. The actions performed in the explorer are going to be the ones that the logged wallet is allowed to do.
Field-level integrity validation: Applications that use Cedalio can verify (client-side) that the response for any given query contains data (at a field level) that comes from a non-tampered databased by computing the root merkle hash from the data returned (other merkle root paths are publicly accesible) and matching it with the one accepted by the corresponing database smart-contract
On-chain verifiability: A feature of Cedalio that allows data to be stored in a way that its authenticity can be verified on the blockchain.
Database Operations: The execution of the GraphQL operation once the authorization on-chain layer allows it. This is converted into the proper database operations.
Ownership Model: The model that defines who has control over the data. There are 2 main approches: one database per organization or one database per user.
On-chain Access Control Validation: The process of translating the operation into a smart-contract database access request. This involves checking with the smart-contract associated with the database being accessed to ensure the received operation is allowed to be executed by the sender.
Smart-Contract Database Access Request: The operation translated into a method call sent to the smart-contract where the authorization rules exist.
Operation Log: A record of the GraphQL operation payload that was sent to the server with extra contextual information. This is necessary to be able to re-construct and validate the operation at any point in time.
Operation Log Entries: Entries created by the operation log service that are committed into the database smart-contract. They include the CID of the operation log entry and the smart-contract database access request.
Database Merkle Root Hash: A hash created from each object field in the database. It is computed by the operation log service.
Persistent Decentralized Backup: An optional feature that allows project owners to configure operation log entries to be backed up on a persistent decentralized storage network like Filecoin or Arweave. Data Portability: The ability to move data from one service to another. In Cedalio, this is achieved by giving users real ownership and portability of their databases across different applications.
Authentication: In Cedalio, authentication is implemented by proving wallet ownership. All operations sent to the GraphQL gateway must be associated with a wallet. This is achieved by obtaining a JSON Web Token (JWT) by signing a nonce with a wallet's private key.
Authorization: In Cedalio, authorization occurs in two moments. First, after the GraphQL gateway verifies the authenticity of the JWT, it checks that the current signed-in user has the right capabilities to access the target resource or endpoint. Secondly, when a GraphQL operation request is sent to access a database, the GraphQL gateway checks with the smart-contract associated with the database that the operation sender's wallet address is allowed to execute such operation.

General concepts

GraphQL API: A convenient interface provided by Cedalio for seamless access, creation, and management of a decentralized database.
GraphQL Request: The initial step to initiate any GraphQL operation. It is sent to a specific graph or database within a project.
Schema: Defined using GraphQL, it is the structure of the data that is stored in the Cedalio platform. It does not require knowledge of Solidity or understanding of blockchains.
Smart Contract: Used in Cedalio to store access control rules, ensuring a censorship-resistant database.
JWT (JSON Web Token): A standard used for securely transmitting information between parties as a JSON object. In Cedalio, it is used for authentication.
JWT Validation: The process of verifying that the JWT is not expired and is properly signed. It also checks if the signed-in user has the right access capabilities.