Research
Security News
Malicious PyPI Package ‘pycord-self’ Targets Discord Developers with Token Theft and Backdoor Exploit
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
@skynetlabs/content-record-library
Advanced tools
This library exposes a class that wraps the Content Record DAC, created and hosted by SkynetLabs.
The content record library is a library for skapp developers, allowing them to record the interactions of their users with pieces of content within the skapp that they are building. The main purpose of this tool is content discovery; if all skapps were to make use of this library, the end result would be a scrapable global record of all content and the popularity of that content and the skapp.
This information will eventually get displayed in a type of leaderboard that ranks top pieces of content and top skapps.
The library itself is a simple class that acts as a wrapper around the Content Record DAC. This DAC, or Data Access Controller, is built and hosted by Skynetlabs. The library will contain a hardcoded reference to its domain, thus abstracting all of its complexities from the skapp developer.
The skapp developer is expected to call upon the content record when its user perform the following two types of actions. This is when a user
creates
contentinteracts
with a piece of contentThe content record library exports the following types, allowing the skapp developer to record new entries in the content record. Note that the content info has a metadata field, the skapp developer can add whatever metadata he would like to add here. In the case of an interaction with a piece of content, the metadata could give more information about the type of interaction for instance, e.g. "liked", "commented", etc...
export interface IContentRecordDAC {
recordNewContent(...content: IContentInfo[]): Promise<IDACResponse>;
recordInteraction(...content: IContentInfo[]): Promise<IDACResponse>;
}
export interface IContentInfo {
skylink: string;
metadata: object; // should be valid JSON (capped in size ~=4kib)
}
export interface IDACResponse {
submitted: boolean;
error?: string;
}
Using the library is very straightforward. In this section we'll show an example of how a skapp could use the content record library and record user interactions.
import { SkynetClient } from "skynet-js";
import { ContentRecordDAC } from "skynet-content-record-library";
(async () => {
// create client
const client = new SkynetClient();
// create content record
const contentRecord = new ContentRecordDAC();
// load mysky
const mySky = await client.loadMySky("exampleskapp.hns");
// load DACs
await mySky.loadDacs(contentRecord);
// check login
const isLoggedIn = await mySky.checkLogin();
if (!isLoggedIn) {
// request login access
}
// DAC is now loaded and ready for use:
//
// - on content being created we can call:
//
// await contentRecord.recordNewContent({
// skylink,
// metadata: {foo: "bar"}
// });
//
// - on content being interacted with we can call:
//
// await contentRecord.recordInteraction({
// skylink,
// metadata: {action: "liked"}
// });
})();
The metadata submitted to the content record can be used for a lot of purposes,
there are other DACs that make use of this metadata already, and which supply a
link
field in the metadata under the content
property.
This link
field is described in the skystandards, and should contain a URI
from which the content can be retrieved. E.g. if you are submitting a record to
the content record DAC that describes the creation of an image at certain
skylink _AT2YIzNUnzFH4QV-MMa_CuIJBTTypcbnv2_irbjYUMNxQ
, then a good submission
would be:
await contentRecord.recordNewContent({
skylink: '_AT2YIzNUnzFH4QV-MMa_CuIJBTTypcbnv2_irbjYUMNxQ',
metadata: {
content: { link: "https://siasky.net/_AT2YIzNUnzFH4QV-MMa_CuIJBTTypcbnv2_irbjYUMNxQ" },
description: "beautiful wallpaper"
}
});
FAQs
This library exposes a class that wraps the Content Record DAC, created and hosted by SkynetLabs.
We found that @skynetlabs/content-record-library demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 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
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.