
Research
Shai-Hulud Descends to Hades: Miasma Worm Campaign Spreads with New PyPI Wave
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.
AT&T M2X is a cloud-based fully managed time-series data storage service for network connected machine-to-machine (M2M) devices and the Internet of Things (IoT).
The AT&T M2X API provides all the needed operations and methods to connect your devices to AT&T's M2X service. This library aims to provide a simple wrapper to interact with the AT&T M2X API. Refer to the Glossary of Terms to understand the nomenclature used through this documentation.
m2x-tessel is available as an npm package. Install the latest version with:
npm install m2x-tessel
M2X is the main class that you will be using to communicate with the remote API. In order to create an M2X object you are going to need an API key, which can be either a Master Key or a key belonging to a specific feed (in which case you will only be allowed to read/write to this feed).
An M2X object provides methods for communicating with the remote API. Methods are organized under the following modules: batches, blueprints, datasources, feeds and keys.
The following is a short example on how to instantiate an M2X object:
var M2X = require("m2x-tessel");
var m2x = new M2X("<API-KEY>");
The M2X object provides a simple method for checking the API status (so if you are having connectivity issues, you can check whether the API is currently down):
m2x.status(function(status) {
console.log(status);
});
The M2X object also provides a simple method for retrieving the server time:
m2x.time(function(time) {
console.log(time);
});
An M2X object provides methods for communicating with the remote API. Methods are organized under the following modules: keys, devices, charts and distributions.
m2x.distributions.view("<DISTRIBUTION-ID>", function(response) {
console.log(response.json);
});
m2x.distributions.list(function(response) {
console.log(response.json);
});
m2x.devices.view("<DEVICE-ID>", function(response) {
console.log(response.json);
});
m2x.devices.list(function(response) {
console.log(response.json);
});
m2x.keys.view("<KEY-TOKEN>", function(response) {
console.log(response.json);
});
m2x.keys.list(function(response) {
console.log(response.json);
});
Refer to the documentation on each class for further usage instructions.
//
// This is a simple application that requests the list
// of available devices for the provided API Key and then
// prints the details for each of those devices
//
var API_KEY = "<YOUR KEY>",
M2X = require("m2x"),
m2xClient = new M2X(API_KEY);
m2xClient.devices.list(function(response) {
if (response.isSuccess()) {
response.json.devices.forEach(function(device) {
console.log(device);
});
} else {
console.log(response.error());
}
});
You can find the examples in the examples directory.
To use them, you should set up your key in examples/config.js, then execute like: $ node examples/print-devices.js.
This library aims to adhere to Semantic Versioning 2.0.0. As a summary, given a version number MAJOR.MINOR.PATCH:
MAJOR will increment when backwards-incompatible changes are introduced to the client.MINOR will increment when backwards-compatible functionality is added.PATCH will increment with backwards-compatible bug fixes.Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
Note: the client version does not necessarily reflect the version used in the AT&T M2X API.
This library is provided under the MIT license. See LICENSE for applicable terms.
This client is a direct port of Leandro Lopez' AT&T M2X client for Ruby so all the credit should go to him.
FAQs
AT&T M2X API client for node.js based Tessel
We found that m2x-tessel demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.

Security News
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.

Security News
pnpm 11.5 now recognizes npm staged publish approvals in release metadata, preventing those releases from being mistaken for lower-trust package publishes.