Applications, Templates & Schemas
The ByteNite Computing Platform is a versatile computing SaaS and API, enabling custom applications to run on ByteNite's computing grid.
Application Components
App
An 'App' contains the script executed on each worker device, carrying out an intended task (such as encoding a video or generating an image with AI). The App's metadata further defines the data types the app works with (input and output), and the platform the app runs on, with its additional configurations.
An App is associated with a schema for input parameters and a configuration template, both detailed further below. For example, 'video-transcoding' as an application is a collection of related video-encoding templates. Below are the configurable metadata parameters for an App:
App config | Description | Example values |
---|---|---|
id | The app ID | video-transcoding opencv-container |
entrypoint | The name of the main script. | main.py |
input_type | The input data type of the app | video |
output_type | The output data type of the app | video |
platform | The platform the app runs on | python |
platform_config | Additional platform configurations such as container | { "container": "hdgigante/python-opencv:4.8.1-alpine" } |
version | Boolean. The app's version | 0.1rev3 |
public | Boolean. Is the app public? | true |
owner | The user ID of the app's owner | bytenite |
Template
API Endpoints
A 'Template' is an additional configuration that defines data management parameters such as the chunks partitioning and merging strategy plus other options. It is intended to complement an App with global processing settings. Another utility of the Template is to connect an App to a schema through the schema_id
and schema_version
parameters. The configurable parameters for a Template are:
Template config | Description | Example values |
---|---|---|
id | The ID of a template | [email protected] |
schema_id | The ID of the schema associated with this template | video-transcoding |
schema_version | The version of the schema associated with this template | 9 |
partitioning_strategy | The ID of the strategy used to chunk down (partition) the input data. | video image |
partitioning_strategy_config | Additional parameters for the partitioning strategy. | {...} |
merge_strategy | The ID of the strategy used to assemble (merge) the output data chunks. | video image zip |
merge_strategy_config | Additional parameters for the merge strategy. | {...} |
scheduling_strategy_config | Parameters for the task scheduling and assignment strategy. | {...} |
streamable | Boolean. Can processing start before the end of the partitioning phase? | true |
public | Boolean. Is the template public? | true |
owner | The user ID of the template's owner | bytenite |
Schema
API Endpoints
A 'Schema' is linked to a Template and outlines the JSON schema of the application-specific input parameters. For example, for video encoding, the Schema includes video and audio parameters such as resolution and codecs. Conversely, it doesn't include global settings like storage or file naming, which are submitted separately and are detailed in the General Settings guides.
Public schemas are available in their respective application guides.
Official Apps
ByteNite offers a range of pre-configured, validated, and documented apps. These are ready to use with either your data sources or our sample data. Set job parameters easily with our presets. Here are the available apps, their details, and documentation:
App ID | Template IDs | Schema IDs | Platform | Input type | Output type | Version |
---|---|---|---|---|---|---|
video-transcoding | [email protected] | video-transcoding | python | video | video | 0.2.rev33 |
Submit Your App
Got a project in mind but can't find the resources to get started on ByteNite? Contact us, and we'll discuss a tailored App for you, complete with templates, schemas, and data processing logic, at no cost to you.
Updated 6 months ago