npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

iotagent-node-lib

v4.6.0

Published

IoT Agent library to interface with NGSI Context Broker

Downloads

2,207

Readme

FIWARE IoT Agent Node Library

FIWARE IoT Agents License: APGL Support badge Documentation badge CI Coverage Status Status CII Best Practices

An IoT Agent is a component that lets groups of IoT devices send their data to a NGSI Context Broker (such as Orion Context Broker) using their own native protocols and translating them into NGSI.

The IoT Agent Node Lib provides simple standardized REST API for registering, provisioning, discovering and managing devices and groups of devices. It also ensures that each IoT Agent can configure its device communications using a common vocabulary regardless of the payload, syntax or transport protocol used by the device itself

It also provides a common configuration framework driven by a config.js configuration file and a series of common ENV variables, configuring some flags for common functionality provided by the IoT Agent node lib (e.g. for contecting to a Conext Broker or for authenticating with an Identity Manager).Some of common utility functions provided by the IoT Agent node lib include:

  • For the device communication (southbound), the library listens to changes in context entities and raises callbacks for the IoT Agent to process. It also handles the commands sent by the Context Broker to the devices.
  • For the context broker communications (northbound), the library offers an interface which persists data from the device in the Context Broker and accepts NGSI data from the Context Broker to be sent to the device.
  • Standardized OAuth2-based security is available to enable each IoT Agent to connect to several common Identity Managers (e.g. Keystone and Keyrock) so that communications can be restricted to trusted components.

This project is part of FIWARE. For more information check the FIWARE Catalogue entry for the IoT Agents.

| :books: Documentation | :mortar_board: Academy | :dart: Roadmap | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |

Content

Documentation

This repository contains the common user documentation across all IoT Agents. For particular documentation, you can check the specific documentation for each IoT Agent. You can see the a list of available IoT Agents in the IoT Agents available section.

User documentation

Development documentation

IoT Agents available

The following IoT Agents using the IoT Agent Node Lib are available:

Install and usage

The IoT Agent node library is not a standalone product. If you plan to install and use any of the IoT Agents available, you should follow the installation instructions for each IoT Agent (find the link in the previous section). You can find the common API provided by the IoT Agent node library under API documentation.

If you plan to use the IoT Agent node library in your own project or IoT Agent, you should follow the Developer manual, which includes the installation instructions and the usage of the library.

Information about how to configure the IoT agent or the library can be found at the corresponding section of the Administration manual.

License

The IoT Agent Node Library is licensed under Affero General Public License (GPL) version 3.

© 2022 Telefonica Investigación y Desarrollo, S.A.U

Are there any legal issues with AGPL 3.0? Is it safe for me to use?

There is absolutely no problem in using a product licensed under AGPL 3.0. Issues with GPL (or AGPL) licenses are mostly related with the fact that different people assign different interpretations on the meaning of the term “derivate work” used in these licenses. Due to this, some people believe that there is a risk in just using software under GPL or AGPL licenses (even without modifying it).

For the avoidance of doubt, the owners of this software licensed under an AGPL-3.0 license wish to make a clarifying public statement as follows:

Please note that software derived as a result of modifying the source code of this software in order to fix a bug or incorporate enhancements is considered a derivative work of the product. Software that merely uses or aggregates (i.e. links to) an otherwise unmodified version of existing software is not considered a derivative work, and therefore it does not need to be released as under the same license, or even released as open source.