wiki:BossaImplementation

Bossa implementation notes

Database tables

Until Bossa has good web-based administration tools, you'll often need to directly examine and modify its MySQL database, using the command-line tool 'mysql' or a web-based interface such as phpMyAdmin.

The database tables used by Bossa (in addition to BOINC's tables for users, teams, etc.) are as follows:

bossa_app:

field name type meaning
id integer row ID, assigned by MySQL
create_time integer row creation time
name varchar(255) short name (internal use; no spaces)
user_friendly_name varchar(255) user-visible name (spaces OK)
long_jobs tinyint nonzero if user can have > 1 active job
start_url varchar(255) name (relative to project URL) of start script
deprecated tinyint nonzero if deprecated (don't show)
info text information (typically encoded in JSON) such as the criteria for which users to issue jobs to

bossa_job:

field name type meaning
id integer row ID, assigned by MySQL
create_time integer row creation time
name varchar(255) a unique name for this job
app_id integer ID of bossa_app
info text job-specific info (file names etc.) typically JSON-encoded
batch integer batch number (use to group jobs)
time_estimate integer number of seconds this job is likely to take
time_limit integer give up if not completed after this number of seconds
more_needed tinyint nonzero if more completed instances of this job are needed
npending integer number of pending instances
nsuccess integer number of successfully completed instances
nsuccess_needed integer required number of successfully completed instances

bossa_job_inst:

field name type meaning
id integer row ID, assigned by MySQL
create_time integer row creation time
job_id integer ID of bossa_job
user_id integer ID of user
finish_time integer time when finished, or zero
info text outcome info (usually JSON-encoded)

bossa_app_user:

app_id integer ID of bossa_app
user_id integer ID of user
info text description of the user's skill or ranking at a given app, typically JSON-encoded

Bossa PHP classes

Bossa provides the following classes (in html/inc/bossa.inc and html/inc/bossa_db.inc):

BossaApp, BossaJob, BossaJobInst
These correspond to the above tables, and have fields corresponding to each database field. They offer functions to insert, look up, and modify database rows.
Bossa
Utility functions.
Last modified 14 years ago Last modified on May 16, 2011, 6:31:17 PM