Skip to content
/ zion Public
forked from vaimee/zion

A scalable Thing Description Directory

License

Notifications You must be signed in to change notification settings

ONTOCHAIN/zion

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Not matained NOTICE: We do not keep this repository up to date.

This forked repository is used as a archive for the results of the ONTOCHAIN open call 2

CI status Issues License Discord chat LinkedIn eslint support prettier

Zion - A scalable Thing Description Directory

Overview

In the context of the W3C Web of Things, Thing Description Directories (TDDs) are services that store a set of Thing Descriptions. A TDD offers a set of APIs with CRUD operations on the collection of TDs that it stores. Zion implements the standard TDD APIs with a set of extentions to cover the use cases of VAIMEE.

Table of Contents
  1. Features
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Contact
  7. Acknowledgments

Features

Zion employes the best open source technologies to provide a scalable TDD service. Zion wants to be fast, ease to use and flexible. Currently, Zion supports the following features:

  • Introduction methods :
    • DNS-SD
    • Well-known URL
    • CoRE Link Format and /.well-known/core
  • Standard API:
    • CRUD operations on the collection of TDs
    • JSONPath queries compliant with IETF JSONPath standard draft 5
    • Pagination support
  • Basic support for authentication and authorization

Getting started

Thank you for considering using Zion in your Web of Things project! 🥳. Zion is still in his early stages and is still in the process of being tested and developed. However, if you already want to deploy on your own you have three options:

Clone and docker compose

You can clone the repository and start zion using the following command:

docker compose up

If you want to manually set up your database, you can edit the example .env file:

NODE_ENV=development
SERVER_PORT=3000
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_DATABASE=postgres
JWT_SECRET=abc123
JWT_EXPIRES_IN=15m

Clone and npm

If you want to start Zion in a development mode, you can clone the repository and run the following command:

npm ci
npm start

Note: you have to manually set up your database and configure Zion using the .env file.

Docker compose

You can start zion right away using this simple docker compose file together with your local .env file :

version: '3.6'
services:
  database:
    image: postgres:14.3-alpine
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_DATABASE}
    container_name: 'zion-postgres-testing'
    ports:
      - '54310:5432'
  zion:
    image: vaimee/zion:latest
    depends_on:
      - database
    entrypoint: ['sh', '-c','npm run db:migrate:latest && node dist/src/main.js']
    ports: 
      - ${SERVER_PORT}:${SERVER_PORT}
    container_name: zion
    environment:
      - NODE_ENV
      - SERVER_PORT
      - DB_HOST=database
      - DB_PORT
      - DB_USER
      - DB_PASSWORD
      - DB_DATABASE
      - JWT_SECRET
      - JWT_EXPIRES_IN

Roadmap

  • Standard API
    • XPath queries
    • SPARQL queries supported with an external SPARQL endpoint
    • CoRE introduction method
  • Experimental API
    • GEO spatial queries
    • User private TD collection CRUD
  • Caching layer
  • Cluster mode support
  • Advance authentication
    • OpenID Connect
    • OAuth2 Bearer Token

Other minor features are listed in the Issue tracker with the label feature.

Contributing

Thank you for considering to contribute to Zion. Please follow the guidelines in the CONTRIBUTING.md file.

Contact

Lorenzo Gigli - @hyperloris - [email protected]

Cristiano Aguzzi - @relucri - [email protected]

VAIMEE - @MaVaimee - [email protected]

Acknowledgments

DESMO-LD

Zion is founded by the DESMO-LD project inside the ONTOCHAIN european organization part of the Next Generation Internet fund.

About

A scalable Thing Description Directory

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 83.6%
  • CSS 13.3%
  • HTML 2.0%
  • Other 1.1%