Skip to content

1EdTech/UniformIdOpenSource

Repository files navigation

Uniform IDs

Overview

Uniform IDs address a need identified by members of 1EdTech for a standardized way to create and share identifiers across organizations. This project introduces a mechanism for these identifiers to be optionally validated by a receiving party.

This repository provides three main components:

  1. DID Registrar - A service for creating and managing Web DIDs (Decentralized Identifiers)
  2. DID Validator - A web application for validating and inspecting DID documents
  3. Postman Collection - API testing tools for the Uniform ID services

Decentralized Identifiers (DIDs)

Decentralized Identifiers (DIDs) are a new type of identifier created, resolved, and controlled by the subject of the DID. DIDs are fully under the control of the DID subject, independent from any centralized registry, authority, or intermediary. Their implementation is inherently tied to blockchain technology, ensuring a level of security and privacy.

Web DID

Web DID was chosen for this project as it enables organizations to create an unlimited number of identifiers that can be associated with their domain name. As such, the controller of a domain inherently becomes the controller of the identifiers.

Project Components

1. DID Registrar

The DID Registrar is a service built using the Veramo Library that provides REST APIs for creating and managing Web DIDs and their associated services.

Important Note: This open-source version has authentication removed to keep it simple. Users must apply their own business logic and security measures. Reach out to 1EdTech if you need assistance with enterprise-grade authentication and security.

Key Features:

  • Create and manage Web DIDs
  • Add and remove DID services
  • Manage DID aliases (AlsoKnownAs)
  • DID document resolution
  • Support for multiple database backends (SQLite, MySQL, PostgreSQL)
  • Docker and Kubernetes support

Documentation: See registrar/README.md for detailed setup and usage instructions.

2. DID Validator

The DID Validator is a Next.js web application designed to validate and inspect issued Web DID addresses seamlessly.

Live Demo: A running version is available at https://uniformid.1edtech.org

Key Features:

  • Validate DID documents
  • Inspect DID services and keys
  • Visual representation of DID structure
  • Support for various DID methods

Documentation: See validator/README.md for setup and usage instructions.

3. Postman Collection

The Postman Collection provides comprehensive API testing tools for the Uniform ID services.

Contents:

  • UniformIDOpenSource.postman_collection.json - Complete API test collection
  • LocalDev.postman_environment.json - Environment configuration for local development

Usage: Import these files into Postman to test the Uniform ID APIs with pre-configured requests and environments.

Important Development Notes

TLS Requirements for did:web

Web DIDs are inherently tied to domain names and require HTTPS/TLS for proper resolution. For example:

  • did:web:example.com:user:bob resolves to https://example.com/user/bob.json

Using ngrok for Development

For local development, you can use ngrok to create a secure tunnel with TLS:

  1. Install ngrok: npm install -g ngrok or download from ngrok.com
  2. Start your local service (e.g., registrar on port 3000)
  3. Create a tunnel: ngrok http 3000
  4. Use the provided HTTPS URL (e.g., https://abc123.ngrok.dev) as your domain

This setup provides the TLS certificate required for did:web resolution while developing locally.

Quick Start

  1. Start the Registrar: Follow instructions in registrar/README.md
  2. Run the Validator: Follow instructions in validator/README.md
  3. Test the APIs: Import the Postman collection for comprehensive API testing

Links

Support

For enterprise support, authentication integration, or custom implementations, please reach out to 1EdTech.

About

Example implementation of DID Registrar and Validator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published