Technical Specification Draft
Terminology, schemas, configuration, attestation, enrolment, discovery and consent for the Sunbird RC registry.
Terminology
Data
Electronic data of any type. It could be simple data or composite data.
Database
A software system that stores and manages data.
Schema
Machine-readable definition of data.
Actor (Subject)
A person, entity or thing that has been identified.
Transaction / Interaction Data
Data representing details of an interaction or transaction done among one or more actors within a system.
SoR (System of Record)
A software system that is the primary system enabling a specific set of transactions/interactions through a set of workflows and user interfaces. Identities of actors participating in these transactions/interactions may be linked to a registry.
Registration
The act of registering or enrolling an actor into a system.
Claim
A statement made by an actor which can be verified.
Attestation
The act of verifying and authorizing specific data in a digitally signed fashion by an authorized individual/entity (whose identities are typically linked to some other registries).
Discovery
The act of finding specific entries in a registry through a search/find mechanism.
Assertion
The act of verifying a claim.
Consent
Approval given by an actor to another person/system to access the actor's data for purposes of a transaction/interaction.
Credential
A digitally represented, verifiable artifact containing a qualification, achievement, milestone, fact, etc., issued to an actor so they can make claims.
Registry
An electronic registry is a system acting as a single source of truth. It houses a set of common attributes of the actor in a trustable (attested) and non-repudiable (audited) fashion, under the actor's control — enabling actors to authenticate themselves and make claims about themselves, with their consent, which can be electronically verified by third-party systems.
Information Provider
An authorized entity or person who manages a SoR to enable specific transactions/interactions among various actors. Using their systems of record, this entity provides digitally verifiable credentials, documents, certificates, transaction/interaction data, etc. back to actors.
Information Users
An entity accessing credentials/data of an actor, with the actor's consent, to make assertions and provide various services/products.
Workflow

Schema
All registries have attributes pertaining to the entity or fact in question, whether a person or a thing. A schema defines the structure and constraints of the entity. Sunbird RC uses standard JSON-LD based schemas.
In the example below, Place is the concept the registry stores, supporting name, city, addressRegion (state) and country.
Example
Configuration
In addition to JSON-LD specific data types, Sunbird RC supports various extension configurations under _osConfig. Access, indexing, primary keys, etc. are configurable using schema configuration.
Property data types and restrictions
Supported types:
String — Unicode text; additional regular-expression restrictions can be applied.
Enum — a restricted list of values.
Number — numeric data.
List of attributes
Collections of data values are also supported, as multiple values might represent an entity property — for example, subjects taught: ["english", "science", "mathematics"]
Visibility scope
There are three types of visibility on attributes:
Public
Available in discovery by default — no permission or authorization is needed.
Private (privateFields)
Accessible by the owner by default; third parties can access the field with consent.
Internal
System fields that only serve internal functionality. These can never be accessed by any actor in the system.
Primary keys for entities
Primary keys from the domain space help enforce uniqueness of information and make it easily accessible. Use uniqueIndexFields to configure them.
Index field set
Indexes help with faster access to information. Index fields can be configured based on the usage context:
Validation extensions
JSON-LD schema allows defining basic type constraints such as numeric type, text or a list of items. It also allows a list of possible values for given attributes (enum), and regular-expression based constraints for the value.
Schema access API
Sunbird RC supports the following API for accessing schemas:
The Swagger document is accessible at:
Attestation
Configuration
Attestation on a given set of fields is configurable with schema configuration. Below is an example of an attestation requirement using DSL:
Attestation types
Attestation requirements will be mixed: some need human verification, while others can be completely digital. To begin with, registries can allow both manual and automatic attestation. For example, a teacher rewarding and attesting grades can be a manual activity, while an identity claim can be attested digitally by an identity provider like Aadhaar.
Manual attestation may need a workflow. By default, the registry supports raising a claim against a pre-configured attestation requirement. The claim is routed to the appropriate authority/role based on the configuration. Once the claim is approved or rejected, the respective fields in the claim show as verified or invalid.
The attestor is controlled with the attestorEntity configuration.
Digital registries can interoperate, sharing trusted claims and information among themselves. To do so, a claim can be routed to an automated registry verifier, which proxies for another registry and takes care of verification and attestation. Such attestation can be time-bound or one-time.
Example: An identity registry can be used to prove the identity of a subject without manual verification. A mobile OTP-based consent flow can verify the identity and mark the subject's name as verified. Eventually, certificates issued by educational institutions can also be verified digitally.
Attestation API
Custom extensions
The attestation workflow might need custom stages and transition rules based on the use case. Attestation is extensible, so you can add or customize these workflows and add custom rules as needed.
Enrolment / signup
Sign up
The enrolment/signup API supports self-signup and bulk invites to register in the registry.
Update information
Discovery
Search API
Directory
Example: pincode lookup
Consent API
Authentication flow

Request scopes and sharing attributes
Use cases
Building a blood donor registry
Building a simple pincode directory service
Education registry
Immunization
Authentication and consent usage in a learning application